2013-05-31 49 views
0

我有一个罕见的用例,其中swing-view的生命期比相关的presentation-model更长:swing-view只要应用程序存在,每次在应用程序中启动新的“运行”时,将更换演示文稿模型。如何从JGoodies-Binding(2.9.0)解除绑定绑定(2.9.0)

的演示模型是一个常规的bean:

@Bindable 
static class MyPresentationModel{ 
    String myText = 'default-text' 
} 

摆动的观点是一个JTextField,使用JGoodies数据BeanAdapter则势必:

JTextField myTextField = new JTextField() 
MyPresentationModel pm = new MyPresentationModel() 
BeanAdapter<MyPresentationModel> beanAdapter = new BeanAdapter<MyPresentationModel>(pm, true) 
Bindings.bind(myTextField , beanAdapter.getValueModel('myText')) 

我怎样才能解除绑定演示模型事后从JTextField?

在方向I上的JGoodies-绑定API中发现的唯一的事情就是

beanAdapter.setBean(null) 

但这并不 - 当然 - 删除的JGoodies-的PropertyChangeListener和JGoodies数据-的DocumentListener从JTextField中。有没有一个很好的方法来删除这些?还是我自己破解它?

回答

0

唯一的办法,据我所知道的是调用

Bindings.bind(myTextField , beanAdapter.getValueModel('myText')) 

与新PresentationModel新豆适配器上面的语句每次。

不能解除绑定绑定,你必须刷新一个新的PresentationModel

+0

假设你已经有了一个BeanAdapter则的结合,我已经使用'beanAdapter.release()',使有限的成功了' BeanAdapter'实例删除所有通过bean适配器注册的'PropertyChangeListeners'。但正如我所说的,成功是有限的,它很大程度上取决于你的bean,bean适配器和ui组件如何连接在一起。 – tones