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)); }
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)); }