コード例 #1
0
        public void Data_Always_SetTreeViewControlData()
        {
            // Setup
            var mocks        = new MockRepository();
            var viewCommands = mocks.Stub <IViewCommands>();
            var project      = mocks.Stub <IProject>();

            mocks.ReplayAll();

            IEnumerable <TreeNodeInfo> treeNodeInfos = new[]
            {
                new TreeNodeInfo
                {
                    TagType = typeof(IProject)
                }
            };

            using (var explorer = new ProjectExplorer(viewCommands, treeNodeInfos))
            {
                var treeViewControl = TypeUtils.GetField <TreeViewControl>(explorer, "treeViewControl");

                // Call
                explorer.Data = project;

                // Assert
                Assert.AreSame(project, treeViewControl.Data);
            }

            mocks.VerifyAll();
        }
コード例 #2
0
        public void initialize(StandaloneController standaloneController)
        {
            GUIManager guiManager = standaloneController.GUIManager;

            guiManager.MainGUIShown  += new Action(guiManager_MainGUIShown);
            guiManager.MainGUIHidden += new Action(guiManager_MainGUIHidden);

            //Prop Mover
            MedicalController medicalController = standaloneController.MedicalController;

            propMover = new SimObjectMover("Props", medicalController.PluginManager.RendererPlugin, medicalController.EventManager, standaloneController.SceneViewController);

            this.standaloneController = standaloneController;
            editorTimelineController  = new TimelineController(standaloneController);
            standaloneController.giveGUIsToTimelineController(editorTimelineController);

            scratchAreaController = new ScratchAreaController(standaloneController.Clipboard);

            //Controller
            editorController = new EditorController(standaloneController, editorTimelineController);
            standaloneController.DocumentController.addDocumentHandler(new ProjectDocumentHandler(editorController));
            standaloneController.DocumentController.UnknownDocumentHander = new UnknownDocumentHandler(editorController);
            propEditController = new PropEditController(propMover);

            //UI Helpers
            editorUICallback = new EditorUICallback(standaloneController, editorController, propEditController);

            typeControllerManager = new TypeControllerManager(standaloneController, this);
            typeControllerManager.FilesystemWatcherCreated += typeControllerManager_FilesystemWatcherCreated;

            //Dialogs
            scratchArea = new ScratchArea(scratchAreaController, editorUICallback);
            guiManager.addManagedDialog(scratchArea);

            projectExplorer = new ProjectExplorer(editorController, typeControllerManager);
            guiManager.addManagedDialog(projectExplorer);

            //Tasks Menu
            TaskController taskController = standaloneController.TaskController;

            aspectRatioTask = new AspectRatioTask(standaloneController.SceneViewController);

            if (MedicalConfig.ShowDeveloperTools)
            {
                taskController.addTask(new MDIDialogOpenTask(scratchArea, "Medical.ScratchArea", "Scratch Area", "EditorIcons.ScratchAreaIcon", TaskMenuCategories.Create));
                taskController.addTask(new MDIDialogOpenTask(projectExplorer, "Medical.EditorTools", "Editor Tools", "EditorIcons.EditorTools", TaskMenuCategories.Create));
                taskController.addTask(aspectRatioTask);
            }

            editorTaskbarFactory = new EditorTaskbarFactory(editorController);
            standaloneController.ViewHostFactory.addFactory(new EditorInfoBarFactory());
            standaloneController.ViewHostFactory.addFactory(new TextEditorComponentFactory());
            standaloneController.ViewHostFactory.addFactory(editorTaskbarFactory);
            CommonEditorResources.initialize(standaloneController);

            editorController.ProjectChanged += editorController_ProjectChanged;

            //Editor Views
            standaloneController.ViewHostFactory.addFactory(new OffsetSequenceEditorFactory(standaloneController.MedicalController, standaloneController.Clipboard));
        }
コード例 #3
0
        public void ModifyNameAndVersion()
        {
            var importPipeline = ImportPipeline.Create().Build();

            var createExplorer = ProjectExplorer.CreateProject(FileName("project"), importPipeline);

            createExplorer.Definition.Properties.Name    = "TestName1";
            createExplorer.Definition.Properties.Version = "1.0.0";

            createExplorer.Definition.SaveChanges();

            var loadExplorer = ProjectExplorer.Load(FileName("project"), importPipeline);

            Assert.That(loadExplorer.Definition.Properties.Name, Is.EqualTo("TestName1"));
            Assert.That(loadExplorer.Definition.Properties.Version, Is.EqualTo("1.0.0"));

            loadExplorer.ExportZippedToDirectory(new BuildPipeline()
            {
                ImportPipeline = importPipeline,
            }, FileName("export"));

            var packageImport = PackageExplorer.LoadFromFileAsync(
                Path.Combine(FileName("export"), "TestName1.bpkg")).Result;

            Assert.That(packageImport.Definition.Properties.Name, Is.EqualTo("TestName1"));
            Assert.That(packageImport.Definition.Properties.Version, Is.EqualTo("1.0.0"));
        }
