繁体   English   中英

如何通过Eclipse插件中的Java代码调用viewpart

[英]how to invoke viewpart by java code in eclipse plugin

如何在eclipse插件项目中的菜单命令事件上调用viewpart类。 基本上我想在eclipse插件中打开awt框架,所以我为此使用viewpart类。 当用户请求时,Awt框架应打开。

我已经创建了一个菜单选项,我想在该菜单命令上打开该awt框架。 我试图使viewpart类,然后调用它,但没有用。 下面是我的viewpart类的代码

public class LabelView extends ViewPart {
    public static Composite _parent;
    private Label label;
    public LabelView() {
        super();
    }
    public void setFocus() {
        //label.setFocus();
    }
    public void createPartControl(Composite parent) {
        _parent=parent;

        // main composite
        Composite mainComposite = new Composite(parent, SWT.EMBEDDED | SWT.NO_BACKGROUND);

        Frame awtframe = SWT_AWT.new_Frame(mainComposite);
        java.awt.Panel  awtpanel   = new java.awt.Panel();
        awtpanel.setLayout(new java.awt.GridLayout());
        awtframe.setLayout(new java.awt.GridLayout());
        awtframe.add(awtpanel);
    }
}

要查找视图,请使用:

IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();

IViewPart view = page.findView("view id");

其中,“视图ID”是您在org.eclipse.ui.views扩展点中声明的视图的ID。

如果视图未打开view findView将返回null,则可以使用打开查看:

view = page.showView("view id");

无论哪种情况,您都可以将视图转换为视图类并调用方法来执行您想要的操作:

LabelView myView = (LabelView)view;

myView.someMethod();  // TODO you write this method

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM