internal void DrawGraph(Graphics g) { #region drawing of database for debugging only #if DEBUGGLEE Pen myPen = new Pen(System.Drawing.Color.Blue, (float)(1 / 1000.0)); DrawingGraph dg = this.DrawingGraph; if (dg.DataBase != null) { Draw.DrawDataBase(g, myPen, dg); } bool debugDrawing = Draw.DrawDebugStuff(g, this, myPen); if (debugDrawing) { return; } #endif #endregion if (this.drawingGraph.Attr.Border > 0) { DrawGraphBorder(this.drawingGraph.Attr.Border, g); } bool renderEdgeLabels = this.EdgeLabelsAreRendered; //we need to draw the edited edges last DEdge dEdgeSelectedForEditing = null; foreach (DEdge dEdge in Edges) { if (!dEdge.SelectedForEditing) { DrawEdge(g, dEdge, renderEdgeLabels); } else //there must be no more than one edge selected for editing { dEdgeSelectedForEditing = dEdge; } } foreach (DNode dnode in nodeMap.Values) { DrawNode(g, dnode); } //draw the selected edge if (dEdgeSelectedForEditing != null) { DrawEdge(g, dEdgeSelectedForEditing, renderEdgeLabels); DrawUnderlyingPolyline(g, dEdgeSelectedForEditing); } }
internal void DrawGraph(Graphics g) { #region drawing of database for debugging only #if TEST_MSAGL Graph dg = DrawingGraph; if (dg.DataBase != null) { var myPen = new Pen(Color.Blue, (float)(1 / 1000.0)); Draw.DrawDataBase(g, myPen, dg); } if (NeedToDrawDebugStuff()) { var myPen = new Pen(Color.Blue, (float)(1 / 1000.0)); Draw.DrawDebugStuff(g, this, myPen); } #endif #endregion if (drawingGraph.Attr.Border > 0) { DrawGraphBorder(drawingGraph.Attr.Border, g); } //we need to draw the edited edges last DEdge dEdgeSelectedForEditing = null; foreach (var subgraph in drawingGraph.RootSubgraph.AllSubgraphsWidthFirstExcludingSelf()) { DrawNode(g, nodeMap[subgraph.Id]); } foreach (DEdge dEdge in Edges) { if (!dEdge.SelectedForEditing) { DrawEdge(g, dEdge); } else //there must be no more than one edge selected for editing { dEdgeSelectedForEditing = dEdge; } } foreach (DNode dnode in nodeMap.Values) { if (!(dnode.DrawingNode is Subgraph)) { DrawNode(g, dnode); } } //draw the selected edge if (dEdgeSelectedForEditing != null) { DrawEdge(g, dEdgeSelectedForEditing); DrawUnderlyingPolyline(g, dEdgeSelectedForEditing); } if (Viewer.SourcePortIsPresent) { DrawPortAtLocation(g, Viewer.SourcePortLocation); } if (Viewer.TargetPortIsPresent) { DrawPortAtLocation(g, Viewer.TargetPortLocation); } }