WebSphere Message Broker Version 8.0.0.5 Betriebssysteme: AIX, HP-Itanium, Linux, Solaris, Windows, z/OS

Sehen Sie sich die Informationen zur aktuellen Produktversion im IBM Integration Bus Version 9.0 an.

Beispiel für Code für den benutzerdefinierten Editor bei Verwendung von zwei Java-Klassen

Mithilfe des Java™-Beispielcodes kann ein benutzerdefinierter Editor erstellt werden, in dem unter Verwendung zweier Java-Klassen eine Werteliste angezeigt werden kann.

Der folgende Beispielcode veranschaulicht die Verwendung zweier Java-Klassen, um einem Musterbenutzer eine Werteliste anzuzeigen.

Die Klasse MyEditor steuert die Funktion des Editors. Die Klasse MyComposite steuert die Darstellung des Editors mithilfe des Standard Widget Toolkits (SWT).

In dem Beispiel wird vorausgesetzt, dass folgende Schritte bereits durchgeführt wurden:
  • Die im benutzerdefinierten Editor in der Liste angezeigten Werte wurden im Fenster Benutzerdefinierten Editor konfigurieren als Konfigurationswerte eingegeben. Die Werte müssen in Form einer durch Kommas getrennten Zeichenfolge eingegeben sein, also beispielsweise Apple,Orange,Pear,Lemon. Weitere Informationen zur Eingabe von Konfigurationswerten finden Sie im Abschnitt Benutzerdefinierten Editor konfigurieren.
  • Im Fenster Benutzerdefinierten Editor konfigurieren ist im Feld Klassenname die Klasse MyEditor eingegeben. Weitere Informationen zur Angabe des Klassennamens für den Code des benutzerdefinierten Editors finden Sie im Abschnitt Benutzerdefinierten Editor konfigurieren.
Klasse MyEditor
Die Klasse MyEditor erweitert die Klasse BasePatternPropertyEditor. Wenn der Benutzer des Musters den Musterinstanzeditor öffnet, wird automatisch eine Instanz der Klasse MyEditor erstellt.
  1. Die Methode configureEditor() wird automatisch aufgerufen, nachdem die Klasse MyEditor erstellt wurde. Diese Methode liest die Zeichenfolge mit den Konfigurationswerten für den benutzerdefinierten Editor und speichert die einzelnen durch Kommas getrennten Werte.
  2. Die Methode createControls() wird aufgerufen, um die Benutzerschnittstelle für den Editor zu erstellen. Die Steuerelemente werden in der Klasse MyComposite definiert.
  3. Nach dem Aufruf der Methode valueChanged() wird automatisch die Methode isValid() aufgerufen. In diesem Beispiel prüft isValid() den aktuellen Wert des Musterparameters und gibt eine Fehlernachricht zurück, wenn kein Wert ausgewählt ist. Die Fehlernachricht wird dem Benutzer des Musters im Musterinstanzeditor angezeigt. Bei einem gültigen Parameterwert gibt die Methode den Wert null zurück.
  4. Die Methoden setValue(), getValue() und setEnabled() sind in der Klasse MyComposite definiert:
    1. Die Methode setValue() legt den Anfangswert im benutzerdefinierten Editor fest.
    2. Die Methode getValue() gibt den aktuellen Wert des Musterparameters an den Musterinstanzeditor zurück.
    3. Die Methode setEnabled() wird aufgerufen, wenn der Musterparameter über einen XPath-Ausdruck aktiviert oder inaktiviert wird.
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);
   }
}
Klasse MyComposite
Die Klasse MyComposite erstellt die Bedienelemente der Benutzerschnittstelle für den benutzerdefinierten Editor. Die Klasse MyComposite erweitert die Klasse Composite des Standard Widget Toolkits (SWT).
  1. Das Layout der Bedienelemente wird festgelegt und es wird ein neues Listenfeld erstellt.
  2. Die Methode valueChanged() wird in einem Empfangsprogramm im Listenfeld verwendet. Auf diese Weise wird sichergestellt, dass bei einer Änderung des ausgewählten Werts in der Liste an alle XPath-Ausdrücke bzw. Editoren, die den Wert dieses Parameters verwenden, Änderungsbenachrichtigungen gesendet werden.
  3. Die Methoden setValue(), getValue() und setEnabled() sind zwar in der Klasse MyComposite definiert, sie werden jedoch von der Klasse MyEditor aufgerufen.
    1. Die Methode setValue() übernimmt den Wert des Musterparameters und aktualisiert das Listenfeld so, dass der ausgewählte Wert angezeigt wird.
    2. Die Methode getValue() ruft den derzeit ausgewählten Wert aus dem Listenfeld ab und gibt ihn an MyEditor zurück, sofern es sich nicht um einen Leerwert handelt.
    3. Die Methode setEnabled() verwendet den an sie übergebenen booleschen Wert zur Aktivierung bzw. Inaktivierung des Listenfelds.
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);
   }
}
Bemerkungen | Marken | Downloads | Bibliothek | Support | Feedback

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

        
        Letzte Aktualisierung:
        
        Letzte Aktualisierung: 2015-02-28 16:22:37


TaskthemaTaskthema | Version 8.0.0.5 | bc31410_