コード例 #4
0
ファイル: BuildCommand.cs プロジェクト: MengQidaNa/RPGCore
        public BuildCommand(string name, string description = null) : base(name, description)
        {
            AddArgument(new Argument <FileInfo>("project", null)
            {
                Description = "A project file to use."
            });

            Handler = CommandHandler.Create((ParseResult parseResult, IConsole console) =>
            {
                var project = parseResult.ValueForOption <FileInfo>("project");

                if (project == null)
                {
                    project = FindFileOfType(".bproj");
                }
                var importPipeline = new ImportPipeline();

                var projectExplorer = ProjectExplorer.Load(project.DirectoryName, importPipeline);

                string exportDirectory = "./bin/";
                Directory.CreateDirectory(exportDirectory);

                var consoleRenderer = new BuildConsoleRenderer();

                var buildPipeline = new BuildPipeline()
                {
                    BuildActions = new List <IBuildAction>()
                    {
                        consoleRenderer
                    }
                };
                consoleRenderer.DrawProgressBar(32);
                projectExplorer.Export(buildPipeline, exportDirectory);
            });
        }
コード例 #5
0
        public void ModifyVersion()
        {
            var    importPipeline = ImportPipeline.Create().Build();
            string projectPath    = TestUtilities.CreateFilePath("project");
            string exportPath     = Path.Combine(TestUtilities.CreateFilePath("export"), "project.bpkg");

            using (var explorer = ProjectExplorer.CreateProject(projectPath, importPipeline))
            {
                explorer.Definition.Properties.Version = "1.0.0";
                explorer.Definition.SaveChanges();
            }

            using (var explorer = ProjectExplorer.Load(projectPath, importPipeline))
            {
                Assert.That(explorer.Definition.Properties.Version, Is.EqualTo("1.0.0"));

                explorer.ExportZippedToDirectory(new BuildPipeline()
                {
                    ImportPipeline = importPipeline,
                }, TestUtilities.CreateFilePath("export"));
            }

            using (var explorer = PackageExplorer.LoadFromFileAsync(exportPath).Result)
            {
                Assert.That(explorer.Definition.Properties.Version, Is.EqualTo("1.0.0"));
            }
        }
コード例 #6
0
ファイル: FormDesigner.cs プロジェクト: harpreetoxyent/pnl
 public FormDesigner()
 {
     this.UniqueID       = "application" + projectCOunter;
     propertyWindow      = new PropertyWindow();
     projectExplorer     = new ProjectExplorer(this);
     dataPatternExplorer = new DataPatternExlorer(this);
     displayNameExplorer = new DisplayNameExplorer(this);
     webServiceExplorer  = new EIBFormDesigner.Designer.WebServiceExplorer.WebServiceExplorer(this);
     eventManager        = getEventManagerInstance();
     DragDropHandler.Initialize(eventManager, this);
     this.Disposed += new EventHandler(FormDesigner_Disposed);
     InitializeComponent();
     ToolBoxWindow.form = this;
     toolBoxWindow      = new ToolBoxWindow();
     startupImage       = new StartupHIC();
     formulaEditor      = new FormulaEditorWindow(this);
     workEditor         = new WorkflowEditorWindow(this);
     buildtool          = new EIBFormDesigner.Build.BuildTool(this);
     buildwindow        = new BuildWindow(this);
     setFromPatternsForACL();
     //UserAdmin.UserAdminConstants.CompanyId = company;
     //UserAdmin.UserAdminConstants.CompanyName = company;
     history = new UndoRedoHistory <ControlPool>(controlpool);
     this.SetStyle(ControlStyles.DoubleBuffer, true);
     this.SetStyle(ControlStyles.UserPaint, true);
     this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
 }
コード例 #7
0
        public void ModifyNameAndVersion()
        {
            var createExplorer = ProjectExplorer.CreateProject(FileName("project"), new ImportPipeline());

            createExplorer.Definition.Properties.Name    = "TestName1";
            createExplorer.Definition.Properties.Version = "1.0.0";

            createExplorer.Definition.SaveChanges();

            var loadExplorer = ProjectExplorer.Load(FileName("project"), new ImportPipeline());

            Assert.That(loadExplorer.Definition.Properties.Name, Is.EqualTo("TestName1"));
            Assert.That(loadExplorer.Definition.Properties.Version, Is.EqualTo("1.0.0"));

            loadExplorer.Export(new BuildPipeline()
            {
                ImportPipeline = new ImportPipeline(),
            }, FileName("export"));

            var packageImport = PackageExplorer.Load(
                Path.Combine(FileName("export"), "TestName1.bpkg"));

            Assert.That(packageImport.Definition.Properties.Name, Is.EqualTo("TestName1"));
            Assert.That(packageImport.Definition.Properties.Version, Is.EqualTo("1.0.0"));
        }
