예제 #1
0
 public void UpdateMessages(CodeEditor.ParsedDocument parsedDocument)
 {
     treeView.TreeNodes.Clear();
     if (parsedDocument != null)
     {
         foreach (CodeEditor.ParsedDocument.Message message in parsedDocument.Messages)
         {
             treeView.TreeNodes.Add(message.CreateMessageNode());
         }
     }
     treeView.Refresh();
 }
예제 #2
0
        //private volatile bool parseRequested = false;
        //public virtual bool ParseRequested { get {return parseRequested; } set { parseRequested = value; } }

        //private volatile bool reloadRequested = false;
        //public virtual bool CloseRequested { get { return reloadRequested; } set { reloadRequested = value; } }

        public virtual void AcceptParsedDocument(ParsedDocument newParsedDocument)
        {
            ParsedDocument oldParsedDocument = ParsedDocument;

            ParsedDocument = null;
            if (oldParsedDocument != null)
            {
                oldParsedDocument.Dispose();
            }

            ParsedDocument = newParsedDocument;
            Update();
        }
예제 #3
0
        private void worker()
        {
            projectNode.Project.Update();
            //int idCount = projectNode.Project.GetRegisteredIdList().Count;
            //while (idCount != projectNode.Project.GetRegisteredIdList().Count)
            //{
            //    List<string> ids = projectNode.Project.GetRegisteredIdList();
            //    idCount = ids.Count;
            //    for (int i = 0; i < ids.Count; i++)
            //    {
            //        Data.Item item = projectNode.Project.GetRegisterdItem(ids[i]);
            //        item.Update();
            //    }
            //}


            {
                // data update
                projectNode.HierarchicalVisibleUpdate();
                List <Data.Item> items = projectNode.Project.FindItems(
                    (x) => (x is Data.TextFile),
                    (x) => (false)
                    );

                Invoke(new Action(() => { progressBar.Maximum = items.Count; }));

                // parse items
                int i = 0;
                foreach (Data.Item item in items)
                {
                    Invoke(new Action(() => { progressBar.Value = i; }));
                    i++;

                    if (!(item is Data.TextFile))
                    {
                        continue;
                    }
                    Data.TextFile textFile = item as Data.TextFile;
                    Invoke(new Action(() => { label.Text = textFile.Name; }));
                    CodeEditor.DocumentParser parser = textFile.CreateDocumentParser(CodeEditor.DocumentParser.ParseModeEnum.LoadParse);
                    if (parser == null)
                    {
                        continue;
                    }
                    parser.Parse();

                    textFile.CodeDocument.CopyFrom(parser.Document);

                    if (textFile.ParsedDocument != null)
                    {
                        CodeEditor.ParsedDocument oldParsedDocument = textFile.ParsedDocument;
                        textFile.ParsedDocument = null;
                        oldParsedDocument.Dispose();
                    }

                    textFile.AcceptParsedDocument(parser.ParsedDocument);

//                    textFile.ParseRequested = true;
                    textFile.Close();
                }
            }

            close = true;
            Invoke(new Action(() => { Close(); }));
        }