カスタム コントロールの操作

このトピックでは、カスタム コントロールを使用する方法について説明します。説明する内容は以下のとおりです。

カスタム コントロールは、以下の場所に配置できます。

カスタム コントロールの作成

次の手順は、J2EE パースペクティブ ([ウィンドウ|パースペクティブを開く|J2EE]) であることを前提としています。

  1. デフォルトのパッケージ内にコントロールを作成することはできません。そこで、最初にコントロール用のパッケージを作成します。たとえば、以下のディレクトリに作成します。

    <ProjectRoot>/src/controls/myControl/
  2. パッケージを右クリックし、[新規カスタム コントロール] を選択します。
  3. [コントロール名] フィールドに、コントロールのクラス名を入力します。

    Java インタフェース クラスと Java 実装クラスは、ここで入力した名前がベースとなります。たとえば、Hello と入力すると、以下の 2 つのクラスが作成されます。

        Hello.java (= インタフェース クラス)

            および

        HelloImpl.java (= 実装クラス)
  4. [終了] をクリックします。

デフォルトのコントロール インタフェース クラスと実装クラスが作成されます。コントロール名が Hello の場合は、以下のクラス ファイルが作成されます。

Hello.java Interface クラス ファイル

package controls.myControl;
 
import org.apache.beehive.controls.api.bean.ControlInterface;
 
@ControlInterface
public interface Hello {
 
}

HelloImpl.java Implementation クラス ファイル

package controls.myControl;
 
import org.apache.beehive.controls.api.bean.ControlImplementation;
import java.io.Serializable;
 
@ControlImplementation
public class HelloImpl implements Hello, Serializable {
	private static final long serialVersionUID = 1L;
 
}

次に、これらのクラス ファイルにメソッドを追加してカスタム コントロールを構成します。

アプリケーションでのカスタム コントロールの使用

ユーザのプロジェクトや現在のワークスペースのユーティリティ プロジェクトに既存のカスタム コントロールが存在する場合は、そのコントロールへの参照をコントロール クライアントに追加することができます。クライアントの Java ソース ファイル内の任意の場所で右クリックし、[挿入|コントロール] を選択します。

利用できるコントロールのリストが表示されます。[既存のプロジェクト コントロール] には、クライアントと同じプロジェクトのコントロールがリストされています。[既存のアプリケーション コントロール] には、同じワークスペースのユーティリティ プロジェクトのコントロールがリストされています。

コントロールの参照をクライアントに追加すると、クライアントのソース コードにコントロールに関するアノテーションと変数宣言が挿入されます。Workshop では、アノテーションを基にコントロールが認識されます。また、ユーザは変数宣言によってクライアントのコードからコントロールを操作できるようになります。たとえば、新しく Hello という名前のカスタム コントロールが追加されると、以下のコードがクライアントに追加されます。

    import org.apache.beehive.controls.api.bean.Control;
    import controls.myControl.Hello;
	
	@Control
	private Hello hello;
コントロールへの参照が追加されると、クライアントはそのコントロールのメソッドを呼び出すことができるようになります。コントロール メソッドの呼び出しの詳細については、「コントロール メソッドの呼び出し」を参照してください。

関連トピック

コントロール メソッドの呼び出し

カスタム コントロールのソース ファイル


さらにヘルプが必要ですか。質問は Workshop ニュース グループまでお寄せください。