Esempio n. 1
0
        public static bool IsToVertexEnoughToIdentifyEdge(IVertex baseEdge, IVertex to)
        {
            if (to.Value == null)
            {
                // int cnt = baseEdge.OutEdgesRaw.Count;

                if (baseEdge.GetAll("").Count() > 1)
                {
                    // if(cnt > 1)
                    return(false);
                }
                else
                {
                    return(true);
                }
            }

            //  int cnt2 = 0;

            //   foreach (IEdge e in baseEdge.OutEdgesRaw)
            //   if (GraphUtil.GetValueAndCompareStrings(e.To, to.Value.ToString()))
            //      cnt2++;
            IVertex test = baseEdge.GetAll("\"" + to.Value.ToString() + "\"");

            if (test != null && test.Count() > 1)
            {
                // if(cnt2 > 1)
                return(false);
            }

            return(true);
        }
Esempio n. 2
0
        public static void RegisterVertexChangeListeners(IVertex PlatformClassVertex, VertexChange action, string[] watchList)
        {
            PlatformClassVertexChangeListener listener = new PlatformClassVertexChangeListener(watchList);

            listener.PlatformClassVertex = PlatformClassVertex;
            listener.Change += action;


            PlatformClassVertex.Change += new VertexChange(listener.Listener);

            IVertex AttributeVertexes = PlatformClassVertex.GetAll(@"$Is:{$Inherits:$PlatformClass}\Selector:");

            foreach (IEdge e in AttributeVertexes)
            {
                foreach (IEdge ee in PlatformClassVertex.GetAll(e.To.Value + ":"))
                {
                    GraphUtil.AddHandlerIfDelegateListDoesNotContainsIt(ee.To, listener.Listener);

                    foreach (string metaFromWatchList in listener.WatchList)
                    {
                        if (GeneralUtil.CompareStrings(ee.Meta.Value, metaFromWatchList))
                        {
                            foreach (IEdge eee in ee.To)
                            {
                                GraphUtil.AddHandlerIfDelegateListDoesNotContainsIt(eee.To, listener.Listener);
                            }
                        }
                    }
                }
            }
        }
Esempio n. 3
0
        private void UpdateBaseEdge()
        {
            IVertex bev = Vertex.Get("BaseEdge:");

            if (bev == null)
            {
                return;
            }

            IVertex fromv = bev.Get("From:");
            IVertex metav = bev.Get("Meta:");
            IVertex tov   = bev.Get("To:");

            if (fromv != null && metav != null && tov != null)
            {
                this.Items.Clear();

                ComboBoxItem SelectedItem = null;

                foreach (IEdge e in metav.GetAll(@"$EdgeTarget:\EnumValue:"))
                {
                    ComboBoxItem i = new ComboBoxItem();
                    i.Content = e.To.Value;
                    i.Tag     = e.To;
                    this.Items.Add(i);

                    if (tov.Value == e.To.Value)
                    {
                        SelectedItem = i;
                    }
                }

                this.SelectedItem = SelectedItem;
            }
        }
Esempio n. 4
0
        public static IVertex GetMostInheritedMeta(IVertex baseVertex, IVertex startMeta)
        {
            IVertex _startMeta = startMeta;

            if (startMeta.Get("$EdgeTarget") != null)
            {
                _startMeta = startMeta.Get("$EdgeTarget:");
            }

            IVertex highestInheritanceLevel       = null;
            int     highestInheritanceLevel_level = 0;

            int tempLevel;

            foreach (IEdge e in baseVertex.GetAll("$Is:"))
            {
                tempLevel = getInheritanceLevel(e.To, _startMeta, 0);

                if (tempLevel >= highestInheritanceLevel_level)
                {
                    highestInheritanceLevel_level = tempLevel;
                    highestInheritanceLevel       = e.To;
                }
            }

            return(highestInheritanceLevel); // if highestInheritanceLevel_level==0 then startMeta was not found
        }
Esempio n. 5
0
        public static void AddAllAttributesAndAssociationsVertexes(IVertex ObjectVertex)
        {
            IVertex AttributeVertexes = ObjectVertex.GetAll(@"$Is:\Attribute:");

            foreach (IEdge e in AttributeVertexes)
            {
                ObjectVertex.AddVertex(e.To, null);
            }

            IVertex AssociationVertexes = ObjectVertex.GetAll(@"$Is:\Association:");

            foreach (IEdge e in AssociationVertexes)
            {
                ObjectVertex.AddVertex(e.To, null);
            }
        }
