在自定义视图中显示结果
我对eclipse插件开发非常陌生,所以如果问题很微不足道,请耐心等待。 我正在开发一个eclipse插件。我几乎完成了它,除了我被困在最后一步之外。 我已经在plugin.xml文件中创建了自定义视图,并且我还实现了一个IAction函数,以便为选择执行相应的操作。 因此,使用它的逻辑是,在用户执行特定操作后,操作的结果应显示在自定义视图中,否则应通过该程序打开视图,然后显示结果在里面。 我写的代码如下 -
public class example extends ViewPart
{
private Text text;
@Override
public void createPartControl(Composite parent)
{
Text text = new Text(parent,SWT.NULL);
this.text = text;
}
@Override
public void setFocus()
{
}
@Override
@Override
public void printOnView(String str)
{
text.setText(str);
}
}
问题是每当程序在public void run()函数中的第一个setText()语句处使用NullPointerExeption失败时。 我尽力而为,无法找到解决方案。 如果我在同一个createPartControl()函数中给出setText()语句,那么当我为第一个视图打开视图时,它将在视图中显示文本,但如果我从外部尝试它,则不起作用。 因为我对插件开发非常陌生,所以我只能在这里结束,让我只是警告说我的整个方法可能是错误的。 如果有人能为我提供一些帮助或指导,我会很高兴。 提前致谢!
Eclipse正在创建对象的两个实例 - 一个用于视图,另一个用于Action。 对于视图,将调用createPartControl
,而对于Action,只有run
方法将被调用,并且由于createPartControl未运行,所以Text字段为null。
你应该使用两个单独的类,一个用于视图,另一个用于Action。
在你的Action类中,你需要找到你的View,像这样:
IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage();
IViewPart viewPart = page.findView("your view id");
MyViewClass myViewClass = (MyViewClass)viewPart;
// TODO call a method in MyViewClass to set the text
这是假设视图已经打开。 如果视图未打开,您将不得不打开它。
链接地址: http://www.djcxy.com/p/18687.html上一篇: Displaying result in a custom view
下一篇: How to pass parameters to comman in eclipse rcp application through code?