我在菜单中打开了一个文件对话框,用户可以在其中选择文件。 FileDialog是从execute()中的菜单命令的处理程序类中调用的。
根据用户选择的文件,我想更新一个视图,为此(我相信)我需要在createPartControl()中传递给视图的相同Composite元素。
是否可以从命令处理程序访问它,或者通过ISourceProviderListener或PropertyChangeListener之类的东西触发视图更新会更好吗?
谢谢。
答案 0 :(得分:4)
是的,有可能:
IViewPart part = HandlerUtil.getActiveWorkbenchWindow(executionEvent).getActivePage()
.findView(viewId);
最好先更新视图正在显示的数据(MVC中的模型),并且数据更改应触发视图刷新。如果不了解所有细节,很难说哪个听众会更好。