Exemple #1
0
        protected override void OnSelectionChanged(SelectionChangedEventArgs _e)
        {
            if (DoingSelectionChanged == false)
            {
                DoingSelectionChanged = true;

                if (this.SelectedItem != null && ((ComboBoxItem)this.SelectedItem).Tag is IVertex)
                {
                    IVertex tag = (IVertex)((ComboBoxItem)this.SelectedItem).Tag;

                    IVertex bev = Vertex.Get("BaseEdge:");

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

                        if (tov != tag) // is there any change ?
                        {
                            //GraphUtil.ReplaceEdge(fromv, metav, tag);

                            GraphUtil.CreateOrReplaceEdge(fromv, metav, tag);

                            GraphUtil.CreateOrReplaceEdge(bev, MinusZero.Instance.Root.Get(@"System\Meta\ZeroTypes\Edge\To"), tag);
                        }
                    }
                }

                DoingSelectionChanged = false;
            }

            base.OnSelectionChanged(_e);
        }
        protected override void OnToggle()
        {
            base.OnToggle();

            if (IsNull)
            {
                IVertex r = MinusZero.Instance.Root;

                IVertex from   = Vertex.Get(@"BaseEdge:\From:");
                IVertex meta   = Vertex.Get(@"BaseEdge:\Meta:");
                IVertex toMeta = r.Get(@"System\Meta\ZeroTypes\Edge\To");

                if (from != null && meta != null)
                {
                    //GraphUtil.ReplaceEdge(Vertex.Get("BaseEdge:"), "To", GraphUtil.SetVertexValue(from, meta, "True")); // NOT
                    //GraphUtil.SetVertexValue(Vertex.Get("BaseEdge:"), toMeta, GraphUtil.SetVertexValue(from, meta, "True")); // NOT!!!!

                    GraphUtil.CreateOrReplaceEdge(Vertex.Get("BaseEdge:"), toMeta, GraphUtil.SetVertexValue(from, meta, "True"));

                    IsNull = false;
                }
            }

            if (Vertex.Get(@"BaseEdge:\To:") != null)
            {
                if (this.IsChecked == true)
                {
                    Vertex.Get(@"BaseEdge:\To:").Value = "True";
                }
                else
                {
                    Vertex.Get(@"BaseEdge:\To:").Value = "False";
                }
            }
        }
Exemple #3
0
        void Button_Click(object sender, RoutedEventArgs e)
        {
            if (buttonStateIsNew) // new
            {
                IVertex baseVertex = Vertex.Get(@"BaseEdge:\From:");
                IVertex meta       = Vertex.Get(@"BaseEdge:\Meta:");

                IVertex newVertex = VertexOperations.AddInstanceByEdgeVertex(baseVertex, meta);

                GraphUtil.CreateOrReplaceEdge(Vertex.Get(@"BaseEdge:"), MinusZero.Instance.Root.Get(@"System\Meta\ZeroTypes\Edge\To"), newVertex);

                if (newVertex != null)
                {
                    ButtonSetOpen();
                }
            }
            else // open
            {
                FormVisualiser v = (FormVisualiser)UIWpf.getParentFormVisualiser(this);

                if (v != null)
                {
                    Edge.CopyAndReplaceEdge(v.Vertex, "BaseEdge", Vertex.Get("BaseEdge:"));
                }
                else
                {
                    //BaseCommands.Open(Vertex.Get("BaseEdge:"), null); // want Form visualiser
                    BaseCommands.OpenFormVisualiser(Vertex.Get("BaseEdge:"));
                }
            }
        }
Exemple #4
0
        public static void DoDropForVertexVisualiser(object orgin, IVertex baseEdge, DragEventArgs e)
        {
            IVertex r = MinusZero.Instance.Root;

            object sender = e.Data.GetData("DragSource");

            if (sender == null || orgin == sender)
            {
                return;
            }

            if (e.Data.GetDataPresent("Vertex"))
            {
                IVertex dndVertex = e.Data.GetData("Vertex") as IVertex;

                IEdge ee = dndVertex.FirstOrDefault();

                if (ee != null)
                {
                    IVertex toMeta = r.Get(@"System\Meta\ZeroTypes\Edge\To");
                    GraphUtil.CreateOrReplaceEdge(baseEdge.Get("From:"), baseEdge.Get("Meta:"), ee.To.Get("To:"));
                    GraphUtil.CreateOrReplaceEdge(baseEdge, toMeta, ee.To.Get("To:")); // this is needed for some update scenarios
                }


                if (sender is IHasSelectableEdges)
                {
                    ((IHasSelectableEdges)sender).UnselectAllSelectedEdges();
                }

                GraphUtil.RemoveAllEdges(dndVertex);
            }

            MinusZero.Instance.IsGUIDragging = false;
        }
