Author: scabanovich
Date: 2008-11-12 12:13:37 -0500 (Wed, 12 Nov 2008)
New Revision: 11726
Modified:
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/XModelObjectPropertySource.java
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/editor/ValueEditor.java
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/objecteditor/XAttributeInfo.java
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/objecteditor/XModelObjectEditor.java
Log:
JBIDE-2969 Property view, property dialog, and cell editor are made to work with visual
values.
Modified:
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/XModelObjectPropertySource.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/XModelObjectPropertySource.java 2008-11-12
17:12:27 UTC (rev 11725)
+++
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/XModelObjectPropertySource.java 2008-11-12
17:13:37 UTC (rev 11726)
@@ -16,6 +16,8 @@
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.views.properties.*;
import org.jboss.tools.common.meta.XAttribute;
+import org.jboss.tools.common.meta.constraint.impl.XAttributeConstraintAList;
+import org.jboss.tools.common.meta.key.WizardKeys;
import org.jboss.tools.common.model.XModel;
import org.jboss.tools.common.model.XModelException;
import org.jboss.tools.common.model.XModelObject;
@@ -48,6 +50,10 @@
public Object getPropertyValue(Object id) {
String n = getAttributeNameById(id);
String v = modelObject.getAttributeValue(n);
+ XAttribute a = modelObject.getModelEntity().getAttribute(n);
+ if(a != null && v != null && a.getConstraint() instanceof
XAttributeConstraintAList) {
+ v = WizardKeys.getVisualListValue(a, v);
+ }
cachedValues.setProperty(n, "" + v);
return v;
}
@@ -83,6 +89,7 @@
String v = cachedValues.getProperty(n);
if(value.equals(v)) return;
cachedValues.setProperty(n, "" + value);
+ value = fromVisualToModel(n, value.toString());
if(modelObject.isActive()) {
try {
modelObject.getModel().editObjectAttribute(modelObject, n, value.toString());
@@ -95,6 +102,17 @@
}
+ private String fromVisualToModel(String n, String value) {
+ XAttribute a = modelObject.getModelEntity().getAttribute(n);
+ if(a != null && value != null && a.getConstraint() instanceof
XAttributeConstraintAList) {
+ String[] vs = ((XAttributeConstraintAList)a.getConstraint()).getValues();
+ for (int i = 0; i < vs.length; i++) {
+ String v = WizardKeys.getVisualListValue(a, vs[i]);
+ if(value.equals(v)) return vs[i];
+ }
+ }
+ return value;
+ }
// custom methods
public void setModelObject(XModelObject object) {
Modified:
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/editor/ValueEditor.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/editor/ValueEditor.java 2008-11-12
17:12:27 UTC (rev 11725)
+++
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/attribute/editor/ValueEditor.java 2008-11-12
17:13:37 UTC (rev 11726)
@@ -13,6 +13,8 @@
import java.beans.PropertyChangeEvent;
import org.eclipse.core.runtime.IAdaptable;
+import org.jboss.tools.common.meta.constraint.impl.XAttributeConstraintAList;
+import org.jboss.tools.common.meta.key.WizardKeys;
import org.jboss.tools.common.model.ui.IValueChangeListener;
import org.jboss.tools.common.model.ui.IValueProvider;
import org.jboss.tools.common.model.ui.attribute.adapter.DefaultValueAdapter;
@@ -53,7 +55,15 @@
if (cellEditor!=null) {
IValueProvider valueProvider = (IValueProvider)getAdapter(IValueProvider.class);
// IValueChangeListener valueChangeListener =
(IValueChangeListener)getAdapter(IValueChangeListener.class);
- cellEditor.setValue(valueProvider.getValue());
+
+ Object value = valueProvider.getValue();
+ if(getInput() instanceof DefaultValueAdapter) {
+ DefaultValueAdapter a = (DefaultValueAdapter)getInput();
+ if(a.getAttribute().getConstraint() instanceof XAttributeConstraintAList) {
+ value = WizardKeys.getVisualListValue(a.getAttribute(), value.toString());
+ }
+ }
+ cellEditor.setValue(value);
//cellEditor.addListener(this);
}
}
Modified:
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/objecteditor/XAttributeInfo.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/objecteditor/XAttributeInfo.java 2008-11-12
17:12:27 UTC (rev 11725)
+++
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/objecteditor/XAttributeInfo.java 2008-11-12
17:13:37 UTC (rev 11726)
@@ -10,10 +10,15 @@
******************************************************************************/
package org.jboss.tools.common.model.ui.objecteditor;
+import java.util.HashMap;
+import java.util.Map;
+
import org.jboss.tools.common.model.ui.attribute.adapter.IModelPropertyEditorAdapter;
import org.jboss.tools.common.model.ui.attribute.editor.IPropertyEditor;
import org.jboss.tools.common.meta.*;
+import org.jboss.tools.common.meta.constraint.impl.XAttributeConstraintAList;
+import org.jboss.tools.common.meta.key.WizardKeys;
import org.jboss.tools.common.model.*;
public class XAttributeInfo {
@@ -22,10 +27,26 @@
String value;
IPropertyEditor propertyEditor;
+ Map<String, String> visualToModel = null;
+ Map<String, String> modelToVisual = null;
+
public XAttributeInfo(XModelObject object, String name) {
this.object = object;
this.name = name;
this.value = getValue();
+
+ XAttribute a = object.getModelEntity().getAttribute(name);
+ visualToModel = null;
+ if(a != null && a.getConstraint() instanceof XAttributeConstraintAList) {
+ visualToModel = new HashMap<String, String>();
+ modelToVisual = new HashMap<String, String>();
+ String[] vs = ((XAttributeConstraintAList)a.getConstraint()).getValues();
+ for (int i = 0; i < vs.length; i++) {
+ String vv = WizardKeys.getVisualListValue(a, vs[i]);
+ visualToModel.put(vv, vs[i]);
+ modelToVisual.put(vs[i], vv);
+ }
+ }
}
public XModelObject getObject() {
@@ -37,7 +58,9 @@
}
public String getValue() {
- return object.getAttributeValue(name);
+ String v = object.getAttributeValue(name);
+ if(modelToVisual != null && v != null && modelToVisual.containsKey(v))
v = modelToVisual.get(v);
+ return v;
}
public boolean isEditable() {
@@ -47,16 +70,20 @@
}
public void setValue(String value) {
- this.value = value;
+ this.value = value;
}
public void commit() throws XModelException {
+ String modelValue = value;
+ if(visualToModel != null && visualToModel.containsKey(value)) {
+ modelValue = visualToModel.get(value);
+ }
if(propertyEditor != null && propertyEditor.getInput() instanceof
IModelPropertyEditorAdapter) {
IModelPropertyEditorAdapter adapter =
(IModelPropertyEditorAdapter)propertyEditor.getInput();
- adapter.setValue(this.value);
+ adapter.setValue(modelValue);
adapter.store();
} else {
- object.getModel().editObjectAttribute(object, name, value);
+ object.getModel().editObjectAttribute(object, name, modelValue);
}
value = getValue();
}
Modified:
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/objecteditor/XModelObjectEditor.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/objecteditor/XModelObjectEditor.java 2008-11-12
17:12:27 UTC (rev 11725)
+++
trunk/common/plugins/org.jboss.tools.common.model.ui/src/org/jboss/tools/common/model/ui/objecteditor/XModelObjectEditor.java 2008-11-12
17:13:37 UTC (rev 11726)
@@ -17,6 +17,7 @@
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.jboss.tools.common.meta.XAttribute;
+import org.jboss.tools.common.meta.constraint.impl.XAttributeConstraintAList;
import org.jboss.tools.common.meta.key.WizardKeys;
import org.jboss.tools.common.model.XModelObject;
import org.jboss.tools.common.model.util.EclipseResourceUtil;
@@ -126,7 +127,11 @@
return labelText;
}
- return "" + object.getAttributeValue(attributes[r].getName());
+ String v = "" + object.getAttributeValue(attributes[r].getName());
+ if(attributes[r].getConstraint() instanceof XAttributeConstraintAList) {
+ v = WizardKeys.getVisualListValue(attributes[r], v);
+ }
+ return v;
}
public Object getDataAt(int r) {