我在 Java 6 项目中使用 GWT 2.0.0。我正在处理的功能允许用户在 DualListField 中选择项目,但只允许一定数量的项目。因此,我要求一旦达到某个限制(即只能选择 x 个项目),就禁用 DualListField 按钮栏中的“添加所选”和“全部添加”按钮。有没有人尝试过这个?除了自定义 DualListField 之外,还有更简单的方法吗?
谢谢。
创建一个从 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;
}
}
}
}
}
}
使用这种方法,您可以配置将显示的按钮。
通过自定义 DualListField 和设置,我有点能够实现这一点:
super.buttonBar.getWidget(0).setVisible(false)