Esempio n. 6
0
        private void FillNewVertexAndEdgeBySchemaMenu()
        {
            IVertex baseVertex = Edge.Get(@"To:");

            IVertex r = baseVertex.GetAll(@"$Is:");

            if (r.Count() == 0)
            {
                r = Edge.GetAll(@"Meta:");
            }
            ;

            if (r.Count() == 0 || r.FirstOrDefault().To.Value == null || GeneralUtil.CompareStrings(r.FirstOrDefault().To.Value, "$Empty"))
            {
                NewVertexBySchema.IsEnabled = false;
                NewEdgeBySchema.IsEnabled   = false;
                return;
            }

            NewVertexBySchema.Items.Clear();
            NewEdgeBySchema.Items.Clear();

            foreach (IEdge e in r)
            {
                NewVertexAndEdgeBySchema_FillForMeta(baseVertex, e.To, VertexOperations.GetChildEdges(e.To));
            }

            NewVertexAndEdgeBySchema_FillForMeta(baseVertex, MinusZero.Instance.Root.Get(@"System\Meta\Base\Vertex"), MinusZero.Instance.Root.GetAll(@"System\Meta\Base\Vertex\"));

            NewVertexBySchema.IsEnabled = true;
            NewEdgeBySchema.IsEnabled   = true;
        }
Esempio n. 7
0
        public static void StopNonAtomProcess()
        {
            IVertex r = MinusZero.Instance.Root;

            IVertex processes = r.GetAll(@"User\CurrentUser:\CurrentSession:\Process:");

            r.Get(@"User\CurrentUser:\CurrentSession:").DeleteEdge(processes.First());
        }
Esempio n. 8
0
        public static void RemoveVertexChangeListeners(IVertex PlatformClassVertex, VertexChange action)
        {
            RemoveVertexChangeListeners_ForVertex(PlatformClassVertex, PlatformClassVertex, action);

            IVertex AttributeVertexes = PlatformClassVertex.GetAll(@"$Is:{$Inherits:$PlatformClass}\Selector:");

            foreach (IEdge e in AttributeVertexes)
            {
                foreach (IEdge ee in PlatformClassVertex.GetAll(e.To.Value + ":"))
                {
                    RemoveVertexChangeListeners_ForVertex(e.To, PlatformClassVertex, action);
                }

                foreach (IEdge ee in PlatformClassVertex.GetAll(e.To.Value + @":\"))
                {
                    RemoveVertexChangeListeners_ForVertex(e.To, PlatformClassVertex, action);
                }
            }
        }
Esempio n. 9
0
        public static bool IsInheritedEdge(IVertex baseVertex, IVertex metaVertex)
        {
            foreach (IEdge e in baseVertex.GetAll("$Inherits:"))
            {
                if (_IsInheritedEdge(e.To, metaVertex))
                {
                    return(true);
                }
            }

            return(false);
        }
Esempio n. 10
0
        private void Run_Click(object sender, RoutedEventArgs e)
        {
            e.Handled = true;

            MinusZero z = MinusZero.Instance;

            GraphUtil.ReplaceEdge(this.Resoult.Vertex.Get("BaseEdge:"), "To", z.Empty);

            IVertex res = baseVertex.GetAll(Content.Text);

            if (res != null)
            {
                this.Resoult.UnselectAllSelectedEdges();

                GraphUtil.ReplaceEdge(this.Resoult.Vertex.Get("BaseEdge:"), "To", res);
            }
        }
Esempio n. 11
0
        private static bool _IsInheritedEdge(IVertex baseVertex, IVertex metaVertex)
        {
            if (baseVertex.Get(metaVertex.Value + ":") != null)
            {
                return(true);
            }

            foreach (IEdge e in baseVertex.GetAll("$Inherits:"))
            {
                if (_IsInheritedEdge(e.To, metaVertex))
                {
                    return(true);
                }
            }

            return(false);
        }
Esempio n. 12
0
        public static bool InheritanceCompare(IVertex baseVertex, string toCompare)
        {
            if (GeneralUtil.CompareStrings(baseVertex.Value, toCompare))
            {
                return(true);
            }

            foreach (IEdge e in baseVertex.GetAll("$Inherits:"))
            {
                if (InheritanceCompare(e.To, toCompare))
                {
                    return(true);
                }
            }

            return(false);
        }
Esempio n. 13
0
        private bool testVertex(IVertex toTest, string query)
        {
            IVertex temp = MinusZero.Instance.CreateTempVertex();

            IEdge e = temp.AddEdge(null, toTest);

            IVertex res = temp.GetAll(query);

            temp.DeleteEdge(e);

            if (res.Count() > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Esempio n. 14
0
        private void UpdateBaseEdge()
        {
            IVertex bv = Vertex.Get(@"BaseEdge:\To:");

            if (bv != null && bv.Value != null /*&& ((String)bv.Value)!="$Empty"*/)
            {
                StringBuilder sb = new StringBuilder();

                bool isFirst = true;

                foreach (IEdge e in bv.GetAll(@"Attribute:"))
                {
                    if (isFirst == false)
                    {
                        sb.Append("\n");
                    }
                    else
                    {
                        isFirst = false;
                    }

                    sb.Append(e.To.Value);

                    if (e.To.Get("$EdgeTarget:") != null)
                    {
                        sb.Append(" : " + e.To.Get(@"$EdgeTarget:"));
                    }

                    string cardinalites = ClassVertex.GetStringCardinalities(e.To);

                    if (cardinalites != "")
                    {
                        sb.Append(" " + cardinalites);
                    }
                }

                this.Text = sb.ToString();
            }
            else
            {
                this.Text = "Ø";
            }
        }
Esempio n. 15
0
        private bool CheckSender(object sender)
        {
            if (sender == PlatformClassVertex)
            {
                return(true);
            }

            foreach (string metaFromWatchList in WatchList)
            {
                foreach (IEdge e in PlatformClassVertex.GetAll(metaFromWatchList + ":"))
                {
                    if (sender == e.To)
                    {
                        return(true);
                    }
                }
            }

            return(false);
        }
Esempio n. 16
0
        private static int getInheritanceLevel(IVertex testMeta, IVertex startMeta, int input)
        {
            if (testMeta == startMeta)
            {
                return(input);
            }

            int biggest = 0;

            foreach (IEdge e in testMeta.GetAll("$Inherits:"))
            {
                int temp = getInheritanceLevel(e.To, startMeta, input + 1);
                if (temp > biggest)
                {
                    biggest = temp;
                }
            }


            return(biggest);
        }
Esempio n. 17
0
        public void SynchronisedVisualiserChange(object sender, VertexChangeEventArgs e)
        {
            if (
                ((sender == selectSynchronisedVisualiser) && (e.Type == VertexChangeType.EdgeAdded) && (GeneralUtil.CompareStrings(e.Edge.Meta.Value, "SelectedEdges")))
                ||
                (sender is IVertex && GraphUtil.FindEdgeByToVertex(selectSynchronisedVisualiser.GetAll(@"SelectedEdges:\"), (IVertex)sender) != null && ((e.Type == VertexChangeType.EdgeAdded) || (e.Type == VertexChangeType.EdgeRemoved)))
                ||
                (sender is IVertex && selectSynchronisedVisualiser.Get(@"SelectedEdges:") == (IVertex)sender && ((e.Type == VertexChangeType.EdgeAdded) || (e.Type == VertexChangeType.EdgeRemoved)))
                )
            {
                if (baseSynchronisedVertex.Get(@"BaseEdge:\To:") == null)     // if Disposed
                {
                    PlatformClass.RemoveVertexChangeListeners(selectSynchronisedVisualiser, new VertexChange(this.SynchronisedVisualiserChange));
                }
                else
                {
                    IVertex selEdgesFirst = selectSynchronisedVisualiser.Get(@"SelectedEdges:\");

                    if (selEdgesFirst != null)
                    {
                        IVertex firstSelectedVertexEdgeTo = selEdgesFirst.Get("To:");

                        if (firstSelectedVertexEdgeTo != null)
                        {
                            GraphUtil.ReplaceEdge(baseSynchronisedVertex.Get("BaseEdge:"), "To", firstSelectedVertexEdgeTo);
                        }

                        IVertex firstSelectedVertexEdgeMeta = selEdgesFirst.Get("Meta:");

                        if (firstSelectedVertexEdgeMeta != null)
                        {
                            GraphUtil.ReplaceEdge(baseSynchronisedVertex.Get("BaseEdge:"), "Meta", firstSelectedVertexEdgeMeta);
                        }
                    }
                }
            }
        }
Esempio n. 18
0
        // as this is one of most important conceptual definitions, the historic version of the method. it does not support meta vertexes that creates edge+vertex

        /*        public static IVertex GetChildEdges(IVertex metaVertex)
         *      {
         *          IVertex edgeTarget = metaVertex.Get("$EdgeTarget:");
         *          if (edgeTarget != null && edgeTarget!=metaVertex)
         *              return GetChildEdges(edgeTarget);
         *
         *          IVertex ret = m0.MinusZero.Instance.CreateTempVertex();
         *
         *          foreach (IEdge e in metaVertex)
         *          {
         *              if(GeneralUtil.CompareStrings(e.Meta,"$VertexTarget"))
         *                  ret.AddEdge(null,m0.MinusZero.Instance.Root.Get(@"System\Meta\Base\Vertex\$EdgeTarget"));
         *              else
         *                  //if (!GeneralUtil.CompareStrings(e.Meta, "$Is") && !GeneralUtil.CompareStrings(e.Meta, "$Inherits")) // to be extanded
         *                  if (GeneralUtil.CompareStrings(e.Meta, "$Empty")||((string)e.Meta.Value)[0] != '$') // is extanded
         *                      if (e.To.Get("$VertexTarget:") != null || e.To.Get("$EdgeTarget:") != null)
         *                          ret.AddEdge(null,e.To);
         *          }
         *
         *          return ret;
         *      }*/

        public static IVertex DoFilter(IVertex baseVertex, IVertex FilterQuery)
        {
            return(baseVertex.GetAll((string)FilterQuery.Value));
        }
Esempio n. 19
0
        private void CreateTestData()
        {
            IVertex r = MinusZero.Instance.Root;

            GeneralUtil.ParseAndExcute(r, r.Get(@"System\Meta"), @"{TEST3{Class:Customer{},Class:Person{$Description:opis,Attribute:Name,Attribute:Surname,Attribute:DateOfBirth},Class:Company{Attribute:Name,Attribute:RegistrationNumber,},Class:Adress{Attribute:Line 1,Attribute:Line 2,Attribute:Line 3,Attribute:City,Attribute:County,Attribute:Postal code,Attribute:Country},Class:Basket{Attribute:Creation date,Attribute:Status},Class:Item{Attribute:Name,Attribute:Description,Attribute:Price}}}");

            r.Get(@"TEST3\Customer").AddEdge(r.Get(@"System\Meta*$Is"), r.Get(@"System\Meta\UML\Class"));
            r.Get(@"TEST3\Person").AddEdge(r.Get(@"System\Meta*$Is"), r.Get(@"System\Meta\UML\Class"));
            r.Get(@"TEST3\Company").AddEdge(r.Get(@"System\Meta*$Is"), r.Get(@"System\Meta\UML\Class"));
            r.Get(@"TEST3\Adress").AddEdge(r.Get(@"System\Meta*$Is"), r.Get(@"System\Meta\UML\Class"));
            r.Get(@"TEST3\Basket").AddEdge(r.Get(@"System\Meta*$Is"), r.Get(@"System\Meta\UML\Class"));
            r.Get(@"TEST3\Item").AddEdge(r.Get(@"System\Meta*$Is"), r.Get(@"System\Meta\UML\Class"));

            GeneralUtil.ParseAndExcute(r, r.Get(@"System\Meta"), "{TEST2,TEST{Class:Person{Association:Spouse{$MaxCardinality:1,$MaxTargetCardinality:1},Aggregation:Child{$MaxCardinality:3},Attribute:Name,Attribute:Surname,Attribute:Age{MinValue:0,MaxValue:40},Attribute:NoseLength{MinValue:0,MaxValue:40},Attribute:Money{MinValue:0,MaxValue:1000},Attribute:IsGood,Attribute:IsPretty,Attribute:IsPretty2,Attribute:IsPretty3},Enum:Pretty{EnumValue:Yes,EnumValue:No,EnumValue:Maybe}}}");

            r.Get(@"TEST\Pretty").AddEdge(r.Get(@"System\Meta*$Inherits"), r.Get(@"System\Meta\ZeroTypes\EnumBase"));
            r.Get(@"TEST\Person").AddEdge(r.Get(@"System\Meta*$Is"), r.Get(@"System\Meta\UML\Class"));

            IVertex smzt = r.Get(@"System\Meta\ZeroTypes");

            IVertex EdgeTarget = r.Get(@"System\Meta*$EdgeTarget");

            IVertex Person = r.Get(@"TEST\Person");



            IVertex smu = r.Get(@"System\Meta\UML");
            IVertex smb = r.Get(@"System\Meta\Base");


            IVertex function_function = Person.AddVertex(smu.Get(@"Function"), "Sleep");

            function_function.AddEdge(smu.Get(@"Function\Output"), smzt.Get("Integer"));

            IVertex ffi = function_function.AddVertex(smu.Get(@"Function\InputParameter"), "time");

            ffi.AddEdge(smb.Get(@"Vertex\$VertexTarget"), smzt.Get("Integer"));

            //
            ffi.AddVertex(smb.Get(@"Vertex\$Description"), "this is opis time");
            function_function.AddVertex(smb.Get(@"Vertex\$Description"), "this is opis function");
            //

            IVertex ffi2 = function_function.AddVertex(smu.Get(@"Function\InputParameter"), "fastMode");

            ffi2.AddEdge(smb.Get(@"Vertex\$VertexTarget"), smzt.Get("Boolean"));

            IVertex ffi3 = function_function.AddVertex(smu.Get(@"Function\InputParameter"), "interrupt");

            ffi3.AddEdge(smb.Get(@"Vertex\$VertexTarget"), smzt.Get("Integer"));


            function_function.AddVertex(smu.Get(@"[]"), null);

            function_function.AddEdge(smb.Get(@"$NewLine"), smb.Get(@"$Empty"));

            //

            /*IVertex function2_function = Person.AddVertex(smu.Get(@"Function"), "Sleep");
             *
             * function2_function.AddEdge(smu.Get(@"Function\Output"), smzt.Get("Integer"));
             *
             * IVertex f2fi = function2_function.AddVertex(smu.Get(@"Function\InputParameter"), "time");
             *
             * f2fi.AddEdge(smb.Get(@"Vertex\$VertexTarget"), smzt.Get("Integer"));
             *
             *
             * function2_function.AddVertex(smu.Get(@"[]"), null);
             *
             * function2_function.AddVertex(smb.Get(@"$NewLine"), "3");
             *
             */

            Person.Get("Name").AddEdge(EdgeTarget, smzt.Get("String"));

            Person.Get("Spouse").AddEdge(r.Get(@"System\Meta*$EdgeTarget"), Person);
            Person.Get("Child").AddEdge(r.Get(@"System\Meta*$EdgeTarget"), Person);

            Person.Get("Surname").AddEdge(EdgeTarget, smzt.Get("String"));
            Person.Get("Age").AddEdge(EdgeTarget, smzt.Get("Integer"));
            Person.Get("NoseLength").AddEdge(EdgeTarget, smzt.Get("Float"));
            Person.Get("Money").AddEdge(EdgeTarget, smzt.Get("Decimal"));
            Person.Get("IsGood").AddEdge(EdgeTarget, smzt.Get("Boolean"));
            Person.Get("IsPretty").AddEdge(EdgeTarget, r.Get(@"TEST\Pretty"));
            Person.Get("IsPretty2").AddEdge(EdgeTarget, r.Get(@"TEST\Pretty"));
            Person.Get("IsPretty3").AddEdge(EdgeTarget, r.Get(@"TEST\Pretty"));

            //Person.AddEdge(smu.Get(@"Class\Attribute"), Person.Get("Surname"));
            // what is it for?

            GeneralUtil.ParseAndExcute(r.Get("TEST"), r.Get(@"TEST"), "{Person:Person1{Name:Radek,Surname:Tereszczuk,Age:34,NoseLength:\"2,3\",Money:999,IsGood:False,IsPretty:},Person:Person2{Name:Maurycy,Surname:Tereszczuk,Age:1,NoseLength:1.1,Money:9999,IsGood:True,IsPretty:}}");

            GeneralUtil.ParseAndExcute(r.Get("TEST"), r.Get(@"TEST"), "{Person:Person3{Name:Radek,Surname:Tereszczuk,Age:34,NoseLength:\"2,3\",Money:999,IsGood:False,IsPretty:},Person:Person4{Name:Maurycy,Surname:Tereszczuk,Age:1,NoseLength:1.1,Money:9999,IsGood:True,IsPretty:}}");

            r.Get(@"TEST\Person1").AddEdge(r.Get(@"System\Meta*$Is"), r.Get(@"TEST\Person"));
            r.Get(@"TEST\Person2").AddEdge(r.Get(@"System\Meta*$Is"), r.Get(@"TEST\Person"));
            r.Get(@"TEST\Person3").AddEdge(r.Get(@"System\Meta*$Is"), r.Get(@"TEST\Person"));
            r.Get(@"TEST\Person4").AddEdge(r.Get(@"System\Meta*$Is"), r.Get(@"TEST\Person"));

            GraphUtil.ReplaceEdge(r.Get(@"TEST\Person1"), "IsPretty", r.Get(@"TEST\Pretty\No"));
            GraphUtil.ReplaceEdge(r.Get(@"TEST\Person2"), "IsPretty", r.Get(@"TEST\Pretty\Yes"));
            GraphUtil.ReplaceEdge(r.Get(@"TEST\Person3"), "IsPretty", r.Get(@"TEST\Pretty\Yes"));
            GraphUtil.ReplaceEdge(r.Get(@"TEST\Person4"), "IsPretty", r.Get(@"TEST\Pretty\Yes"));


            for (int x = 0; x < 1; x++)
            {
                GeneralUtil.ParseAndExcute(r.Get("TEST2"), r.Get(@"TEST"), "{Person:Person1" + x + "{Name:Radek,Surname:Tereszczuk,Age:34,NoseLength:\"2,3\",Money:999,IsGood:False,IsPretty:},Person:Person2" + x + "{Name:Maurycy,Surname:Tereszczuk,Age:1,NoseLength:1.1,Money:9999,IsGood:True,IsPretty:}}");


                GeneralUtil.ParseAndExcute(r.Get("TEST2"), r.Get(@"TEST"), "{Person:Person3" + x + "{Name:Magda,Surname:Tereszczuk,Age:18,NoseLength:\"2,1\",Money:999,IsGood:True,IsPretty:},Person:Person4" + x + "{Name:Jan,Surname:Kuciak,Age:10,NoseLength:0.6,Money:99999,IsGood:True,IsPretty:}}");

                GraphUtil.ReplaceEdge(r.Get(@"TEST2\Person1" + x), "IsPretty", r.Get(@"TEST\Pretty\No"));
                GraphUtil.ReplaceEdge(r.Get(@"TEST2\Person2" + x), "IsPretty", r.Get(@"TEST\Pretty\Yes"));
                GraphUtil.ReplaceEdge(r.Get(@"TEST2\Person3" + x), "IsPretty", r.Get(@"TEST\Pretty\Yes"));
                GraphUtil.ReplaceEdge(r.Get(@"TEST2\Person4" + x), "IsPretty", r.Get(@"TEST\Pretty\Yes"));

                r.Get(@"TEST2\Person1" + x + @"\Radek").AddEdge(r.Get(@"System\Meta*$Is"), smzt.Get("String"));


                r.Get(@"TEST2\Person1" + x).AddEdge(r.Get(@"System\Meta*$Is"), r.Get(@"TEST\Person"));
                r.Get(@"TEST2\Person2" + x).AddEdge(r.Get(@"System\Meta*$Is"), r.Get(@"TEST\Person"));
                r.Get(@"TEST2\Person3" + x).AddEdge(r.Get(@"System\Meta*$Is"), r.Get(@"TEST\Person"));
                r.Get(@"TEST2\Person4" + x).AddEdge(r.Get(@"System\Meta*$Is"), r.Get(@"TEST\Person"));
            }

            for (int x = 0; x < 1; x++)
            {
                for (int y = 0; y < 1; y++)
                {
                    r.Get(@"TEST2\Person1" + x).AddEdge(r.Get(@"TEST\Person\Child"), r.Get(@"TEST2\Person1" + y));
                    r.Get(@"TEST2\Person2" + x).AddEdge(r.Get(@"TEST\Person\Child"), r.Get(@"TEST2\Person2" + y));
                    r.Get(@"TEST2\Person3" + x).AddEdge(r.Get(@"TEST\Person\Child"), r.Get(@"TEST2\Person3" + y));
                    r.Get(@"TEST2\Person4" + x).AddEdge(r.Get(@"TEST\Person\Child"), r.Get(@"TEST2\Person4" + y));
                }
            }

            for (int i = 1; i <= 1; i++)
            {
                IVertex x = r.Get("TEST2").AddVertex(null, i);

                for (int ii = 1; ii <= 1; ii++)
                {
                    IVertex xx = x.AddVertex(null, i + " " + ii);

                    for (int iii = 1; iii <= 1; iii++)
                    {
                        IVertex xxx = xx.AddVertex(null, i + " " + ii + " " + iii);

                        for (int iiii = 1; iiii <= 3; iiii++)
                        {
                            xxx.AddVertex(null, i + " " + ii + " " + iii + " " + iiii);
                        }
                    }
                }
            }

            //r.Get(@"TEST2\1").AddEdge(null, r.Get(@"TEST2\2\2 2\2 2 1"));

            GeneralUtil.ParseAndExcute(r.Get("TEST"), r.Get(@"System\Meta"), "{Diagram:TestDiagram{ZoomVisualiserContent:100,SelectedEdges:,CreationPool:}}");

            r.Get(@"TEST\TestDiagram").AddVertex(r.Get(@"System\Meta\Visualiser\Diagram\SizeX"), 600.0);

            r.Get(@"TEST\TestDiagram").AddVertex(r.Get(@"System\Meta\Visualiser\Diagram\SizeY"), 600.0);

            r.Get(@"TEST\TestDiagram").AddEdge(r.Get(@"System\Meta*$Is"), r.Get(@"System\Meta*Diagram"));

            IVertex i1 = r.Get(@"TEST\TestDiagram").AddVertex(r.Get(@"System\Meta*Item"), null);

            GeneralUtil.ParseAndExcute(i1, r.Get(@"System\Meta"), "{PositionX:0,PositionY:0,SizeX:100,SizeY:100}");

            IVertex i2 = r.Get(@"TEST\TestDiagram").AddVertex(r.Get(@"System\Meta*Item"), null);

            GeneralUtil.ParseAndExcute(i2, r.Get(@"System\Meta"), "{PositionX:200,PositionY:200,SizeX:100,SizeY:100}");

            i1.AddEdge(r.Get(@"System\Meta*$Is"), r.Get(@"System\Meta\Visualiser\DiagramInternal\DiagramRectangleItem"));

            i1.AddEdge(r.Get(@"System\Meta\Visualiser\DiagramInternal\DiagramItemBase\Definition"), r.Get(@"System\Data\Visualiser\Diagram\Object"));

            Edge.AddEdgeByToVertex(i1, r.Get(@"System\Meta\ZeroTypes\HasBaseEdge\BaseEdge"), r.Get(@"TEST\Person1"));

            i2.AddEdge(r.Get(@"System\Meta*$Is"), r.Get(@"System\Meta\Visualiser\DiagramInternal\DiagramRectangleItem"));

            i2.AddEdge(r.Get(@"System\Meta\Visualiser\DiagramInternal\DiagramItemBase\Definition"), r.Get(@"System\Data\Visualiser\Diagram\Object"));

            Edge.AddEdgeByToVertex(i2, r.Get(@"System\Meta\ZeroTypes\HasBaseEdge\BaseEdge"), r.Get(@"TEST\Person2"));



            i1 = r.Get(@"TEST\TestDiagram").AddVertex(r.Get(@"System\Meta*Item"), null);

            GeneralUtil.ParseAndExcute(i1, r.Get(@"System\Meta"), "{PositionX:350,PositionY:0}");

            i2 = r.Get(@"TEST\TestDiagram").AddVertex(r.Get(@"System\Meta*Item"), null);

            GeneralUtil.ParseAndExcute(i2, r.Get(@"System\Meta"), "{PositionX:0,PositionY:350}");

            i1.AddEdge(r.Get(@"System\Meta\Visualiser\DiagramInternal\DiagramItemBase\Definition"), r.Get(@"System\Data\Visualiser\Diagram\Object"));

            i1.AddEdge(r.Get(@"System\Meta*$Is"), r.Get(@"System\Meta\Visualiser\DiagramInternal\DiagramRectangleItem"));

            Edge.AddEdgeByToVertex(i1, r.Get(@"System\Meta\ZeroTypes\HasBaseEdge\BaseEdge"), r.Get(@"TEST\Person3"));

            i2.AddEdge(r.Get(@"System\Meta*$Is"), r.Get(@"System\Meta\Visualiser\DiagramInternal\DiagramRectangleItem"));

            i2.AddEdge(r.Get(@"System\Meta\Visualiser\DiagramInternal\DiagramItemBase\Definition"), r.Get(@"System\Data\Visualiser\Diagram\Object"));

            Edge.AddEdgeByToVertex(i2, r.Get(@"System\Meta\ZeroTypes\HasBaseEdge\BaseEdge"), r.Get(@"TEST\Person4"));

            /////////////////////

            /* GeneralUtil.ParseAndExcute(r.Get("TEST"), r.Get(@"System\Meta"), "{Class:X1,Class:X2,Class:X3,Class:X4,Class:PersonA,Class:PersonB,Class:PersonB2{Attribute:New}}");
             *
             * r.Get(@"TEST\PersonB2\New").AddEdge(r.Get(@"System\Meta*$EdgeTarget"), r.Get(@"System\Meta*String"));
             *
             * VertexOperations.AddInstance(r.Get("TEST"), r.Get(@"TEST\PersonB2"), r.Get(@"TEST\Person")).Value="XXX";
             *
             * r.Get(@"TEST\X2").AddEdge(r.Get(@"System\Meta*$Inherits"), r.Get(@"TEST\Person"));
             * r.Get(@"TEST\X3").AddEdge(r.Get(@"System\Meta*$Inherits"), r.Get(@"TEST\X2"));
             * r.Get(@"TEST\X4").AddEdge(r.Get(@"System\Meta*$Inherits"), r.Get(@"TEST\X3"));
             *
             * r.Get(@"TEST\PersonA").AddEdge(r.Get(@"System\Meta*$Inherits"), r.Get(@"TEST\Person"));
             * r.Get(@"TEST\PersonB").AddEdge(r.Get(@"System\Meta*$Inherits"), r.Get(@"TEST\Person"));
             * r.Get(@"TEST\PersonB2").AddEdge(r.Get(@"System\Meta*$Inherits"), r.Get(@"TEST\PersonB"));
             *
             * r.Get(@"TEST\XXX").AddEdge(r.Get(@"System\Meta*$Is"), r.Get(@"TEST\PersonA"));
             * r.Get(@"TEST\XXX").AddEdge(r.Get(@"System\Meta*$Is"), r.Get(@"TEST\X4"));*/

            //////////////////////

            IVertex tt = r.Get("TEST").AddVertex(r.Get("System*Class"), "TestClass");

            for (int x = 0; x < 1; x++)
            {
                for (int y = 0; y < 1; y++)
                {
                    IVertex tta = tt.AddVertex(r.Get("System*Attribute"), "a" + x + " " + y + ";" + randomChars());
                    tta.AddVertex(r.Get("System*$Group"), x.ToString());
                    tta.AddVertex(r.Get("System*$Section"), y.ToString());

                    tta.AddEdge(r.Get("System*$EdgeTarget"), r.Get("System*String"));

                    IVertex ttb = tt.AddVertex(r.Get("System*Attribute"), "b" + x + " " + y + ";" + randomChars());
                    ttb.AddVertex(r.Get("System*$Group"), x.ToString());
                    //ttb.AddVertex(r.Get("System*$Section"), y.ToString());
                    ttb.AddEdge(r.Get("System*$EdgeTarget"), r.Get("System*String"));

                    IVertex ttc = tt.AddVertex(r.Get("System*Attribute"), "c" + x + " " + y + ";" + randomChars());
                    ttc.AddVertex(r.Get("System*$Group"), x.ToString());
                    ttc.AddVertex(r.Get("System*$Section"), y.ToString());
                    ttc.AddVertex(r.Get("System*$MaxCardinality"), 6);
                    ttc.AddEdge(r.Get("System*$EdgeTarget"), r.Get("System*String"));
                }
            }

            VertexOperations.AddInstance(r.Get("TEST"), tt);

            //////////////////////


            IVertex start = r.Get(@"TEST3");

            for (int i = 0; i < 1; i++)
            {
                IVertex sm = start.AddVertex(r.Get(@"System\Meta\UML\StateMachine"), "sm " + i);

                for (int ii = 0; ii < 1; ii++)
                {
                    sm.AddVertex(r.Get(@"System\Meta\UML\StateMachine\State"), "state " + ii + " of machine" + i);
                }

                IVertex allstates = sm.GetAll("");

                foreach (IEdge e in allstates)
                {
                    foreach (IEdge ee in allstates)
                    {
                        e.To.AddEdge(r.Get(@"System\Meta\UML\StateMachine\State\Transition"), ee.To);
                    }
                }
            }

            //////////////////////

            IVertex associations = r.GetAll(@"TEST\Person\Association:");
            IVertex ismeta       = r.Get(@"System\Meta*$Is");
            IVertex asmeta       = r.Get(@"System\Meta\UML\Class\Association");

            //foreach (IEdge v in associations)
            //   v.To.AddEdge(ismeta, asmeta);

            IVertex attributes = r.GetAll(@"TEST\Person\Attribute:");
            //IVertex ismeta=r.Get(@"System\Meta*$Is");
            IVertex ameta = r.Get(@"System\Meta\UML\Class\Attribute");

            foreach (IEdge v in attributes)
            {
                v.To.AddEdge(ismeta, ameta);
            }

            attributes = r.GetAll(@"TEST3\\Attribute:");

            foreach (IEdge v in attributes)
            {
                v.To.AddEdge(ismeta, ameta);
            }

            IVertex test = r.Get("TEST");

            test.AddVertex(test.AddVertex(null, "Counter"), (int)0);


            IVertex vvv = VertexOperations.AddInstance(test, r.Get(@"System\Meta\Base\$Import"));

            vvv.AddEdge(r.Get(@"System\Meta\Base\Vertex\$$IsLink"), MinusZero.Instance.Empty);

            vvv.Value = "tst";

            test.AddEdge(r.Get(@"TEST\tst"), r.Get(@"System\Meta\Visualiser"));

            /////

            IVertex aattributes = r.GetAll(@"TEST\\Attribute:");

            IVertex isAggregation = r.Get(@"System\Meta\Base\Vertex\$IsAggregation");
            IVertex empty         = r.Get(@"System\Meta\Base\$Empty");

            foreach (IEdge v in aattributes)
            {
                v.To.AddEdge(isAggregation, empty);
            }

            IVertex aggregations = r.GetAll(@"TEST\\Aggregation:");

            foreach (IEdge v in aggregations)
            {
                v.To.AddEdge(isAggregation, empty);
            }

            ///

            IVertex vx = r.AddVertex(null, "X");

            IVertex my = vx.AddVertex(null, "j e s ");

            IVertex vxx = vx.AddVertex(null, "VXX");

            IVertex c = VertexOperations.AddInstance(vxx, smu.Get("[]"));

            c.Value = "";

            c.AddVertex(smu.Get(@"MultiOperator\Expression"), "raz");

            IVertex dwa = c.AddVertex(smu.Get(@"MultiOperator\Expression"), "dwa");

            //dwa.AddVertex(smb.Get(@"Vertex\$Description"), "3 3 3");

            c.AddEdge(smu.Get(@"MultiOperator\Expression"), my);

            IVertex cztery = c.AddVertex(smu.Get(@"MultiOperator\Expression"), "cztery");

            //cztery.AddVertex(smb.Get(@"Vertex\$Description"), "cztery 1");

            //cztery.AddVertex(smb.Get(@"Vertex\$Description"), "cztery 2");


            // IVertex zzz = vx.AddVertex(null, "raz");

            //   IVertex yyy = vx.AddVertex(null, "dwa");

            //  IVertex wh = VertexOperations.AddInstance(vx, smu.Get(@"While"));


            // IVertex plus = VertexOperations.AddInstance(wh, smu.Get("-"), smu.Get(@"While\Test"));

            IVertex plus = VertexOperations.AddInstance(c, smu.Get("+"), smu.Get(@"MultiOperator\Expression"));

            //plus.AddVertex(smb.Get(@"Vertex\$Description"), "plus opis MAIN");

            //plus.AddVertex(null, "KUPA");

            //  plus.AddVertex(smu.Get(@"DoubleOperator\LeftExpression"), "10");

            // plus.AddVertex(smu.Get(@"DoubleOperator\RightExpression"), "30");

            plus.Value = "";

            // IVertex h = vx.AddVertex(null, "h");

            //  vx.AddEdge(zzz,plus);

            //  vx.AddVertex(zzz, "");

            // vx.AddEdge(yyy, plus);

            IVertex leftplus = VertexOperations.AddInstance(plus, smu.Get("-"), smu.Get(@"DoubleOperator\LeftExpression"));

            leftplus.Value = "";

            leftplus.AddVertex(smu.Get(@"DoubleOperator\LeftExpression"), "1");

            leftplus.AddVertex(smu.Get(@"DoubleOperator\RightExpression"), "2");

            IVertex rightplus = VertexOperations.AddInstance(plus, smu.Get("+"), smu.Get(@"DoubleOperator\RightExpression"));

            //rightplus.AddVertex(smb.Get(@"Vertex\$Description"), "plus opis tak");

            rightplus.Value = "";

            IVertex w3 = rightplus.AddVertex(smu.Get(@"DoubleOperator\LeftExpression"), "3");
            // w3.AddVertex(smb.Get(@"Vertex\$Description"), "3 3 3");


            IVertex v4 = rightplus.AddVertex(smu.Get(@"DoubleOperator\RightExpression"), "4");

            v4.AddVertex(smb.Get(@"Vertex\$Description"), "opis");



            //////////////////////////


            IVertex xXx = r.AddVertex(null, "XX");


            addf(xXx);


            //////////////////////////

            IVertex yv = r.AddVertex(null, "Y");
        }
Esempio n. 20
0
        public void UpdateBaseEdge()
        {
            DispachAllSubVisualisers();

            BaseVertexEdgeAdded_PreFill = false;
            BaseVertexEdgeAdded         = false;


            //  if (!isLoaded)
            //    return;

            IVertex basTo = Vertex.Get(@"BaseEdge:\To:");

            if (basTo != null)
            {
                if ((string)Vertex.Get(@"SectionsAsTabs:").Value == "True")
                {
                    SectionsAsTabs = true;
                }
                else
                {
                    SectionsAsTabs = false;
                }

                if ((string)Vertex.Get(@"MetaOnLeft:").Value == "True")
                {
                    MetaOnLeft = true;
                }
                else
                {
                    MetaOnLeft = false;
                }

                if ((string)Vertex.Get(@"ExpertMode:").Value == "True")
                {
                    ExpertMode = true;
                }
                else
                {
                    ExpertMode = false;
                }

                ColumnNumber = GraphUtil.GetIntegerValue(Vertex.Get(@"ColumnNumber:"));

                IVertex metaForForm = getMetaForForm();

                PreFillForm();

                InitializeControlContent();

                List <IEdge> childs = new List <IEdge>();

                if (metaForForm == null || metaForForm.Count() == 0) // if Form is not typed
                {
                    IList <IVertex> visited = new List <IVertex>();

                    foreach (IEdge e in basTo)
                    {
                        childs.Add(e);

                        if (!visited.Contains(e.Meta) && e.Meta.Get("$Hide:") == null)
                        {
                            if (basTo.GetAll(e.Meta + ":").Count() > 1)
                            {
                                AddEdge(e.Meta, true);
                                visited.Add(e.Meta);
                            }
                            else
                            {
                                AddEdge(e.Meta, false);
                            }
                        }
                    }
                }
                else // Form is typed
                {
                    foreach (IEdge e in VertexOperations.GetChildEdges(metaForForm))
                    {
                        childs.Add(e);

                        if (e.To.Get("$Hide:") == null)
                        {
                            if (GraphUtil.GetIntegerValue(e.To.Get("$MaxCardinality:")) > 1 || GraphUtil.GetIntegerValue(e.To.Get("$MaxCardinality:")) == -1)
                            {
                                AddEdge(e.To, true);
                            }
                            else
                            {
                                AddEdge(e.To, false);
                            }
                        }
                    }
                }

                if (ExpertMode)
                {
                    foreach (IEdge e in MinusZero.Instance.Root.Get(@"System\Meta\Base\Vertex"))
                    {
                        bool contains = false;

                        foreach (IEdge ee in childs)
                        {
                            if (GeneralUtil.CompareStrings(ee.To, e.To))
                            {
                                contains = true;
                            }
                        }

                        if (contains == false)
                        {
                            AddEdge(e.To, false);
                        }
                    }
                }

                if (MetaOnLeft)
                {
                    if (!HasTabs)
                    {
                        CorrectWidth(TabList[""]);
                    }
                }
            }
        }
Esempio n. 21
0
        private void PreFillForm()
        {
            TabList = new Dictionary <string, TabInfo>();

            IVertex basTo = Vertex.Get(@"BaseEdge:\To:");

            IVertex metaForForm = getMetaForForm();

            List <IEdge> childs = new List <IEdge>();

            if (metaForForm == null || metaForForm.Count() == 0) // if Form is not typed
            {
                IList <IVertex> visited = new List <IVertex>();

                foreach (IEdge e in basTo)
                {
                    childs.Add(e);
                    if (!visited.Contains(e.Meta) && e.Meta.Get("$Hide:") == null)
                    {
                        if (basTo.GetAll(e.Meta + ":").Count() > 1)
                        {
                            PreFillFormAnalyseEdge(e.Meta, true);
                            visited.Add(e.Meta);
                        }
                        else
                        {
                            PreFillFormAnalyseEdge(e.Meta, false);
                        }
                    }
                }
            }
            else // Form is typed
            {
                foreach (IEdge e in VertexOperations.GetChildEdges(metaForForm))
                {
                    childs.Add(e);

                    if (e.To.Get("$Hide:") == null)
                    {
                        if (GraphUtil.GetIntegerValue(e.To.Get("$MaxCardinality:")) > 1 || GraphUtil.GetIntegerValue(e.To.Get("$MaxCardinality:")) == -1)
                        {
                            PreFillFormAnalyseEdge(e.To, true);
                        }
                        else
                        {
                            PreFillFormAnalyseEdge(e.To, false);
                        }
                    }
                }
            }

            if (ExpertMode)
            {
                foreach (IEdge e in MinusZero.Instance.Root.Get(@"System\Meta\Base\Vertex"))
                {
                    bool contains = false;

                    foreach (IEdge ee in childs)
                    {
                        if (GeneralUtil.CompareStrings(ee.To, e.To))
                        {
                            contains = true;
                        }
                    }

                    if (contains == false)
                    {
                        PreFillFormAnalyseEdge(e.To, false);
                    }
                }
            }
        }
Esempio n. 22
0
        void AddOpenVisualiserItems()
        {
            MenuItem OpenVisualiser = createMenuItem("Open As");

            this.Items.Add(OpenVisualiser);

            // IVertex vislist = root.GetAll(@"System\Meta\Visualiser\"); BaseEdge ones currently not supported

            IVertex vislist = root.GetAll(@"System\Meta\Visualiser\Class:{$Inherits:HasBaseEdge}");

            foreach (IEdge vis in vislist)
            {
                MenuItem v = createMenuItem(vis.To.Value.ToString());

                v.Tag = vis.To;

                v.Click += OnOpenVisualiser;

                OpenVisualiser.Items.Add(v);
            }

            MenuItem Special = createMenuItem("Open special");

            this.Items.Add(Special);

            /////////////////////// meta

            MenuItem OpenMetaVisualiser = createMenuItem("Open Visualiser for Meta");

            Special.Items.Add(OpenMetaVisualiser);

            foreach (IEdge vis in vislist)
            {
                MenuItem v = createMenuItem(vis.To.Value.ToString());

                v.Tag = vis.To;

                v.Click += OnOpenMetaVisualiser;

                OpenMetaVisualiser.Items.Add(v);
            }

            /////////////////////// floating

            MenuItem OpenVisualiserFloating = createMenuItem("Open Floating Visualiser");

            Special.Items.Add(OpenVisualiserFloating);

            foreach (IEdge vis in vislist)
            {
                MenuItem v = createMenuItem(vis.To.Value.ToString());

                v.Tag = vis.To;

                v.Click += OnOpenVisualiserFloating;

                OpenVisualiserFloating.Items.Add(v);
            }

            /////////////////////// base synchronised

            MenuItem OpenVisualiserSelectedBase = createMenuItem("Open Master-Detail (SelectedEdges<>BaseEdge synchronised) Visualiser");

            Special.Items.Add(OpenVisualiserSelectedBase);

            foreach (IEdge vis in vislist)
            {
                MenuItem v = createMenuItem(vis.To.Value.ToString());

                v.Tag = vis.To;

                v.Click += OnOpenVisualiserSelectedBase;

                OpenVisualiserSelectedBase.Items.Add(v);
            }

            /////////////////////// selected synchronised

            vislist = root.GetAll(@"System\Meta\Visualiser\Class:{$Inherits:HasSelectedEdges}");

            MenuItem OpenVisualiserSelectedSelected = createMenuItem("Open SelectedEdges<>SelectedEdges synchronised Visualiser");

            Special.Items.Add(OpenVisualiserSelectedSelected);

            foreach (IEdge vis in vislist)
            {
                MenuItem v = createMenuItem(vis.To.Value.ToString());

                v.Tag = vis.To;

                v.Click += OnOpenVisualiserSelectedSelected;

                OpenVisualiserSelectedSelected.Items.Add(v);
            }
        }