void MovementSequenceController_GroupAdded(MovementSequenceController controller, MovementSequenceGroup group) { sequencePlayer = new SequencePlayer(standaloneController.MovementSequenceController, standaloneController.MusclePositionController); guiManager.addManagedDialog(sequencePlayer); PinableMDIDialogOpenTask sequencePlayerTask = new PinableMDIDialogOpenTask(sequencePlayer, "Medical.Sequences", "Sequences", "SequenceToolstrip/Sequence", TaskMenuCategories.Explore); standaloneController.TaskController.addTask(sequencePlayerTask); //We only care about the first one of these events that fires. standaloneController.MovementSequenceController.GroupAdded -= MovementSequenceController_GroupAdded; }
public void initialize(StandaloneController standaloneController) { poseController = new PoseController(standaloneController); GUIManager guiManager = standaloneController.GUIManager; var resources = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceNames(); movementDialog = new MovementDialog(standaloneController.MusclePositionController, poseController, standaloneController.MedicalController); guiManager.addManagedDialog(movementDialog); var taskController = standaloneController.TaskController; var movementDialogTask = new PinableMDIDialogOpenTask(movementDialog, "Medical.Movement.MovementDialogTask", "Movement", CommonResources.NoIcon, TaskMenuCategories.Explore); taskController.addTask(movementDialogTask); }
public void initialize(StandaloneController standaloneController) { RocketInterface.Instance.FileInterface.addExtension(new RocketAssemblyResourceLoader(this.GetType().Assembly)); if (VirtualFileSystem.Instance.exists("Watermark/AnomalousMedical.png")) { standaloneController.ImageRenderer.LoadLogo = () => { using (Stream stream = VirtualFileSystem.Instance.openStream("Watermark/AnomalousMedical.png", Engine.Resources.FileMode.Open)) { return(new FreeImageBitmap(stream)); } }; } this.guiManager = standaloneController.GUIManager; this.standaloneController = standaloneController; standaloneController.MovementSequenceController.GroupAdded += MovementSequenceController_GroupAdded; bool hasPremium = licenseManager.allowFeature(1); standaloneController.AnatomyController.ShowPremiumAnatomy = hasPremium; guiManager.SaveUIConfiguration += guiManager_SaveUIConfiguration; guiManager.LoadUIConfiguration += guiManager_LoadUIConfiguration; guiManager.MainGUIShown += guiManager_MainGUIShown; guiManager.MainGUIHidden += guiManager_MainGUIHidden; //Controllers imageLicenseServer = new ImageLicenseServer(licenseManager); bookmarksController = new BookmarksController(standaloneController, ScaleHelper.Scaled(100), ScaleHelper.Scaled(100), hasPremium); //Create Dialogs aboutDialog = new AboutDialog(licenseManager); chooseSceneDialog = new ChooseSceneDialog(guiManager); chooseSceneDialog.ChooseScene += new EventHandler(chooseSceneDialog_ChooseScene); standaloneController.AnatomyController.ShowPremiumAnatomyChanged += AnatomyController_ShowPremiumAnatomyChanged; anatomyFinder = new AnatomyFinder(standaloneController.AnatomyController, standaloneController.SceneViewController, standaloneController.LayerController, standaloneController.AnatomyTaskManager); guiManager.addManagedDialog(anatomyFinder); options = new OptionsDialog(guiManager); options.VideoOptionsChanged += new EventHandler(options_VideoOptionsChanged); options.RequestRestart += new EventHandler(options_RequestRestart); bookmarks = new BookmarksGUI(bookmarksController, standaloneController.GUIManager, standaloneController.SceneViewController); viewsGui = new ViewsGui(standaloneController.SceneViewController, standaloneController.AnatomyController); guiManager.addManagedDialog(viewsGui); //Taskbar taskbar = new AppButtonTaskbar(); taskbar.OpenTaskMenu += taskbar_OpenTaskMenu; taskbar.setAppIcon("AppButton/Hamburger", "AppButton/Hamburger"); taskbarLink = new SingleChildChainLink(GUILocationNames.Taskbar, taskbar); guiManager.addLinkToChain(taskbarLink); guiManager.pushRootContainer(GUILocationNames.Taskbar); //Task Menu taskMenu = new TaskMenu(standaloneController.DocumentController, standaloneController.TaskController, standaloneController.GUIManager, new LayoutElementName(GUILocationNames.FullscreenPopup)); taskMenu.GroupComparison = TaskMenuCategories.Sorter; guiTaskManager = new GUITaskManager(taskbar, taskMenu, standaloneController.TaskController); //Tasks Menu TaskController taskController = standaloneController.TaskController; standaloneController.AnatomyTaskManager.HighlightTasks += AnatomyTaskManager_HighlightTasks; //Tasks cameraMovementModeTask = new CameraMovementModeTask(standaloneController.SceneViewController); taskController.addTask(cameraMovementModeTask); Slideshow.AdditionalTasks.addTask(cameraMovementModeTask); selectionOperatorTask = new SelectionOperatorTask(standaloneController.AnatomyController); taskController.addTask(selectionOperatorTask); Slideshow.AdditionalTasks.addTask(selectionOperatorTask); var viewsTask = new PinableMDIDialogOpenTask(viewsGui, "Medical.Views", "Views", "AnomalousMedical/ViewIcon", TaskMenuCategories.Explore); taskController.addTask(viewsTask); //Patient Section taskController.addTask(new ShowPopupTask(chooseSceneDialog, "Medical.NewPatient", "New", "AnomalousMedical/ChangeScene", TaskMenuCategories.Explore, 0)); taskController.addTask(new DialogOpenTask(aboutDialog, "Medical.About", "About", "AnomalousMedical/About", TaskMenuCategories.System, int.MaxValue - 2)); taskController.addTask(new VolumeControlTask()); CallbackTask unhideAllAnatomy = new CallbackTask("Medical.UnhideAllAnatomy", "Unhide All", "AnatomyFinder.ShowAll", TaskMenuCategories.Explore, int.MaxValue - 2, false, (item) => { LayerState undo = LayerState.CreateAndCapture(); standaloneController.LayerController.unhideAll(); standaloneController.LayerController.pushUndoState(undo); }); taskController.addTask(unhideAllAnatomy); //Navigation Section PinableMDIDialogOpenTask anatomyFinderTask = new PinableMDIDialogOpenTask(anatomyFinder, "Medical.AnatomyFinder", "Anatomy Finder", "AnomalousMedical/SearchIcon", TaskMenuCategories.Explore); taskController.addTask(anatomyFinderTask); Slideshow.AdditionalTasks.addTask(anatomyFinderTask); ShowPopupTask bookmarkTask = null; standaloneController.AnatomyController.setCommandPermission(AnatomyCommandPermissions.Unrestricted, PlatformConfig.UnrestrictedEnvironment); standaloneController.AnatomyController.setCommandPermission(AnatomyCommandPermissions.PremiumActive, hasPremium); if (PlatformConfig.UnrestrictedEnvironment || hasPremium) { //Explore selectionModeTask = new SelectionModeTask(standaloneController.AnatomyController); taskController.addTask(selectionModeTask); Slideshow.AdditionalTasks.addTask(selectionModeTask); bookmarkTask = new ShowPopupTask(bookmarks, "Medical.Bookmarks", "Bookmarks", "AnomalousMedical/FavoritesIcon", TaskMenuCategories.Explore); taskController.addTask(bookmarkTask); Slideshow.AdditionalTasks.addTask(bookmarkTask); } if (PlatformConfig.UnrestrictedEnvironment) { //System CallbackTask helpTaskItem = new CallbackTask("Medical.Help", "Help", "AnomalousMedical/Help", TaskMenuCategories.System, int.MaxValue - 4, false); helpTaskItem.OnClicked += new CallbackTask.ClickedCallback(helpTaskItem_OnClicked); taskController.addTask(helpTaskItem); taskController.addTask(new ShowPopupTask(options, "Medical.Options", "Options", "AnomalousMedical/Options", TaskMenuCategories.System, int.MaxValue - 3)); CallbackTask exitTaskItem = new CallbackTask("Medical.Exit", "Exit", "AnomalousMedical/Exit", TaskMenuCategories.System, int.MaxValue, false); exitTaskItem.OnClicked += new CallbackTask.ClickedCallback(exitTaskItem_OnClicked); taskController.addTask(exitTaskItem); if (MedicalConfig.ShowDeveloperTools) { CallbackTask createOverrideTaskItem = new CallbackTask("Medical.CreateOverride", "CreateOverride", CommonResources.NoIcon, TaskMenuCategories.Developer, int.MaxValue, false); createOverrideTaskItem.OnClicked += CreateOverrideTaskItem_OnClicked; taskController.addTask(createOverrideTaskItem); } } if (PlatformConfig.AllowFullscreenToggle) { CallbackTask toggleFullscreen = new CallbackTask("Medical.ToggleFullscreen", "Toggle Fullscreen", "AnomalousMedical/ToggleFullscreen", TaskMenuCategories.System, int.MaxValue - 2, false, (item) => { MainWindow.Instance.toggleFullscreen(); }); taskController.addTask(toggleFullscreen); //Fullscreen Toggle Shortcut var toggleFullscreenMessageEvent = new ButtonEvent(EventLayers.Gui, frameUp: (evtMgr) => { MainWindow.Instance.toggleFullscreen(); }); toggleFullscreenMessageEvent.addButton(KeyboardButtonCode.KC_RETURN); toggleFullscreenMessageEvent.addButton(KeyboardButtonCode.KC_LMENU); standaloneController.MedicalController.EventManager.addEvent(toggleFullscreenMessageEvent); } //Premium / Non Premium if (!hasPremium) { if (PlatformConfig.UnrestrictedEnvironment) { buyScreens = new BuyScreenController(standaloneController); taskMenuAd = new PremiumFeaturesTaskMenuAd(taskMenu); selectionModeTask.SelectionModeChooser.ShowBuyMessage += SelectionModeChooser_ShowBuyMessage; anatomyFinder.ShowBuyMessage += anatomyFinder_ShowBuyMessage; bookmarks.ShowBuyMessage += bookmarks_ShowBuyMessage; } if (MedicalConfig.FirstRun) { guiTaskManager.addPinnedTask(anatomyFinderTask); guiTaskManager.addPinnedTask(viewsTask); guiTaskManager.addPinnedTask(cameraMovementModeTask); if (bookmarkTask != null) { guiTaskManager.addPinnedTask(bookmarkTask); } guiTaskManager.addPinnedTask(unhideAllAnatomy); } } standaloneController.AtlasPluginManager.RequestDependencyDownload += AtlasPluginManager_RequestDependencyDownload; //Teeth mover teethMover = new SimObjectMover("Teeth", standaloneController.MedicalController.PluginManager.RendererPlugin, standaloneController.MedicalController.EventManager, standaloneController.SceneViewController); TeethToolController teethToolController = new TeethToolController(teethMover); standaloneController.ImageRenderer.ImageRenderStarted += teethToolController.ScreenshotRenderStarted; standaloneController.ImageRenderer.ImageRenderCompleted += teethToolController.ScreenshotRenderCompleted; standaloneController.ViewHostFactory.addFactory(new WizardComponentFactory(teethToolController)); }
public void initialize(StandaloneController standaloneController) { standaloneController.DocumentController.addDocumentHandler(new PatientDocumentHandler(standaloneController)); this.standaloneController = standaloneController; standaloneController.PatientDataController.PatientDataChanged += new Action <PatientDataFile>(PatientDataController_PatientDataChanged); GUIManager guiManager = standaloneController.GUIManager; //Dialogs mandibleMovementDialog = new MandibleMovementDialog(standaloneController.MovementSequenceController, standaloneController.MusclePositionController); guiManager.addManagedDialog(mandibleMovementDialog); notesDialog = new NotesDialog(standaloneController.MedicalStateController); guiManager.addManagedDialog(notesDialog); stateList = new StateListDialog(standaloneController.MedicalStateController); guiManager.addManagedDialog(stateList); savePatientDialog = new SavePatientDialog(guiManager); savePatientDialog.SaveFile += new EventHandler(savePatientDialog_SaveFile); openPatientDialog = new OpenPatientDialog(guiManager); openPatientDialog.OpenFile += new EventHandler(openPatientDialog_OpenFile); //Tasks Menu TaskController taskController = standaloneController.TaskController; AnatomyTaskManager anatomyTasks = standaloneController.AnatomyTaskManager; taskController.addTask(new ShowToothContactsTask(0)); PinableMDIDialogOpenTask mandibleMovementTask = new PinableMDIDialogOpenTask(mandibleMovementDialog, "Medical.ManualMovement", "Manual Movement", "DentalSimIcons/ManualMovement", "Dental Simulation", 2); taskController.addTask(mandibleMovementTask); anatomyTasks.addTask(new StartEmbeddedMvcTask("DentalSim.Eminence", "Eminence", "DentalSimIcons/Eminence", "Dental Simulation", GetType(), "DentalSim.Wizards.", "Eminence.mvc", standaloneController.TimelineController, standaloneController.MvcCore), new String[] { "Outer Skull", "Inner Skull" }); anatomyTasks.addTask(new StartEmbeddedMvcTask("DentalSim.Dentition", "Dentition", "DentalSimIcons/Dentition", "Dental Simulation", GetType(), "DentalSim.Wizards.", "Dentition.mvc", standaloneController.TimelineController, standaloneController.MvcCore), TeethNames); anatomyTasks.addTask(new StartEmbeddedMvcTask("DentalSim.DiscClockFace", "Disc Clock Face", "DentalSimIcons/DiscClockFace", "Dental Simulation", GetType(), "DentalSim.Wizards.DiscClock.", "DiscClockFace.mvc", standaloneController.TimelineController, standaloneController.MvcCore, true), new String[] { "Left TMJ Disc", "Right TMJ Disc" }); anatomyTasks.addTask(new StartEmbeddedMvcTask("DentalSim.Mandible", "Mandible", "DentalSimIcons/Mandible", "Dental Simulation", GetType(), "DentalSim.Wizards.", "Mandible.mvc", standaloneController.TimelineController, standaloneController.MvcCore), new String[] { "Mandible" }); anatomyTasks.addTask(new StartEmbeddedMvcTask("DentalSim.ClinicalDoppler", "Doppler", "DentalSimIcons/ClinicalDoppler", "Dental Simulation", GetType(), "DentalSim.Wizards.ClinicalDoppler.", "ClinicalDoppler.mvc", standaloneController.TimelineController, standaloneController.MvcCore), new String[] { "Left TMJ Disc", "Right TMJ Disc", "Mandible" }); anatomyTasks.addTask(new StartEmbeddedMvcTask("DentalSim.ClinicalCT", "CT", "DentalSimIcons/ClinicalCT", "Dental Simulation", GetType(), "DentalSim.Wizards.ClinicalCT.", "ClinicalCT.mvc", standaloneController.TimelineController, standaloneController.MvcCore), new String[] { "Left TMJ Disc", "Right TMJ Disc", "Mandible" }); anatomyTasks.addTask(new StartEmbeddedMvcTask("DentalSim.ClinicalMRI", "MRI", "DentalSimIcons/ClinicalMRI", "Dental Simulation", GetType(), "DentalSim.Wizards.ClinicalMRI.", "ClinicalMRI.mvc", standaloneController.TimelineController, standaloneController.MvcCore), new String[] { "Left TMJ Disc", "Right TMJ Disc", "Mandible" }); anatomyTasks.addTask(new StartEmbeddedMvcTask("DentalSim.ClinicalOrthoAndSkeletal", "Orthodontic and Skeletal", "DentalSimIcons/ClinicalOrthodonticAndSkeletal", "Dental Simulation", GetType(), "DentalSim.Wizards.", "ClinicalOrthoAndSkeletal.mvc", standaloneController.TimelineController, standaloneController.MvcCore), new String[] { "Left TMJ Disc", "Right TMJ Disc", "Mandible" }); taskController.addTask(new ShowPopupTask(openPatientDialog, "Medical.OpenPatient", "Open", "DentalSimIcons/Open", TaskMenuCategories.Scene, 1)); PinableMDIDialogOpenTask statesTask = new PinableMDIDialogOpenTask(stateList, "Medical.StateList", "States", "DentalSimIcons/StatesIcon", TaskMenuCategories.Scene); taskController.addTask(statesTask); PinableMDIDialogOpenTask notesTask = new PinableMDIDialogOpenTask(notesDialog, "Medical.Notes", "Notes", "DentalSimIcons/NotesIcon", TaskMenuCategories.Scene); taskController.addTask(notesTask); CallbackTask saveTaskItem = new CallbackTask("Medical.SavePatient", "Save", "CommonToolstrip/Save", TaskMenuCategories.Scene, 2, false); saveTaskItem.OnClicked += new CallbackTask.ClickedCallback(saveTaskItem_OnClicked); taskController.addTask(saveTaskItem); CallbackTask saveAsTaskItem = new CallbackTask("Medical.SavePatientAs", "Save As", "CommonToolstrip/SaveAs", TaskMenuCategories.Scene, 3, false); saveAsTaskItem.OnClicked += new CallbackTask.ClickedCallback(saveAsTaskItem_OnClicked); taskController.addTask(saveAsTaskItem); //Movement Sequences MovementSequenceController movementSequenceController = standaloneController.MovementSequenceController; Assembly assembly = GetType().Assembly; //Border Movements movementSequenceController.addMovementSequence("Border Movements", new EmbeddedMovementSequenceInfo(assembly, "Posselt Sagittal", "DentalSim.Sequences.BorderMovements.Posselt Sagittal.seq")); //Excursion movementSequenceController.addMovementSequence("Excursion", new EmbeddedMovementSequenceInfo(assembly, "Left Tooth Contact Bruxism", "DentalSim.Sequences.Excursion.Left Tooth Contact Bruxism.seq")); movementSequenceController.addMovementSequence("Excursion", new EmbeddedMovementSequenceInfo(assembly, "Left Tooth Contact Maximal", "DentalSim.Sequences.Excursion.Left Tooth Contact Maximal.seq")); movementSequenceController.addMovementSequence("Excursion", new EmbeddedMovementSequenceInfo(assembly, "Left Tooth Contact", "DentalSim.Sequences.Excursion.Left Tooth Contact.seq")); movementSequenceController.addMovementSequence("Excursion", new EmbeddedMovementSequenceInfo(assembly, "Open Bilateral", "DentalSim.Sequences.Excursion.Open Bilateral.seq")); movementSequenceController.addMovementSequence("Excursion", new EmbeddedMovementSequenceInfo(assembly, "Open Left", "DentalSim.Sequences.Excursion.Open Left.seq")); movementSequenceController.addMovementSequence("Excursion", new EmbeddedMovementSequenceInfo(assembly, "Open Right", "DentalSim.Sequences.Excursion.Open Right.seq")); movementSequenceController.addMovementSequence("Excursion", new EmbeddedMovementSequenceInfo(assembly, "Right Tooth Contact Bruxism", "DentalSim.Sequences.Excursion.Right Tooth Contact Bruxism.seq")); movementSequenceController.addMovementSequence("Excursion", new EmbeddedMovementSequenceInfo(assembly, "Right Tooth Contact Maximal", "DentalSim.Sequences.Excursion.Right Tooth Contact Maximal.seq")); movementSequenceController.addMovementSequence("Excursion", new EmbeddedMovementSequenceInfo(assembly, "Right Tooth Contact", "DentalSim.Sequences.Excursion.Right Tooth Contact.seq")); //Normal Chewing movementSequenceController.addMovementSequence("Normal Chewing", new EmbeddedMovementSequenceInfo(assembly, "Chewing Left Side", "DentalSim.Sequences.NormalChewing.Chewing Left Side.seq")); movementSequenceController.addMovementSequence("Normal Chewing", new EmbeddedMovementSequenceInfo(assembly, "Chewing Right Side", "DentalSim.Sequences.NormalChewing.Chewing Right Side.seq")); //Protrusion movementSequenceController.addMovementSequence("Protrusion", new EmbeddedMovementSequenceInfo(assembly, "Open Protrusion", "DentalSim.Sequences.Protrusion.Open Protrusion.seq")); movementSequenceController.addMovementSequence("Protrusion", new EmbeddedMovementSequenceInfo(assembly, "Protrusion Maximal", "DentalSim.Sequences.Protrusion.Protrusion Maximal.seq")); movementSequenceController.addMovementSequence("Protrusion", new EmbeddedMovementSequenceInfo(assembly, "Protrusion Tooth Contact Edge to Edge", "DentalSim.Sequences.Protrusion.Protrusion Tooth Contact Edge to Edge.seq")); //Vertical Opening movementSequenceController.addMovementSequence("Vertical Opening", new EmbeddedMovementSequenceInfo(assembly, "Hinge Opening", "DentalSim.Sequences.VerticalOpening.Hinge Opening.seq")); movementSequenceController.addMovementSequence("Vertical Opening", new EmbeddedMovementSequenceInfo(assembly, "Maximal Opening", "DentalSim.Sequences.VerticalOpening.Maximal Opening.seq")); movementSequenceController.addMovementSequence("Vertical Opening", new EmbeddedMovementSequenceInfo(assembly, "Tapping Teeth", "DentalSim.Sequences.VerticalOpening.Tapping Teeth.seq")); }