在Eclipse RCP中,我正在使用Perspective创建视图 IPageLayout.addView(...)
但是这种方式我没有对视图的引用.因此,我不知道如何告诉ViewA更新ViewB.
这里使用的最佳模式是什么?
在我的RCP应用程序中,TreeViewer左侧有一个带有导航的视图,右侧有一个用于我的视图的文件夹.透视图如下所示:
public void createInitialLayout(IPageLayout layout) {
layout.setEditorAreaVisible(false);
layout.setFixed(false);
layout.addStandaloneView(NavigationView.ID, false, IPageLayout.LEFT, 0.7f, layout.getEditorArea());
right = layout.createFolder("right", IPageLayout.RIGHT, 0.3f, "com.my.app.views.browser.navigation");
layout.getViewLayout(WallpaperView.Id).setCloseable(false);//dummy view to keep the folder from closing
layout.getViewLayout(WallpaperView.Id).setMoveable(false);
right.addView(WallpaperView.Id);
//add some placeholders for the potential views
right.addPlaceholder(DefaultAdminView.ID+":*");
}
Run Code Online (Sandbox Code Playgroud)
我想根据用户在导航树中选择的内容打开不同的视图.认为这不会很难.我的导航树视图:
tree = new TreeViewer(composite);
tree.setContentProvider(new BrowserNavigationTreeContentProvider());
tree.setLabelProvider(new BrowserNavigationTreeLabelProvider());
tree.setInput(UserProfileAdvisor.getProject());
//register Mouselistener for doubleclick events
tree.addDoubleClickListener(new IDoubleClickListener(){
@Override
public void doubleClick(DoubleClickEvent event) {
TreeSelection ts = (TreeSelection) event.getSelection();
Object selectedItem = ts.getFirstElement();
String viewId = DefaultAdminView.ID;
//set viewId depending on …Run Code Online (Sandbox Code Playgroud)