Android Open Source - android-mvc-framework Control Flow Detail






From Project

Back to project page android-mvc-framework.

License

The source code is released under:

Apache License

If you think the Android project android-mvc-framework listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.android_mvc.framework.controller;
/* w  w  w.j a v a  2s. c  o m*/
import android.app.Activity;

import com.android_mvc.framework.activities.IBaseActivity;
import com.android_mvc.framework.common.FWUtil;
import com.android_mvc.framework.controller.action.ActionResult;
import com.android_mvc.framework.controller.action.BLExecutor;
import com.android_mvc.framework.controller.routing.Router;
import com.android_mvc.framework.controller.routing.RoutingTable;
import com.android_mvc.framework.controller.validation.ValidationResult;
import com.android_mvc.framework.controller.validation.ValidationExecutor;
import com.android_mvc.framework.task.AsyncTasksRunner;
import com.android_mvc.framework.task.RunnerFollower;
import com.android_mvc.framework.task.SequentialAsyncTask;


/**
 * ???????????????????????
 */
public class ControlFlowDetail<T_ActivityClass>
{
    // NOTE: T_ActivityClass -> Activity????????????????????

    protected T_ActivityClass from_activity;
    private ValidationExecutor validation_executor;
    private BLExecutor bl_executor;
    private RoutingTable routingTable;
    protected ActionResult action_result;



    /**
     * ????
     */
    public ControlFlowDetail(T_ActivityClass fromActivity)
    {
        this.from_activity = fromActivity;
    }


    /**
     * ?????????????????????
     */
    public ControlFlowDetail<T_ActivityClass> setValidation(
        ValidationExecutor validationExecutor
    )
    {
        this.validation_executor = validationExecutor;
        return this;
    }



    /**
     * BL???????????
     */
    public ControlFlowDetail<T_ActivityClass> setBL(
        BLExecutor blExecutor
    )
    {
        this.bl_executor = blExecutor;
        return this;
    }


    /**
     * BL???????????????????????
     * ???????????????????????????????????????????
     */
    public ControlFlowDetail<T_ActivityClass> onBLExecuted( RoutingTable routingTable )
    {
        this.routingTable = routingTable;
        return this;

    }


    /**
     * ?????????
     * ??????????????????????????????????????????????????????????????????????????????
     */
    public void startControl()
    {
        // ActionResult???????
        final ControlFlowDetail<T_ActivityClass> parentFlow = this;

        // ?????????????
        new AsyncTasksRunner( new SequentialAsyncTask[]{

            // ???????????????????????????
            new  SequentialAsyncTask(){
                public boolean main(){
                    ValidationResult vres;


                    // ??????????????????????????
                    if( validation_executor != null )
                    {
                        // Activity???params???????
                        validation_executor.execAndStoreValidationResult();
                        vres = validation_executor.validation_result;
                    }
                    else
                    {
                        // ?????????????????????????????????????
                        vres = new ValidationResult().setSuccess();
                    }
                    storeData( "validation_result", vres );


                    // ???????????????????????????????
                    if( vres.isSuccess() )
                    {
                        FWUtil.d("???????????????????????????BL????????????????????");

                        // BL???????????
                        return CONTINUE_TASKS;
                    }
                    else
                    {
                        FWUtil.d("??????????????????????????BL????????????????????????");

                        // ?????????????????
                        validation_executor.from_activity = (Activity)from_activity;
                        validation_executor.onValidationFailed();

                        // ??????????????????
                        return BREAK_TASKS;
                    }

                }
            }
            ,

            // ????????????BL???????????????????
            // DB????NW????????????
            new SequentialAsyncTask(){
                public boolean main(){

                    // ??????????????????????????????????
                    ValidationResult vres = (ValidationResult)getDataFromRunner("validation_result");

                    // ?????????????????????BL??????????????????????????
                    if( vres.permitsExecitionOfBL() )
                    {
                        FWUtil.d("BL??????????????????");

                        // BL???
                        bl_executor.execAndStoreActionResult();

                        // BL??????????
                        storeData( "action_result", bl_executor.action_result );
                        parentFlow.action_result = bl_executor.action_result;

                        FWUtil.d("ActionResult????????????????????????");
                    }

                    // BL??????????????????????????????????????????????true
                    return CONTINUE_TASKS;
                }
            }
            ,

            //  ????????????????????????
            new SequentialAsyncTask(){
                public boolean main(){

                    // ????????????????????????
                    if( routingTable != null )
                    {
                        // BL????????????????
                        ActionResult ares = (ActionResult)getDataFromRunner("action_result");

                        // BL????????????????????????
                        Router.switchByActionResult( (Activity)from_activity, ares, routingTable );
                    }
                    else
                    {
                         // ????????????????????????????????????????????
                    }

                    return CONTINUE_TASKS;
                }
            }
        })
        .withSimpleDialog("????????", (Activity)from_activity) // ????????????????????????????????????
        .whenAllTasksCompleted(new RunnerFollower(){
            @Override
            protected void exec() {
                ActionResult ares = parentFlow.action_result;

                // BL????????????????
                if( ares != null )
                {
                    // BL????????????????????UI???????????????????
                    ((IBaseActivity)from_activity).afterBLExecuted(ares);

                    // NOTE: Intent???????????????????????Intent????ActionResult????????????????????????
                    // ???????????????UI??????????????????????
                    // ??????????BL??????????????????????????????????????????????????BL????????
                    // UI????????UI??????????????????????????????????????????
                }
            }
        })
        .begin(); // ???????????????????

        // TODO: ??????????????????????????????
    }

}




