]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.selectionview/src/org/simantics/selectionview/function/All.java
String formatter property using SCL function instead of adapter
[simantics/platform.git] / bundles / org.simantics.selectionview / src / org / simantics / selectionview / function / All.java
index 7d9d1dba8b02bfcddc51526ff42a6f0491940949..79541b06134deb344a5f6f71c4dda854edcfc145 100644 (file)
@@ -53,7 +53,9 @@ import org.simantics.scl.compiler.types.TVar;
 import org.simantics.scl.compiler.types.Type;
 import org.simantics.scl.compiler.types.Types;
 import org.simantics.scl.reflection.annotations.SCLValue;
+import org.simantics.scl.runtime.function.Function1;
 import org.simantics.selectionview.SelectionInput;
+import org.simantics.selectionview.SelectionViewResources;
 import org.simantics.selectionview.StandardSelectionInput;
 import org.simantics.ui.colors.Colors;
 import org.simantics.ui.fonts.Fonts;
@@ -451,15 +453,20 @@ public class All {
                        Object value = null;
                        Resource formatter = property.getPossiblePropertyValue(graph, Variables.FORMATTER);
                        if(formatter != null) {
-                               
                                Formatter fmt = graph.adaptContextual(formatter, property, Variable.class, Formatter.class);
                                value = fmt.format(property.getValue(graph));
-                               
-                       } else {
+                       }
+                       if(value == null) {
+                               SelectionViewResources SEL = SelectionViewResources.getInstance(graph);
+                               Function1<Object,String> formatterFunction = property.getPossiblePropertyValue(graph, SEL.formatter);
+                               if(formatterFunction != null) {
+                                       value = formatterFunction.apply(property.getValue(graph));
+                               }
+                       }
+                       if(value == null) {
 
                                Variant variant = property.getVariantValue(graph);
                                value = variant.getValue();
-                               
                                Binding binding = variant.getBinding();
                                if(binding != null) {
                                        Datatype dt = binding.type();