/// <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 ShowFeatureEditorByGuid(string guid) { bool exist = false; foreach (DockContent item in DockPanel.Contents) { if (item.GetType() == typeof(FeatureEditor)) { FeatureEditor editor = (FeatureEditor)item; if (editor.Feature.Guid == guid) { editor.Show(); exist = true; } } } if (!exist) { FeatureWrapper feat = PK.Wrapper.FindFeature(guid); if (feat != null) { FE = new FeatureEditor(); FE.OpenContainingFolderEvent += new EventHandler<Forms.BaseForms.PathEventArgs>(OpenContainingFolderEvent); FE.SetFeat(feat); FE.Show(DockPanel, DockState.Document); return FE; } } return null; }