Exemplo n.º 1
0
        public void BindController(EditorPresenter controller)
        {
            if (_controller == controller)
            {
                return;
            }

            _controller = controller;
        }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
             * });*/
        }
Exemplo n.º 6
0
        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);
             * });*/
        }
Exemplo n.º 7
0
        /// <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;
            }
        }
Exemplo n.º 8
0
        /// <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();
        }
Exemplo n.º 9
0
 public LibraryCommandActions(EditorPresenter editor)
 {
     _editor = editor;
 }
Exemplo n.º 10
0
        /// <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();
        }
Exemplo n.º 11
0
        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);
        }