1

パネルに、3 つのコンポジットを追加しました

public class frame {

//Initialization
....
....
public Service service = new Service();

public frame () {
    initWidget(getFramePanel());
}

private HorizontalPanel getFramePanel() { 
    if (hp== null) {
        hp= new HorizontalPanel();
        hp.setSize("1442px", "750px");
        hp.add(getTree());// **are composites**
        hp.add(getTable()); // **are composite**

    }
    return hp;
}

私が理解しているのは、これらtreeと両方が同じクラスにtable追加さhpれているため、両方のコンポジットで、このクラスで初期化された変数またはオブジェクトを使用できるということです

例: serviceオブジェクトはクラスにあるので、複合体の両方でframe使用できるかどうかを知りたいです。service

ツリーとテーブルのコンポジットで。はいの場合、どのように?

コードをコピーして貼り付けていないため、このコードは正しくない可能性があります。

4

2 に答える 2

2

オブザーバーパターンを使用して、サービスを呼び出すメソッドを持つインターフェイスを作成することができます。「callService」を作成し、このインターフェイスをクラス「frame」に実装するオブジェクト「MyInterfaceImpl 」を作成します。このオブジェクトは、両方の子(getTree()およびgetTable())コンポジットの値を取得して使用するようにインターフェースを実装します。

このオブジェクトMyInterfaceImplをコンストラクターまたはメソッドのいずれかを介して両方のコンポジットに渡すと、いつでもこのオブジェクトMyInterfaceImplのメソッドをコンポジットのUIオブジェクトのeventHandlerから呼び出すことができます。

お役に立てば幸いです。

于 2012-04-17T14:01:46.800 に答える
1

ツリーとテーブルに設定した任意のコールバック、イベント ハンドラなどでサービスを使用できます。しかし、私はあなたがそれを最終的なものにしなければならないと信じています.

于 2012-04-17T14:41:48.153 に答える