Ejemplo n.º 1
0
        /// <summary>
        ///     Build the model of this tree view
        /// </summary>
        /// <returns>the root nodes of the tree</returns>
        protected override List <BaseTreeNode> BuildModel()
        {
            List <BaseTreeNode> retVal = new List <BaseTreeNode>();

            ModelElement modelElement = Root as ModelElement;

            if (modelElement != null)
            {
                History history = modelElement.EFSSystem.History;
                foreach (Change change in history.GetChanges(modelElement))
                {
                    ChangeTreeNode node = new ChangeTreeNode(change, true);
                    retVal.Add(node);
                }
            }

            return(retVal);
        }
 /// <summary>
 /// Accepts the drop of a base tree node on this node
 /// </summary>
 /// <param name="SourceNode"></param>
 public virtual void AcceptCopy(BaseTreeNode SourceNode)
 {
     XmlBooster.XmlBBase xmlBBase = SourceNode.Model as XmlBooster.XmlBBase;
     if (xmlBBase != null)
     {
         string data = xmlBBase.ToXMLString();
         XmlBooster.XmlBStringContext ctxt = new XmlBooster.XmlBStringContext(data);
         try
         {
             DataDictionary.ModelElement copy = DataDictionary.Generated.acceptor.accept(ctxt) as DataDictionary.ModelElement;
             Model.AddModelElement(copy);
             MainWindow.RefreshModel();
         }
         catch (Exception)
         {
             MessageBox.Show("Cannot copy element\n" + data);
         }
     }
 }
Ejemplo n.º 3
0
        /// <summary>
        ///     Build the model of this tree view
        /// </summary>
        /// <returns>the root nodes of the tree</returns>
        protected override List <BaseTreeNode> BuildModel()
        {
            List <BaseTreeNode> retVal = new List <BaseTreeNode>();

            ModelElement model = Root as ModelElement;

            if (model != null && model != _previousModel)
            {
                _previousModel = model;

                UsageTreeNode models = new UsageTreeNode("Model", true);
                models.SetImageIndex(false);
                models.SubNodesBuilt = true;
                retVal.Add(models);

                UsageTreeNode tests = new UsageTreeNode("Test", true);
                tests.SetImageIndex(false);
                tests.SubNodesBuilt = true;
                retVal.Add(tests);

                foreach (Usage usage in model.EFSSystem.FindReferences(model))
                {
                    UsageTreeNode current = new UsageTreeNode(usage, true);
                    current.SetImageIndex(false);

                    NameSpace nameSpace = EnclosingFinder <NameSpace> .find(usage.User, true);

                    Frame frame = EnclosingFinder <Frame> .find(usage.User, true);

                    if (nameSpace != null)
                    {
                        List <NameSpace> nameSpaces = new List <NameSpace>();
                        while (nameSpace != null)
                        {
                            nameSpaces.Insert(0, nameSpace);
                            nameSpace = EnclosingFinder <NameSpace> .find(nameSpace);
                        }

                        UsageTreeNode currentTreeNode = models;
                        foreach (NameSpace currentNameSpace in nameSpaces)
                        {
                            currentTreeNode = FindOrCreateFolderNode(currentTreeNode, currentNameSpace);
                        }
                        currentTreeNode.Nodes.Add(current);
                    }
                    else if (frame != null)
                    {
                        UsageTreeNode currentNode = FindOrCreateFolderNode(tests, frame);
                        SubSequence   subSequence = EnclosingFinder <SubSequence> .find(usage.User, true);

                        if (subSequence != null)
                        {
                            currentNode = FindOrCreateFolderNode(currentNode, subSequence);
                        }
                        currentNode.Nodes.Add(current);
                    }
                    else
                    {
                        retVal.Add(current);
                    }
                }

                Sort();
                models.ExpandAll();
                tests.ExpandAll();
            }
            else
            {
                foreach (BaseTreeNode node in Nodes)
                {
                    retVal.Add(node);
                }
            }

            return(retVal);
        }