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"; } } }
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:")); } } }
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; }
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); }
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; }
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; } }
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; } }
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); }