2013-04-11 14 views
0

在我的用戶界面我有2個文本字段和2個按鈕。我使用jface數據綁定來綁定文本字段,我正在進行驗證,並根據驗證成功模型更新其他明智它不會。我想我的按鈕作出相應的響應。就像我的模型沒有更新比我想禁用我的按鈕更多的事情,我做了一個非常想做硬編碼.so是沒有任何方式沒有硬編碼。如何在模型未更新時禁用按鈕?

以其他方式我想綁定一個按鈕到文本字段,以便當文本字段有一些不需要的值比按鈕應該被禁用。另一種方式我正在做數據綁定文本字段,這將需要照顧時該文本字段沒有適當的值比它不會更新它的模型。然後我想禁用該按鈕時,值不正確我可以做到這一點。任何指針在這幫助我很多。

回答

0

添加監聽經過一番研究,我發現,我必須遵守按鈕的啓用/禁用特性,並與當前電動勢數據綁定上下文綁定。

void bindEnablementButtonToValidationStatus(Button button, EMFDataBindingContext ctx) { 

    IObservableValue buttonEnable = SWTObservables.observeEnabled(button); 
    IObservableValue validationStatus = new AggregateValidationStatus(
      ctx.getValidationRealm(), 
      ctx.getBindings(), 
      AggregateValidationStatus.MAX_SEVERITY); 

    ctx.bindValue(buttonEnable, validationStatus, 
      new EMFUpdateValueStrategy(
        UpdateValueStrategy.POLICY_NEVER), 
        new EMFUpdateValueStrategy().setConverter(
          new Converter(IStatus.class, Boolean.TYPE) { 
           public Object convert(Object fromObject) { 
            return new Boolean(((IStatus)fromObject).isOK()); 
           } 
          })); 

}

:我所使用的函數的細節在下面給出
0

你可以利用下面的監聽器。您Observable

org.eclipse.core.databinding.observable.value.IValueChangeListener