コード例 #8
0
        public void Install(IWorkspace workspace)
        {
            // Add parts

            arGraph = new ActiveRecordGraphView(_model);
            arGraph.ParentWorkspace = workspace;

            outView = new OutputView(_model);
            outView.ParentWorkspace = workspace;

            projExplorer = new ProjectExplorer(_model);
            projExplorer.ParentWorkspace = workspace;

            avaShapes = new AvailableShapes(_model);
            avaShapes.ParentWorkspace = workspace;

            // Register Actions

            FileActionGroup group1 = new FileActionGroup();

            group1.Init(_model);
            group1.Install(workspace);

            ViewActionSet group2 = new ViewActionSet(arGraph, outView, projExplorer, avaShapes);

            group2.Init(_model);
            group2.Install(workspace);

            HelpActionSet group3 = new HelpActionSet();

            group3.Init(_model);
            group3.Install(workspace);
        }
コード例 #9
0
        internal ProjectResourceUpdate(ProjectExplorer explorer, string projectKey)
        {
            Explorer   = explorer;
            ProjectKey = projectKey;

            ImporterTags = new HashSet <string>();
            Dependencies = new ProjectResourceUpdateDependencyCollection(this);
        }
コード例 #10
0
 public ViewActionSet(ActiveRecordGraphView graph, OutputView outputview,
                      ProjectExplorer explorer, AvailableShapes shapes)
 {
     _graph      = graph;
     _outputview = outputview;
     _explorer   = explorer;
     _shapes     = shapes;
 }
コード例 #11
0
        internal ProjectResourceImporter(ProjectExplorer projectExplorer, FileInfo fileInfo, string projectKey)
        {
            ProjectExplorer = projectExplorer;
            FileInfo        = fileInfo;
            ProjectKey      = projectKey;

            Tags = new List <string>();
        }
コード例 #12
0
ファイル: MainForm.cs プロジェクト: monstrim/Ares
 private WeifenLuo.WinFormsUI.Docking.IDockContent DeserializeDockContent(string persistString)
 {
     if (persistString.StartsWith("FileExplorer_"))
     {
         int  index   = 0;
         bool success = Int32.TryParse(persistString.Substring("FileExplorer_".Length), out index);
         if (!success)
         {
             return(null);
         }
         if (index < 0 || index > 1)
         {
             return(null);
         }
         m_FileExplorers[index] = new FileExplorer((FileType)index, this);
         return(m_FileExplorers[index]);
     }
     else if (persistString == "AudioSourceSearch")
     {
         m_AudioSourceSearch = new AudioSourceSearchWindow(m_PluginManager);
         return(m_AudioSourceSearch);
     }
     else if (persistString == "ProjectExplorer")
     {
         m_ProjectExplorer = new ProjectExplorer();
         return(m_ProjectExplorer);
     }
     else if (persistString == "VolumeWindow")
     {
         m_VolumeWindow = new VolumeWindow();
         return(m_VolumeWindow);
     }
     else if (persistString == "ErrorWindow")
     {
         m_ErrorWindow        = new ErrorWindow();
         m_ErrorWindow.Client = this;
         return(m_ErrorWindow);
     }
     else if (persistString == "TagsEditor")
     {
         m_TagsEditor = new ElementEditors.TagsEditor();
         m_TagsEditor.SetProject(m_CurrentProject);
         return(m_TagsEditor);
     }
     else if (persistString == "FileTagsEditor")
     {
         m_FileTagsEditor = new ElementEditors.FileTagsEditor();
         m_FileTagsEditor.SetParent(this);
         m_FileTagsEditor.SetProject(m_CurrentProject);
         m_FileTagsEditor.SetFiles(m_SelectedFiles);
         return(m_FileTagsEditor);
     }
     else
     {
         return(null);
     }
 }
コード例 #13
0
        internal ProjectResourceImporter(ProjectExplorer projectExplorer, ProjectDirectory directory, IArchiveEntry archiveEntry, string projectKey)
        {
            ProjectExplorer = projectExplorer;
            Directory       = directory;
            ArchiveEntry    = archiveEntry;
            ProjectKey      = projectKey;

            ImporterTags = new HashSet <string>();
            Dependencies = new ProjectResourceImporterDependencyCollection(this);
        }
コード例 #14
0
        public void SetTarget(ProjectExplorer projectExplorer)
        {
            if (this.projectExplorer == projectExplorer)
            {
                return;
            }

            this.projectExplorer = projectExplorer;
            Reload();
        }
コード例 #15
0
        public void CreateBlankProject()
        {
            var    importPipeline = ImportPipeline.Create().Build();
            string projectPath    = TestUtilities.CreateFilePath("project");

            using (var explorer = ProjectExplorer.CreateProject(projectPath, importPipeline))
            {
                explorer.Definition.Properties.Name = "TestName1";
                explorer.Definition.SaveChanges();
            }
        }