Exemple #5
0
        public static IVertex NewDiagram(IVertex baseVertex, IVertex inputVertex)
        {
            IVertex dv = VertexOperations.AddInstance(baseVertex.Get("To:"), MinusZero.Instance.Root.Get(@"System\Meta\Visualiser\Class:Diagram"));

            GraphUtil.CreateOrReplaceEdge(dv, MinusZero.Instance.Root.Get(@"System\Meta\Visualiser\Class:Diagram\CreationPool"), baseVertex.Get("To:"));

            MinusZero.Instance.DefaultShow.EditDialog(dv, null);

            return(null);
        }
Exemple #6
0
        public void AddDiagramLineVertex(IEdge edge, IVertex diagramLineDefinition, DiagramItemBase toItem)
        {
            IVertex r = MinusZero.Instance.Root;

            ((EasyVertex)Vertex).CanFireChangeEvent = false;

            IVertex l = VertexOperations.AddInstance(Vertex, diagramLineDefinition.Get("DiagramLineClass:"), r.Get(@"System\Meta\Visualiser\DiagramInternal\DiagramItemBase\DiagramLine"));

            GraphUtil.CreateOrReplaceEdge(l, r.Get(@"System\Meta\Visualiser\DiagramInternal\DiagramLineBase\ToDiagramItem"), toItem.Vertex);

            GraphUtil.CreateOrReplaceEdge(l, r.Get(@"System\Meta\Visualiser\DiagramInternal\DiagramLineBase\Definition"), diagramLineDefinition);

            Edge.CreateEdgeAndCreateOrReplaceEdgeByMeta(l, r.Get(@"System\Meta\ZeroTypes\HasBaseEdge\BaseEdge"), edge);

            AddDiagramLineObject(toItem, l);

            ((EasyVertex)Vertex).CanFireChangeEvent = true;
        }
Exemple #7
0
        protected void OnBoxTextChanged(object sender, TextChangedEventArgs e)
        {
            if (ValueChangeing == false)
            {
                ValueChangeing = true;

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

                if (bv == null || bv.Value == null)
                {
                    IVertex r = MinusZero.Instance.Root;

                    IVertex from   = Vertex.Get(@"BaseEdge:\From:");
                    IVertex meta   = Vertex.Get(@"BaseEdge:\Meta:");
                    IVertex toMeta = r.Get(@"System\Meta\ZeroTypes\Edge\To");

                    if (from != null && meta != null)
                    {
                        //GraphUtil.SetVertexValue(from, meta, Parse(TextBox.Text)); // this is not enough. BaseEdge:\To: is not set

                        GraphUtil.CreateOrReplaceEdge(Vertex.Get("BaseEdge:"), toMeta, GraphUtil.SetVertexValue(from, meta, Parse(TextBox.Text)));

                        IsNull = false;
                    }
                }
                else
                //if (bv != null)
                {
                    bv.Value = Parse(TextBox.Text);

                    if (IsRanged)
                    {
                        Slider.Value = GraphUtil.ToDouble <T>((T)bv.Value);
                    }
                }

                ValueChangeing = false;
            }
        }
Exemple #8
0
        protected void OnSliderValueChanged(object sender, RoutedPropertyChangedEventArgs <double> e)
        {
            if (ValueChangeing == false)
            {
                ValueChangeing = true;

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

                if (bv == null || bv.Value == null)
                {
                    IVertex r = MinusZero.Instance.Root;

                    IVertex from   = Vertex.Get(@"BaseEdge:\From:");
                    IVertex meta   = Vertex.Get(@"BaseEdge:\Meta:");
                    IVertex toMeta = r.Get(@"System\Meta\ZeroTypes\Edge\To");

                    if (from != null && meta != null)
                    {
                        //GraphUtil.SetVertexValue(from, meta, GraphUtil.FromDouble<T>(Slider.Value)); // this is not enough. BaseEdge:\To: is not se

                        GraphUtil.CreateOrReplaceEdge(Vertex.Get("BaseEdge:"), toMeta, GraphUtil.SetVertexValue(from, meta, GraphUtil.FromDouble <T>(Slider.Value)));

                        IsNull = false;
                    }

                    TextBox.Text = Slider.Value.ToString();
                }
                else
                {
                    bv.Value     = GraphUtil.FromDouble <T>(Slider.Value);
                    TextBox.Text = Slider.Value.ToString();
                }

                ValueChangeing = false;
            }
        }
