Utilice el código Java™ para crear un editor definido por el usuario con el fin de mostrar una lista de valores utilizando dos clases Java.
La clase MyEditor controla la función del editor. La clase MyComposite controla el aspecto del editor utilizando el kit de herramientas SWT.
package com.your.company.domain.MyPattern.code;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import com.ibm.broker.config.appdev.patterns.ui.BasePatternPropertyEditor;
import com.ibm.broker.config.appdev.patterns.ui.PatternPropertyEditorSite;
public class MyEditor extends BasePatternPropertyEditor {
private MyComposite composite;
private String configurationValues;
private String[] items;
@Override
public void configureEditor(PatternPropertyEditorSite site, boolean required, String configurationValues) {
super.configureEditor(site, required, configurationValues);
this.configurationValues = configurationValues;
this.items = configurationValues.split("\\,");
if (this.items == null) {
this.items = new String[] { };
}
}
@Override
public void createControls(Object parent) {
Composite parentComposite = (Composite) parent;
PatternPropertyEditorSite site = getSite();
composite = new MyComposite(parentComposite, SWT.NONE, items, site);
}
@Override
public String isValid() {
String selection = getValue();
if (selection != null) {
return null;
}
return "¡En estos momentos no hay nada seleccionado..!";
}
@Override
public void setValue(String value) {
composite.setValue(value);
}
@Override
public String getValue() {
return composite.getValue();
}
@Override
public void setEnabled(boolean enabled) {
composite.setEnabled(enabled);
}
}
package com.your.company.domain.MyPattern.code;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.List;
import com.ibm.broker.config.appdev.patterns.ui.PatternPropertyEditorSite;
public class MyComposite extends Composite {
private List list;
private PatternPropertyEditorSite site;
public MyComposite(Composite parent, int style, String[] items, final PatternPropertyEditorSite site) {
super(parent, SWT.NONE);
this.site = site;
GridLayout gridLayout = new GridLayout(1, false);
gridLayout.marginWidth = 1;
gridLayout.marginHeight = 1;
gridLayout.horizontalSpacing = 0;
gridLayout.verticalSpacing = 0;
setLayout(gridLayout);
setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
list = new List(this, SWT.BORDER);
list.setItems(items);
GridData listLayoutData = new GridData(GridData.FILL_HORIZONTAL);
listLayoutData.horizontalIndent = 0;
list.setLayoutData(listLayoutData);
list.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent event) {
site.valueChanged();
}
});
}
public void setValue(String value) {
if (value != null) {
list.setSelection(new String[] { value });
}
}
public String getValue() {
String[] selection = list.getSelection();
if (selection.length > 0) {
return selection[0];
}
return null;
}
public void setEnabled(boolean enabled) {
list.setEnabled(enabled);
}
}