X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=org.simantics.g3d%2Fsrc%2Forg%2Fsimantics%2Fg3d%2Fproperty%2FBooleanPropertyManipulator.java;fp=org.simantics.g3d%2Fsrc%2Forg%2Fsimantics%2Fg3d%2Fproperty%2FBooleanPropertyManipulator.java;h=88a7444021c7bbb2bd4e612f186855462d2d1ecc;hb=87b3241ec277ba3d8e414b26186a032c9cdcaeed;hp=0000000000000000000000000000000000000000;hpb=1f0bcd66274375f2278d2e6c486cb28257a5f7b2;p=simantics%2F3d.git diff --git a/org.simantics.g3d/src/org/simantics/g3d/property/BooleanPropertyManipulator.java b/org.simantics.g3d/src/org/simantics/g3d/property/BooleanPropertyManipulator.java new file mode 100644 index 00000000..88a74440 --- /dev/null +++ b/org.simantics.g3d/src/org/simantics/g3d/property/BooleanPropertyManipulator.java @@ -0,0 +1,69 @@ +package org.simantics.g3d.property; + + +public class BooleanPropertyManipulator implements PropertyManipulator { + + ValueProvider provider; + Object input; + + boolean editMode; + String editValue = null; + + public BooleanPropertyManipulator(ValueProvider provider, Object input) { + this.provider = provider; + this.input = input; + } + + @Override + public int getValueCount() { + return 1; + } + + @Override + public String getDescription(int i) { + if (i == 0) + return "Value"; + return null; + } + + @Override + public String getValue(int i) { + if (editMode) + return editValue; + try { + return provider.getValue(input).toString(); + } catch (Exception e) { + return null; + } + } + + @Override + public String setValue(String value, int i) { + try { + editValue = value; + provider.setValue(input, Boolean.parseBoolean(value)); + } catch (Exception e) { + return e.getMessage(); + } + return null; + } + + @Override + public boolean getEditMode() { + return editMode; + } + + @Override + public void setEditMode(boolean b) { + editMode = b; + if (editMode) { + try { + editValue = provider.getValue(input).toString(); + } catch (Exception e) { + + } + } + + } + +}