/// <summary> /// Ru: Сохраняет список открытых для редактирования форм /// En: Saves edit forms list to file /// </summary> public void SaveEditorsFormsState() { PKStudio.Helpers.OpenedDocumentsList modlist = new Helpers.OpenedDocumentsList(); foreach (DockContent item in DockPanel.Contents) { if (item.GetType() == typeof(PKStudio.Forms.Editors.SourceFileEditor)) { PKStudio.Forms.Editors.SourceFileEditor file = (PKStudio.Forms.Editors.SourceFileEditor)item; modlist.Files.Add(file.EditingFilePath); } else if (item.GetType() == typeof(PKStudio.Forms.Editors.LibraryCategoryEditor)) { PKStudio.Forms.Editors.LibraryCategoryEditor editor = (PKStudio.Forms.Editors.LibraryCategoryEditor)item; modlist.Components.Add(ComponentWrapper.GetComponentWrapper(editor.LibraryCategory)); } else if (item.GetType() == typeof(PKStudio.Forms.Editors.LibraryEditor)) { PKStudio.Forms.Editors.LibraryEditor editor = (PKStudio.Forms.Editors.LibraryEditor)item; modlist.Components.Add(ComponentWrapper.GetComponentWrapper(editor.Library)); } else if (item.GetType() == typeof(PKStudio.Forms.Editors.FeatureEditor)) { PKStudio.Forms.Editors.FeatureEditor editor = (PKStudio.Forms.Editors.FeatureEditor)item; modlist.Components.Add(ComponentWrapper.GetComponentWrapper(editor.Feature)); } } string Path = Application.StartupPath + "\\edlist.dat"; if (File.Exists(Path)) { FileInfo FI = new FileInfo(Path); if ((FI.Attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly) { FI.Attributes -= FileAttributes.ReadOnly; modlist.Serialize(modlist, Path); } else { modlist.Serialize(modlist, Path); } } else { modlist.Serialize(modlist, Path); } }
protected IEventComponent ShowLibraryEditorByGuid(string guid) { bool exist = false; foreach (DockContent item in DockPanel.Contents) { if (item.GetType() == typeof(LibraryEditor)) { LibraryEditor editor = (LibraryEditor)item; if (editor.Library.Guid == guid) { editor.Show(); exist = true; } } } if (!exist) { LibraryWrapper lib = PK.Wrapper.FindLibrary(guid); if (lib != null) { LE = new LibraryEditor(); LE.OpenContainingFolderEvent +=new EventHandler<Forms.BaseForms.PathEventArgs>(OpenContainingFolderEvent); LE.SetLib(lib); LE.Show(DockPanel, DockState.Document); return LE; } } return null; }