在RCP中,用户自己定义的view都继承自org.eclipse.ui.part.ViewPart。在viewPart中有一个Protected的方法:
调用该方法就可以改变view的title值。但是,由于该方法是protected的方法,所以,该方法只能在子类中直接调用,在其他的class中想要获取的子类的引用都没有办法调用该方法,所以做了一个技巧性的改动。
在子类中自己添加一个public的方法,如下:
一看就明白,该方法就是要将父类的protected方法在子类暴露为public的方法。
这样以后,如果在其他class里面想要动态修改view的tilte,就可以调用形如如下的语句来完成了:
也是研究了好一会儿才弄明白的东西,我突然想再看看设计模式了……
/* (non-Javadoc)
* @see org.eclipse.ui.part.WorkbenchPart#setPartName(java.lang.String)
*/
protected void setPartName(String partName) {
if (compatibilityTitleListener != null) {
removePropertyListener(compatibilityTitleListener);
compatibilityTitleListener = null;
}
调用该方法就可以改变view的title值。但是,由于该方法是protected的方法,所以,该方法只能在子类中直接调用,在其他的class中想要获取的子类的引用都没有办法调用该方法,所以做了一个技巧性的改动。
在子类中自己添加一个public的方法,如下:
public void setPartName(String name)
{
super.setPartName(name);
}
一看就明白,该方法就是要将父类的protected方法在子类暴露为public的方法。
这样以后,如果在其他class里面想要动态修改view的tilte,就可以调用形如如下的语句来完成了:
((YourView)PlatformUI.getWorkbench().getActiveWorkbenchWindow()
.getActivePage().findView(YourView.ID)).setPartName("newTitle");
也是研究了好一会儿才弄明白的东西,我突然想再看看设计模式了……