WebSphere Message Broker, Versión 8.0.0.5 Sistemas operativos: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Consulte la información sobre la última versión del producto en IBM Integration Bus, Versión 9.0

Ejemplo de código del editor definido por el usuario que utiliza dos clases Java

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.

En el código de ejemplo siguiente, se muestra cómo utiliza dos clases Java para mostrar una lista de valores a un usuario de patrón.

La clase MyEditor controla la función del editor. La clase MyComposite controla el aspecto del editor utilizando el kit de herramientas SWT.

En el ejemplo se da por supuesto que se han completado los siguientes pasos:
  • Los valores que se muestran en la lista del editor definido por el usuario se especifican como valores de configuración en la ventana Configurar editor definido por el usuario. Los valores deben especificarse como una serie separada por comas, por ejemplo, Apple,Orange,Pear,Lemon. Para obtener más información sobre cómo especificar valores de configuración, consulte Configurar un editor definido por el usuario.
  • La clase MyEditor se especifica en la ventana Configurar editor definido por el usuario, en el campo Nombre de clase. Para obtener más información sobre cómo especificar el nombre de clase para el código de editor definido por el usuario, consulte Configurar un editor definido por el usuario.
Clase MyEditor
La clase MyEditor amplía la clase BasePatternPropertyEditor. Se crea automáticamente una instancia de la clase MyEditor cuando el usuario del patrón abre el editor de instancias del patrón.
  1. Se llama automáticamente al método configureEditor() después de crear la clase MyEditor. Este método lee la serie de valores de configuración para el editor definido por el usuario y almacena cada uno de los valores separados por comas.
  2. Se llama al método createControls() para crear la interfaz de usuario para el editor. Los controles se definen en la clase MyComposite.
  3. Se llama automáticamente al método isValid() después de llamar al método valueChanged(). En este ejemplo, isValid() comprueba el valor actual del parámetro de patrón y devuelve un mensaje de error si no se selecciona ningún valor. El mensaje de error se visualiza para el usuario de patrón en el editor de instancias de patrón. Si el valor de parámetro es válido, el método devuelve null.
  4. Los métodos setValue(), getValue() y setEnabled() se definen en la clase MyComposite:
    1. El método setValue() establece el valor inicial en el editor definido por el usuario.
    2. El método getValue() devuelve el valor actual del parámetro de patrón al editor de instancias de patrón.
    3. Se llama al método setEnabled() cuando el parámetro de patrón se habilita o inhabilita mediante una expresión 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 "¡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);
      }
}
Clase MyComposite
La clase MyComposite crea los controles de la interfaz de usuario para el editor definido por el usuario. La clase MyComposite amplía la clase Composite del kit de herramientas de SWT.
  1. Se establece el diseño de los controles y se crea un nuevo control de lista.
  2. El método valueChanged() se utiliza en un escucha en el control de lista. Así se garantiza que cuando se cambie el valor seleccionado en la lista, las notificaciones de cambios se envíen a todas las expresiones XPath o editores que utilizan el valor de este parámetro.
  3. Los métodos setValue(), getValue() y setEnabled() se definen en la clase MyComposite, pero se llaman desde la clase MyEditor:
    1. El método setValue() toma el valor del parámetro de patrón y actualiza el control de lista para mostrar el valor seleccionado.
    2. El método getValue() recupera el valor seleccionado actualmente en el control de lista y, si no está en blanco, lo devuelve a MyEditor.
    3. El método setEnabled() utiliza el valor booleano que se le ha pasado para habilitar o inhabilitar el control 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 | Descargas | Biblioteca | Soporte | Comentarios

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

        
        Última actualización:
        
        Última actualización: 2015-02-28 17:00:58


Tema de tareaTema de tarea | Versión 8.0.0.5 | bc31410_