-package org.simantics.modeling.ui.diagram.monitor;\r
-\r
-import java.text.DecimalFormat;\r
-import java.text.DecimalFormatSymbols;\r
-import java.util.Locale;\r
-\r
-import org.simantics.common.format.Formatter;\r
-import org.simantics.databoard.Bindings;\r
-import org.simantics.db.ReadGraph;\r
-import org.simantics.db.RelationContext;\r
-import org.simantics.db.Resource;\r
-import org.simantics.db.common.adaption.SimpleContextualAdapter;\r
-import org.simantics.db.exception.DatabaseException;\r
-import org.simantics.diagram.stubs.DiagramResource;\r
-import org.simantics.layer0.Layer0;\r
-\r
-public class RealizedFormatterAdapter extends SimpleContextualAdapter<Formatter, RelationContext> {\r
-\r
- @Override\r
- public Formatter adapt(ReadGraph graph, Resource source, RelationContext context) throws DatabaseException {\r
-\r
- Layer0 L0 = Layer0.getInstance(graph);\r
- DiagramResource DIA = DiagramResource.getInstance(graph);\r
- Resource formatter = context.getStatement().getObject();\r
-\r
- String definition = graph.getRelatedValue(formatter, DIA.RealizedFormatter_HasDefinition, Bindings.STRING);\r
- final String label = graph.getPossibleRelatedAdapter(formatter, L0.HasLabel, String.class);\r
- final DecimalFormat format = new DecimalFormat(definition, DecimalFormatSymbols.getInstance(Locale.US));\r
- final String toString = label + " (" + definition + ")";\r
-\r
- return new Formatter() {\r
-\r
- private String formatNumber(Number v) {\r
- double dv = v.doubleValue();\r
- if (Double.isInfinite(dv)) {\r
- return (dv == Double.POSITIVE_INFINITY) ? "\u221E" : "-\u221E";\r
- } else if (Double.isNaN(dv)) {\r
- return "NaN";\r
- } else {\r
- return format.format(v);\r
- }\r
- }\r
-\r
- @Override\r
- public String format(Object object) {\r
- if (object instanceof Number) {\r
- Number num = (Number) object;\r
- return formatNumber(num);\r
- }\r
- else if(object instanceof String) {\r
- try {\r
- Double d = Double.parseDouble((String)object);\r
- return formatNumber(d);\r
- } catch (NumberFormatException e) {\r
- return (String)object;\r
- }\r
- } else {\r
- return object != null ? object.toString() : "";\r
- }\r
- }\r
-\r
- @Override\r
- public String toString() {\r
- return toString;\r
- }\r
-\r
- };\r
-\r
- }\r
-\r
-}\r
+package org.simantics.modeling.ui.diagram.monitor;
+
+import java.text.DecimalFormat;
+import java.text.DecimalFormatSymbols;
+import java.util.Locale;
+
+import org.simantics.common.format.Formatter;
+import org.simantics.databoard.Bindings;
+import org.simantics.db.ReadGraph;
+import org.simantics.db.RelationContext;
+import org.simantics.db.Resource;
+import org.simantics.db.common.adaption.SimpleContextualAdapter;
+import org.simantics.db.exception.DatabaseException;
+import org.simantics.diagram.stubs.DiagramResource;
+import org.simantics.layer0.Layer0;
+
+public class RealizedFormatterAdapter extends SimpleContextualAdapter<Formatter, RelationContext> {
+
+ @Override
+ public Formatter adapt(ReadGraph graph, Resource source, RelationContext context) throws DatabaseException {
+
+ Layer0 L0 = Layer0.getInstance(graph);
+ DiagramResource DIA = DiagramResource.getInstance(graph);
+ Resource formatter = context.getStatement().getObject();
+
+ String definition = graph.getRelatedValue(formatter, DIA.RealizedFormatter_HasDefinition, Bindings.STRING);
+ final String label = graph.getPossibleRelatedAdapter(formatter, L0.HasLabel, String.class);
+ final DecimalFormat format = new DecimalFormat(definition, DecimalFormatSymbols.getInstance(Locale.US));
+ final String toString = label + " (" + definition + ")"; //$NON-NLS-1$ //$NON-NLS-2$
+
+ return new Formatter() {
+
+ private String formatNumber(Number v) {
+ double dv = v.doubleValue();
+ if (Double.isInfinite(dv)) {
+ return (dv == Double.POSITIVE_INFINITY) ? "\u221E" : "-\u221E"; //$NON-NLS-1$ //$NON-NLS-2$
+ } else if (Double.isNaN(dv)) {
+ return "NaN"; //$NON-NLS-1$
+ } else {
+ return format.format(v);
+ }
+ }
+
+ @Override
+ public String format(Object object) {
+ if (object instanceof Number) {
+ Number num = (Number) object;
+ return formatNumber(num);
+ }
+ else if(object instanceof String) {
+ try {
+ Double d = Double.parseDouble((String)object);
+ return formatNumber(d);
+ } catch (NumberFormatException e) {
+ return (String)object;
+ }
+ } else {
+ return object != null ? object.toString() : ""; //$NON-NLS-1$
+ }
+ }
+
+ @Override
+ public String toString() {
+ return toString;
+ }
+
+ };
+
+ }
+
+}