コード例 #16
0
        private static void ProjectListener_OnProjectOpened(Project Project)
        {
            ProjectExplorer explorer = new ProjectExplorer(Project);

            if (explorer.Language != Models.Languages.Undefined)
            {
                if (!explorer.References.Any(x => x.Name == NuGet && x.Version >= NuGetVersion))
                {
                    AddReference(Project);
                }
            }
        }
コード例 #17
0
        public void ClearCodeDisplayers(bool refreshDisplayers)
        {
            foreach (NuGenCodeDisplayer codeDisplayer in ProjectExplorer.GetCodeDisplayers())
            {
                codeDisplayer.ClearCurrentLine();
                codeDisplayer.ClearSpecialLines();

                if (refreshDisplayers)
                {
                    codeDisplayer.Refresh();
                }
            }
        }
コード例 #18
0
        public void TreeViewSelectedNodeChanged_Always_SelectionChangedFired()
        {
            // Setup
            var mocks        = new MockRepository();
            var viewCommands = mocks.StrictMock <IViewCommands>();
            var project      = mocks.Stub <IProject>();

            mocks.ReplayAll();

            const string stringA = "testA";
            const string stringB = "testB";

            IEnumerable <TreeNodeInfo> treeNodeInfos = new[]
            {
                new TreeNodeInfo
                {
                    TagType          = typeof(IProject),
                    ChildNodeObjects = o => new object[]
                    {
                        stringA,
                        stringB
                    }
                },
                new TreeNodeInfo
                {
                    TagType = typeof(string)
                }
            };

            using (var explorer = new ProjectExplorer(viewCommands, treeNodeInfos)
            {
                Data = project
            })
            {
                var treeViewControl = TypeUtils.GetField <TreeViewControl>(explorer, "treeViewControl");

                WindowsFormsTestHelper.Show(treeViewControl);

                var selectionChangedCount = 0;
                explorer.SelectionChanged += (sender, args) => selectionChangedCount++;

                // Call
                treeViewControl.TrySelectNodeForData(stringA);

                // Assert
                Assert.AreEqual(1, selectionChangedCount);
            }

            WindowsFormsTestHelper.CloseAll();
            mocks.VerifyAll();
        }
コード例 #19
0
        public void TreeViewEnterPress_Always_OpenViewForSelection()
        {
            // Setup
            const string treeIdentifier = "SomeName";
            const string formIdentifier = "SomeForm";

            var mocks        = new MockRepository();
            var viewCommands = mocks.StrictMock <IViewCommands>();

            viewCommands.Expect(a => a.OpenViewForSelection());
            var project = mocks.Stub <IProject>();

            mocks.ReplayAll();

            IEnumerable <TreeNodeInfo> treeNodeInfos = new[]
            {
                new TreeNodeInfo
                {
                    TagType = typeof(IProject)
                }
            };

            using (var explorer = new ProjectExplorer(viewCommands, treeNodeInfos)
            {
                Data = project
            })
            {
                var form = new Form
                {
                    Name = formIdentifier
                };
                form.Controls.Add(explorer);
                form.Show();

                var treeViewControl = TypeUtils.GetField <TreeViewControl>(explorer, "treeViewControl");

                TypeUtils.GetField <TreeView>(treeViewControl, "treeView").Name = treeIdentifier;

                // Precondition
                Assert.AreSame(treeViewControl.SelectedData, project);

                var tester = new TreeViewTester(treeIdentifier);

                // Call
                tester.DoubleClick();
            }

            // Assert
            mocks.VerifyAll();
        }
コード例 #20
0
        public void Selection_Always_ReturnsSelectedNodeData()
        {
            // Setup
            var mocks        = new MockRepository();
            var viewCommands = mocks.Stub <IViewCommands>();
            var project      = mocks.Stub <IProject>();

            mocks.ReplayAll();

            const string stringA = "testA";
            const string stringB = "testB";

            IEnumerable <TreeNodeInfo> treeNodeInfos = new[]
            {
                new TreeNodeInfo
                {
                    TagType          = typeof(IProject),
                    ChildNodeObjects = o => new object[]
                    {
                        stringA,
                        stringB
                    }
                },
                new TreeNodeInfo
                {
                    TagType = typeof(string)
                }
            };

            using (var explorer = new ProjectExplorer(viewCommands, treeNodeInfos)
            {
                Data = project
            })
            {
                var treeViewControl = TypeUtils.GetField <TreeViewControl>(explorer, "treeViewControl");

                WindowsFormsTestHelper.Show(treeViewControl);
                treeViewControl.TrySelectNodeForData(stringA);

                // Call
                object selection = explorer.Selection;

                // Assert
                Assert.AreSame(stringA, selection);
            }

            WindowsFormsTestHelper.CloseAll();
            mocks.VerifyAll();
        }
