[rcp系列]MVC领悟

因为RCP的界面也是使用MVC模式的,于是想操作TableViewer、TreeViewer的时候,不应该直接对Viewer进行操作,而是应该操作viewer的input。修改以后,调用一下viewer.refresh()方法就可以了。

今天碰到的问题是,在一个widget中,使用

viewer.setInput(DisplayConst.publishingDevices.values());

可以顺利更新

而在另外一个widget中,使用

  viewer.setInput(DisplayConst.locationTable.get(this.getUserName()));

就不能正常更新了。

测试了半天,又想了一下才明白,viewer.setInput以后,我们只能够修改input的内容,而不能修改input这个对象内存地址的值。就和方法调用在java中只能传值调用一样了。

你可能感兴趣的:([rcp系列]MVC领悟)