public NNGraph() { InitializeComponent(); _editorManager = new EditorObjectManager(graphArea, zoomCtrl); var dgLogic = new LogicCoreExample(); graphArea.LogicCore = dgLogic; graphArea.VertexSelected += graphArea_VertexSelected; graphArea.EdgeSelected += graphArea_EdgeSelected; graphArea.SetVerticesMathShape(VertexShape.Circle); dgLogic.DefaultLayoutAlgorithm = LayoutAlgorithmTypeEnum.Custom; dgLogic.DefaultOverlapRemovalAlgorithm = OverlapRemovalAlgorithmTypeEnum.None; dgLogic.DefaultEdgeRoutingAlgorithm = EdgeRoutingAlgorithmTypeEnum.None; dgLogic.EdgeCurvingEnabled = true; zoomCtrl.IsAnimationEnabled = false; ZoomControl.SetViewFinderVisibility(zoomCtrl, Visibility.Visible); zoomCtrl.Zoom = 2; zoomCtrl.MinZoom = .5; zoomCtrl.MaxZoom = 50; zoomCtrl.ZoomSensitivity = 25; zoomCtrl.MouseDown += zoomCtrl_MouseDown; butDelete.Checked += ToolbarButton_Checked; butSelect.Checked += ToolbarButton_Checked; butEdit.Checked += ToolbarButton_Checked; butSelect.IsChecked = true; }
private void GeneralGraph_Constructor() { var gg_Logic = new LogicCoreExample(); gg_Area.LogicCore = gg_Logic; //gg_Area.DefaulOverlapRemovalAlgorithm gg_layalgo.ItemsSource = Enum.GetValues(typeof(LayoutAlgorithmTypeEnum)).Cast<LayoutAlgorithmTypeEnum>(); gg_layalgo.SelectedIndex = 0; gg_oralgo.ItemsSource = Enum.GetValues(typeof(OverlapRemovalAlgorithmTypeEnum)).Cast<OverlapRemovalAlgorithmTypeEnum>(); gg_oralgo.SelectedIndex = 0; gg_eralgo.ItemsSource = Enum.GetValues(typeof(EdgeRoutingAlgorithmTypeEnum)).Cast<EdgeRoutingAlgorithmTypeEnum>(); gg_eralgo.SelectedIndex = 2; gg_but_randomgraph.Click += gg_but_randomgraph_Click; gg_vertexCount.Text = "30"; gg_async.Checked += gg_async_Checked; gg_async.Unchecked += gg_async_Checked; gg_Area.RelayoutFinished += gg_Area_RelayoutFinished; gg_Area.GenerateGraphFinished += gg_Area_GenerateGraphFinished; gg_Logic.DefaultEdgeRoutingAlgorithm = EdgeRoutingAlgorithmTypeEnum.None; ZoomControl.SetViewFinderVisibility(gg_zoomctrl, System.Windows.Visibility.Visible); gg_zoomctrl.IsAnimationDisabled = false; gg_zoomctrl.MaxZoomDelta = 2; this.Loaded += GG_Loaded; }
private void GeneralGraph_Constructor() { var gg_Logic = new LogicCoreExample(); gg_Area.LogicCore = gg_Logic; //gg_Area.DefaulOverlapRemovalAlgorithm gg_layalgo.ItemsSource = Enum.GetValues(typeof(LayoutAlgorithmTypeEnum)).Cast <LayoutAlgorithmTypeEnum>(); gg_layalgo.SelectedIndex = 0; gg_oralgo.ItemsSource = Enum.GetValues(typeof(OverlapRemovalAlgorithmTypeEnum)).Cast <OverlapRemovalAlgorithmTypeEnum>(); gg_oralgo.SelectedIndex = 0; gg_eralgo.ItemsSource = Enum.GetValues(typeof(EdgeRoutingAlgorithmTypeEnum)).Cast <EdgeRoutingAlgorithmTypeEnum>(); gg_eralgo.SelectedIndex = 2; gg_but_randomgraph.Click += gg_but_randomgraph_Click; gg_vertexCount.Text = "30"; gg_async.Checked += gg_async_Checked; gg_async.Unchecked += gg_async_Checked; gg_Area.RelayoutFinished += gg_Area_RelayoutFinished; gg_Area.GenerateGraphFinished += gg_Area_GenerateGraphFinished; gg_Logic.DefaultEdgeRoutingAlgorithm = EdgeRoutingAlgorithmTypeEnum.None; ZoomControl.SetViewFinderVisibility(gg_zoomctrl, System.Windows.Visibility.Visible); gg_zoomctrl.IsAnimationDisabled = false; gg_zoomctrl.MaxZoomDelta = 2; this.Loaded += GG_Loaded; }
private void GenerateGraph() { var logicCore = new LogicCoreExample() { Graph = ShowcaseHelper.GenerateDataGraph(3, false) }; var vList = logicCore.Graph.Vertices.ToList(); //add edges ShowcaseHelper.AddEdge(logicCore.Graph, vList[0], vList[1]); ShowcaseHelper.AddEdge(logicCore.Graph, vList[1], vList[0]); ShowcaseHelper.AddEdge(logicCore.Graph, vList[1], vList[2]); ShowcaseHelper.AddEdge(logicCore.Graph, vList[1], vList[2]); ShowcaseHelper.AddEdge(logicCore.Graph, vList[2], vList[1]); graphArea.LogicCore = logicCore; //set positions var posList = new Dictionary <DataVertex, Point>() { { vList[0], new Point(0, -150) }, { vList[1], new Point(300, 0) }, { vList[2], new Point(600, -150) }, }; //settings graphArea.LogicCore.EnableParallelEdges = true; graphArea.LogicCore.EdgeCurvingEnabled = true; graphArea.LogicCore.ParallelEdgeDistance = _edgeDistance; graphArea.LogicCore.DefaultEdgeRoutingAlgorithm = EdgeRoutingAlgorithmTypeEnum.SimpleER; //preload graph graphArea.PreloadGraph(posList); //behaviors graphArea.SetVerticesDrag(true, true); graphArea.ShowAllEdgesLabels(); graphArea.AlignAllEdgesLabels(); zoomControl.MaxZoom = 50; //manual edge corrections var eList = graphArea.EdgesList.Values.ToList(); eList[0].LabelVerticalOffset = 12; eList[1].LabelVerticalOffset = 12; eList[2].ShowLabel = false; eList[3].LabelVerticalOffset = 12; eList[4].LabelVerticalOffset = 12; //PS: to see how parallel edges logic works go to GraphArea::UpdateParallelEdgesData() method zoomControl.ZoomToFill(); }
private void ThemedGraph_Constructor() { var tg_Logic = new LogicCoreExample(); tg_Area.LogicCore = tg_Logic; tg_Logic.DefaultLayoutAlgorithm = LayoutAlgorithmTypeEnum.LinLog; tg_Logic.DefaultOverlapRemovalAlgorithm = OverlapRemovalAlgorithmTypeEnum.FSA; tg_Logic.DefaultOverlapRemovalAlgorithmParams = tg_Logic.AlgorithmFactory.CreateOverlapRemovalParameters(OverlapRemovalAlgorithmTypeEnum.FSA); (tg_Logic.DefaultOverlapRemovalAlgorithmParams as OverlapRemovalParameters).HorizontalGap = 150; (tg_Logic.DefaultOverlapRemovalAlgorithmParams as OverlapRemovalParameters).VerticalGap = 150; tg_Logic.DefaultEdgeRoutingAlgorithm = EdgeRoutingAlgorithmTypeEnum.SimpleER; tg_Logic.EdgeCurvingEnabled = true; tg_Logic.AsyncAlgorithmCompute = true; tg_edgeMode.ItemsSource = new string[] { "Draw all edges", "Draw edges by vertex selection" }; tg_edgeMode.SelectedIndex = 0; tg_edgeType.ItemsSource = Enum.GetValues(typeof(EdgesType)).Cast <EdgesType>(); tg_edgeType.SelectedItem = EdgesType.All; tg_moveAnimation.ItemsSource = Enum.GetValues(typeof(MoveAnimation)).Cast <MoveAnimation>(); tg_moveAnimation.SelectedItem = MoveAnimation.Move; tg_deleteAnimation.ItemsSource = Enum.GetValues(typeof(DeleteAnimation)).Cast <DeleteAnimation>(); tg_deleteAnimation.SelectedItem = DeleteAnimation.Shrink; tg_mouseoverAnimation.ItemsSource = Enum.GetValues(typeof(MouseOverAnimation)).Cast <MouseOverAnimation>(); tg_mouseoverAnimation.SelectedItem = MouseOverAnimation.Scale; tg_highlightStrategy.ItemsSource = Enum.GetValues(typeof(HighlightStrategy)).Cast <HighlightStrategy>(); tg_highlightStrategy.SelectedItem = HighlightStrategy.UseExistingControls; tg_highlightType.ItemsSource = Enum.GetValues(typeof(GraphControlType)).Cast <GraphControlType>(); tg_highlightType.SelectedItem = GraphControlType.VertexAndEdge; tg_highlightEdgeType.ItemsSource = Enum.GetValues(typeof(EdgesType)).Cast <EdgesType>(); tg_highlightEdgeType.SelectedItem = EdgesType.All; //tg_Area.UseNativeObjectArrange = false; //tg_Area.SideExpansionSize = new Size(100, 100); //additional space for correct scale animation //tg_Area.DefaultEdgeRoutingAlgorithm = EdgeRoutingAlgorithmTypeEnum.SimpleER; tg_highlightEnabled_Checked(null, null); tg_dragMoveEdges_Checked(null, null); tg_dragEnabled_Checked(null, null); tg_Area.VertexSelected += tg_Area_VertexSelected; tg_Area.GenerateGraphFinished += tg_Area_GenerateGraphFinished; tg_Area.RelayoutFinished += tg_Area_RelayoutFinished; tg_dragMoveEdges.Checked += tg_dragMoveEdges_Checked; tg_dragMoveEdges.Unchecked += tg_dragMoveEdges_Checked; ZoomControl.SetViewFinderVisibility(tg_zoomctrl, System.Windows.Visibility.Visible); TGRegisterCommands(); }
private void GenerateGraph() { var logicCore = new LogicCoreExample() { Graph = ShowcaseHelper.GenerateDataGraph(3, false) }; var vList = logicCore.Graph.Vertices.ToList(); //add edges ShowcaseHelper.AddEdge(logicCore.Graph, vList[0], vList[1]); ShowcaseHelper.AddEdge(logicCore.Graph, vList[1], vList[0]); ShowcaseHelper.AddEdge(logicCore.Graph, vList[1], vList[2]); ShowcaseHelper.AddEdge(logicCore.Graph, vList[1], vList[2]); ShowcaseHelper.AddEdge(logicCore.Graph, vList[2], vList[1]); graphArea.LogicCore = logicCore; //set positions var posList = new Dictionary<DataVertex, Point>() { {vList[0], new Point(0, -150)}, {vList[1], new Point(300, 0)}, {vList[2], new Point(600, -150)}, }; //settings graphArea.LogicCore.EnableParallelEdges = true; graphArea.LogicCore.EdgeCurvingEnabled = true; graphArea.LogicCore.ParallelEdgeDistance = _edgeDistance; graphArea.LogicCore.DefaultEdgeRoutingAlgorithm = EdgeRoutingAlgorithmTypeEnum.SimpleER; //preload graph graphArea.PreloadGraph(posList); //behaviors graphArea.SetVerticesDrag(true, true); graphArea.ShowAllEdgesLabels(); graphArea.AlignAllEdgesLabels(); zoomControl.MaxZoom = 50; //manual edge corrections var eList = graphArea.EdgesList.Values.ToList(); eList[0].LabelVerticalOffset = 12; eList[1].LabelVerticalOffset = 12; eList[2].ShowLabel = false; eList[3].LabelVerticalOffset = 12; eList[4].LabelVerticalOffset = 12; //PS: to see how parallel edges logic works go to GraphArea::UpdateParallelEdgesData() method zoomControl.ZoomToFill(); }
// private ZoomControl tg_zoomctrl = new ZoomControl(); public ThemedGraph() { InitializeComponent(); var logic = new LogicCoreExample(); tg_Area.LogicCore = logic; logic.DefaultLayoutAlgorithm = LayoutAlgorithmTypeEnum.KK; logic.DefaultOverlapRemovalAlgorithm = OverlapRemovalAlgorithmTypeEnum.FSA; logic.DefaultOverlapRemovalAlgorithmParams.HorizontalGap = 50; logic.DefaultOverlapRemovalAlgorithmParams.VerticalGap = 50; logic.DefaultEdgeRoutingAlgorithm = EdgeRoutingAlgorithmTypeEnum.SimpleER; logic.EdgeCurvingEnabled = true; logic.AsyncAlgorithmCompute = true; tg_Area.SetVerticesDrag(true); tg_dragEnabled.IsChecked = true; tg_edgeMode.ItemsSource = new[] { "Draw all", "Draw for selected" }; tg_edgeMode.SelectedIndex = 0; tg_edgeType.ItemsSource = Enum.GetValues(typeof(EdgesType)).Cast <EdgesType>(); tg_edgeType.SelectedItem = EdgesType.All; tg_moveAnimation.ItemsSource = Enum.GetValues(typeof(MoveAnimation)).Cast <MoveAnimation>(); tg_moveAnimation.SelectedItem = MoveAnimation.Move; tg_deleteAnimation.ItemsSource = Enum.GetValues(typeof(DeleteAnimation)).Cast <DeleteAnimation>(); tg_deleteAnimation.SelectedItem = DeleteAnimation.Shrink; tg_mouseoverAnimation.ItemsSource = Enum.GetValues(typeof(MouseOverAnimation)).Cast <MouseOverAnimation>(); tg_mouseoverAnimation.SelectedItem = MouseOverAnimation.Scale; tg_highlightStrategy.ItemsSource = Enum.GetValues(typeof(HighlightStrategy)).Cast <HighlightStrategy>(); tg_highlightStrategy.SelectedItem = HighlightStrategy.UseExistingControls; tg_highlightType.ItemsSource = Enum.GetValues(typeof(GraphControlType)).Cast <GraphControlType>(); tg_highlightType.SelectedItem = GraphControlType.VertexAndEdge; tg_highlightEdgeType.ItemsSource = Enum.GetValues(typeof(EdgesType)).Cast <EdgesType>(); tg_highlightEdgeType.SelectedItem = EdgesType.All; tg_highlightEnabled_Checked(null, null); tg_dragMoveEdges_Checked(null, null); tg_dragEnabled_Checked(null, null); tg_Area.VertexSelected += tg_Area_VertexSelected; tg_Area.GenerateGraphFinished += tg_Area_GenerateGraphFinished; tg_Area.RelayoutFinished += tg_Area_RelayoutFinished; tg_dragMoveEdges.Checked += tg_dragMoveEdges_Checked; tg_dragMoveEdges.Unchecked += tg_dragMoveEdges_Checked; ZoomControl.SetViewFinderVisibility(tg_zoomctrl, Visibility.Visible); TgRegisterCommands(); }
// private ZoomControl tg_zoomctrl = new ZoomControl(); public ThemedGraph() { InitializeComponent(); var logic = new LogicCoreExample(); tg_Area.LogicCore = logic; logic.DefaultLayoutAlgorithm = LayoutAlgorithmTypeEnum.KK; logic.DefaultOverlapRemovalAlgorithm = OverlapRemovalAlgorithmTypeEnum.FSA; logic.DefaultOverlapRemovalAlgorithmParams.HorizontalGap = 50; logic.DefaultOverlapRemovalAlgorithmParams.VerticalGap = 50; logic.DefaultEdgeRoutingAlgorithm = EdgeRoutingAlgorithmTypeEnum.SimpleER; logic.EdgeCurvingEnabled = true; logic.AsyncAlgorithmCompute = true; tg_Area.SetVerticesDrag(true); tg_dragEnabled.IsChecked = true; tg_edgeMode.ItemsSource = new[] { "Draw all", "Draw for selected" }; tg_edgeMode.SelectedIndex = 0; tg_edgeType.ItemsSource = Enum.GetValues(typeof(EdgesType)).Cast<EdgesType>(); tg_edgeType.SelectedItem = EdgesType.All; tg_moveAnimation.ItemsSource = Enum.GetValues(typeof(MoveAnimation)).Cast<MoveAnimation>(); tg_moveAnimation.SelectedItem = MoveAnimation.Move; tg_deleteAnimation.ItemsSource = Enum.GetValues(typeof(DeleteAnimation)).Cast<DeleteAnimation>(); tg_deleteAnimation.SelectedItem = DeleteAnimation.Shrink; tg_mouseoverAnimation.ItemsSource = Enum.GetValues(typeof(MouseOverAnimation)).Cast<MouseOverAnimation>(); tg_mouseoverAnimation.SelectedItem = MouseOverAnimation.Scale; tg_highlightStrategy.ItemsSource = Enum.GetValues(typeof(HighlightStrategy)).Cast<HighlightStrategy>(); tg_highlightStrategy.SelectedItem = HighlightStrategy.UseExistingControls; tg_highlightType.ItemsSource = Enum.GetValues(typeof(GraphControlType)).Cast<GraphControlType>(); tg_highlightType.SelectedItem = GraphControlType.VertexAndEdge; tg_highlightEdgeType.ItemsSource = Enum.GetValues(typeof(EdgesType)).Cast<EdgesType>(); tg_highlightEdgeType.SelectedItem = EdgesType.All; tg_highlightEnabled_Checked(null, null); tg_dragMoveEdges_Checked(null, null); tg_dragEnabled_Checked(null, null); tg_Area.VertexSelected += tg_Area_VertexSelected; tg_Area.GenerateGraphFinished += tg_Area_GenerateGraphFinished; tg_Area.RelayoutFinished += tg_Area_RelayoutFinished; tg_dragMoveEdges.Checked += tg_dragMoveEdges_Checked; tg_dragMoveEdges.Unchecked += tg_dragMoveEdges_Checked; ZoomControl.SetViewFinderVisibility(tg_zoomctrl, Visibility.Visible); TgRegisterCommands(); }
void tst_but_gen_Click(object sender, RoutedEventArgs e) { var graph = GenerateTestGraph(); var logic = new LogicCoreExample { Graph = graph }; logic.EnableParallelEdges = false; logic.ParallelEdgeDistance = 15; tst_Area.ShowAllEdgesArrows(false); tst_Area.LogicCore = logic; var layParams = new LinLogLayoutParameters { IterationCount = 100 }; logic.DefaultLayoutAlgorithm = LayoutAlgorithmTypeEnum.Tree; logic.DefaultLayoutAlgorithmParams = layParams; var overlapParams = new OverlapRemovalParameters { HorizontalGap = 100, VerticalGap = 100 }; logic.DefaultOverlapRemovalAlgorithm = OverlapRemovalAlgorithmTypeEnum.FSA; logic.DefaultOverlapRemovalAlgorithmParams = overlapParams; IExternalEdgeRouting <DataVertex, DataEdge> erParams = null; //logic.ExternalEdgeRoutingAlgorithm = tst_Area.GenerateGraph(graph, true); //tst_Area.VertexList[v1].Visibility = System.Windows.Visibility.Collapsed; //tst_Area.VertexList[v2].Visibility = System.Windows.Visibility.Collapsed; //tst_Area.VertexList[v3].Visibility = System.Windows.Visibility.Collapsed; //tst_Area.VertexList[v4].SetPosition(new Point(0, 0)); tst_Area.ShowAllEdgesLabels(); tst_Area.AlignAllEdgesLabels(); tst_zoomctrl.ZoomToFill(); /* var img = new BitmapImage(new Uri(@"pack://application:,,,/ShowcaseExample;component/Images/birdy.png", UriKind.Absolute)) { CacheOption = BitmapCacheOption.OnLoad }; * GraphAreaBase.SetX(img, -100); * GraphAreaBase.SetY(img, -100); * var image = new Image() { Source = img, Width = 100, Height = 100 }; * var border = new Border() { BorderBrush = Brushes.Black, BorderThickness = new Thickness(2), Background = Brushes.Black, Width = 100, Height = 100 }; * image.Visibility = System.Windows.Visibility.Visible; * border.Visibility = System.Windows.Visibility.Visible; * tst_Area.InsertCustomChildControl(0, image); * tst_Area.InsertCustomChildControl(0, border);*/ }
//.GetLogicCore<LogicCoreExample>() private void ERGraph_Constructor() { var erg_Logic = new LogicCoreExample(); erg_Area.LogicCore = erg_Logic; erg_Area.LogicCore.ParallelEdgeDistance = 20; erg_showEdgeArrows.IsChecked = true; erg_BundleEdgeRoutingParameters = (BundleEdgeRoutingParameters)erg_Logic.AlgorithmFactory.CreateEdgeRoutingParameters(EdgeRoutingAlgorithmTypeEnum.Bundling); erg_SimpleERParameters = (SimpleERParameters)erg_Logic.AlgorithmFactory.CreateEdgeRoutingParameters(EdgeRoutingAlgorithmTypeEnum.SimpleER); erg_PFERParameters = (PathFinderEdgeRoutingParameters)erg_Logic.AlgorithmFactory.CreateEdgeRoutingParameters(EdgeRoutingAlgorithmTypeEnum.PathFinder); erg_pfprm_formula.ItemsSource = Enum.GetValues(typeof(PathFindAlgorithm)).Cast <PathFindAlgorithm>(); erg_pfprm_formula.SelectedIndex = 0; erg_but_randomgraph.Click += erg_but_randomgraph_Click; erg_but_relayout.Click += erg_but_relayout_Click; erg_useExternalERAlgo.Checked += erg_useExternalERAlgo_Checked; erg_useExternalERAlgo.Unchecked += erg_useExternalERAlgo_Checked; erg_dashstyle.ItemsSource = Enum.GetValues(typeof(EdgeDashStyle)).Cast <EdgeDashStyle>(); erg_dashstyle.SelectedIndex = 0; erg_dashstyle.SelectionChanged += erg_dashstyle_SelectionChanged; erg_eralgo.ItemsSource = Enum.GetValues(typeof(EdgeRoutingAlgorithmTypeEnum)).Cast <EdgeRoutingAlgorithmTypeEnum>(); erg_eralgo.SelectedIndex = 0; erg_eralgo.SelectionChanged += erg_eralgo_SelectionChanged; erg_prmsbox.Visibility = System.Windows.Visibility.Collapsed; erg_recalculate.Checked += erg_recalculate_Checked; erg_recalculate.Unchecked += erg_recalculate_Checked; erg_randomizeAll.Click += erg_randomizeAll_Click; erg_showEdgeArrows.Checked += erg_showEdgeArrows_Checked; erg_showEdgeArrows.Unchecked += erg_showEdgeArrows_Checked; erg_showEdgeLabels.Checked += erg_showEdgeLabels_Checked; erg_showEdgeLabels.Unchecked += erg_showEdgeLabels_Checked; erg_alignEdgeLabels.Checked += erg_alignEdgeLabels_Checked; erg_alignEdgeLabels.Unchecked += erg_alignEdgeLabels_Checked; erg_enableParallelEdges.Checked += erg_enableParallelEdges_Checked; erg_enableParallelEdges.Unchecked += erg_enableParallelEdges_Checked; erg_randomizeArrows.Click += erg_randomizeArrows_Click; erg_useCurves.Checked += erg_useCurves_Checked; erg_useCurves.Unchecked += erg_useCurves_Checked; ZoomControl.SetViewFinderVisibility(erg_zoomctrl, System.Windows.Visibility.Visible); //erg_Area.UseNativeObjectArrange = true; }
public NNGraph() { InitializeComponent(); _editorManager = new EditorObjectManager(graphArea, zoomCtrl); var dgLogic = new LogicCoreExample(); graphArea.LogicCore = dgLogic; graphArea.VertexSelected += graphArea_VertexSelected; graphArea.EdgeSelected += graphArea_EdgeSelected; graphArea.SetVerticesMathShape(VertexShape.Circle); // addVertexButton.Click += addVertexButton_Click; // addEdgeButton.Click += addEdgeButton_Click; dgLogic.DefaultLayoutAlgorithm = LayoutAlgorithmTypeEnum.Custom; dgLogic.DefaultOverlapRemovalAlgorithm = OverlapRemovalAlgorithmTypeEnum.None; dgLogic.DefaultEdgeRoutingAlgorithm = EdgeRoutingAlgorithmTypeEnum.None; dgLogic.EdgeCurvingEnabled = true; //graphArea.MoveAnimation = AnimationFactory.CreateMoveAnimation(MoveAnimation.Move, TimeSpan.FromSeconds(0.5)); //graphArea.MoveAnimation.Completed += MoveAnimation_Completed; //graphArea.VertexSelected += dg_Area_VertexSelected; zoomCtrl.IsAnimationDisabled = true; ZoomControl.SetViewFinderVisibility(zoomCtrl, Visibility.Visible); zoomCtrl.Zoom = 2; zoomCtrl.MinZoom = .5; zoomCtrl.MaxZoom = 50; zoomCtrl.ZoomSensitivity = 25; zoomCtrl.MouseDown += zoomCtrl_MouseDown; var tb = new TextBlock() { Text = "AAAA" }; //zoomCtrl.ZoomToContent(new System.Windows.Rect(0,0, 500, 500)); butDelete.Checked += ToolbarButton_Checked; butSelect.Checked += ToolbarButton_Checked; butEdit.Checked += ToolbarButton_Checked; butSelect.IsChecked = true; }
public EdgeRoutingGraph() { InitializeComponent(); DataContext = this; _logicCore = new LogicCoreExample(); erg_Area.LogicCore = _logicCore; erg_Area.LogicCore.ParallelEdgeDistance = 20; erg_Area.EdgeLabelFactory = new DefaultEdgelabelFactory(); erg_showEdgeArrows.IsChecked = true; BundleEdgeRoutingParameters = (BundleEdgeRoutingParameters)_logicCore.AlgorithmFactory.CreateEdgeRoutingParameters(EdgeRoutingAlgorithmTypeEnum.Bundling); SimpleErParameters = (SimpleERParameters)_logicCore.AlgorithmFactory.CreateEdgeRoutingParameters(EdgeRoutingAlgorithmTypeEnum.SimpleER); PfErParameters = (PathFinderEdgeRoutingParameters)_logicCore.AlgorithmFactory.CreateEdgeRoutingParameters(EdgeRoutingAlgorithmTypeEnum.PathFinder); erg_pfprm_formula.ItemsSource = Enum.GetValues(typeof(PathFindAlgorithm)).Cast <PathFindAlgorithm>(); erg_pfprm_formula.SelectedIndex = 0; erg_but_randomgraph.Click += erg_but_randomgraph_Click; erg_but_relayout.Click += erg_but_relayout_Click; erg_useExternalERAlgo.Checked += erg_useExternalERAlgo_Checked; erg_useExternalERAlgo.Unchecked += erg_useExternalERAlgo_Checked; erg_dashstyle.ItemsSource = Enum.GetValues(typeof(EdgeDashStyle)).Cast <EdgeDashStyle>(); erg_dashstyle.SelectedIndex = 0; erg_dashstyle.SelectionChanged += erg_dashstyle_SelectionChanged; erg_eralgo.ItemsSource = Enum.GetValues(typeof(EdgeRoutingAlgorithmTypeEnum)).Cast <EdgeRoutingAlgorithmTypeEnum>(); erg_eralgo.SelectedIndex = 0; erg_eralgo.SelectionChanged += erg_eralgo_SelectionChanged; erg_prmsbox.Visibility = Visibility.Collapsed; erg_recalculate.Checked += erg_recalculate_Checked; erg_recalculate.Unchecked += erg_recalculate_Checked; erg_randomizeAll.Click += erg_randomizeAll_Click; erg_showEdgeArrows.Checked += erg_showEdgeArrows_Checked; erg_showEdgeArrows.Unchecked += erg_showEdgeArrows_Checked; erg_showEdgeLabels.Checked += erg_showEdgeLabels_Checked; erg_showEdgeLabels.Unchecked += erg_showEdgeLabels_Checked; erg_alignEdgeLabels.Checked += erg_alignEdgeLabels_Checked; erg_alignEdgeLabels.Unchecked += erg_alignEdgeLabels_Checked; erg_enableParallelEdges.Checked += erg_enableParallelEdges_Checked; erg_enableParallelEdges.Unchecked += erg_enableParallelEdges_Checked; erg_randomizeArrows.Click += erg_randomizeArrows_Click; erg_useCurves.Checked += erg_useCurves_Checked; erg_useCurves.Unchecked += erg_useCurves_Checked; ZoomControl.SetViewFinderVisibility(erg_zoomctrl, Visibility.Visible); }
public EdgeRoutingGraph() { InitializeComponent(); DataContext = this; _logicCore = new LogicCoreExample(); erg_Area.LogicCore = _logicCore; erg_Area.LogicCore.ParallelEdgeDistance = 20; erg_showEdgeArrows.IsChecked = true; BundleEdgeRoutingParameters = (BundleEdgeRoutingParameters)_logicCore.AlgorithmFactory.CreateEdgeRoutingParameters(EdgeRoutingAlgorithmTypeEnum.Bundling); SimpleErParameters = (SimpleERParameters)_logicCore.AlgorithmFactory.CreateEdgeRoutingParameters(EdgeRoutingAlgorithmTypeEnum.SimpleER); PfErParameters = (PathFinderEdgeRoutingParameters)_logicCore.AlgorithmFactory.CreateEdgeRoutingParameters(EdgeRoutingAlgorithmTypeEnum.PathFinder); erg_pfprm_formula.ItemsSource = Enum.GetValues(typeof(PathFindAlgorithm)).Cast<PathFindAlgorithm>(); erg_pfprm_formula.SelectedIndex = 0; erg_but_randomgraph.Click += erg_but_randomgraph_Click; erg_but_relayout.Click += erg_but_relayout_Click; erg_useExternalERAlgo.Checked += erg_useExternalERAlgo_Checked; erg_useExternalERAlgo.Unchecked += erg_useExternalERAlgo_Checked; erg_dashstyle.ItemsSource = Enum.GetValues(typeof(EdgeDashStyle)).Cast<EdgeDashStyle>(); erg_dashstyle.SelectedIndex = 0; erg_dashstyle.SelectionChanged += erg_dashstyle_SelectionChanged; erg_eralgo.ItemsSource = Enum.GetValues(typeof(EdgeRoutingAlgorithmTypeEnum)).Cast<EdgeRoutingAlgorithmTypeEnum>(); erg_eralgo.SelectedIndex = 0; erg_eralgo.SelectionChanged += erg_eralgo_SelectionChanged; erg_prmsbox.Visibility = Visibility.Collapsed; erg_recalculate.Checked += erg_recalculate_Checked; erg_recalculate.Unchecked += erg_recalculate_Checked; erg_randomizeAll.Click += erg_randomizeAll_Click; erg_showEdgeArrows.Checked += erg_showEdgeArrows_Checked; erg_showEdgeArrows.Unchecked += erg_showEdgeArrows_Checked; erg_showEdgeLabels.Checked += erg_showEdgeLabels_Checked; erg_showEdgeLabels.Unchecked += erg_showEdgeLabels_Checked; erg_alignEdgeLabels.Checked += erg_alignEdgeLabels_Checked; erg_alignEdgeLabels.Unchecked += erg_alignEdgeLabels_Checked; erg_enableParallelEdges.Checked += erg_enableParallelEdges_Checked; erg_enableParallelEdges.Unchecked += erg_enableParallelEdges_Checked; erg_randomizeArrows.Click += erg_randomizeArrows_Click; erg_useCurves.Checked += erg_useCurves_Checked; erg_useCurves.Unchecked += erg_useCurves_Checked; ZoomControl.SetViewFinderVisibility(erg_zoomctrl, Visibility.Visible); }
//.GetLogicCore<LogicCoreExample>() private void ERGraph_Constructor() { var erg_Logic = new LogicCoreExample(); erg_Area.LogicCore = erg_Logic; erg_Area.LogicCore.ParallelEdgeDistance = 20; erg_showEdgeArrows.IsChecked = true; erg_BundleEdgeRoutingParameters = (BundleEdgeRoutingParameters)erg_Logic.AlgorithmFactory.CreateEdgeRoutingParameters(EdgeRoutingAlgorithmTypeEnum.Bundling); erg_SimpleERParameters = (SimpleERParameters)erg_Logic.AlgorithmFactory.CreateEdgeRoutingParameters(EdgeRoutingAlgorithmTypeEnum.SimpleER); erg_PFERParameters = (PathFinderEdgeRoutingParameters)erg_Logic.AlgorithmFactory.CreateEdgeRoutingParameters(EdgeRoutingAlgorithmTypeEnum.PathFinder); erg_pfprm_formula.ItemsSource = Enum.GetValues(typeof(PathFindAlgorithm)).Cast<PathFindAlgorithm>(); erg_pfprm_formula.SelectedIndex = 0; erg_but_randomgraph.Click += erg_but_randomgraph_Click; erg_but_relayout.Click += erg_but_relayout_Click; erg_useExternalERAlgo.Checked += erg_useExternalERAlgo_Checked; erg_useExternalERAlgo.Unchecked += erg_useExternalERAlgo_Checked; erg_dashstyle.ItemsSource = Enum.GetValues(typeof(EdgeDashStyle)).Cast<EdgeDashStyle>(); erg_dashstyle.SelectedIndex = 0; erg_dashstyle.SelectionChanged += erg_dashstyle_SelectionChanged; erg_eralgo.ItemsSource = Enum.GetValues(typeof(EdgeRoutingAlgorithmTypeEnum)).Cast<EdgeRoutingAlgorithmTypeEnum>(); erg_eralgo.SelectedIndex = 0; erg_eralgo.SelectionChanged += erg_eralgo_SelectionChanged; erg_prmsbox.Visibility = System.Windows.Visibility.Collapsed; erg_recalculate.Checked += erg_recalculate_Checked; erg_recalculate.Unchecked += erg_recalculate_Checked; erg_randomizeAll.Click += erg_randomizeAll_Click; erg_showEdgeArrows.Checked += erg_showEdgeArrows_Checked; erg_showEdgeArrows.Unchecked += erg_showEdgeArrows_Checked; erg_showEdgeLabels.Checked += erg_showEdgeLabels_Checked; erg_showEdgeLabels.Unchecked += erg_showEdgeLabels_Checked; erg_alignEdgeLabels.Checked += erg_alignEdgeLabels_Checked; erg_alignEdgeLabels.Unchecked += erg_alignEdgeLabels_Checked; erg_enableParallelEdges.Checked += erg_enableParallelEdges_Checked; erg_enableParallelEdges.Unchecked += erg_enableParallelEdges_Checked; erg_randomizeArrows.Click += erg_randomizeArrows_Click; erg_useCurves.Checked += erg_useCurves_Checked; erg_useCurves.Unchecked += erg_useCurves_Checked; ZoomControl.SetViewFinderVisibility(erg_zoomctrl, System.Windows.Visibility.Visible); //erg_Area.UseNativeObjectArrange = true; }
public EditorGraph() { InitializeComponent(); _editorManager = new EditorObjectManager(graphArea, zoomCtrl); var dgLogic = new LogicCoreExample(); graphArea.LogicCore = dgLogic; graphArea.VertexSelected += graphArea_VertexSelected; graphArea.EdgeSelected += graphArea_EdgeSelected; graphArea.SetVerticesMathShape(VertexShape.Circle); // addVertexButton.Click += addVertexButton_Click; // addEdgeButton.Click += addEdgeButton_Click; dgLogic.DefaultLayoutAlgorithm = LayoutAlgorithmTypeEnum.Custom; dgLogic.DefaultOverlapRemovalAlgorithm = OverlapRemovalAlgorithmTypeEnum.None; dgLogic.DefaultEdgeRoutingAlgorithm = EdgeRoutingAlgorithmTypeEnum.None; dgLogic.EdgeCurvingEnabled = true; //graphArea.MoveAnimation = AnimationFactory.CreateMoveAnimation(MoveAnimation.Move, TimeSpan.FromSeconds(0.5)); //graphArea.MoveAnimation.Completed += MoveAnimation_Completed; //graphArea.VertexSelected += dg_Area_VertexSelected; zoomCtrl.IsAnimationDisabled = true; ZoomControl.SetViewFinderVisibility(zoomCtrl, Visibility.Visible); zoomCtrl.Zoom = 2; zoomCtrl.MinZoom = .5; zoomCtrl.MaxZoom = 50; zoomCtrl.ZoomSensitivity = 25; zoomCtrl.MouseDown += zoomCtrl_MouseDown; var tb = new TextBlock() {Text = "AAAA"}; //zoomCtrl.ZoomToContent(new System.Windows.Rect(0,0, 500, 500)); butDelete.Checked += ToolbarButton_Checked; butSelect.Checked += ToolbarButton_Checked; butEdit.Checked += ToolbarButton_Checked; butSelect.IsChecked = true; }
public GeneralGraph() { InitializeComponent(); DataContext = this; gg_vertexCount.Text = "30"; var ggLogic = new LogicCoreExample(); gg_Area.LogicCore = ggLogic; gg_layalgo.SelectionChanged += gg_layalgo_SelectionChanged; gg_oralgo.SelectionChanged += gg_oralgo_SelectionChanged; gg_eralgo.SelectionChanged += gg_eralgo_SelectionChanged; gg_layalgo.ItemsSource = Enum.GetValues(typeof(LayoutAlgorithmTypeEnum)).Cast <LayoutAlgorithmTypeEnum>(); gg_layalgo.SelectedItem = LayoutAlgorithmTypeEnum.KK; gg_oralgo.ItemsSource = Enum.GetValues(typeof(OverlapRemovalAlgorithmTypeEnum)).Cast <OverlapRemovalAlgorithmTypeEnum>(); gg_oralgo.SelectedIndex = 0; gg_eralgo.ItemsSource = Enum.GetValues(typeof(EdgeRoutingAlgorithmTypeEnum)).Cast <EdgeRoutingAlgorithmTypeEnum>(); gg_eralgo.SelectedItem = EdgeRoutingAlgorithmTypeEnum.SimpleER; gg_but_randomgraph.Click += gg_but_randomgraph_Click; gg_async.Checked += gg_async_Checked; gg_async.Unchecked += gg_async_Checked; gg_Area.RelayoutFinished += gg_Area_RelayoutFinished; gg_Area.GenerateGraphFinished += gg_Area_GenerateGraphFinished; gg_Area.VertexLabelFactory = new DefaultVertexlabelFactory(); ggLogic.DefaultEdgeRoutingAlgorithm = EdgeRoutingAlgorithmTypeEnum.SimpleER; ggLogic.EdgeCurvingEnabled = true; gg_Area.ShowAllEdgesArrows(true); ZoomControl.SetViewFinderVisibility(gg_zoomctrl, Visibility.Visible); gg_zoomctrl.IsAnimationEnabled = true; gg_zoomctrl.ZoomStep = 2; Loaded += GG_Loaded; }
public DynamicGraph() { InitializeComponent(); var dgLogic = new LogicCoreExample(); dg_Area.LogicCore = dgLogic; dg_addvertex.Click += dg_addvertex_Click; dg_remvertex.Click += dg_remvertex_Click; dg_addedge.Click += dg_addedge_Click; dg_remedge.Click += dg_remedge_Click; dgLogic.DefaultLayoutAlgorithm = LayoutAlgorithmTypeEnum.KK; dgLogic.DefaultOverlapRemovalAlgorithm = OverlapRemovalAlgorithmTypeEnum.FSA; dgLogic.DefaultOverlapRemovalAlgorithmParams.HorizontalGap = 50; dgLogic.DefaultOverlapRemovalAlgorithmParams.VerticalGap = 50; dgLogic.DefaultEdgeRoutingAlgorithm = EdgeRoutingAlgorithmTypeEnum.None; dgLogic.EdgeCurvingEnabled = true; dgLogic.Graph = new GraphExample(); dg_Area.MoveAnimation = AnimationFactory.CreateMoveAnimation(MoveAnimation.Move, TimeSpan.FromSeconds(0.5)); dg_Area.MoveAnimation.Completed += MoveAnimation_Completed; dg_Area.VertexSelected += dg_Area_VertexSelected; dg_test.Visibility = Visibility.Collapsed; dg_zoomctrl.AreaSelected += dg_zoomctrl_AreaSelected; dg_dragsource.PreviewMouseLeftButtonDown += dg_dragsource_PreviewMouseLeftButtonDown; dg_zoomctrl.AllowDrop = true; dg_zoomctrl.PreviewDrop += dg_Area_Drop; dg_zoomctrl.DragEnter += dg_Area_DragEnter; dg_zoomctrl.IsAnimationEnabled = false; /* dg_Area.VertexSelected += dg_Area_VertexSelectedForED; * dg_zoomctrl.PreviewMouseMove += dg_Area_MouseMove; * dg_zoomctrl.MouseDown += dg_zoomctrl_MouseDown;*/ dg_Area.SetVerticesDrag(true, true); Loaded += DynamicGraph_Loaded; Unloaded += DynamicGraph_Unloaded; }
public void DynamicGraph_Construtor() { var dg_Logic = new LogicCoreExample(); dg_Area.LogicCore = dg_Logic; dg_addvertex.Click += dg_addvertex_Click; dg_remvertex.Click += dg_remvertex_Click; dg_addedge.Click += dg_addedge_Click; dg_remedge.Click += dg_remedge_Click; dg_Logic.DefaultLayoutAlgorithm = LayoutAlgorithmTypeEnum.KK; dg_Logic.DefaultOverlapRemovalAlgorithm = OverlapRemovalAlgorithmTypeEnum.FSA; dg_Logic.DefaultEdgeRoutingAlgorithm = EdgeRoutingAlgorithmTypeEnum.None; dg_Logic.EdgeCurvingEnabled = true; dg_Logic.Graph = new GraphExample(); dg_Area.MoveAnimation = AnimationFactory.CreateMoveAnimation(MoveAnimation.Move, TimeSpan.FromSeconds(0.5)); //dg_Area.DeleteAnimation = AnimationFactory.CreateDeleteAnimation(DeleteAnimation.Fade, TimeSpan.FromSeconds(0.3)); // dg_Area.MouseOverAnimation = AnimationFactory.CreateMouseOverAnimation(MouseOverAnimation.Scale, TimeSpan.FromSeconds(0.3)); dg_Area.VertexSelected += dg_Area_VertexSelected; dg_test.Visibility = System.Windows.Visibility.Collapsed; dg_test.Click += dg_test_Click; dg_zoomctrl.AreaSelected += dg_zoomctrl_AreaSelected; //dg_Area.UseNativeObjectArrange = true; dg_dragsource.PreviewMouseLeftButtonDown += dg_dragsource_PreviewMouseLeftButtonDown; dg_zoomctrl.AllowDrop = true; dg_zoomctrl.PreviewDrop += dg_Area_Drop; dg_zoomctrl.DragEnter += dg_Area_DragEnter; dg_zoomctrl.IsAnimationDisabled = true; ZoomControl.SetViewFinderVisibility(dg_zoomctrl, System.Windows.Visibility.Visible); dg_Area.VertexSelected += dg_Area_VertexSelectedForED; dg_zoomctrl.PreviewMouseMove += dg_Area_MouseMove; dg_zoomctrl.MouseDown += dg_zoomctrl_MouseDown; //dg_zoomctrl.KeepContentInBounds = true; }
private void GenerateGraph() { var logicCore = new LogicCoreExample { Graph = ShowcaseHelper.GenerateDataGraph(6, false) }; var vList = logicCore.Graph.Vertices.ToList(); //add edges ShowcaseHelper.AddEdge(logicCore.Graph, vList[0], vList[1], 3, 2); ShowcaseHelper.AddEdge(logicCore.Graph, vList[0], vList[2], 4, 2); ShowcaseHelper.AddEdge(logicCore.Graph, vList[1], vList[3], 3, 1); ShowcaseHelper.AddEdge(logicCore.Graph, vList[3], vList[5], 2, 3); ShowcaseHelper.AddEdge(logicCore.Graph, vList[2], vList[4], 4, 2); ShowcaseHelper.AddEdge(logicCore.Graph, vList[4], vList[5], 1, 4); ShowcaseHelper.AddEdge(logicCore.Graph, vList[5], vList[1], 1, 4); ShowcaseHelper.AddEdge(logicCore.Graph, vList[5], vList[2], 2, 3); graphArea.LogicCore = logicCore; //set positions var posList = new Dictionary <DataVertex, Point>() { { vList[0], new Point(0, 0) }, { vList[1], new Point(200, -200) }, { vList[2], new Point(200, 200) }, { vList[3], new Point(600, -300) }, { vList[4], new Point(600, 300) }, { vList[5], new Point(400, 0) }, }; graphArea.PreloadGraph(posList); //settings graphArea.SetVerticesDrag(true, true); zoomControl.ZoomToFill(); }
public DynamicGraph() { InitializeComponent(); var dgLogic = new LogicCoreExample(); dg_Area.LogicCore = dgLogic; dg_addvertex.Click += dg_addvertex_Click; dg_remvertex.Click += dg_remvertex_Click; dg_addedge.Click += dg_addedge_Click; dg_remedge.Click += dg_remedge_Click; dgLogic.DefaultLayoutAlgorithm = LayoutAlgorithmTypeEnum.KK; dgLogic.DefaultOverlapRemovalAlgorithm = OverlapRemovalAlgorithmTypeEnum.FSA; dgLogic.DefaultOverlapRemovalAlgorithmParams.HorizontalGap = 50; dgLogic.DefaultOverlapRemovalAlgorithmParams.VerticalGap = 50; dgLogic.DefaultEdgeRoutingAlgorithm = EdgeRoutingAlgorithmTypeEnum.None; dgLogic.EdgeCurvingEnabled = true; dgLogic.Graph = new GraphExample(); dg_Area.MoveAnimation = AnimationFactory.CreateMoveAnimation(MoveAnimation.Move, TimeSpan.FromSeconds(0.5)); dg_Area.MoveAnimation.Completed += MoveAnimation_Completed; dg_Area.VertexSelected += dg_Area_VertexSelected; dg_test.Visibility = Visibility.Collapsed; dg_test.Click += dg_test_Click; dg_zoomctrl.AreaSelected += dg_zoomctrl_AreaSelected; dg_dragsource.PreviewMouseLeftButtonDown += dg_dragsource_PreviewMouseLeftButtonDown; dg_zoomctrl.AllowDrop = true; dg_zoomctrl.PreviewDrop += dg_Area_Drop; dg_zoomctrl.DragEnter += dg_Area_DragEnter; dg_zoomctrl.IsAnimationDisabled = true; //ZoomControl.SetViewFinderVisibility(dg_zoomctrl, Visibility.Visible); dg_Area.VertexSelected += dg_Area_VertexSelectedForED; dg_zoomctrl.PreviewMouseMove += dg_Area_MouseMove; dg_zoomctrl.MouseDown += dg_zoomctrl_MouseDown; dg_Area.SetVerticesDrag(true, true); }
void tst_but_gen_Click(object sender, RoutedEventArgs e) { var graph = GenerateTestGraph(); var logic = new LogicCoreExample {Graph = graph}; logic.EnableParallelEdges = false; logic.ParallelEdgeDistance = 15; tst_Area.ShowAllEdgesArrows(false); var layParams = new LinLogLayoutParameters { IterationCount = 100 }; logic.DefaultLayoutAlgorithm = LayoutAlgorithmTypeEnum.LinLog; logic.DefaultLayoutAlgorithmParams = layParams; var overlapParams = new OverlapRemovalParameters { HorizontalGap = 100, VerticalGap = 100 }; logic.DefaultOverlapRemovalAlgorithm = OverlapRemovalAlgorithmTypeEnum.FSA; logic.DefaultOverlapRemovalAlgorithmParams = overlapParams; IExternalEdgeRouting<DataVertex, DataEdge> erParams = null; //logic.ExternalEdgeRoutingAlgorithm = tst_Area.GenerateGraph(graph, true); //tst_Area.VertexList[v1].Visibility = System.Windows.Visibility.Collapsed; //tst_Area.VertexList[v2].Visibility = System.Windows.Visibility.Collapsed; //tst_Area.VertexList[v3].Visibility = System.Windows.Visibility.Collapsed; //tst_Area.VertexList[v4].SetPosition(new Point(0, 0)); tst_Area.ShowAllEdgesLabels(); tst_Area.AlignAllEdgesLabels(); tst_zoomctrl.ZoomToFill(); /* var img = new BitmapImage(new Uri(@"pack://application:,,,/ShowcaseExample;component/Images/birdy.png", UriKind.Absolute)) { CacheOption = BitmapCacheOption.OnLoad }; GraphAreaBase.SetX(img, -100); GraphAreaBase.SetY(img, -100); var image = new Image() { Source = img, Width = 100, Height = 100 }; var border = new Border() { BorderBrush = Brushes.Black, BorderThickness = new Thickness(2), Background = Brushes.Black, Width = 100, Height = 100 }; image.Visibility = System.Windows.Visibility.Visible; border.Visibility = System.Windows.Visibility.Visible; tst_Area.InsertCustomChildControl(0, image); tst_Area.InsertCustomChildControl(0, border);*/ }
void tst_but_gen_Click(object sender, RoutedEventArgs e) { var _graph = new GraphExample(); var v1 = new DataVertex() { Text = "Test1", ID = 1 }; _graph.AddVertex(v1); var v2 = new DataVertex() { Text = "Test2", ID = 2 }; _graph.AddVertex(v2); var v3 = new DataVertex() { Text = "Test3", ID = 3 }; _graph.AddVertex(v3); var v4 = new DataVertex() { Text = "Test4", ID = 4 }; _graph.AddVertex(v4); _graph.AddEdge(new DataEdge(v1, v2, 1) { ID = 1000 }); _graph.AddEdge(new DataEdge(v1, v2, 1) { ID = 1 }); _graph.AddEdge(new DataEdge(v1, v4, 1) { ID = 1000 }); _graph.AddEdge(new DataEdge(v1, v4, 1) { ID = 1 }); _graph.AddEdge(new DataEdge(v1, v4, 1) { ID = 2 }); _graph.AddEdge(new DataEdge(v2, v4, 1) { ID = 1001 }); _graph.AddEdge(new DataEdge(v3, v4, 1) { ID = 1002 }); _graph.AddEdge(new DataEdge(v3, v4, 1) { ID = 1003 }); _graph.AddEdge(new DataEdge(v4, v3, 1) { ID = 1004 }); _graph.AddEdge(new DataEdge(v4, v3, 1) { ID = 1005 }); _graph.AddEdge(new DataEdge(v4, v3, 1) { ID = 1006 }); tst_Area.ShowAllEdgesArrows(true); var ergTreeLayoutParameters = new KKLayoutParameters { }; var logic = new LogicCoreExample(); TSTLC = logic; logic.Graph = _graph; logic.EnableParallelEdges = true; logic.ParallelEdgeDistance = 15; logic.DefaultLayoutAlgorithm = LayoutAlgorithmTypeEnum.KK; logic.DefaultLayoutAlgorithmParams = ergTreeLayoutParameters; logic.DefaultOverlapRemovalAlgorithm = OverlapRemovalAlgorithmTypeEnum.FSA; logic.DefaultOverlapRemovalAlgorithmParams = logic.AlgorithmFactory.CreateOverlapRemovalParameters(OverlapRemovalAlgorithmTypeEnum.FSA); ((GraphX.GraphSharp.Algorithms.OverlapRemoval.OverlapRemovalParameters)logic.DefaultOverlapRemovalAlgorithmParams).HorizontalGap = 140; ((GraphX.GraphSharp.Algorithms.OverlapRemoval.OverlapRemovalParameters)logic.DefaultOverlapRemovalAlgorithmParams).VerticalGap = 140; tst_Area.GenerateGraph(_graph, true); //tst_Area.VertexList[v1].Visibility = System.Windows.Visibility.Collapsed; //tst_Area.VertexList[v2].Visibility = System.Windows.Visibility.Collapsed; //tst_Area.VertexList[v3].Visibility = System.Windows.Visibility.Collapsed; //tst_Area.VertexList[v4].SetPosition(new Point(0, 0)); tst_Area.ShowAllEdgesLabels(); tst_Area.AlignAllEdgesLabels(); tst_zoomctrl.ZoomToFill(); /* var img = new BitmapImage(new Uri(@"pack://application:,,,/ShowcaseExample;component/Images/birdy.png", UriKind.Absolute)) { CacheOption = BitmapCacheOption.OnLoad }; * GraphAreaBase.SetX(img, -100); * GraphAreaBase.SetY(img, -100); * var image = new Image() { Source = img, Width = 100, Height = 100 }; * var border = new Border() { BorderBrush = Brushes.Black, BorderThickness = new Thickness(2), Background = Brushes.Black, Width = 100, Height = 100 }; * image.Visibility = System.Windows.Visibility.Visible; * border.Visibility = System.Windows.Visibility.Visible; * tst_Area.InsertCustomChildControl(0, image); * tst_Area.InsertCustomChildControl(0, border);*/ }
private void GenerateGraph() { graphArea.ClearLayout(); var logicCore = new LogicCoreExample() { Graph = ShowcaseHelper.GenerateDataGraph(10) }; logicCore.Graph.Vertices.Take(5).ForEach(a => a.GroupId = 1); logicCore.Graph.Vertices.Where(a => a.GroupId == 0).ForEach(a => a.GroupId = 2); logicCore.DefaultOverlapRemovalAlgorithm = OverlapRemovalAlgorithmTypeEnum.None; //generate group params var prms = new List <AlgorithmGroupParameters <DataVertex, DataEdge> > { new AlgorithmGroupParameters <DataVertex, DataEdge> { GroupId = 1, LayoutAlgorithm = new RandomLayoutAlgorithm <DataVertex, DataEdge, GraphExample>( new RandomLayoutAlgorithmParams { Bounds = new Rect(10, 10, 490, 490) }), }, new AlgorithmGroupParameters <DataVertex, DataEdge> { GroupId = 2, LayoutAlgorithm = new RandomLayoutAlgorithm <DataVertex, DataEdge, GraphExample>( new RandomLayoutAlgorithmParams { Bounds = new Rect(10, 10, 490, 490) }), } }; var gParams = new GroupingLayoutAlgorithmParameters <DataVertex, DataEdge>(prms, true) { OverlapRemovalAlgorithm = logicCore.AlgorithmFactory.CreateFSAA <object>(100, 100), ArrangeGroups = cbArrangeGroups.IsChecked ?? false, }; //generate grouping algo logicCore.ExternalLayoutAlgorithm = new GroupingLayoutAlgorithm <DataVertex, DataEdge, BidirectionalGraph <DataVertex, DataEdge> >(logicCore.Graph, null, gParams); graphArea.LogicCore = logicCore; //generate graphs graphArea.GenerateGraph(); //generate group visuals foreach (var item in prms) { if (!item.ZoneRectangle.HasValue) { continue; } var rect = GenerateGroupBorder(item); graphArea.InsertCustomChildControl(0, rect); GraphAreaBase.SetX(rect, item.ZoneRectangle.Value.X - _groupInnerPadding * .5); GraphAreaBase.SetY(rect, item.ZoneRectangle.Value.Y - _groupInnerPadding * .5 - _headerHeight); } zoomControl.ZoomToFill(); }
private void ThemedGraph_Constructor() { var tg_Logic = new LogicCoreExample(); tg_Area.LogicCore = tg_Logic; tg_Logic.DefaultLayoutAlgorithm = LayoutAlgorithmTypeEnum.LinLog; tg_Logic.DefaultOverlapRemovalAlgorithm = OverlapRemovalAlgorithmTypeEnum.FSA; tg_Logic.DefaultOverlapRemovalAlgorithmParams = tg_Logic.AlgorithmFactory.CreateOverlapRemovalParameters(OverlapRemovalAlgorithmTypeEnum.FSA); (tg_Logic.DefaultOverlapRemovalAlgorithmParams as OverlapRemovalParameters).HorizontalGap = 150; (tg_Logic.DefaultOverlapRemovalAlgorithmParams as OverlapRemovalParameters).VerticalGap = 150; tg_Logic.DefaultEdgeRoutingAlgorithm = EdgeRoutingAlgorithmTypeEnum.SimpleER; tg_Logic.EdgeCurvingEnabled = true; tg_Logic.AsyncAlgorithmCompute = true; tg_edgeMode.ItemsSource = new string[] { "Draw all edges", "Draw edges by vertex selection" }; tg_edgeMode.SelectedIndex = 0; tg_edgeType.ItemsSource = Enum.GetValues(typeof(EdgesType)).Cast<EdgesType>(); tg_edgeType.SelectedItem = EdgesType.All; tg_moveAnimation.ItemsSource = Enum.GetValues(typeof(MoveAnimation)).Cast<MoveAnimation>(); tg_moveAnimation.SelectedItem = MoveAnimation.Move; tg_deleteAnimation.ItemsSource = Enum.GetValues(typeof(DeleteAnimation)).Cast<DeleteAnimation>(); tg_deleteAnimation.SelectedItem = DeleteAnimation.Shrink; tg_mouseoverAnimation.ItemsSource = Enum.GetValues(typeof(MouseOverAnimation)).Cast<MouseOverAnimation>(); tg_mouseoverAnimation.SelectedItem = MouseOverAnimation.Scale; tg_highlightStrategy.ItemsSource = Enum.GetValues(typeof(HighlightStrategy)).Cast<HighlightStrategy>(); tg_highlightStrategy.SelectedItem = HighlightStrategy.UseExistingControls; tg_highlightType.ItemsSource = Enum.GetValues(typeof(GraphControlType)).Cast<GraphControlType>(); tg_highlightType.SelectedItem = GraphControlType.VertexAndEdge; tg_highlightEdgeType.ItemsSource = Enum.GetValues(typeof(EdgesType)).Cast<EdgesType>(); tg_highlightEdgeType.SelectedItem = EdgesType.All; //tg_Area.UseNativeObjectArrange = false; //tg_Area.SideExpansionSize = new Size(100, 100); //additional space for correct scale animation //tg_Area.DefaultEdgeRoutingAlgorithm = EdgeRoutingAlgorithmTypeEnum.SimpleER; tg_highlightEnabled_Checked(null, null); tg_dragMoveEdges_Checked(null, null); tg_dragEnabled_Checked(null, null); tg_Area.VertexSelected += tg_Area_VertexSelected; tg_Area.GenerateGraphFinished += tg_Area_GenerateGraphFinished; tg_Area.RelayoutFinished += tg_Area_RelayoutFinished; tg_dragMoveEdges.Checked += tg_dragMoveEdges_Checked; tg_dragMoveEdges.Unchecked += tg_dragMoveEdges_Checked; ZoomControl.SetViewFinderVisibility(tg_zoomctrl, System.Windows.Visibility.Visible); TGRegisterCommands(); }
void tst_but_gen_Click(object sender, RoutedEventArgs e) { var _graph = new GraphExample(); var v1 = new DataVertex() { Text = "Test1", ID = 1 }; _graph.AddVertex(v1); var v2 = new DataVertex() { Text = "Test2", ID = 2 }; _graph.AddVertex(v2); var v3 = new DataVertex() { Text = "Test3", ID = 3 }; _graph.AddVertex(v3); var v4 = new DataVertex() { Text = "Test4", ID = 4 }; _graph.AddVertex(v4); _graph.AddEdge(new DataEdge(v1, v2, 1) { ID = 1000 }); _graph.AddEdge(new DataEdge(v1, v2, 1) { ID = 1 }); _graph.AddEdge(new DataEdge(v1, v4, 1) { ID = 1000 }); _graph.AddEdge(new DataEdge(v1, v4, 1) { ID = 1 }); _graph.AddEdge(new DataEdge(v1, v4, 1) { ID = 2 }); _graph.AddEdge(new DataEdge(v2, v4, 1) { ID = 1001 }); _graph.AddEdge(new DataEdge(v3, v4, 1) { ID = 1002 }); _graph.AddEdge(new DataEdge(v3, v4, 1) { ID = 1003 }); _graph.AddEdge(new DataEdge(v4, v3, 1) { ID = 1004 }); _graph.AddEdge(new DataEdge(v4, v3, 1) { ID = 1005 }); _graph.AddEdge(new DataEdge(v4, v3, 1) { ID = 1006 }); tst_Area.ShowAllEdgesArrows(true); var ergTreeLayoutParameters = new KKLayoutParameters { }; var logic = new LogicCoreExample(); TSTLC = logic; logic.Graph = _graph; logic.EnableParallelEdges = true; logic.ParallelEdgeDistance = 15; logic.DefaultLayoutAlgorithm = LayoutAlgorithmTypeEnum.KK; logic.DefaultLayoutAlgorithmParams = ergTreeLayoutParameters; logic.DefaultOverlapRemovalAlgorithm = OverlapRemovalAlgorithmTypeEnum.FSA; logic.DefaultOverlapRemovalAlgorithmParams = logic.AlgorithmFactory.CreateOverlapRemovalParameters(OverlapRemovalAlgorithmTypeEnum.FSA); ((GraphX.GraphSharp.Algorithms.OverlapRemoval.OverlapRemovalParameters)logic.DefaultOverlapRemovalAlgorithmParams).HorizontalGap = 140; ((GraphX.GraphSharp.Algorithms.OverlapRemoval.OverlapRemovalParameters)logic.DefaultOverlapRemovalAlgorithmParams).VerticalGap = 140; tst_Area.GenerateGraph(_graph, true); //tst_Area.VertexList[v1].Visibility = System.Windows.Visibility.Collapsed; //tst_Area.VertexList[v2].Visibility = System.Windows.Visibility.Collapsed; //tst_Area.VertexList[v3].Visibility = System.Windows.Visibility.Collapsed; //tst_Area.VertexList[v4].SetPosition(new Point(0, 0)); tst_Area.ShowAllEdgesLabels(); tst_Area.AlignAllEdgesLabels(); tst_zoomctrl.ZoomToFill(); /* var img = new BitmapImage(new Uri(@"pack://application:,,,/ShowcaseExample;component/Images/birdy.png", UriKind.Absolute)) { CacheOption = BitmapCacheOption.OnLoad }; GraphAreaBase.SetX(img, -100); GraphAreaBase.SetY(img, -100); var image = new Image() { Source = img, Width = 100, Height = 100 }; var border = new Border() { BorderBrush = Brushes.Black, BorderThickness = new Thickness(2), Background = Brushes.Black, Width = 100, Height = 100 }; image.Visibility = System.Windows.Visibility.Visible; border.Visibility = System.Windows.Visibility.Visible; tst_Area.InsertCustomChildControl(0, image); tst_Area.InsertCustomChildControl(0, border);*/ }