我正在使用来自sencha(com.sencha.gxt.widget.core.client.form.DualListField)的DualListField小部件,如本例中所述(http://www.sencha.com/examples/#ExamplePlace:duallistfield)。
我想在禁用模式下渲染它(在我的只读视图中)。我在打电话
field.setEnableDnd(enabled);
field.setEnabled(enabled);
这将禁用拖放操作,并以灰色格式显示窗口小部件。但是,它仍然呈现按钮,它们仍然可以点击并且正常工作。
我只是想知道是否有任何方法可以禁用它们?我试图扩展类,但没有找到任何方法来禁用它们。有人可以帮忙吗。
感谢。
答案 0 :(得分:0)
class CustomDualListField<D, T> extends DualListField<D, T> {
public CustomDualListField(ListStore<D> fromStore, ListStore<D> toStore,
ValueProvider<? super D, T> valueProvider, Cell<T> cell) {
super(fromStore, toStore, valueProvider, cell);
}
private boolean enabled = true;
@Override
public void setEnabled(boolean enabled) {
this.enabled = enabled;
setEnableDnd(enabled);
super.setEnabled(enabled);
}
@Override
protected void onAllLeft() {
if (!enabled) {
return;
}
super.onAllLeft();
}
@Override
protected void onAllRight() {
if (!enabled) {
return;
}
super.onAllRight();
}
@Override
protected void onRight() {
if (!enabled) {
return;
}
super.onRight();
}
@Override
protected void onLeft() {
if (!enabled) {
return;
}
super.onLeft();
}
}