示例#1
0
        private void Init_StateInspectBuilding(State state_inspectBuilding, State state_inspectRegion, State state_inspectIsland, State state_main)
        {
            TaskBuildingSelect   task_buildingSelect         = new TaskBuildingSelect();
            TaskBuildingDeselect task_buildingDeselect       = new TaskBuildingDeselect();
            TaskRegionDeselect   task_regionDeselect         = new TaskRegionDeselect();
            TaskIslandDeselect   task_islandDeselect         = new TaskIslandDeselect();
            TaskBuildingSelect   task_buildingSelectSpeech   = new TaskBuildingSelect();
            TaskBuildingDeselect task_buildingDeselectSpeech = new TaskBuildingDeselect();
            TaskRegionDeselect   task_regionDeselectSpeech   = new TaskRegionDeselect();
            TaskIslandDeselect   task_islandDeselectSpeech   = new TaskIslandDeselect();
            TaskRotateInspect    task_rotateInspect          = new TaskRotateInspect();
            TaskShowDependencies task_showDependencies       = new TaskShowDependencies();
            TaskToggleDependency task_toggleDependency       = new TaskToggleDependency();

            Command command_buildingSelect         = new Command(GestureType.OneHandTap, KeywordType.Invariant, InteractableType.CompilationUnit, InteractableType.CompilationUnit, StaticItem.None);
            Command command_buildingDeselect       = new Command(GestureType.OneHandTap, KeywordType.Invariant, InteractableType.Package, InteractableType.CompilationUnit, StaticItem.None);
            Command command_regionDeselect         = new Command(GestureType.OneHandTap, KeywordType.Invariant, InteractableType.Bundle, InteractableType.CompilationUnit, StaticItem.None);
            Command command_islandDeselect1        = new Command(GestureType.OneHandTap, KeywordType.Invariant, InteractableType.ContentPane, InteractableType.CompilationUnit, StaticItem.None);
            Command command_islandDeselect2        = new Command(GestureType.OneHandTap, KeywordType.Invariant, InteractableType.None, InteractableType.CompilationUnit, StaticItem.None);
            Command command_buildingSelectSpeech   = new Command(GestureType.None, KeywordType.Select, InteractableType.CompilationUnit, InteractableType.CompilationUnit, StaticItem.None);
            Command command_buildingDeselectSpeech = new Command(GestureType.None, KeywordType.Deselect, InteractableType.Package, InteractableType.CompilationUnit, StaticItem.None);
            Command command_regionDeselectSpeech   = new Command(GestureType.None, KeywordType.Deselect, InteractableType.Bundle, InteractableType.CompilationUnit, StaticItem.None);
            Command command_islandDeselectSpeech1  = new Command(GestureType.None, KeywordType.Deselect, InteractableType.ContentPane, InteractableType.CompilationUnit, StaticItem.None);
            Command command_islandDeselectSpeech2  = new Command(GestureType.None, KeywordType.Deselect, InteractableType.None, InteractableType.CompilationUnit, StaticItem.None);
            Command command_rotateInspect          = new Command(GestureType.OneHandManipStart, KeywordType.Invariant, InteractableType.Invariant);
            Command command_showDependencies       = new Command(StaticItem.Dependencies);
            Command command_exportSelectGesture    = new Command(GestureType.OneHandTap, KeywordType.Invariant, InteractableType.ImportDock);
            Command command_importSelectGesture    = new Command(GestureType.OneHandTap, KeywordType.Invariant, InteractableType.ExportDock);

            state_inspectBuilding.AddInteractionTask(command_buildingSelect, task_buildingSelect);
            state_inspectBuilding.AddInteractionTask(command_buildingDeselect, task_buildingDeselect);
            state_inspectBuilding.AddInteractionTask(command_regionDeselect, task_regionDeselect);
            state_inspectBuilding.AddInteractionTask(command_islandDeselect1, task_islandDeselect);
            state_inspectBuilding.AddInteractionTask(command_islandDeselect2, task_islandDeselect);
            state_inspectBuilding.AddInteractionTask(command_buildingSelectSpeech, task_buildingSelect);
            state_inspectBuilding.AddInteractionTask(command_buildingDeselectSpeech, task_buildingDeselect);
            state_inspectBuilding.AddInteractionTask(command_regionDeselectSpeech, task_regionDeselect);
            state_inspectBuilding.AddInteractionTask(command_islandDeselectSpeech1, task_islandDeselect);
            state_inspectBuilding.AddInteractionTask(command_islandDeselectSpeech2, task_islandDeselect);
            state_inspectBuilding.AddInteractionTask(command_rotateInspect, task_rotateInspect);
            state_inspectBuilding.AddInteractionTask(command_showDependencies, task_showDependencies);
            state_inspectBuilding.AddInteractionTask(command_importSelectGesture, task_toggleDependency);
            state_inspectBuilding.AddInteractionTask(command_exportSelectGesture, task_toggleDependency);

            state_inspectBuilding.AddStateTransition(command_buildingDeselect, state_inspectRegion);
            state_inspectBuilding.AddStateTransition(command_regionDeselect, state_inspectIsland);
            state_inspectBuilding.AddStateTransition(command_islandDeselect1, state_main);
            state_inspectBuilding.AddStateTransition(command_islandDeselect2, state_main);
            state_inspectBuilding.AddStateTransition(command_buildingDeselectSpeech, state_inspectRegion);
            state_inspectBuilding.AddStateTransition(command_regionDeselectSpeech, state_inspectIsland);
            state_inspectBuilding.AddStateTransition(command_islandDeselectSpeech1, state_main);
            state_inspectBuilding.AddStateTransition(command_islandDeselectSpeech2, state_main);

            state_inspectBuilding.AddOpenAction((State state) => {
                UIManager.Instance.SetActiveButtons(StaticItem.Done, StaticItem.Panel, StaticItem.Dependencies);
                UIManager.Instance.EnableToolbar(true);
            });
            state_inspectBuilding.AddCloseAction((State state) => UIManager.Instance.DisableToolbar(true));
        }
