private DocumentBase GetDocument(SupportedDocumentInfo docInfo, IDocumentDataContext context, bool activate) { //Tracer.Verbose("DocumentFactory:GetDocument", "docName{0}, docTitle{0}, docType{0}, activate{0}", docName, docTitle, docType, activate); DocumentBase doc = FindDocument(docInfo, context); try { if (doc == null) { doc = CreateNewDocument(docInfo, context); } if (doc != null && activate) { _DockManager.ActiveDocument = doc; } } catch (Exception err) { Tracer.Error("DocumentFactory.GetDocument", err); } finally { Tracer.Verbose("DocumentFactory:GetDocument", "END"); } return(doc); }
public void OpenDocument(DiskContent dc) { SupportedDocumentInfo info = SupportedDocuments.Find(p => p.Extension == dc.Extension); if (info != null) { IDocumentDataContext context = (IDocumentDataContext)Activator.CreateInstance(info.DocumentDataType); context.FullName = dc.FullName; GetDocument(info, context, true); } }
private DocumentBase FindDocument(SupportedDocumentInfo docInfo, IDocumentDataContext context) { IEnumerable <DocumentContent> list = _DockManager.Documents.Where(d => d.Name == docInfo.DocumentContentGUID && d.Title == context.Name); if (list.Count() == 1) { return(list.First() as DocumentBase); } else { return(null); } }
/// <summary> /// Threaded function for document loading /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void bw_DoWork(object sender, DoWorkEventArgs e) { Tracer.Verbose("TemplateDocument:bw_DoWork", "START"); try { IDocumentDataContext ctx = (IDocumentDataContext)e.Argument; e.Result = ctx.Load(); } catch (Exception all) { Tracer.Error("TemplateDocument.bw_DoWork", all); } finally { Tracer.Verbose("TemplateDocument:bw_DoWork", "END"); } }
public void SaveAsCommandHandler(object sender, ExecutedRoutedEventArgs e) { e.Handled = true; DocumentBase docToSave = null; if (e.Parameter != null && e.Parameter is DocumentBase) { docToSave = e.Parameter as DocumentBase; } else { docToSave = DocumentFactory.Instance.ActiveDocument; } IDocumentDataContext dc = docToSave.Context; dc.FullName = SelectSaveAsFilename(DocumentFactory.Instance.GetSupportedDocumentInfo(docToSave)); docToSave.SaveDocument(); }
private DocumentBase CreateNewDocument(SupportedDocumentInfo docInfo, IDocumentDataContext context) { //Tracer.Verbose("DocumentFactory:CreateDocument", "docName{0}, docTitle{0}, docType{0}, activate{0}", docName, docTitle, docType, activate); DocumentBase doc = null; try { doc = (DocumentBase)Activator.CreateInstance(docInfo.DocumentContentType); if (doc != null) { if (string.IsNullOrEmpty(context.FullName)) { doc.Title = string.Format(docInfo.DefaultTitle, docInfo.Counter++); doc.ToolTip = doc.Title; } doc.Name = docInfo.DocumentContentGUID; doc.DataContext = context; doc.Closing += new EventHandler <CancelEventArgs>(DocumentClosing); doc.Closed += new EventHandler(DocumentClosed); _DockManager.MainDocumentPane.Items.Add(doc); } } catch (Exception err) { Tracer.Error("DocumentFactory.CreateDocument", err); } finally { Tracer.Verbose("DocumentFactory:CreateDocument", "END"); } return(doc); }
public void OpenDocument(Type docType, IDocumentDataContext context) { //WorkspaceService.Instance.AddRecentFile(context.FullName); GetDocument(_SupportedDocuments.Find(p => p.DocumentContentType == docType), context, true); }
public DocumentBase CreateDocument(SupportedDocumentInfo info, IDocumentDataContext context = null) { return(GetDocument(info, context, true)); }
public DocumentBase CreateDocument(Type docType, IDocumentDataContext context = null) { return(GetDocument(_SupportedDocuments.Find(p => p.DocumentContentType == docType), context, true)); }
public void OpenDocument(SupportedDocumentInfo info, IDocumentDataContext context) { //WorkspaceService.Instance.AddRecentFile(context.FullName); GetDocument(info, context, true); }