blob: 99a54db63c65e1a988cac4920c36a73f4f7ee37b [file] [log] [blame]
package org.eclipse.bpel.ui.wsdl.extensions.properties;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.bpel.ui.extensions.BPELUIRegistry;
import org.eclipse.bpel.ui.extensions.ExpressionEditorDescriptor;
import org.eclipse.jface.viewers.CellEditor;
import org.eclipse.jface.viewers.ComboBoxCellEditor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.views.properties.PropertyDescriptor;
public class BPELQueryLanguagePropertyDescriptor extends PropertyDescriptor {
List languages = new ArrayList();
List uris = new ArrayList();
public BPELQueryLanguagePropertyDescriptor(Object id, String displayName) {
super(id, displayName);
ExpressionEditorDescriptor[] descriptors = BPELUIRegistry.getInstance().getExpressionEditorDescriptors();
for (int i = 0 ; i < descriptors.length; i++){
languages.add(descriptors[i].getLabel());
uris.add(descriptors[i].getExpressionLanguage());
}
}
public CellEditor createPropertyEditor(Composite parent) {
CellEditor editor = new ComboBoxCellEditor(parent, (String[])languages.toArray(new String[]{}),SWT.READ_ONLY){
protected Object doGetValue() {
Integer i = (Integer)super.doGetValue();
return uris.get(i.intValue());
}
protected void doSetValue(Object value) {
if (uris.contains(value)) {
super.doSetValue(new Integer(uris.indexOf(value)));
} else {
super.doSetValue(new Integer(0));
}
}
};
if (getValidator() != null)
editor.setValidator(getValidator());
return editor;
}
}