【发布时间】:2017-09-22 05:36:59
【问题描述】:
我正在使用 Eclipse RCP 和 EMF 模型。我创建了自己的属性选项卡表,而不是在视图中选择对象时刷新。直到这里,一切正常。然后,当我对模型进行更改时,我想刷新属性选项卡。我向我的主属性表页面添加了一个模型更改侦听器
public class MyTabbedPropertySheet extends TabbedPropertySheet{...}
private void init(){
try{
MyModelChangeListener = new MyModelChangeListener(){
@Override
public void refreshUI(){
try{
UMLModeler.getTransactionHelper().getEditingDomain().runExclusive(new Runnable() {
@Override
public void run(){
refresh() //This is the eclipse TabbedPropertySheet refresh method
}
});
}catch(){..}
UMLModeler.getTransactionHelper().getEditingDomain().addResourceSetListener(MyModelChangeListener);
}catch{...}
之后,当我更改我的对象时,我的属性表确实会刷新,但我在 Eclipse 类中有一个 NullPointerException,因为 currenttab 为空。
org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage 中的方法
public void refresh(){
currentTab.refresh();
}
所以我想知道如何在此选项卡未激活时获取当前选项卡(我正在另一个视图中进行修改)。 还是有其他方法可以刷新属性表页面?
【问题讨论】:
-
感谢您的回答 :) 我可能应该更改问题标题,因为我的主要问题是“如何在此选项卡未激活时获取当前选项卡”
标签: java nullpointerexception eclipse-rcp propertysheet