WebSphere Message Broker バージョン 8.0.0.5 オペレーティング・システム: AIX、HP-Itanium、Linux、Solaris、Windows、z/OS

製品の最新バージョンについては、IBM Integration Bus バージョン 9.0 をご覧ください。

2 つの Java クラスを使用するユーザー定義エディター・コードの例

サンプル Java™ コードを使用して、2 つの Java クラスを使用することにより値のリストを表示するユーザー定義エディターを作成します。

以下のコード例は、2 つの Java クラスを使用して、パターン・ユーザーに値のリストを表示する方法を示しています。

MyEditor クラスは、エディターの機能を制御します。 MyComposite クラスは、SWT ツールキットを使用してエディターの外観を制御します。

この例では、以下の手順が完了されていることを想定しています。
  • ユーザー定義エディターでリストに示される値が、「ユーザー定義エディターの構成」ウィンドウで構成値として入力されていること。 例えば Apple,Orange,Pear,Lemon のように、コンマ区切りストリングとして値を入力する必要があります。 構成値の入力について、詳しくはユーザー定義エディターの構成を参照してください。
  • MyEditor クラスが「ユーザー定義エディターの構成」ウィンドウの「クラス名」フィールドに入力されていること。 ユーザー定義エディター・コードのクラス名の指定について、詳しくはユーザー定義エディターの構成を参照してください。
MyEditor クラス
MyEditor クラスは BasePatternPropertyEditor クラスを継承します。 パターン・ユーザーがパターン・インスタンス・エディターを開いたときに MyEditor クラスのインスタンスが自動的に作成されます。
  1. MyEditor クラスの作成後に、configureEditor() メソッドが自動的に呼び出されます。 このメソッドはユーザー定義エディターの構成値ストリングを読み取り、それぞれのコンマ区切り値を保管します。
  2. エディターのユーザー・インターフェースを作成するために、createControls() メソッドが呼び出されます。 MyComposite クラスでコントロールが定義されます。
  3. valueChanged() メソッドの呼び出し後に、isValid() メソッドが自動的に呼び出されます。 この例では、isValid() はパターン・パラメーターの現行値を検査して、値が選択されていない場合はエラー・メッセージを戻します。 エラー・メッセージはパターン・インスタンス・エディターでパターン・ユーザーに対して表示されます。 パラメーター値が有効である場合、メソッドは null を戻します。
  4. MyComposite クラスで setValue()getValue()、および setEnabled() メソッドが次のように定義されます。
    1. setValue() メソッドは、ユーザー定義エディターでの初期値を設定します。
    2. getValue() メソッドは、パターン・パラメーターの現行値をパターン・インスタンス・エディターに戻します。
    3. XPath 式によってパターン・パラメーターが有効化または無効化されるとき、setEnabled() メソッドが呼び出されます。
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);
   }
}
MyComposite クラス
MyComposite クラスは、ユーザー定義エディターのユーザー・インターフェース・コントロールを作成します。 MyComposite クラスは SWT ツールキット Composite クラスを拡張します。
  1. コントロールのレイアウトが設定され、新しいリスト・コントロールが作成されます。
  2. リスト・コントロール上のリスナーで valueChanged() メソッドが使用されます。 これにより、リスト内の選択された値が変更されたとき、このパラメーターの値を使用するすべての XPath 式またはエディターに確実に変更通知が送られます。
  3. 以下のように、setValue()getValue()、および setEnabled() メソッドは MyComposite クラスで定義されますが、MyEditor クラスから呼び出されます。
    1. setValue() メソッドはパターン・パラメーターの値を受け入れて、選択された値を表示するようリスト・コントロールを更新します。
    2. getValue() メソッドは現在選択されている値をリスト・コントロールから取得し、それがブランクでない場合には、MyEditor にそれを戻します。
    3. setEnabled() メソッドは、渡されるブール値を使用して、リスト・コントロールを有効または無効にします。
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);
   }
}
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

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

        
        最終更新:
        
        最終更新: 2015-02-28 17:48:43


タスク・トピックタスク・トピック | バージョン 8.0.0.5 | bc31410_