public void BindController(EditorPresenter controller) { if (_controller == controller) { return; } _controller = controller; }
public EditorPresenter GetEditorWithDataGridPresenter() { EditorPresenter presenter = makePresenter <EditorPresenter, EditorWithDataGridChildForm>(); // var editorPresenter = (EditorPresenter) makeChildPresenter<EditorPresenter, EditorWithDataGridChildForm>(presenter); //editorPresenter.Init(); presenter.Init(); return(presenter); }
protected override void InitializeCore() { OnAttach <EditorPresenter>(editor => { _editor = editor; _editor.SyncCurrentProject += SyncCurrentProjectHandler; }); OnDetach <EditorPresenter>(editor => { _editor.SyncCurrentProject -= SyncCurrentProjectHandler; _editor = null; }); InitializeCommandManager(); }
private IList <string> checkOrSaveProjectAndFiles(bool performSave) { IList <string> filesToSave = new List <string>(); if (_view.mdiManager.TabGroups.Count > 0) { foreach (MdiTab t in _view.mdiManager.TabGroups[0].Tabs) { if (t.Form is EditorWithDataGridChildForm) { var f = t.Form as EditorWithDataGridChildForm; EditorPresenter p = getPresenterForView(f); if (p.IsModified) { if (performSave) { p.SaveCurrentFile(); // f.txtEditor.Save(f.tslFilename.Text); } else { filesToSave.Add(f.tslFileName.Text); } } } } } if (Novel8rProjectHandler.Instance.IsModified()) { OpenPane(DockedPaneKeys.Files); if (performSave) { Novel8rProjectHandler.Instance.SaveProject(); } else { filesToSave.Add(Novel8rProjectHandler.Instance.ProjectName); } } return(filesToSave); }
protected override void InitializeCore() { OnAttach <EditorPresenter>(editor => { _editor = editor; _editor.SyncCurrentProject += SyncCurrentProjectHandler; }); OnDetach <EditorPresenter>(editor => { _editor.SyncCurrentProject -= SyncCurrentProjectHandler; _editor = null; }); InitializeCommandManager(); // Temporary until exported by MEF?? /*OnAttach<ProjectExplorerPresenter>(p => { * ObjectExplorerComponent objExplorer = new ObjectExplorerComponent(); * objExplorer.Bind(this); * p.Components.Register(objExplorer); * });*/ }
protected override void InitializeCore() { InitializeCommandManager(); OnAttach <EditorPresenter>(editor => { _editor = editor; _editor.SyncCurrentProject += EditorSyncCurrentProject; }); OnDetach <EditorPresenter>(editor => { BindTilePoolManager(null); _editor.SyncCurrentProject -= EditorSyncCurrentProject; _editor = null; }); // Temporary until exported by MEF?? /*OnAttach<ProjectExplorerPresenter>(p => { * TileSetExplorerComponent tilesetExplorer = new TileSetExplorerComponent(); * tilesetExplorer.Bind(this); * p.Components.Register(tilesetExplorer); * });*/ }
/// <summary>Destroys the current <see cref="Presenter"/> and calls <see cref="OnUpdate"/> to have a new one created.</summary> private void ResetPresenter() { // Keep the current Camera angle var cameraBackup = _presenter.View.Camera; // Stop input handling (needs to be reinitiliazed later) renderPanel.RemoveInputReceiver(_updateReceiver); renderPanel.RemoveInputReceiver(_presenter); // Clear everything _presenter.HookOut(); _presenter.Dispose(); _presenter = null; propertyGridPositionable.SelectedObjects = null; // And recreate it OnUpdate(); // Restore the Camera angle if (_presenter != null) { _presenter.View.Camera = cameraBackup; } }
/// <inheritdoc/> protected override void OnUpdate() { // Setup the presentator on startup or when it was lost/reset if (_presenter == null) { _presenter = new EditorPresenter(renderPanel.Engine, _universe, false) { WireframeTerrain = checkWireframe.Checked }; _presenter.Initialize(); _presenter.HookIn(); renderPanel.AddInputReceiver(_presenter); // Update the presenter based on user input renderPanel.AddInputReceiver(_updateReceiver = new UpdateReceiver(() => renderPanel.Engine.Render())); // Force immediate redraw to give responsive feel UpdatePaintingStatus(null, EventArgs.Empty); #region Monitoring events _presenter.SelectedPositionables.Added += SelectedPositionables_Added; _presenter.SelectedPositionables.Removing += SelectedPositionables_Removing; _presenter.SelectedPositionables.Removed += SelectedPositionables_Removed; _presenter.PostionableMove += presenter_PositionableMove; _presenter.TerrainPaint += presenter_TerrainPaint; #endregion } UpdatePositionablesListBox(); UpdateSelectionControls(); UpdateTextureControls(); _mapPropertiesTool?.UpdateUniverse(_universe); UpdateXml(); UpdateGameTimeSlider(); base.OnUpdate(); }
public LibraryCommandActions(EditorPresenter editor) { _editor = editor; }
/// <inheritdoc/> protected override void OnUpdate() { // Backup the previously selected class var selectedClass = TemplateList.SelectedEntry; // Setup the presentator on startup or when it was lost/reset if (_presenter == null) { _presenter = new EditorPresenter(renderPanel.Engine, _universe, true); _presenter.Initialize(); _presenter.HookIn(); renderPanel.AddInputReceiver(_presenter); // Update the presenter based on user input renderPanel.AddInputReceiver(new UpdateReceiver(() => renderPanel.Engine.Render())); // Force immediate redraw to give responsive feel } // Remove all previous entites from rendering universe _universe.Positionables.Clear(); if (selectedClass == null) { // No class selected #region Render component comboRender.Items.Clear(); buttonAddRender.Enabled = buttonRemoveRender.Enabled = buttonBrowseRender.Enabled = false; propertyGridRender.SelectedObject = null; #endregion #region Collision component buttonAddCollision.Enabled = buttonRemoveCollision.Enabled = false; propertyGridCollision.SelectedObject = null; labelCollision.Text = ""; #endregion #region Movement compnent buttonAddMovement.Enabled = buttonRemoveMovement.Enabled = false; propertyGridMovement.SelectedObject = null; labelMovement.Text = ""; #endregion } else { // Class is selected #region Render component buttonAddRender.Enabled = true; // Backup currently selected component controller before clearing list var prevRender = comboRender.SelectedItem; comboRender.Items.Clear(); // List render components in drop-down combo-box foreach (var render in selectedClass.Render) { comboRender.Items.Add(render); } if (comboRender.Items.Count > 0) { // Select previous render component or first one in list comboRender.SelectedItem = (prevRender != null && comboRender.Items.Contains(prevRender)) ? prevRender : comboRender.Items[0]; buttonRemoveRender.Enabled = buttonBrowseRender.Enabled = true; } else { // No render components in the list propertyGridRender.SelectedObject = null; buttonRemoveRender.Enabled = buttonBrowseRender.Enabled = false; } #endregion #region Collision Control buttonAddCollision.Enabled = (selectedClass.Collision == null); buttonRemoveCollision.Enabled = !buttonAddCollision.Enabled; propertyGridCollision.SelectedObject = selectedClass.Collision; labelCollision.Text = selectedClass.Collision?.ToString() ?? "None"; #endregion #region Movement Control buttonAddMovement.Enabled = (selectedClass.Movement == null); buttonRemoveMovement.Enabled = !buttonAddMovement.Enabled; propertyGridMovement.SelectedObject = selectedClass.Movement; labelMovement.Text = selectedClass.Movement?.ToString() ?? "None"; #endregion #region Setup sample rendering // Make sure device is ready before trying to setup rendering if (renderPanel.Engine.NeedsReset) { return; } // Add new Entity to Universe (Presenter will auto-update engine) try { _universe.Positionables.Add(new Entity { Name = "Entity", Position = _universe.Terrain.Center, // Clone the class, so that in case it is changed the old version is still available for cleanup operations TemplateData = TemplateList.SelectedEntry.Clone() }); } #region Error handling catch (NotSupportedException) { Msg.Inform(this, Resources.InvalidFilePath, MsgSeverity.Warn); } catch (FileNotFoundException ex) { Msg.Inform(this, Resources.FileNotFound + "\n" + ex.FileName, MsgSeverity.Warn); } catch (IOException ex) { Msg.Inform(this, Resources.FileNotLoadable + "\n" + ex.Message, MsgSeverity.Warn); } catch (UnauthorizedAccessException ex) { Msg.Inform(this, Resources.FileNotLoadable + "\n" + ex.Message, MsgSeverity.Warn); } catch (InvalidDataException ex) { Msg.Inform(this, Resources.FileDamaged + "\n" + ex.Message + (ex.InnerException == null ? "" : "\n" + ex.InnerException.Message), MsgSeverity.Error); } #endregion #endregion } renderPanel.Engine.Render(); base.OnUpdate(); }
internal Main(Loader loader) { InitializeComponent(); FormClosing += FormClosingHandler; // Toolbars _menu = new StandardMenu(); _standardToolbar = new StandardToolbar(); _tileToolbar = new TileToolbar(); toolStripContainer1.TopToolStripPanel.Controls.AddRange(new Control[] { _standardToolbar.Strip, _tileToolbar.Strip }); Controls.Add(_menu.Strip); MainMenuStrip = _menu.Strip; _infoStatus = new InfoStatus(statusBar); //PresenterManager pm = new PresenterManager(); //_editor = new EditorPresenter(); //_editor.Initialize(pm); _pm = loader.InitializePresenterManager(); _editor = _pm.Lookup <EditorPresenter>(); loader.InitializeProjectPanelComponents(projectPanel1.ComponentManager); //pm.Register(_editor); //_editor.SyncContentTabs += SyncContentTabsHandler; _editor.SyncContentView += SyncContentViewHandler; _editor.SyncModified += SyncProjectModified; _editor.PanelActivation += PanelActivated; _editor.SyncCurrentLevel += SyncCurrentLevel; _editor.ContentWorkspace.ContentOpened += ContentWorkspaceContentOpened; _editor.ContentWorkspace.ContentClosed += ContentWorkspaceContentClosed; _editor.ContentWorkspace.ProjectReset += ContentWorkspaceReset; //_editor.CommandManager.Perform(Presentation.Commands.CommandKey.OpenProject); _editor.NewDefault(); tabControlEx1.ContextMenuStrip = CommandMenuBuilder.BuildContextMenu(new CommandMenu("", new List <CommandMenuGroup>() { new CommandMenuGroup() { CommandKey.LevelClose, CommandKey.LevelCloseAllOther, }, new CommandMenuGroup() { CommandKey.LevelRename, CommandKey.LevelResize, }, new CommandMenuGroup() { CommandKey.LevelProperties, }, })); tabControlEx1.ContextMenuStrip.Opening += contextMenuStrip1_Opening; _commandController = new UICommandController(); _commandController.BindCommandManager(_editor.CommandManager); _commandController.MapMenuItems(tabControlEx1.ContextMenuStrip.Items); }