2012-10-15 56 views
0

我正在使用GWT 2.0.0在Java 6項目中。我正在使用的功能允許用戶選擇DualListField中的項目,但只允許一定數量的項目。因此,我要求一旦達到一定的限制(即只能選擇x個項目),將禁用DualListField按鈕欄中的「添加選擇」和「添加全部」按鈕。有沒有人試過這個?有沒有比定製DualListField更簡單的方法?如何在GXT中禁用DualListField的「添加選定」按鈕?

謝謝。

回答

0

我kindof能夠實現這一目標,通過定製DualListField和設置:

super.buttonBar.getWidget(0).setVisible(false) 
2

創建一個新的XY類從DualListField延伸。在此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; 
        } 
       } 
      } 
     } 
    } 
} 

使用此方法,您可以配置將顯示的按鈕。