0

我正在使用来自 sencha (com.sencha.gxt.widget.core.client.form.DualListField) 的 DualListField 小部件,如本示例 ( http://www.sencha.com/examples/#ExamplePlace:duallistfield ) 中所述。

我想在禁用模式下渲染它(在我的只读视图中)。我打电话

  field.setEnableDnd(enabled);
  field.setEnabled(enabled);

这将禁用拖放,并以灰色格式显示小部件。但是,它仍然呈现按钮并且它们仍然是可点击的并且可以正常工作。

我只是想知道是否有任何方法可以禁用它们?我试图扩展该类,但没有找到任何禁用它们的方法。有人可以帮忙吗。

谢谢。

4

1 回答 1

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();
   }
}
于 2013-07-26T16:22:33.480 回答