我正在使用Eclipse DataBinding,我正在尝试绑定SWT DateTime控件,但是当我尝试为DateTime设置一个值时,它会返回一个异常。
这是我的堆栈跟踪
java.lang.IllegalArgumentException: Cannot set null selection on DateTime
at org.eclipse.jface.internal.databinding.swt.DateTimeSelectionProperty.doSetValue(DateTimeSelectionProperty.java:70)
at org.eclipse.core.databinding.property.value.ValueProperty.setValue(ValueProperty.java:89)
at org.eclipse.core.internal.databinding.property.value.SimplePropertyObservableValue.doSetValue(SimplePropertyObservableValue.java:110)
at org.eclipse.core.databinding.observable.value.AbstractObservableValue.setValue(AbstractObservableValue.java:66)
这是我准备绑定的代码,dateTimeNode是ObservableValue
DataBindingContext ctx = new DataBindingContext();
DateTime dateTime = new DateTime( composite, SWT.DATE | SWT.MEDIUM | SWT.DROP_DOWN | SWT.BORDER );
IObservableValue<?> widgetValue = WidgetProperties.selection().observe( dateTime );
ctx.bindValue( widgetValue, dateTimeNode );
然后我使用TreeEditor
将控件添加到我的树中new TreeEditor().setEditor( dateTime, getTime( dateTimeNode ), 1 );