Exemple #9
0
        protected void AddEdge(IVertex meta, bool isSet)
        {
            if (DisplayBaseVertex && BaseVertexEdgeAdded == false)
            {
                BaseVertexEdge      = getMetaForForm();
                BaseVertexEdgeAdded = true;
                AddEdge(BaseVertexEdge, false);
            }

            string group   = getGroup(meta);
            string section = getSection(meta);

            IVertex r = MinusZero.Instance.Root;

            TextBlock metaControl = new TextBlock();

            if (meta == null)
            {
                metaControl.Text   = "XXX";
                metaControl.Height = 0;
            }
            else
            {
                metaControl.Text = (string)meta.Value;
            }

            metaControl.FontStyle  = FontStyles.Italic;
            metaControl.FontWeight = UIWpf.MetaWeight;
            metaControl.Foreground = (Brush)FindResource("0GrayBrush");
            metaControl.FontStyle  = FontStyles.Italic;

            System.Windows.FrameworkElement dataControl = null;

            if (isSet)
            {
                TableVisualiser tv = new TableVisualiser();

                if (ExpertMode)
                {
                    GraphUtil.SetVertexValue(tv.Vertex, MinusZero.Instance.Root.Get(@"System\Meta\Visualiser\Table\ExpertMode"), "True");
                }


                // need to remove and add to have "transaction"
                GraphUtil.CreateOrReplaceEdge(tv.Vertex.Get("ToShowEdgesMeta:"), r.Get(@"System\Meta\ZeroTypes\Edge\Meta"), meta);

                IVertex v = tv.Vertex.Get("ToShowEdgesMeta:");

                GraphUtil.DeleteEdgeByMeta(tv.Vertex, "ToShowEdgesMeta");

                tv.Vertex.AddEdge(MinusZero.Instance.Root.Get(@"System\Meta\Visualiser\Table\ToShowEdgesMeta"), v);

                //GraphUtil.CreateOrReplaceEdge(tv.Vertex.Get("ToShowEdgesMeta:"), r.Get(@"System\Meta\ZeroTypes\Edge\To"), e.To); // do not need

                GraphUtil.ReplaceEdge(tv.Vertex.Get("BaseEdge:"), "To", Vertex.Get(@"BaseEdge:\To:"));

                dataControl = tv;
            }
            else
            {
                if (meta == BaseVertexEdge)
                {
                    StringVisualiser sv = new StringVisualiser();

                    Edge.ReplaceEdgeEdges(sv.Vertex.Get("BaseEdge:"), Vertex.GetAll(@"BaseEdge:\To:").FirstOrDefault());

                    dataControl = sv;
                }
                else
                {
                    VisualiserEditWrapper w = new VisualiserEditWrapper();

                    IEdge e;

                    e = Vertex.GetAll(@"BaseEdge:\To:\" + (string)meta.Value + ":").FirstOrDefault();

                    if (e == null) // no edge in data vertex
                    {
                        w.BaseEdge = new EasyEdge(Vertex.Get(@"BaseEdge:\To:"), meta, null);
                    }
                    else
                    {
                        w.BaseEdge = e;
                    }

                    dataControl = w;
                }
            }

            ControlInfo ci = new ControlInfo();

            ci.MetaControl = metaControl;
            ci.DataControl = dataControl;

            if (meta == null)
            { // BaseEdgeVertex
                TabList[group].ControlInfos.Add(MinusZero.Instance.CreateTempVertex(), ci);
            }
            else
            {
                if (TabList[group].ControlInfos.ContainsKey(meta))
                {
                    int x = 0; // same meta sub vertex two times in meta vertex
                }
                else
                {
                    TabList[group].ControlInfos.Add(meta, ci);
                }
            }

            Panel place = GetUIPlace(group, section, ci);

            if (MetaOnLeft)
            {
                metaControl.TextAlignment = TextAlignment.Right;

                StackPanel s = new StackPanel();
                s.Orientation = Orientation.Horizontal;

                ci.GapControl = new StackPanel();

                s.Children.Add(ci.GapControl);

                s.Children.Add(metaControl);

                Border b2 = new Border();

                b2.BorderThickness = new System.Windows.Thickness(metaVsDataSeparator, 0, 0, 0);

                s.Children.Add(b2);

                s.Children.Add(dataControl);

                place.Children.Add(s);
            }
            else
            {
                place.Children.Add(metaControl);

                place.Children.Add(dataControl);
            }


            Border b = new Border();

            b.BorderThickness = new System.Windows.Thickness(0, controlLineVsControlLineSeparator, 0, 0);

            place.Children.Add(b);
        }