コード例 #21
0
ファイル: MainForm.cs プロジェクト: monstrim/Ares
 private void ShowProjectExplorer()
 {
     if (m_ProjectExplorer == null)
     {
         m_ProjectExplorer = new ProjectExplorer();
         m_ProjectExplorer.SetProject(m_CurrentProject);
         m_ProjectExplorer.ShowHint = WeifenLuo.WinFormsUI.Docking.DockState.DockLeft;
         m_ProjectExplorer.Show(dockPanel);
     }
     else
     {
         UpdateWindowState(m_ProjectExplorer);
     }
     ActivateWindow(m_ProjectExplorer);
 }
コード例 #22
0
        public MainForm()
        {
            InitializeComponent();
            IsMdiContainer = true;
            Text           = "Photeus Editor";

            CreateDockPanel();
            CreateMenu();

            _projectExplorer = new ProjectExplorer(_dockPanel)
            {
                HideOnClose        = true,
                CloseButton        = false,
                CloseButtonVisible = false,
                DockAreas          = DockAreas.DockLeft | DockAreas.DockRight
            };
            _projectExplorer.Show(_dockPanel, DockState.DockLeft);

            CreateAutoSaveTimer();
        }
コード例 #23
0
#pragma warning disable
        private static async void DebugListener_OnProjectDebugging(Project Project)
        {
            ProjectExplorer explorer = new ProjectExplorer(Project);

            if (explorer.Language != Models.Languages.Undefined)
            {
                if (OptionContainer.AutoClear)
                {
                    Clear();
                }
                PreviousConnectionSource?.Cancel();
                Server?.Dispose();
                Server = new PipeHTMLServer(explorer.AssemblyName);
                Server.OnDataReceived   += Server_HTMLReceived;
                PreviousConnectionSource = new CancellationTokenSource(MaxConnectionWaitTime);
                await Server.WaitForConnectionAsync(PreviousConnectionSource.Token);

                Server.BeginRead();
            }
        }
コード例 #24
0
        public void Constructor_ExpectedValues()
        {
            // Setup
            var mocks        = new MockRepository();
            var viewCommands = mocks.StrictMock <IViewCommands>();

            mocks.ReplayAll();

            // Call
            using (var explorer = new ProjectExplorer(viewCommands, Enumerable.Empty <TreeNodeInfo>()))
            {
                // Assert
                Assert.IsInstanceOf <IView>(explorer);
                Assert.IsInstanceOf <ISelectionProvider>(explorer);
                Assert.IsInstanceOf <UserControl>(explorer);
                Assert.IsNull(explorer.Data);
            }

            mocks.VerifyAll();
        }
コード例 #25
0
        private IProjectExplorer GetFromVsEnvironment()
        {
            IProjectExplorer projectExplorer = null;

            try
            {
                VsEnvironment = (DTE)ServiceProvider.GetService(typeof(DTE));
                if (VsEnvironment != null)
                {
                    projectExplorer = new ProjectExplorer(VsEnvironment);
                }
            }
            catch (COMException ex)
            {
                //TODO: Log the COM Exception somewhere
                //Unable to attach to the current visual studio environment
                VsEnvironment = null;
            }

            return(projectExplorer);
        }
コード例 #26
0
        public void ProjectDataDeleted_Always_CallsRemoveAllViewsForItemWithTag()
        {
            // Setup
            var mocks        = new MockRepository();
            var project      = mocks.Stub <IProject>();
            var viewCommands = mocks.StrictMock <IViewCommands>();

            viewCommands.Expect(vc => vc.RemoveAllViewsForItem(project));
            mocks.ReplayAll();

            IEnumerable <TreeNodeInfo> treeNodeInfos = new[]
            {
                new TreeNodeInfo
                {
                    TagType   = typeof(IProject),
                    CanRemove = (item, parent) => true
                }
            };

            DialogBoxHandler = (name, wnd) =>
            {
                var messageBox = new MessageBoxTester(wnd);
                messageBox.ClickOk();
            };

            using (var explorer = new ProjectExplorer(viewCommands, treeNodeInfos)
            {
                Data = project
            })
            {
                var treeViewControl = TypeUtils.GetField <TreeViewControl>(explorer, "treeViewControl");

                // Call
                treeViewControl.TryRemoveNodeForData(project);
            }

            // Assert
            mocks.VerifyAll();
        }
コード例 #27
0
ファイル: FormatCommand.cs プロジェクト: LASTEXILE-CH/RPGCore
        public FormatCommand(string name, string description = null) : base(name, description)
        {
            AddArgument(new Argument <FileInfo>("project", null)
            {
                Description = "A project file to use."
            });

            Handler = CommandHandler.Create((ParseResult parseResult, IConsole console) =>
            {
                var project = parseResult.ValueForOption <FileInfo>("project");

                if (project == null)
                {
                    project = FindFileOfType(".bproj");
                }
                var importPipeline = new ImportPipeline();

                var projectExplorer = ProjectExplorer.Load(project.DirectoryName, importPipeline);

                projectExplorer.Definition.SaveChanges();
            });
        }