Java Source Code List

com.android_mvc.framework.activities.CommonActivityUtil.java
com.android_mvc.framework.activities.IBaseActivity.java
com.android_mvc.framework.activities.base.BaseMapActivity.java
com.android_mvc.framework.activities.base.BaseNormalActivity.java
com.android_mvc.framework.activities.base.BaseTabHostActivity.java
com.android_mvc.framework.activities.installation.InstallAppFWBaseActivity.java
com.android_mvc.framework.annotations.SuppressDebugLog.java
com.android_mvc.framework.common.AbstractAppSettings.java
com.android_mvc.framework.common.BaseUtil.java
com.android_mvc.framework.common.FWUtil.java
com.android_mvc.framework.controller.BaseController.java
com.android_mvc.framework.controller.ControlFlowDetail.java
com.android_mvc.framework.controller.action.ActionResult.java
com.android_mvc.framework.controller.action.BLExecutor.java
com.android_mvc.framework.controller.action.BaseAction.java
com.android_mvc.framework.controller.routing.IntentPortable.java
com.android_mvc.framework.controller.routing.Router.java
com.android_mvc.framework.controller.routing.RoutingTable.java
com.android_mvc.framework.controller.routing.TabContentMapping.java
com.android_mvc.framework.controller.validation.ActivityParams.java
com.android_mvc.framework.controller.validation.BaseValidationsUtil.java
com.android_mvc.framework.controller.validation.NumberComparator.java
com.android_mvc.framework.controller.validation.ValidationExecutor.java
com.android_mvc.framework.controller.validation.ValidationResult.java
com.android_mvc.framework.db.DBHelper.java
com.android_mvc.framework.db.dao.BaseDAO.java
com.android_mvc.framework.db.dao.BaseDBDAO.java
com.android_mvc.framework.db.dao.BasePrefDAO.java
com.android_mvc.framework.db.dao.FWPrefDAO.java
com.android_mvc.framework.db.dao.Finder.java
com.android_mvc.framework.db.dao.IFWDAO.java
com.android_mvc.framework.db.entity.BaseLogicalEntity.java
com.android_mvc.framework.db.schema.AbstractSchemaDefinition.java
com.android_mvc.framework.db.schema.RDBColumn.java
com.android_mvc.framework.db.schema.RDBSchema.java
com.android_mvc.framework.db.schema.RDBTable.java
com.android_mvc.framework.db.transaction.todo.TxnListener.java
com.android_mvc.framework.db.transaction.todo.TxnScope.java
com.android_mvc.framework.net.HttpPostRequest.java
com.android_mvc.framework.net.HttpPostResponse.java
com.android_mvc.framework.net.old.HttpPostHandler.java
com.android_mvc.framework.net.old.HttpPostTask.java
com.android_mvc.framework.task.AsyncTasksRunner.java
com.android_mvc.framework.task.RunnerFollower.java
com.android_mvc.framework.task.SequentialAsyncTask.java
com.android_mvc.framework.ui.UIBuilder.java
com.android_mvc.framework.ui.UIUtil.java
com.android_mvc.framework.ui.menu.OptionMenuBuilder.java
com.android_mvc.framework.ui.menu.OptionMenuDescription.java
com.android_mvc.framework.ui.tab.TabDescription.java
com.android_mvc.framework.ui.tab.TabHostBuilder.java
com.android_mvc.framework.ui.view.IFWView.java
com.android_mvc.framework.ui.view.MButton.java
com.android_mvc.framework.ui.view.MCheckBox.java
com.android_mvc.framework.ui.view.MEditText.java
com.android_mvc.framework.ui.view.MLinearLayout.java
com.android_mvc.framework.ui.view.MTextView.java
com.android_mvc.sample_project.activities.func_db.DBEditActivity.java
com.android_mvc.sample_project.activities.func_db.DBListActivity.java
com.android_mvc.sample_project.activities.func_db.SampleTabHostActivity.java
com.android_mvc.sample_project.activities.func_net.HttpNetActivity.java
com.android_mvc.sample_project.activities.installation.InstallAppActivity.java
com.android_mvc.sample_project.activities.installation.InstallCompletedActivity.java
com.android_mvc.sample_project.activities.installation.lib.InstallAppUserBaseActivity.java
com.android_mvc.sample_project.activities.main.TopActivity.java
com.android_mvc.sample_project.common.AppSettings.java
com.android_mvc.sample_project.common.Util.java
com.android_mvc.sample_project.controller.FuncDBController.java
com.android_mvc.sample_project.controller.FuncDBValidation.java
com.android_mvc.sample_project.controller.FuncNetController.java
com.android_mvc.sample_project.controller.FuncNetValidation.java
com.android_mvc.sample_project.controller.MainController.java
com.android_mvc.sample_project.controller.util.ValidationsUtil.java
com.android_mvc.sample_project.db.dao.FriendDAO.java
com.android_mvc.sample_project.db.dao.PrefDAO.java
com.android_mvc.sample_project.db.dao.todo.HogeDAO.java
com.android_mvc.sample_project.db.entity.Friend.java
com.android_mvc.sample_project.db.entity.lib.LogicalEntity.java
com.android_mvc.sample_project.db.schema.SchemaDefinition.java
com.android_mvc.sample_project.domain.DBDeleteAction.java
com.android_mvc.sample_project.domain.DBEditAction.java
com.android_mvc.sample_project.domain.DBUpdateAction.java
com.android_mvc.sample_project.domain.HttpNetAction.java