示例#2
0
        private void Init_StateMain(State state_main, State state_init, State state_inspectIsland)
        {
            first_time_opened = true;

            TaskDragProjected    task_dragProjected    = new TaskDragProjected();
            TaskZoomProjected    task_zoomProjected    = new TaskZoomProjected();
            TaskIslandSelect     task_islandSelect     = new TaskIslandSelect();
            TaskIslandDeselect   task_islandDeselect   = new TaskIslandDeselect();
            TaskShowDependencies task_showDependencies = new TaskShowDependencies();
            TaskFitContent       task_fitContent       = new TaskFitContent();
            TaskToggleDependency task_toggleDependency = new TaskToggleDependency();
            TaskResetPane        task_resetPane        = new TaskResetPane();
            TaskMoveDirection    task_moveDirection    = new TaskMoveDirection();
            TaskZoom             task_zoom             = new TaskZoom();


            Command command_dragProjected       = new Command(GestureType.OneHandManipStart, KeywordType.Invariant, InteractableType.Invariant);
            Command command_zoomProjected       = new Command(GestureType.TwoHandManipStart, KeywordType.Invariant, InteractableType.Invariant);
            Command command_islandSelectGesture = new Command(GestureType.OneHandTap, KeywordType.None, InteractableType.Bundle);
            Command command_exportSelectGesture = new Command(GestureType.OneHandTap, KeywordType.Invariant, InteractableType.ImportDock);
            Command command_importSelectGesture = new Command(GestureType.OneHandTap, KeywordType.Invariant, InteractableType.ExportDock);
            Command command_islandSelectSpeech  = new Command(GestureType.None, KeywordType.Select, InteractableType.Bundle);
            Command command_zoomIn           = new Command(GestureType.None, KeywordType.ZoomIn, InteractableType.Invariant);
            Command command_zoomOut          = new Command(GestureType.None, KeywordType.ZoomOut, InteractableType.Invariant);
            Command command_moveUp           = new Command(GestureType.None, KeywordType.MoveUp, InteractableType.Invariant);
            Command command_moveDown         = new Command(GestureType.None, KeywordType.MoveDown, InteractableType.Invariant);
            Command command_moveLeft         = new Command(GestureType.None, KeywordType.MoveLeft, InteractableType.Invariant);
            Command command_moveRight        = new Command(GestureType.None, KeywordType.MoveRight, InteractableType.Invariant);
            Command command_adjust           = new Command(StaticItem.Adjust);
            Command command_showDependencies = new Command(StaticItem.Dependencies);
            Command command_fitContent       = new Command(StaticItem.Fit);
            Command command_reset            = new Command(StaticItem.Reset);

            state_main.AddInteractionTask(command_dragProjected, task_dragProjected);
            state_main.AddInteractionTask(command_zoomProjected, task_zoomProjected);
            state_main.AddInteractionTask(command_showDependencies, task_showDependencies);
            state_main.AddInteractionTask(command_fitContent, task_fitContent);
            state_main.AddInteractionTask(command_islandSelectGesture, task_islandSelect);
            state_main.AddInteractionTask(command_islandSelectSpeech, task_islandSelect);
            state_main.AddInteractionTask(command_importSelectGesture, task_toggleDependency);
            state_main.AddInteractionTask(command_exportSelectGesture, task_toggleDependency);
            state_main.AddInteractionTask(command_zoomIn, task_zoom);
            state_main.AddInteractionTask(command_zoomOut, task_zoom);
            state_main.AddInteractionTask(command_moveUp, task_moveDirection);
            state_main.AddInteractionTask(command_moveDown, task_moveDirection);
            state_main.AddInteractionTask(command_moveLeft, task_moveDirection);
            state_main.AddInteractionTask(command_moveRight, task_moveDirection);

            state_main.AddStateTransition(command_adjust, state_init);
            state_main.AddStateTransition(command_islandSelectGesture, state_inspectIsland);
            state_main.AddStateTransition(command_islandSelectSpeech, state_inspectIsland);

            state_main.AddOpenAction((State state) => {
                UIManager.Instance.SetActiveButtons(StaticItem.Adjust, StaticItem.Panel, StaticItem.Fit, StaticItem.Dependencies);

                if (AppConfig.SharingEnabled && !SyncManager.SharingStarted)
                {
                    string address = AppConfig.SharingServiceAddress;
                    int port       = AppConfig.SharingServicePort;

                    SyncManager.SetServerEndpoint(address, port);
                    SyncManager.StartSharing();
                }

                UIManager.Instance.EnableToolbar(true);
            });

            state_main.AddCloseAction((State state) => UIManager.Instance.DisableToolbar(true));
        }