コード例 #28
0
        public void AssembliesLoaded(List <NuGenAssembly> loadedAssemblies, bool isProjectChanged)
        {
            informationPanel.AddElapsedTime();
            informationPanel.AddInformation(readyLabel.Text);
            informationPanel.ResetCounter();
            //Application.DoEvents();

            foreach (NuGenAssembly assembly in loadedAssemblies)
            {
                ProjectExplorer.AddAssemblyToProject(assembly);
            }

            informationPanel.AddElapsedTime();
            ClearUserWarning();
            informationPanel.AddInformation(readyLabel.Text);
            informationPanel.AddInformation("\n\n");
            ResetPanels();

            if (NuGenDebugEventHandler.Instance.State == DebuggerState.DebuggeeStopped)
            {
                ShowDebuggerState(DebuggerState.DebuggeeStopped);
            }
            else
            {
                ShowDebuggerState(NuGenDebugEventHandler.Instance.State);
                ClearDebugPanels(false);
                NuGenDebugEventHandler.Instance.DisplayCurrentCodeLocation();
            }

            GC.Collect(GC.MaxGeneration);

            if (isProjectChanged)
            {
                NuGenProject.Instance.IsSaved = false;
            }
        }
コード例 #29
0
ファイル: MainForm.cs プロジェクト: xuchuansheng/GenXSource
		private void MainForm_HandleCreated(object sender, EventArgs e)
		{
			projectExplorer = new ProjectExplorer();
			UIHandler.Instance.Initialize(this, dockPanel);
			CreatePanels();

			Project.ProjectChanged += new EventHandler(Project_ProjectChanged);
			Project.ProjectIsSavedChanged += new EventHandler(Project_ProjectIsSavedChanged);
			displayHexaNumbersButton.Checked = Settings.Instance.DisplayHexaNumbers;
			Settings.Instance.DisplayHexaNumbersChanged += new NoArgumentsDelegate(Instance_DisplayHexaNumbersChanged);
			ReadyLabelOriginalBackColor = readyLabel.BackColor;
			ReadyLabelOriginalForeColor = readyLabel.ForeColor;

			Settings.Instance.RecentAssembliesChanged += new NoArgumentsDelegate(RecentAssembliesChanged);
			Settings.Instance.RecentProjectsChanged += new NoArgumentsDelegate(RecentProjectsChanged);
			RecentAssembliesChanged();
			RecentProjectsChanged();
			AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);

			ProjectExplorer.Show(dockPanel, DockState.DockRight);
			quickSearchPanel.Show(dockPanel, DockState.DockRight);

			informationPanel.Show(dockPanel, DockState.DockBottom);
			informationPanel.BringToFront();
			outputPanel.Show(dockPanel, DockState.DockBottom);
			outputPanel.BringToFront();

			logMessagePanel.Text = "Log Message Panel";
			logMessagePanel.TabText = "Log Message Panel";
			logMessagePanel.Show(dockPanel, DockState.DockBottom);
			logMessagePanel.BringToFront();

			threadsPanel.Show(dockPanel, DockState.DockBottom);
			modulesPanel.Show(dockPanel, DockState.DockBottom);
			callStackPanel.Show(dockPanel, DockState.DockBottom);
			breakpointsPanel.Show(dockPanel, DockState.DockBottom);

			localVariablesPanel.Mode = ObjectsPanelMode.LocalVariables;
			localVariablesPanel.Text = "Local Variables Panel";
			localVariablesPanel.TabText = localVariablesPanel.Text;
			localVariablesPanel.Show(dockPanel, DockState.DockBottom);

			argumentsPanel.Mode = ObjectsPanelMode.Arguments;
			argumentsPanel.Text = "Arguments Panel";
			argumentsPanel.TabText = argumentsPanel.Text;
			argumentsPanel.Show(dockPanel, DockState.DockBottom);

			autoObjectsPanel.Mode = ObjectsPanelMode.AutoObjects;
			autoObjectsPanel.Text = "Auto Objects Panel";
			autoObjectsPanel.TabText = autoObjectsPanel.Text;
			autoObjectsPanel.Show(dockPanel, DockState.DockBottom);

			watchPanel.Mode = ObjectsPanelMode.Watch;
			watchPanel.Text = "Watch Panel";
			watchPanel.TabText = watchPanel.Text;
			watchPanel.Show(dockPanel, DockState.DockBottom);

			dockPanel.DockWindows[DockState.DockRight].SendToBack();

			Project.Instance = new Project();
			Project.Instance.IsSaved = true;
			Project.Instance.Name = "New project";

			ProjectExplorer.AddAssemblyDelegate = new NoArgumentsDelegate(AddAssembly);
			ProjectExplorer.OpenAssemblyReferenceDelegate = new StringArrayDelegate(AddAssembly);
			ProjectExplorer.ShowProject();

			CreatePanelList();
			AssignMenuFunctions();
			Settings.Instance.UpdateShortcuts(mainMenu);

			if (ProjectToLoad != null)
			{
				if (ProjectToLoad.FullPath == null || ProjectToLoad.FullPath.Length == 0)
				{
					AddAssembly(AssembliesToLoad);
					Settings.Instance.AddAssemblies(AssembliesToLoad);
					AssembliesToLoad = null;
				}
				else
				{
					OpenProject(ProjectToLoad.FullPath, true);
				}
			}

			//The v1.0 DockPanelSuite seems to have some problem. Activating every panel one-by-one seems to help.
			ProjectExplorer.Activate();
			quickSearchPanel.Activate();

			informationPanel.Activate();
			outputPanel.Activate();
			logMessagePanel.Activate();
			threadsPanel.Activate();
			modulesPanel.Activate();
			callStackPanel.Activate();
			breakpointsPanel.Activate();
			localVariablesPanel.Activate();
			argumentsPanel.Activate();
			autoObjectsPanel.Activate();
			watchPanel.Activate();

			ProjectExplorer.Activate();
			informationPanel.Activate();
		}
