示例#1
0
        private string GetDefaultScriptPath()
        {
            var defaultFileName = "new_script.py";

            return(ProjectPersister.ConvertToAbsolutePath(
                       ProjectFileName, defaultFileName));
        }
        private void OnSaveProjectToolStripMenuItemClick(object sender, EventArgs e)
        {
            SaveFileDialog dlg = new SaveFileDialog();

            dlg.DefaultExt = "lxj";
            dlg.Filter     = @"LogExpert session (*.lxj)|*.lxj";
            if (dlg.ShowDialog() == DialogResult.OK)
            {
                string        fileName  = dlg.FileName;
                List <string> fileNames = new List <string>();

                lock (_logWindowList)
                {
                    foreach (DockContent content in dockPanel.Contents)
                    {
                        LogWindow.LogWindow logWindow = content as LogWindow.LogWindow;
                        string persistenceFileName    = logWindow?.SavePersistenceData(true);
                        if (persistenceFileName != null)
                        {
                            fileNames.Add(persistenceFileName);
                        }
                    }
                }
                ProjectData projectData = new ProjectData();
                projectData.memberList   = fileNames;
                projectData.tabLayoutXml = SaveLayout();
                ProjectPersister.SaveProjectData(fileName, projectData);
            }
        }
示例#3
0
 protected override void DoPersist(ProgressCounter progressCounter, ProjectDto projectDto)
 {
     _isDatabaseFileAlreadyExisting = IsDatabaseFileExisting(projectDto.Name);
     Connection.GetInstance().CreateConnection(GetPathToDatabaseFile(projectDto.Name));
     _crudService = (IProjectCRUDService)ServiceActivator.Get(typeof(IProjectCRUDService));
     _persister   = new ProjectPersister(_crudService, progressCounter, projectDto);
     _persister.Persist();
 }
示例#4
0
        public void Prp_ToAbsoluteUri_Posix()
        {
            var s = ProjectPersister.ConvertToAbsoluteLocation(
                ImageLocation.FromUri("file:home/sue/test.dcproj"),
                "archive:archive.tar#dir/binary.so");

            Assert.IsTrue(s.FilesystemPath.EndsWith(OsPath.Relative("home", "sue", "archive.tar")));
            Assert.AreEqual("dir/binary.so", s.Fragments[0]);
        }
示例#5
0
        public void Prp_ToRelative_Msdos2()
        {
            var sc = new ServiceContainer();

            sc.AddService <IFileSystemService>(new FileSystemServiceImpl('\\'));
            var pp = new ProjectPersister(sc);
            var s  = pp.ConvertToProjectRelativePath(@"d:\Users\Bob\foo.dcproj", @"c:\Users\Bob\reko\foo.c");

            Assert.AreEqual(@"c:\Users\Bob\reko\foo.c", s);
        }
示例#6
0
        public void Prp_ToRelative3()
        {
            var sc = new ServiceContainer();

            sc.AddService <IFileSystemService>(new FileSystemServiceImpl('/'));
            var pp = new ProjectPersister(sc);
            var s  = pp.ConvertToProjectRelativePath("/home/bob/projects/foo/foo.dcproj", "/var/bob/reko/foo.c");

            Assert.AreEqual("/var/bob/reko/foo.c", s);
        }
示例#7
0
        public void Prp_ToAbsolute_Msdos1()
        {
            var sc = new ServiceContainer();

            sc.AddService <IFileSystemService>(new FileSystemServiceImpl('\\'));
            var pp = new ProjectPersister(sc);
            var s  = pp.ConvertToAbsolutePath(
                OsPath.Absolute("Users", "Bob", "foo.dcproj"),
                OsPath.Relative("..", "reko", "foo.c"));

            Assert.AreEqual(OsPath.Absolute("Users", "reko", "foo.c"), s);
        }
示例#8
0
        private void LoadProject(string projectFileName, bool restoreLayout)
        {
            ProjectData projectData   = ProjectPersister.LoadProjectData(projectFileName);
            bool        hasLayoutData = projectData.tabLayoutXml != null;

            if (hasLayoutData && restoreLayout && _logWindowList.Count > 0)
            {
                ProjectLoadDlg dlg = new ProjectLoadDlg();
                if (DialogResult.Cancel != dlg.ShowDialog())
                {
                    switch (dlg.ProjectLoadResult)
                    {
                    case ProjectLoadDlgResult.IgnoreLayout:
                        hasLayoutData = false;
                        break;

                    case ProjectLoadDlgResult.CloseTabs:
                        CloseAllTabs();
                        break;

                    case ProjectLoadDlgResult.NewWindow:
                        LogExpertProxy.NewWindow(new string[] { projectFileName });
                        return;
                    }
                }
            }

            if (projectData != null)
            {
                foreach (string fileName in projectData.memberList)
                {
                    if (hasLayoutData)
                    {
                        AddFileTabDeferred(fileName, false, null, true, null);
                    }
                    else
                    {
                        AddFileTab(fileName, false, null, true, null);
                    }
                }

                if (hasLayoutData && restoreLayout)
                {
                    // Re-creating tool (non-document) windows is needed because the DockPanel control would throw strange errors
                    DestroyToolWindows();
                    InitToolWindows();
                    RestoreLayout(projectData.tabLayoutXml);
                }
            }
        }