Beispiel #1
0
        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();
            }
        }
Beispiel #2
0
        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();
            }
        }
Beispiel #3
0
 private void RefreshDocuments()
 {
     foreach (object o in dockPanel.Documents)
     {
         if (o is GraphDoc)
         {
             GraphDoc gd = o as GraphDoc;
             gd.Refresh();
             gd.UpdateText();
         }
     }
 }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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();
            }
        }
Beispiel #6
0
        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);
        }
Beispiel #7
0
        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();
                }
            }
        }
Beispiel #8
0
        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();
        }
Beispiel #9
0
        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();
            }
        }