コード例 #30
0
        public void Start()
        {
            var nodes = NodeManifest.Construct(
                new Type[] {
                typeof(AddNode),
                typeof(RollNode),
                typeof(OutputValueNode),
                typeof(ItemInputNode),
                typeof(GetStatNode),
                typeof(IterateNode),
            }
                );
            var types = TypeManifest.ConstructBaseTypes();

            var manifest = new BehaviourManifest()
            {
                Nodes = nodes,
                Types = types
            };

            File.WriteAllText("Content/RPGCoreMath.bmfst", manifest.ToString());

            Console.WriteLine("Importing Graph...");

            var proj = ProjectExplorer.Load("Content/Tutorial");

            Console.WriteLine(proj.Name);
            Console.WriteLine("\t\"" + proj.Name + "\"");
            foreach (var resource in ((IPackageExplorer)proj).Resources)
            {
                Console.WriteLine("\t" + resource.FullName);
            }

            var editorTargetResource = proj.Resources["Tutorial Gamerules/Main.bhvr"];
            var editorTargetData     = editorTargetResource.LoadStream();

            JObject editorTarget;

            var serializer = new JsonSerializer();

            using (var sr = new StreamReader(editorTargetData))
                using (var reader = new JsonTextReader(sr))
                {
                    editorTarget = JObject.Load(reader);
                }

            var editor = new EditorSession(manifest, editorTarget, "SerializedGraph", serializer);

            foreach (var node in editor.Root["Nodes"])
            {
                var nodeData = node["Data"];

                foreach (var field in nodeData)
                {
                    Console.WriteLine($"{field}");
                    if (field.Name == "MaxValue")
                    {
                        field.SetValue(field.GetValue <int> () + 10);
                        field.ApplyModifiedProperties();

                        field.SetValue(field.GetValue <int> ());
                        field.ApplyModifiedProperties();
                    }
                    else if (field.Name == "ValueB")
                    {
                        Console.WriteLine(field.GetValue <LocalPropertyId> ());
                    }
                }
            }

            using (var file = editorTargetResource.WriteStream())
                using (var jsonWriter = new JsonTextWriter(file)
                {
                    Formatting = Formatting.Indented
                })
                {
                    serializer.Serialize(jsonWriter, editorTarget);
                }

            Console.WriteLine(new DirectoryInfo("Content/Temp").FullName);

            var consoleRenderer = new BuildConsoleRenderer();

            var buildPipeline = new BuildPipeline()
            {
                Exporters = new List <ResourceExporter> ()
                {
                    new BhvrExporter()
                },
                BuildActions = new List <IBuildAction> ()
                {
                    consoleRenderer
                }
            };

            consoleRenderer.DrawProgressBar(32);
            proj.Export(buildPipeline, "Content/Temp");

            Console.WriteLine("Exported package...");
            var exportedPackage = PackageExplorer.Load("Content/Temp/Core.bpkg");

            var fireballAsset = exportedPackage.Resources["Fireball/Main.bhvr"];
            var data          = fireballAsset.LoadStream();

            SerializedGraph packageItem;

            using (var sr = new StreamReader(data))
                using (var reader = new JsonTextReader(sr))
                {
                    packageItem = serializer.Deserialize <SerializedGraph> (reader);
                }

            Console.WriteLine("Imported: " + packageItem.Name);
            var unpackedGraph = packageItem.Unpack();

            Console.WriteLine("Running Simulation...");

            var player = new DemoPlayer();

            IGraphInstance instancedItem = unpackedGraph.Create();

            instancedItem.Setup();
            instancedItem.SetInput(player);
            for (int i = 0; i < 5; i++)
            {
                Thread.Sleep(100);
                player.Health.Value -= 10;
            }
            instancedItem.Remove();

            var    packedInstance  = ((GraphInstance)instancedItem).Pack();
            string serializedGraph = packedInstance.AsJson();

            Console.WriteLine(serializedGraph);

            var deserialized     = JsonConvert.DeserializeObject <SerializedGraphInstance> (serializedGraph);
            var unpackedInstance = deserialized.Unpack(unpackedGraph);

            unpackedInstance.SetInput(player);
            unpackedInstance.Setup();
            for (int i = 0; i < 5; i++)
            {
                Thread.Sleep(100);
                player.Health.Value -= 20;
            }
            unpackedInstance.Remove();

            for (int i = 0; i < 5; i++)
            {
                Thread.Sleep(100);
                player.Health.Value -= 20;
            }
        }
