0

私はJava6プロジェクトでGWT2.0.0を使用しています。私が取り組んでいる機能では、ユーザーはDualListField内のアイテムを選択できますが、許可されているのは特定の数のアイテムのみです。したがって、特定の制限に達したら、DualListFieldボタンバーの[選択したものを追加]ボタンと[すべて追加]ボタンを無効にする必要があります(つまり、x個のアイテムしか選択できません)。誰かがこれを以前に試みたことがありますか?DualListFieldをカスタマイズする以外の簡単な方法はありますか?

ありがとう。

4

2 に答える 2

2

DualListField から拡張された新しい XY クラスを作成します。この XY クラスでは、次のように定義します。

public clas XY <D extends ModelData> extends DualListField<D>{
    public static final int leftButton = 0x1;
    public static final int rightButton = 0x2;
    public static final int allLeftButton = 0x3;
    public static final int allRightButton = 0x4;
    public static final int upButton = 0x5;
    public static final int downButton = 0x6;

List<Integer> buttonsToRemoveList;

public CustomDualListField(List<Integer> buttonsToRemoveList){
    super();
    this.buttonsToRemoveList = buttonsToRemoveList;
}

    @Override
    protected void onRender(Element target, int index) {
        super.onRender(target, index);

        if(buttonsToRemoveList != null){
            for(Integer val:buttonsToRemoveList){
                switch(val.intValue()){
                    case leftButton:{
                        buttonBar.remove(left);
                        break;
                    }
                    case rightButton:{
                        buttonBar.remove(right);
                        break;
                    }
                    case allLeftButton:{
                        buttonBar.remove(allLeft);
                        break;
                    }
                    case allRightButton:{
                        buttonBar.remove(allRight);
                        break;
                    }
                    case upButton:{
                        buttonBar.remove(up);
                        break;
                    }
                    case downButton:{
                        buttonBar.remove(down);
                        break;
                    }
                }
            }
        }
    }
}

このアプローチでは、表示されるボタンを構成できます。

于 2013-02-04T22:03:07.117 に答える
0

DualListField をカスタマイズして次のように設定することで、これを実現できました。

super.buttonBar.getWidget(0).setVisible(false) 
于 2012-10-18T00:13:27.827 に答える