--- /dev/null
+package org.simantics.g3d.property;\r
+\r
+import java.lang.reflect.Method;\r
+\r
+public class DoublePropertyManipulator implements PropertyManipulator {\r
+ \r
+ ValueProvider provider;\r
+ Object input;\r
+ \r
+ boolean editMode;\r
+ String editValue = null;\r
+ \r
+ public DoublePropertyManipulator(ValueProvider provider, Object input) {\r
+ this.provider = provider;\r
+ this.input = input;\r
+ }\r
+ \r
+ @Override\r
+ public int getValueCount() {\r
+ return 1;\r
+ }\r
+ \r
+ @Override\r
+ public String getDescription(int i) {\r
+ if (i == 0)\r
+ return "Value";\r
+ return null;\r
+ }\r
+ \r
+ @Override\r
+ public String getValue(int i) {\r
+ if (editMode)\r
+ return editValue;\r
+ try {\r
+ return provider.getValue(input).toString();\r
+ } catch (Exception e) {\r
+ return null;\r
+ }\r
+ }\r
+ \r
+ @Override\r
+ public String setValue(String value, int i) {\r
+ try {\r
+ editValue = value;\r
+ provider.setValue(input, Double.parseDouble(value));\r
+ } catch (Exception e) {\r
+ return e.getMessage();\r
+ }\r
+ return null;\r
+ }\r
+\r
+ @Override\r
+ public boolean getEditMode() {\r
+ return editMode;\r
+ }\r
+ \r
+ @Override\r
+ public void setEditMode(boolean b) {\r
+ editMode = b;\r
+ if (editMode) {\r
+ try {\r
+ editValue = provider.getValue(input).toString();\r
+ } catch (Exception e) {\r
+ \r
+ }\r
+ }\r
+ \r
+ }\r
+}\r