-/*******************************************************************************\r
- * Copyright (c) 2007- VTT Technical Research Centre of Finland.\r
- * All rights reserved. This program and the accompanying materials\r
- * are made available under the terms of the Eclipse Public License v1.0\r
- * which accompanies this distribution, and is available at\r
- * http://www.eclipse.org/legal/epl-v10.html\r
- *\r
- * Contributors:\r
- * VTT Technical Research Centre of Finland - initial API and implementation\r
- *******************************************************************************/\r
-package org.simantics.g2d.element.handler;\r
-\r
-import java.util.ArrayList;\r
-import java.util.Collection;\r
-import java.util.HashSet;\r
-import java.util.List;\r
-import java.util.Set;\r
-\r
-import org.simantics.g2d.element.IElement;\r
-import org.simantics.utils.datastructures.hints.IHintContext.Key;\r
-import org.simantics.utils.datastructures.hints.IHintContext.KeyOf;\r
-import org.simantics.utils.datastructures.valueinterface.InvalidItemException;\r
-import org.simantics.utils.datastructures.valueinterface.SubscriptionException;\r
-import org.simantics.utils.datastructures.valueinterface.ValueAccess;\r
-import org.simantics.utils.datastructures.valueinterface.ValueMap;\r
-import org.simantics.utils.datastructures.valueinterface.impl.SimpleValueMap;\r
-import org.simantics.utils.datastructures.valueinterface.impl.ValueMonitor;\r
-\r
-/**\r
- * \r
- * @Author Toni Kalajainen\r
- */\r
-public class PropertyHandlerImpl implements PropertyHandler {\r
-\r
- List<String> keys = new ArrayList<String>();\r
- Set<String> keys2 = new HashSet<String>();\r
- ValueMap<String> initialValues;\r
- \r
- private static final Key KEY_VM = new KeyOf(ValueMonitor.class);\r
- \r
- public PropertyHandlerImpl(String ... keys)\r
- {\r
- for (String k : keys) {\r
- this.keys.add(k);\r
- this.keys2.add(k);\r
- }\r
- }\r
- \r
- public PropertyHandlerImpl(Collection<String> keys, ValueMap<String> initialValues)\r
- {\r
- for (String k : keys) {\r
- this.keys.add(k);\r
- this.keys2.add(k);\r
- }\r
- if (initialValues!=null)\r
- this.initialValues = new SimpleValueMap<String>(initialValues);\r
- }\r
- \r
- @Override\r
- public void enumerateProperties(Collection<String> collection) {\r
- collection.addAll(keys);\r
- }\r
-\r
- @Override\r
- public Object getValue(IElement e, String key) {\r
- ValueMonitor<String> vm = e.getHint(KEY_VM);\r
- if (vm==null) return null;\r
- return vm.get(key);\r
- }\r
-\r
- @Override\r
- public void setValueSource(IElement e, ValueAccess<String> access) {\r
- if (access==null) {\r
- ValueMonitor<String> vm = e.getHint(KEY_VM);\r
- if (vm!=null) { \r
- e.removeHint(KEY_VM);\r
- vm.dispose();\r
- }\r
- return;\r
- }\r
- try {\r
- ValueMonitor<String> vm = new ValueMonitor<String>(access, keys2, initialValues);\r
- e.setHint(KEY_VM, vm);\r
- vm.dispose();\r
- } catch (SubscriptionException e1) {\r
- e1.printStackTrace();\r
- } catch (InvalidItemException e1) {\r
- e1.printStackTrace();\r
- }\r
- }\r
-\r
-}\r
+/*******************************************************************************
+ * Copyright (c) 2007- VTT Technical Research Centre of Finland.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * VTT Technical Research Centre of Finland - initial API and implementation
+ *******************************************************************************/
+package org.simantics.g2d.element.handler;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.simantics.g2d.element.IElement;
+import org.simantics.utils.datastructures.hints.IHintContext.Key;
+import org.simantics.utils.datastructures.hints.IHintContext.KeyOf;
+import org.simantics.utils.datastructures.valueinterface.InvalidItemException;
+import org.simantics.utils.datastructures.valueinterface.SubscriptionException;
+import org.simantics.utils.datastructures.valueinterface.ValueAccess;
+import org.simantics.utils.datastructures.valueinterface.ValueMap;
+import org.simantics.utils.datastructures.valueinterface.impl.SimpleValueMap;
+import org.simantics.utils.datastructures.valueinterface.impl.ValueMonitor;
+
+/**
+ *
+ * @Author Toni Kalajainen
+ */
+public class PropertyHandlerImpl implements PropertyHandler {
+
+ List<String> keys = new ArrayList<String>();
+ Set<String> keys2 = new HashSet<String>();
+ ValueMap<String> initialValues;
+
+ private static final Key KEY_VM = new KeyOf(ValueMonitor.class);
+
+ public PropertyHandlerImpl(String ... keys)
+ {
+ for (String k : keys) {
+ this.keys.add(k);
+ this.keys2.add(k);
+ }
+ }
+
+ public PropertyHandlerImpl(Collection<String> keys, ValueMap<String> initialValues)
+ {
+ for (String k : keys) {
+ this.keys.add(k);
+ this.keys2.add(k);
+ }
+ if (initialValues!=null)
+ this.initialValues = new SimpleValueMap<String>(initialValues);
+ }
+
+ @Override
+ public void enumerateProperties(Collection<String> collection) {
+ collection.addAll(keys);
+ }
+
+ @Override
+ public Object getValue(IElement e, String key) {
+ ValueMonitor<String> vm = e.getHint(KEY_VM);
+ if (vm==null) return null;
+ return vm.get(key);
+ }
+
+ @Override
+ public void setValueSource(IElement e, ValueAccess<String> access) {
+ if (access==null) {
+ ValueMonitor<String> vm = e.getHint(KEY_VM);
+ if (vm!=null) {
+ e.removeHint(KEY_VM);
+ vm.dispose();
+ }
+ return;
+ }
+ try {
+ ValueMonitor<String> vm = new ValueMonitor<String>(access, keys2, initialValues);
+ e.setHint(KEY_VM, vm);
+ vm.dispose();
+ } catch (SubscriptionException e1) {
+ e1.printStackTrace();
+ } catch (InvalidItemException e1) {
+ e1.printStackTrace();
+ }
+ }
+
+}