コード例 #31
0
        public void Start()
        {
            var nodes = NodeManifest.Construct(new Type[] { typeof(AddNode), typeof(RollNode) });
            var types = TypeManifest.ConstructBaseTypes();

            var manifest = new BehaviourManifest()
            {
                Nodes = nodes,
                Types = types
            };

            File.WriteAllText("Content/RPGCoreMath.bmfst", manifest.ToString());

            Console.WriteLine("Importing Graph...");

            var proj = ProjectExplorer.Load("Content/Tutorial");

            Console.WriteLine(proj.Name);
            Console.WriteLine("\t\"" + proj.Name + "\"");
            foreach (var resource in ((IPackageExplorer)proj).Resources)
            {
                Console.WriteLine("\t" + resource.FullName);
            }

            var editorTargetResource = proj.Resources["Tutorial Gamerules/Main.bhvr"];
            var editorTargetData     = editorTargetResource.LoadStream();

            JObject editorTarget;

            var serializer = new JsonSerializer();

            using (var sr = new StreamReader(editorTargetData))
                using (var reader = new JsonTextReader(sr))
                {
                    editorTarget = JObject.Load(reader);
                }

            //var editNode = editorTarget.Nodes.First ();

            var editor = new EditorSession(manifest, editorTarget, "SerializedGraph");

            /*foreach (var field in editor.Root)
             * {
             *      Console.WriteLine ($"{field.Name}: {field.Json} ({field.Field.Type})");
             *      if (field.Name == "MaxValue")
             *      {
             *              var newObject = JToken.FromObject (field.Json.ToObject<int> () + 10);
             *              field.Json.Replace (newObject);
             *      }
             * }*/

            using (var file = editorTargetResource.WriteStream())
            {
                serializer.Serialize(new JsonTextWriter(file)
                {
                    Formatting = Formatting.Indented
                }, editorTarget);
            }


            Console.WriteLine(new DirectoryInfo("Content/Temp").FullName);

            var consoleRenderer = new BuildConsoleRenderer();

            var buildPipeline = new BuildPipeline()
            {
                Exporters = new List <ResourceExporter> ()
                {
                    new BhvrExporter()
                },
                BuildActions = new List <IBuildAction> ()
                {
                    consoleRenderer
                }
            };

            consoleRenderer.DrawProgressBar(32);
            proj.Export(buildPipeline, "Content/Temp");

            Console.WriteLine("Exported package...");
            var exportedPackage = PackageExplorer.Load("Content/Temp/Core.bpkg");

            var fireballAsset = exportedPackage.Resources["Fireball/Main.bhvr"];
            var data          = fireballAsset.LoadStream();

            SerializedGraph packageItem;

            using (var sr = new StreamReader(data))
                using (var reader = new JsonTextReader(sr))
                {
                    packageItem = serializer.Deserialize <SerializedGraph> (reader);
                }

            Console.WriteLine("Imported: " + packageItem.Name);
            var unpackedGraph = packageItem.Unpack();

            Console.WriteLine("Running Simulation...");

            var player = new Actor();

            IBehaviour instancedItem = unpackedGraph.Setup(player);

            for (int i = 0; i < 5; i++)
            {
                Thread.Sleep(100);
                player.Health.Value -= 20;
            }
            instancedItem.Remove();

            var    packedInstance  = ((GraphInstance)instancedItem).Pack();
            string serializedGraph = packedInstance.AsJson();

            Console.WriteLine(serializedGraph);

            var deserialized     = JsonConvert.DeserializeObject <SerializedGraphInstance> (serializedGraph);
            var unpackedInstance = deserialized.Unpack(unpackedGraph);

            unpackedInstance.Setup(player);
            for (int i = 0; i < 5; i++)
            {
                Thread.Sleep(100);
                player.Health.Value -= 20;
            }
            unpackedInstance.Remove();

            for (int i = 0; i < 5; i++)
            {
                Thread.Sleep(100);
                player.Health.Value -= 20;
            }
        }