X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.scenegraph%2Fsrc%2Forg%2Fsimantics%2Fscenegraph%2Fg2d%2Fnodes%2FRulerNode.java;h=7e962976e52f1b67ec5f489af713c25357e90a2b;hp=27c1c1fd2bae4c1d2469ea24af1d0259647b152c;hb=436ecca6458503a993a92af8aa456b6b0f266418;hpb=2ee4ce7f7cb1df434c7552d4fce34fd7330352e5 diff --git a/bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/nodes/RulerNode.java b/bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/nodes/RulerNode.java index 27c1c1fd2..7e962976e 100644 --- a/bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/nodes/RulerNode.java +++ b/bundles/org.simantics.scenegraph/src/org/simantics/scenegraph/g2d/nodes/RulerNode.java @@ -111,7 +111,7 @@ public class RulerNode extends G2DNode { if(x > 20) { double val = (x-offsetX)/scaleX / getTransform().getScaleX(); double modifiedValue = modifyHorizontalValue(val); - String str = formatValue(modifiedValue); + String str = formatValue(modifiedValue, getMaxDigits()); FontMetrics fm = g.getFontMetrics(); Rectangle2D r = fm.getStringBounds(str, g); if((x-r.getWidth()/2) > previousText) { @@ -144,7 +144,7 @@ public class RulerNode extends G2DNode { if(y > 20) { double val = (y-offsetY)/scaleY / getTransform().getScaleY(); double modifiedValue = modifyVerticalValue(val); - String str = formatValue(modifiedValue); + String str = formatValue(modifiedValue, getMaxDigits()); FontMetrics fm = g.getFontMetrics(); Rectangle2D r = fm.getStringBounds(str, g); if(y-1+r.getHeight()/2 > previousText) { @@ -202,11 +202,15 @@ public class RulerNode extends G2DNode { private static final transient String[] SI_UNIT_LARGE_PREFIXES = { "k", "M", "G", "T", "P", "E", "Z", "Y" }; + + protected int getMaxDigits() { + return MAX_DIGITS; + } - public static String formatValue(double value) { + public static String formatValue(double value, int maxDigits) { int magnitude = (int) Math.round(Math.log10(value)); //System.out.println("magnitude: " + magnitude + ", " + value); - int allowedDecimals = MAX_DIGITS; + int allowedDecimals = maxDigits; allowedDecimals -= Math.abs(magnitude); if (allowedDecimals < 0) allowedDecimals = 0;