TryGetGroupLayoutDrawingInfo ( IGraph graph, out GroupLayoutDrawingInfo groupLayoutDrawingInfo ) { Debug.Assert(graph != null); groupLayoutDrawingInfo = null; Object oGroupLayoutDrawingInfoAsObject; if (graph.TryGetValue(ReservedMetadataKeys.GroupLayoutDrawingInfo, typeof(GroupLayoutDrawingInfo), out oGroupLayoutDrawingInfoAsObject)) { groupLayoutDrawingInfo = (GroupLayoutDrawingInfo)oGroupLayoutDrawingInfoAsObject; return(true); } return(false); }
TryGetGroupLayoutDrawingInfo ( IGraph graph, out GroupLayoutDrawingInfo groupLayoutDrawingInfo ) { Debug.Assert(graph != null); groupLayoutDrawingInfo = null; Object oGroupLayoutDrawingInfoAsObject; if ( graph.TryGetValue(ReservedMetadataKeys.GroupLayoutDrawingInfo, typeof(GroupLayoutDrawingInfo), out oGroupLayoutDrawingInfoAsObject) ) { groupLayoutDrawingInfo = (GroupLayoutDrawingInfo)oGroupLayoutDrawingInfoAsObject; return (true); } return (false); }
DrawCombinedIntergroupEdge ( DrawingContext oDrawingContext, GraphDrawingContext oGraphDrawingContext, IntergroupEdgeInfo oCombinedIntergroupEdge, GroupLayoutDrawingInfo oGroupLayoutDrawingInfo ) { Debug.Assert(oDrawingContext != null); Debug.Assert(oGraphDrawingContext != null); Debug.Assert(oCombinedIntergroupEdge != null); Debug.Assert(oGroupLayoutDrawingInfo != null); AssertValid(); Rect oGroupRectangle1, oGroupRectangle2; if ( !TryGetGroupRectangle( oGroupLayoutDrawingInfo.GroupsToDraw[ oCombinedIntergroupEdge.Group1Index], out oGroupRectangle1) || !TryGetGroupRectangle( oGroupLayoutDrawingInfo.GroupsToDraw[ oCombinedIntergroupEdge.Group2Index], out oGroupRectangle2) ) { return; } Point oGroupRectangle1Center = WpfGraphicsUtil.GetRectCenter(oGroupRectangle1); Point oGroupRectangle2Center = WpfGraphicsUtil.GetRectCenter(oGroupRectangle2); Point oBezierControlPoint = GetBezierControlPoint(oGraphDrawingContext, oGroupRectangle1Center, oGroupRectangle2Center, CombinedIntergroupEdgeBezierDisplacementFactor ); PathGeometry oBezierCurve = WpfPathGeometryUtil.GetQuadraticBezierCurve(oGroupRectangle1Center, oGroupRectangle2Center, oBezierControlPoint); Color oColor = GetContrastingColor( oGraphDrawingContext, CombinedIntergroupEdgeAlpha, true); Pen oPen = CreateFrozenPen(CreateFrozenSolidColorBrush(oColor), GetCombinedIntergroupEdgePenWidth(oCombinedIntergroupEdge) * this.GraphScale, DashStyles.Solid, PenLineCap.Round); oDrawingContext.DrawGeometry(null, oPen, oBezierCurve); }
TestConstructor() { // Has CombinedIntergroupEdges. GroupInfo [] aoGroupInfo = new GroupInfo [] { new GroupInfo(), new GroupInfo(), new GroupInfo() }; const Double PenWidth = 1.234; IntergroupEdgeInfo[] aoCombinedIntergroupEdges = new IntergroupEdgeInfo[5]; GroupLayoutDrawingInfo oGroupLayoutDrawingInfo = new GroupLayoutDrawingInfo(aoGroupInfo, PenWidth, aoCombinedIntergroupEdges); Assert.AreEqual(aoGroupInfo, oGroupLayoutDrawingInfo.GroupsToDraw); Assert.AreEqual(PenWidth, oGroupLayoutDrawingInfo.PenWidth); Assert.AreEqual(aoCombinedIntergroupEdges, oGroupLayoutDrawingInfo.CombinedIntergroupEdges); }
TestConstructor2() { // Null CombinedIntergroupEdges. GroupInfo [] aoGroupInfo = new GroupInfo [] { new GroupInfo(), new GroupInfo(), new GroupInfo() }; const Double PenWidth = 1.234; GroupLayoutDrawingInfo oGroupLayoutDrawingInfo = new GroupLayoutDrawingInfo(aoGroupInfo, PenWidth, null); Assert.AreEqual(aoGroupInfo, oGroupLayoutDrawingInfo.GroupsToDraw); Assert.AreEqual(PenWidth, oGroupLayoutDrawingInfo.PenWidth); Assert.IsNull(oGroupLayoutDrawingInfo.CombinedIntergroupEdges); }