我想设置标签的值从A类 - 视图到B类 - 在Eclipse RCP中查看

时间:2017-01-08 09:41:25

标签: java eclipse view eclipse-plugin rcp

public class ImageViewer extends ViewPart {

    String text;

    public ImageViewer() {}

    public void setA(String val) {
        String text=val;    
    }

    @Override
    public void createPartControl(Composite parent) {
        Label labelMsg1 = new Label(parent, SWT.NONE);  
        labelMsg1.setText("Hello"); 
    }

    public void setFocus() {}

}

我希望删除"Hello",并在我的标签上打印一个值"val""val"来自不同的视图,并作为方法传递。我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

您需要调用对象的template <class T> class A; template <> class A<float> : MyConstData<13,42,-1> {}; template <> class A<double> : MyConstData<0,0,42> {}; ,但它只在本地知道。你需要让它成为一个成员然后你可以做到:

setText

此外,您要设置public class ImageViewer extends ViewPart { String text; protected Label labelMsg1; public ImageViewer() {} public void setA(String val) { String text=val; labelMsg1.setText(val); } @Override public void createPartControl(Composite parent) { if (labelMsg1 == null) { labelMsg1 = new Label(parent, SWT.NONE); labelMsg1.setText("Hello"); } } public void setFocus() {} } 对象的文本,而不是其值。

答案 1 :(得分:0)

要设置处理程序或其他类的值,您需要查找现有的视图对象(使用new ImageView创建新的视图对象将无效)。

使用以下内容查找视图:

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

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

if (view != null) {
  ImageView imageView = (ImageView)view;

  imageView.setA("new text");
}

如果视图尚未显示,您可以使用以下方式显示:

IViewPart view = page.showView("id of the view");

ImageView imageView = (ImageView)view;

imageView.setA("new text");