WebSphere Message Broker, Versão 8.0.0.5 Sistemas operacionais: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte as informações sobre a versão mais recente do produto em IBM Integration Bus, Versão 9.0

Exemplo de Código do Editor Definido pelo Usuário que Utiliza Duas Classes Java

Use o código Java™ de exemplo para criar um editor definido pelo usuário para exibir uma lista de valores usando duas classes Java.

O código de exemplo a seguir mostra como usar duas classes Java para exibir uma lista de valores para um usuário padrão.

A classe MyEditor controla a função do editor. A classe MyComposite controla a aparência do editor usando o kit de ferramentas SWT.

O exemplo supõe que as seguintes etapas estejam concluídas:
  • Os valores mostrados na lista do editor definido pelo usuário são inseridos como valores de configuração na janela Configurar Editor Definido pelo Usuário. Os valores devem ser inseridos como uma sequência separada por vírgula, por exemplo, Apple,Orange,Pear,Lemon. Para obter mais informações sobre como inserir valores de configuração, consulte Configurando um Editor Definido pelo Usuário.
  • A classe MyEditor é inserida na janela Configurar Editor Definido pelo Usuário, no campo Nome de Classe. Para obter mais informações sobre como especificar o nome da classe para seu código de editor definido pelo usuário, consulte Configurando um Editor Definido pelo Usuário.
Classe MyEditor
A classe MyEditor estende a classe BasePatternPropertyEditor. Uma instância da classe MyEditor é criada automaticamente quando o usuário padrão abre o editor de instância padrão.
  1. O método configureEditor() é chamado automaticamente depois que a classe MyEditor é criada. Esse método lê a sequência de valores de configuração para o editor definido pelo usuário e armazena cada um dos valores separados por vírgula.
  2. O método createControls() é chamado para criar a interface com o usuário para o editor. Os controles são definidos na classe MyComposite.
  3. O método isValid() é chamado automaticamente depois que o método valueChanged() é chamado. Neste exemplo, isValid() verifica o valor atual do parâmetro padrão e retorna uma mensagem de erro quando nenhum valor é selecionado. A mensagem de erro é exibida para o usuário padrão no editor de instância padrão. Se o valor do parâmetro for válido, o método retornará null.
  4. Os métodos setValue(), getValue() e setEnabled() são definidos na classe MyComposite:
    1. O método setValue() configura o valor inicial no editor definido pelo usuário.
    2. O método getValue() retorna o valor atual do parâmetro padrão para o editor de instância padrão.
    3. O método setEnabled() é chamado quando o parâmetro padrão é ativado ou desativado por uma expressão XPath.
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 "Nothing currently selected..!";
   }
	
   @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);
   }
}
Classe MyComposite
A classe MyComposite cria os controles da interface com o usuário para o editor definido pelo usuário. A classe MyComposite estende a classe Composite do kit de ferramentas do SWT.
  1. O layout dos controles é configurado e um novo controle de lista é criado.
  2. O método valueChanged() é usado em um listener no controle de lista. Isso garante que quando o valor selecionado na lista é alterado, notificações de mudanças são enviadas para qualquer editor ou expressão XPath que use o valor desse parâmetro.
  3. Os métodos setValue(), getValue() e setEnabled() são definidos na classe MyComposite, mas são chamados a partir da classe MyEditor:
    1. O método setValue() obtém o valor do parâmetro padrão e atualiza o controle de lista para mostrar o valor selecionado.
    2. O método getValue() recupera o valor atualmente selecionado no controle de lista e, se ele não estiver em branco, o retorna para MyEditor.
    3. O método setEnabled() usa o valor booleano transmitido para ele para ativar ou desativar o controle de lista.
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);
   }
}
Avisos | Marcas Registradas | Downloads | Biblioteca | Suporte | Feedback

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        Última atualização:
        
        Última atualização: 2015-02-28 18:30:59


Tópico de TarefaTópico de Tarefa | Versão 8.0.0.5 | bc31410_