eclipse rcp 使用页面外部按钮控制页面切换

界面最终效果如下:

由于公司电脑不便安装录屏软件,因此按顺序截图展示了:

 

 

 

 

 

 

 由于点击2 所指按钮需要判断是否已经登录系统,如果没有登录系统则需要跳转到登录页。并且箭头2 所指按钮与下方界面是独立分开的,因此,需要先获取到下方界面的实例。

在eclipse rcp中,获取一个视图的实例方法如下:

    @NotNull
    public static IWorkbenchWindow getActiveWorkbenchWindow() {
        IWorkbench workbench = PlatformUI.getWorkbench();
        IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
        if (window != null) {
            return window;
        }
        IWorkbenchWindow[] windows = workbench.getWorkbenchWindows();
        if (windows.length > 0) {
            return windows[0];
        }
        throw new IllegalStateException("No workbench window");
    }



IWorkbenchPage page = getActiveWorkbenchWindow().getActivePage();
try {
    SqlInspectionView view = (SqlInspectionView) page.showView(SqlInspectionView.VIEW_ID,null,IWorkbenchPage.VIEW_ACTIVATE);  // 这里获取到上图下方界面的实例对象
    view.toggleLoginView();   // 拿到实例对象后,就在实例对象内正常切换视图即可
} catch (PartInitException e) {
    e.printStackTrace();
}

  主要思路是,需要先获取到想要的视图的实例对象,获取到这个对象后,就正常切换视图就行了。

 参考:

https://stackoverflow.com/questions/23512723/how-to-get-the-view-by-viewid-in-rcp

posted @ 2020-07-03 11:19  margo  阅读(325)  评论(0编辑  收藏  举报