X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.graphviz%2Fsrc%2Forg%2Fsimantics%2Fgraphviz%2Fdrawable%2FJViewer.java;h=d50f577567977129748c62e246c1c7883ae345f9;hb=91e878ce39c9db112d658b3236f29a13e12724e6;hp=2543a7a667429d10626e7a92fe8e507fad4ef493;hpb=bf5f7cda1b9b64484cc6e53499e38d6785744aec;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.graphviz/src/org/simantics/graphviz/drawable/JViewer.java b/bundles/org.simantics.graphviz/src/org/simantics/graphviz/drawable/JViewer.java index 2543a7a66..d50f57756 100644 --- a/bundles/org.simantics.graphviz/src/org/simantics/graphviz/drawable/JViewer.java +++ b/bundles/org.simantics.graphviz/src/org/simantics/graphviz/drawable/JViewer.java @@ -97,6 +97,8 @@ public class JViewer extends JFrame { addMouseMotionListener(new MouseAdapter() { @Override public void mouseDragged(MouseEvent e) { + if(transform == null) + return; Point cur = e.getPoint(); if (prev == null) prev = cur; @@ -111,16 +113,16 @@ public class JViewer extends JFrame { @Override public void mouseWheelMoved(MouseWheelEvent e) { - if(transform != null) { - double scale = Math.exp(-0.1*e.getUnitsToScroll()); - Point p = e.getPoint(); - AffineTransform mod = new AffineTransform(); - mod.translate(p.getX(), p.getY()); - mod.scale(scale, scale); - mod.translate(-p.getX(), -p.getY()); - transform.preConcatenate(mod); - repaint(); - } + if(transform == null) + return; + double scale = Math.exp(-0.1*e.getUnitsToScroll()); + Point p = e.getPoint(); + AffineTransform mod = new AffineTransform(); + mod.translate(p.getX(), p.getY()); + mod.scale(scale, scale); + mod.translate(-p.getX(), -p.getY()); + transform.preConcatenate(mod); + repaint(); } }); @@ -135,8 +137,11 @@ public class JViewer extends JFrame { private void fit() { Rectangle2D bounds = drawable.getBounds(); - Rectangle2D container = getBounds(); + + if(bounds == null || container == null) + return; + double scale = container == null ? 1 : Math.min( container.getWidth() / bounds.getWidth(), container.getHeight() / bounds.getHeight()); @@ -161,8 +166,15 @@ public class JViewer extends JFrame { g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); g.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON); - if(transform == null) + if(transform == null) { fit(); + if(transform == null) { + g.setTransform(new AffineTransform()); + g.setColor(Color.BLACK); + g.drawString("No data available yet", 20f, 20f); + return; + } + } g.setTransform(transform); drawable.draw(g, null);