private void repositoryDocumentOpen(object sender) { TreeNode node = sender as TreeNode; string pathname = node.Parent.Tag as string; GraphDoc doc = null; foreach (object o in dockPanel.Documents) { if (o is GraphDoc) { GraphDoc d = o as GraphDoc; if (d.FileName == pathname && d.ProcessName == node.Text) { doc = d; break; } } } if (doc == null) { doc = OpenDocument(pathname, node.Text); } else { doc.Activate(); } }
private void repositoryDocumentAddProcess(object sender) { TreeNode node = sender as TreeNode; GProject g = GetProjectObject(node.Tag as string); int c = 1; string prefix = "c"; while (g.GProcess(prefix + c.ToString()) != null) { c++; } g.AddProcess(prefix + c.ToString()); GProcess cmain = g.GProcess(prefix + c.ToString()); cmain.AddNodeCode(1, 0, 0); cmain.Base.EntryNode = cmain.Base.NodesList[0].Name; if (g.BaseProject.ProcessList.Count() == 1) { g.BaseProject.StartUpProcess = prefix + c.ToString(); } LoadRepository(); string pathname = node.Tag as string; GraphDoc doc = null; foreach (object o in dockPanel.Documents) { if (o is GraphDoc) { GraphDoc d = o as GraphDoc; if (d.FileName == pathname) { if (d.ProcessName != node.Text) { doc = d; doc.Modified = true; } } } } if (doc == null) { SaveDocument(g, pathname); } else { RefreshDocuments(); } }
private void RefreshDocuments() { foreach (object o in dockPanel.Documents) { if (o is GraphDoc) { GraphDoc gd = o as GraphDoc; gd.Refresh(); gd.UpdateText(); } } }
private bool repositoryDocumentRename(object sender, string newName) { TreeNode node = sender as TreeNode; if (node.Tag is Process) { string pathname = node.Parent.Tag as string; GProject g = GetProjectObject(pathname); if (g.GProcess(newName) != null) { return(false); } g.GProcess(node.Text).Name = newName; if (g.GProcess(newName) == null) { return(false); } GraphDoc doc = null; foreach (object o in dockPanel.Documents) { if (o is GraphDoc) { GraphDoc d = o as GraphDoc; if (d.FileName == pathname) { doc = d; doc.Modified = true; } } } if (doc == null) { SaveDocument(g, pathname); } else { RefreshDocuments(); } } else if (node.Tag is string) { return(false); } return(true); }
private void repositoryDocumentMark(object sender) { TreeNode node = sender as TreeNode; Process process = node.Tag as Process; Project project = process.ParentProject; string old = project.StartUpProcess; project.StartUpProcess = process.Name; node.ImageIndex = 7; node.SelectedImageIndex = 7; if (node.Parent.Nodes.ContainsKey(old)) { node.Parent.Nodes[old].ImageIndex = 5; node.Parent.Nodes[old].SelectedImageIndex = 5; } string pathname = node.Parent.Tag as string; GraphDoc doc = null; foreach (object o in dockPanel.Documents) { if (o is GraphDoc) { GraphDoc d = o as GraphDoc; if (d.FileName == pathname) { if (d.ProcessName != node.Text) { doc = d; doc.Modified = true; } } } } GProject g = GetProjectObject(pathname); if (doc == null) { SaveDocument(g, pathname); } else { RefreshDocuments(); } }
private GraphDoc OpenDocument(string filename, string processName) { GraphDoc gd = new GraphDoc(); gd.FileName = filename; gd.LoadProcess(GetProjectObject(filename).GProcess(processName)); gd.OnDocumentModified += new NotifyEvent(childDocumentModified); gd.OnDocumentStructureModified += new NotifyEvent(childDocumentStructureModified); gd.OnDocumentSave += new NotifyEvent(childDocumentSave); gd.OnDocumentRun += new NotifyEvent(childDocumentRun); gd.OnSelectionChanged += new NotifyEvent(childSelectionChanged); gd.DockAreas = WeifenLuo.WinFormsUI.Docking.DockAreas.Document; gd.Show(dockPanel); return(gd); }
private void childDocumentSave(object sender) { GProject g = (sender as GraphDoc).GProject; SaveDocument(g, (sender as GraphDoc).FileName); foreach (object o in dockPanel.Documents) { if (o is GraphDoc) { GraphDoc gd = o as GraphDoc; gd.Modified = false; gd.UpdateText(); } } }
private void tsbFileNew_Click(object sender, EventArgs e) { Project g = new Project(); g.NewProcess("main"); g.StartUpProcess = "main"; Process cmain = g.FindProcess("main"); cmain.NewNode("start"); Node nmain = cmain.FindNode("start"); cmain.EntryNode = "start"; cmain.ExitNode = "start"; GraphDoc gd = new GraphDoc(); // ask for filename string prefix = "project"; string suffix = ""; int i = 1; //! while (m_WebService.GetProjectID(prefix + i.ToString() + suffix) > 0) i++; string FileName = prefix + i.ToString() + suffix; g.Name = prefix + i.ToString(); GProject gproject = new GProject(); gproject.Load(g); gd.FileName = FileName; gd.LoadProcess(gproject.GProcess("main")); SetProjectObject(gd.FileName, gproject); gd.OnDocumentModified += new NotifyEvent(childDocumentModified); gd.OnDocumentStructureModified += new NotifyEvent(childDocumentStructureModified); gd.OnDocumentSave += new NotifyEvent(childDocumentSave); gd.OnDocumentRun += new NotifyEvent(childDocumentRun); gd.OnSelectionChanged += new NotifyEvent(childSelectionChanged); gd.DockAreas = WeifenLuo.WinFormsUI.Docking.DockAreas.Document; gd.Show(dockPanel); gd.SaveProject(); gd.LoadProcess(GetProjectObject(gd.FileName).GProcess(gd.ProcessName)); LoadRepository(); }
private void repositoryDocumentDelete(object sender) { TreeNode node = sender as TreeNode; if (node.Tag is Process) { string pathname = node.Parent.Tag as string; GraphDoc doc = null, todel = null; foreach (object o in dockPanel.Documents) { if (o is GraphDoc) { GraphDoc d = o as GraphDoc; if (d.FileName == pathname) { if (d.ProcessName != node.Text) { doc = d; doc.Modified = true; } else { todel = d; } } } } if (todel != null) { todel.Modified = false; todel.Close(); } GProject g = GetProjectObject(pathname); g.RemoveProcess(node.Text); if (g.BaseProject.StartUpProcess == node.Text) { if (g.BaseProject.ProcessList.Count() > 0) { string entry = g.BaseProject.ProcessList[0].Name; g.BaseProject.StartUpProcess = entry; node.Parent.Nodes[entry].ImageIndex = 7; node.Parent.Nodes[entry].SelectedImageIndex = 7; } } if (doc == null) { SaveDocument(g, pathname); } else { RefreshDocuments(); } node.Remove(); } else if (node.Tag is string) { string pathname = node.Tag as string; List <GraphDoc> todel = new List <GraphDoc>(); foreach (object o in dockPanel.Documents) { if (o is GraphDoc) { GraphDoc d = o as GraphDoc; if (d.FileName == pathname) { todel.Add(d); } } } foreach (GraphDoc d in todel) { d.Modified = false; d.Close(); } FreeProjectObject(pathname); //! m_WebService.Unload(m_WebService.GetProjectID(pathname)); node.Remove(); } }