Use o código Java™ de exemplo para criar um editor definido pelo usuário para exibir uma caixa de texto, usando uma classe Java.
O código de exemplo a seguir mostra como usar uma classe Java para exibir um editor definido pelo usuário da caixa de texto para um usuário padrão. A classe
MyEditor estende a classe
BasePatternPropertyEditor e é especificada como a classe do editor definido pelo usuário na configuração do editor definido pelo usuário; consulte
Configurando um Editor Definido pelo Usuário. Uma instância da classe
MyEditor é criada automaticamente quando o usuário padrão abre o editor de instância padrão.
- O método configureEditor() é chamado automaticamente depois que a classe do editor definido pelo usuário é criada. Esse método configura o editor.
- O método createControls() é chamado para criar a interface com o usuário para
o editor:
- O objeto do kit de ferramentas SWT, Composite, é usado para
a interface com o usuário.
- Um controle de caixa de texto é criado e as informações de layout SWT da caixa de texto são definidos.
- Um listener na caixa de texto é definido, o qual chama o método valueChanged() do objeto PatternPropertyEditorSite para o editor. Isso garante que quando o valor selecionado na caixa de texto for alterado, notificações de mudanças serão enviadas para qualquer editor ou expressão XPath que use o valor desse parâmetro.
- O método setValue() configura o valor inicial para a caixa de
texto. Neste exemplo, o código filtra valores em branco.
O código também filtra valores que iniciam com <, para remover valores de marca d'água. Isso assume que os valores de marca d'água estão entre sinais de maior e menor.
- O método getValue() lê o valor atual da caixa de texto e retorna o valor para o editor de instância padrão.
A instância padrão usa esse valor retornado como o valor do parâmetro padrão.
- O método setEnabled() ativa ou desativa o controle de caixa de texto, dependendo se o parâmetro padrão está ativado ou desativado. O parâmetro pode ser ativado ou desativado usando uma expressão XPath; consulte Ativando Parâmetros Padrão. Quando o resultado de uma expressão XPath ativa ou desativa o parâmetro,
um valor booleano é transmitido do editor de instância padrão para o método setEnabled().
Se o parâmetro estiver ativado, o valor booleano será true;
se o parâmetro estiver desativado, o valor booleano será false.
package com.your.company.domain.MyPattern.code;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Text;
import com.ibm.broker.config.appdev.patterns.ui.*;
public class MyEditor extends BasePatternPropertyEditor {
private Text text;
@Override
public void configureEditor(PatternPropertyEditorSite site, boolean required, String configurationValues) {
super.configureEditor(site, required, configurationValues);
}
@Override
public void createControls(Object parent) {
Composite composite = (Composite) parent;
text = new Text(composite, SWT.BORDER);
GridData textLayoutData = new GridData(GridData.FILL_HORIZONTAL);
textLayoutData.horizontalIndent = 0;
text.setLayoutData(textLayoutData);
text.addListener(SWT.Modify, new Listener() {
@Override
public void handleEvent(Event event) {
PatternPropertyEditorSite site = getSite();
site.valueChanged();
}
});
}
@Override
public void setValue(String value) {
if (value != null) {
if (value.startsWith("<") == false) {
text.setText(value);
}
}
}
@Override
public String getValue() {
String value = text.getText();
if (value.length() > 0) {
return value;
}
return null;
}
@Override
public void setEnabled(boolean enabled) {
text.setEnabled(enabled);
}
}