]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.diagram/src/org/simantics/diagram/profile/IconNode.java
Fixed all line endings of the repository
[simantics/platform.git] / bundles / org.simantics.diagram / src / org / simantics / diagram / profile / IconNode.java
index 27c61934147877ee03824ca2fc32981424f02be9..94c99741ded57e1ecc2fb56f06c28b996c1b97ca 100644 (file)
-package org.simantics.diagram.profile;\r
-\r
-import java.awt.Graphics2D;\r
-import java.awt.geom.AffineTransform;\r
-import java.awt.geom.Rectangle2D;\r
-\r
-import org.simantics.datatypes.literal.RGB;\r
-import org.simantics.datatypes.literal.Vec2d;\r
-import org.simantics.diagram.internal.Activator;\r
-import org.simantics.diagram.profile.IconResult.A;\r
-import org.simantics.diagram.profile.IconResult.B;\r
-import org.simantics.scenegraph.g2d.nodes.SVGNode;\r
-\r
-public class IconNode extends IconButtonNode {\r
-       \r
-       enum Blink {\r
-               NO, INCREASE, DECREASE\r
-       }\r
-       \r
-       private B config;\r
-       private SVGNode lo = new SVGNode();\r
-       private SVGNode mid = new SVGNode();\r
-       private SVGNode hi = new SVGNode();\r
-\r
-       private SVGNode current;\r
-       \r
-       private static final long serialVersionUID = -7850188341977866325L;\r
-       private IconNode.Blink blink = Blink.NO;\r
-       private double previousValue = Double.NaN;\r
-       private long previousValueTime = System.nanoTime();\r
-       \r
-       private void setBlink(IconNode.Blink blink) {\r
-               // Was turned off\r
-               if(Blink.NO == blink && Blink.NO != this.blink) Updater.getInstance().unregister(this);\r
-               // Was turned on\r
-               if(Blink.NO != blink && Blink.NO == this.blink) Updater.getInstance().register(this);\r
-               // Record state\r
-               this.blink = blink;\r
-       }\r
-       \r
-       private void setValue(double value) {\r
-               \r
-               if(value < config.loValue) {\r
-                       current = lo;\r
-                       setBlink(Blink.NO);\r
-               } else if (value > config.hiValue) {\r
-                       current = hi;\r
-                       setBlink(Blink.NO);\r
-               } else {\r
-                       current = mid;\r
-                       if(value-previousValue > 1e-6) setBlink(Blink.INCREASE);\r
-                       else if(previousValue-value > 1e-6) setBlink(Blink.DECREASE);\r
-                       else setBlink(Blink.NO);\r
-               }\r
-               previousValue = value;\r
-               previousValueTime = System.nanoTime();\r
-               \r
-       }\r
-       \r
-       private void setConfig(B config) {\r
-\r
-               if(this.config == config) return;\r
-               \r
-               if(config.loColor != null) {\r
-               String loIcon = createSVG(config.iconName, config.loColor, config.size);\r
-               lo.setData(loIcon);\r
-               }\r
-               if(config.midColor != null) {\r
-               String midIcon = createSVG(config.iconName, config.midColor, config.size);\r
-               mid.setData(midIcon);\r
-               }\r
-               if(config.hiColor != null) {\r
-               String hiIcon = createSVG(config.iconName, config.hiColor, config.size);\r
-               hi.setData(hiIcon);\r
-               }\r
-        \r
-        this.config = config;\r
-               \r
-       }\r
-       \r
-       public void setA(A data) {\r
-\r
-               setConfig(data.config);\r
-        setValue(data.value);\r
-               \r
-       }\r
-       \r
-    @Override\r
-    public void cleanup() {\r
-               Updater.getInstance().unregister(this);\r
-       super.cleanup();\r
-    }\r
-       \r
-    @Override\r
-    public void render(Graphics2D g2d) {\r
-\r
-               AffineTransform ot = null;\r
-               if (!transform.isIdentity()) {\r
-                       ot = g2d.getTransform();\r
-                       g2d.transform(transform);\r
-               }\r
-       \r
-       if(Blink.NO == blink) {\r
-               current.render(g2d);\r
-       } else {\r
-               long time = Updater.getInstance().getTime();\r
-               \r
-               // Sanity check: turn blink of when no data for 2 seconds.\r
-               if(time-previousValueTime > 2000000000L) {\r
-                       mid.render(g2d);\r
-                       setBlink(Blink.NO);\r
-               } else {\r
-                       long halfSeconds = time / 500000000L; \r
-                       if((halfSeconds & 1) == 0) {\r
-                               mid.render(g2d);\r
-                       } else {\r
-                               if(Blink.INCREASE == blink) {\r
-                                       hi.render(g2d);\r
-                               } else {\r
-                                       lo.render(g2d);\r
-                               }\r
-                       }\r
-               }\r
-               \r
-       }\r
-\r
-               if (ot != null)\r
-                       g2d.setTransform(ot);\r
-       \r
-    }\r
-\r
-    Rectangle2D EMPTY = new Rectangle2D.Double(0, 0, 0, 0);\r
-    \r
-       @Override\r
-       public Rectangle2D getBoundsInLocal() {\r
-               return EMPTY;\r
-       }\r
-\r
-       @Override\r
-       void setData(IconButtonResult data) {\r
-               IconResult ir = (IconResult)data;\r
-               setA(ir.getA());\r
-       }\r
-       \r
-    public String createSVG(String iconName, RGB.Integer rgb, Vec2d scale) {\r
-       return Activator.ICON_PROVIDER.apply(iconName, rgb, scale);\r
-    }\r
-       \r
+package org.simantics.diagram.profile;
+
+import java.awt.Graphics2D;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Rectangle2D;
+
+import org.simantics.datatypes.literal.RGB;
+import org.simantics.datatypes.literal.Vec2d;
+import org.simantics.diagram.internal.Activator;
+import org.simantics.diagram.profile.IconResult.A;
+import org.simantics.diagram.profile.IconResult.B;
+import org.simantics.scenegraph.g2d.nodes.SVGNode;
+
+public class IconNode extends IconButtonNode {
+       
+       enum Blink {
+               NO, INCREASE, DECREASE
+       }
+       
+       private B config;
+       private SVGNode lo = new SVGNode();
+       private SVGNode mid = new SVGNode();
+       private SVGNode hi = new SVGNode();
+
+       private SVGNode current;
+       
+       private static final long serialVersionUID = -7850188341977866325L;
+       private IconNode.Blink blink = Blink.NO;
+       private double previousValue = Double.NaN;
+       private long previousValueTime = System.nanoTime();
+       
+       private void setBlink(IconNode.Blink blink) {
+               // Was turned off
+               if(Blink.NO == blink && Blink.NO != this.blink) Updater.getInstance().unregister(this);
+               // Was turned on
+               if(Blink.NO != blink && Blink.NO == this.blink) Updater.getInstance().register(this);
+               // Record state
+               this.blink = blink;
+       }
+       
+       private void setValue(double value) {
+               
+               if(value < config.loValue) {
+                       current = lo;
+                       setBlink(Blink.NO);
+               } else if (value > config.hiValue) {
+                       current = hi;
+                       setBlink(Blink.NO);
+               } else {
+                       current = mid;
+                       if(value-previousValue > 1e-6) setBlink(Blink.INCREASE);
+                       else if(previousValue-value > 1e-6) setBlink(Blink.DECREASE);
+                       else setBlink(Blink.NO);
+               }
+               previousValue = value;
+               previousValueTime = System.nanoTime();
+               
+       }
+       
+       private void setConfig(B config) {
+
+               if(this.config == config) return;
+               
+               if(config.loColor != null) {
+               String loIcon = createSVG(config.iconName, config.loColor, config.size);
+               lo.setData(loIcon);
+               }
+               if(config.midColor != null) {
+               String midIcon = createSVG(config.iconName, config.midColor, config.size);
+               mid.setData(midIcon);
+               }
+               if(config.hiColor != null) {
+               String hiIcon = createSVG(config.iconName, config.hiColor, config.size);
+               hi.setData(hiIcon);
+               }
+        
+        this.config = config;
+               
+       }
+       
+       public void setA(A data) {
+
+               setConfig(data.config);
+        setValue(data.value);
+               
+       }
+       
+    @Override
+    public void cleanup() {
+               Updater.getInstance().unregister(this);
+       super.cleanup();
+    }
+       
+    @Override
+    public void render(Graphics2D g2d) {
+
+               AffineTransform ot = null;
+               if (!transform.isIdentity()) {
+                       ot = g2d.getTransform();
+                       g2d.transform(transform);
+               }
+       
+       if(Blink.NO == blink) {
+               current.render(g2d);
+       } else {
+               long time = Updater.getInstance().getTime();
+               
+               // Sanity check: turn blink of when no data for 2 seconds.
+               if(time-previousValueTime > 2000000000L) {
+                       mid.render(g2d);
+                       setBlink(Blink.NO);
+               } else {
+                       long halfSeconds = time / 500000000L; 
+                       if((halfSeconds & 1) == 0) {
+                               mid.render(g2d);
+                       } else {
+                               if(Blink.INCREASE == blink) {
+                                       hi.render(g2d);
+                               } else {
+                                       lo.render(g2d);
+                               }
+                       }
+               }
+               
+       }
+
+               if (ot != null)
+                       g2d.setTransform(ot);
+       
+    }
+
+    Rectangle2D EMPTY = new Rectangle2D.Double(0, 0, 0, 0);
+    
+       @Override
+       public Rectangle2D getBoundsInLocal() {
+               return EMPTY;
+       }
+
+       @Override
+       void setData(IconButtonResult data) {
+               IconResult ir = (IconResult)data;
+               setA(ir.getA());
+       }
+       
+    public String createSVG(String iconName, RGB.Integer rgb, Vec2d scale) {
+       return Activator.ICON_PROVIDER.apply(iconName, rgb, scale);
+    }
+       
 }
\ No newline at end of file