/// <summary> /// Merge selected report items into manifest. /// </summary> public override void Execute() { if (CurrentDocument != null) { Project project = App.Instance.SalesForceApp.CurrentProject; // create the source manifest SourceFile[] files = CurrentDocument.SelectedReportItems; Manifest manifest = new Manifest(String.Format("{0} files selected from report", files.Length)); foreach (SourceFile file in files) { manifest.AddItem(file); } MergeManifestWindow dlg = new MergeManifestWindow(); dlg.ManifestSources = new Manifest[] { manifest }; dlg.ManifestSource = manifest; dlg.ManifestTargets = project.GetManifests(); if (App.ShowDialog(dlg)) { IDocument[] targetDocuments = App.Instance.Content.GetDocumentsByEntity(dlg.ManifestTarget); ManifestEditorDocument targetDocument = targetDocuments.FirstOrDefault(d => d is ManifestEditorDocument) as ManifestEditorDocument; if (targetDocument == null) { targetDocument = new ManifestEditorDocument(project, dlg.ManifestTarget); } targetDocument.Merge(dlg.ManifestSource); App.Instance.Content.OpenDocument(targetDocument); } } }
/// <summary> /// Merge manifests. /// </summary> public override void Execute() { Project project = App.Instance.SalesForceApp.CurrentProject; if (project != null) { Manifest[] manifests = project.GetManifests(); Manifest manifest = GetSelectedManifest(); MergeManifestWindow dlg = new MergeManifestWindow(); dlg.ManifestSources = manifests; dlg.ManifestTargets = manifests; dlg.ManifestSource = GetSelectedManifest(); if (App.ShowDialog(dlg)) { IDocument[] targetDocuments = App.Instance.Content.GetDocumentsByEntity(dlg.ManifestTarget); ManifestEditorDocument targetDocument = targetDocuments.FirstOrDefault(d => d is ManifestEditorDocument) as ManifestEditorDocument; if (targetDocument == null) { targetDocument = new ManifestEditorDocument(project, dlg.ManifestTarget); } targetDocument.Merge(dlg.ManifestSource); App.Instance.Content.OpenDocument(targetDocument); } } }
/// <summary> /// Open the manifest file. /// </summary> public override void DoubleClick() { foreach (IDocument document in App.Instance.Content.OpenDocuments) { if (document is ManifestEditorDocument && (document as ManifestEditorDocument).Manifest.Equals(Manifest)) { App.Instance.Content.OpenDocument(document); return; } } ManifestEditorDocument manifestDocument = new ManifestEditorDocument(Project, Manifest); App.Instance.Content.OpenDocument(manifestDocument); }