Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,8 @@ public Graph Graph {
public static readonly DependencyProperty GraphProperty =
DependencyProperty.Register("Graph", typeof(Graph), typeof(AutomaticGraphLayoutControl), new PropertyMetadata(default(Graph),
(d,e)=> ((AutomaticGraphLayoutControl)d)?.SetGraph()));

private void SetGraph() {
if (Graph == null) {
dockPanel.Children.Clear();
return;
}
if (_graphViewer == null) {
_graphViewer = new GraphViewer();
_graphViewer.BindToPanel(dockPanel);
Expand Down
18 changes: 5 additions & 13 deletions GraphLayout/tools/WpfGraphControl/GraphViewer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ public class GraphViewer : IViewer {
public bool RunLayoutAsync;

readonly Canvas _graphCanvas = new Canvas();
Graph _drawingGraph;
Graph _drawingGraph = new Graph();

readonly Dictionary<DrawingObject, FrameworkElement> drawingObjectsToFrameworkElements =
new Dictionary<DrawingObject, FrameworkElement>();
Expand Down Expand Up @@ -518,7 +518,7 @@ void OnMouseUp(MouseEventArgs e) {
}

void GraphCanvasSizeChanged(object sender, SizeChangedEventArgs e) {
if (_drawingGraph == null) return;
if (_drawingGraph.NodeMap.Count == 0) return;
// keep the same zoom level
double oldfit = GetFitFactor(e.PreviousSize);
double fitNow = FitFactor;
Expand Down Expand Up @@ -699,7 +699,7 @@ public double UnderlyingPolylineCircleRadius {
public Graph Graph {
get { return _drawingGraph; }
set {
_drawingGraph = value;
_drawingGraph = value ?? new Graph();
ProcessGraph();
}
}
Expand Down Expand Up @@ -745,9 +745,6 @@ void ProcessGraphUnderLock() {
LayoutStarted(null, null);

CancelToken = new CancelToken();

if (_drawingGraph == null) return;

HideCanvas();
ClearGraphViewer();
CreateFrameworkElementsForLabelsOnly();
Expand Down Expand Up @@ -868,7 +865,7 @@ void ClearGraphCanvasChildren() {
/// zooms to the default view
/// </summary>
public void SetInitialTransform() {
if (_drawingGraph == null || GeomGraph == null) return;
if (_drawingGraph.NodeMap.Count == 0 || GeomGraph == null) return;

var scale = FitFactor;
var graphCenter = GeomGraph.BoundingBox.Center;
Expand Down Expand Up @@ -964,8 +961,7 @@ bool ScaleIsOutOfRange(double scale) {
double FitFactor {
get {
var geomGraph = GeomGraph;
if (_drawingGraph == null || geomGraph == null ||

if (_drawingGraph.NodeMap.Count == 0 || geomGraph == null ||
geomGraph.Width == 0 || geomGraph.Height == 0)
return 1;

Expand Down Expand Up @@ -1487,8 +1483,6 @@ public IViewerEdge CreateEdgeWithGivenGeometry(DrawingEdge drawingEdge) {
}

public void AddNode(IViewerNode node, bool registerForUndo) {
if (_drawingGraph == null)
throw new InvalidOperationException(); // adding a node when the graph does not exist
var vNode = (VNode)node;
_drawingGraph.AddNode(vNode.Node);
_drawingGraph.GeometryGraph.Nodes.Add(vNode.Node.GeometryNode);
Expand Down Expand Up @@ -1695,8 +1689,6 @@ public void StartDrawingRubberLine(Point startingPoint) {


public IViewerNode CreateIViewerNode(Drawing.Node drawingNode, Point center, object visualElement) {
if (_drawingGraph == null)
return null;
var frameworkElement = visualElement as FrameworkElement ?? CreateTextBlockForDrawingObj(drawingNode);
var width = frameworkElement.Width + 2 * drawingNode.Attr.LabelMargin;
var height = frameworkElement.Height + 2 * drawingNode.Attr.LabelMargin;
Expand Down