コード例 #1
0
ファイル: NNGraph.xaml.cs プロジェクト: slate56/GraphXExt
        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;
        }
コード例 #2
0
        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;
        }
コード例 #3
0
        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;
        }
コード例 #4
0
        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();
        }
コード例 #5
0
        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();
        }
コード例 #6
0
        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();
        }
コード例 #7
0
        // 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();
        }
コード例 #8
0
ファイル: ThemedGraph.xaml.cs プロジェクト: aliaspilote/TX52
       // 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();               
        }
コード例 #9
0
        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);*/
        }
コード例 #10
0
        //.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;
        }
コード例 #11
0
        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;
        }
コード例 #12
0
        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);
        }
コード例 #13
0
        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);
        }
コード例 #14
0
ファイル: MainWindow_ERGraph.cs プロジェクト: kirixik/GraphX
        //.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;
        }
コード例 #15
0
ファイル: EditorGraph.xaml.cs プロジェクト: aliaspilote/TX52
        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;

        }
コード例 #16
0
        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;
        }
コード例 #17
0
        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;
        }
コード例 #18
0
        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;
        }
コード例 #19
0
ファイル: LayoutVCP.xaml.cs プロジェクト: anh123minh/DES
        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();
        }
コード例 #20
0
ファイル: DynamicGraph.xaml.cs プロジェクト: aliaspilote/TX52
        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);
        }
コード例 #21
0
        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);*/
        }
コード例 #22
0
        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;
        }
コード例 #23
0
        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);*/
        }
コード例 #24
0
        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();
        }
コード例 #25
0
        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();
        }
コード例 #26
0
        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);*/
        }