嗨,RCP开发者,
我想在我的postWindowClose() ECLIPSE应用程序中使用。
在编写此方法之前,我只做了一个小测试,看看当我关闭应用程序时,是否调用了该方法,所以我这样做了:
import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
import org.eclipse.ui.application.WorkbenchWindowAdvisor;
public class MainWindowControl extends WorkbenchWindowAdvisor{
public MainWindowControl(IWorkbenchWindowConfigurer configurer) {
super(configurer);
// TODO Auto-generated constructor stub
}
@Override
public void postWindowClose() {
// TODO Auto-generated method stub
super.postWindowClose();
System.out.println("close");
}
}我希望看到:close在ECLIPSE控制台中,但是在关闭应用程序之后它仍然是空白的。
所有所需的插件都是添加的,我在启动或关闭应用程序时没有错误。
我是不是漏掉了什么?
执行此方法的原因是:
Are you sure you want to close the application编辑:
我的生命周期课:
package upload.center.util;
import org.eclipse.e4.ui.workbench.lifecycle.PostContextCreate;
import org.eclipse.e4.ui.workbench.lifecycle.PreSave;
public class WindowLifeCycle {
@PostContextCreate
public void postContextCreate()
{
// TODO start up code here
System.out.println("open");
}
@PreSave
public void preSave()
{
// TODO add shutdown code here
System.out.println("close");
}
}我的plugin.xml:
<product ....
<property
name="windowLifeCycle"
value="bundleclass://UploadCenter.Source/upload.center.util.WindowLifeCycle">
</property>
...</product>我希望我说得够清楚。
伊斯梅尔
发布于 2014-02-26 10:04:25
对于纯Eclipse4 (e4)应用程序,不使用工作台窗口顾问(和其他顾问)。您可以使用生命周期类的@PreSave方法在关机期间运行代码。
public class LifeCycle
{
@PostContextCreate
public void postContextCreate()
{
// TODO start up code here
}
@PreSave
public void preSave()
{
// TODO add shutdown code here
}
}在plugin.xml中的产品定义中声明生命周期类
<extension
id="product"
point="org.eclipse.core.runtime.products">
<product
name="%product.name"
application="org.eclipse.e4.ui.workbench.swt.E4Application">
<property
name="lifeCycleURI"
value="bundleclass://plugin-id/package.LifeCycle">
</property>
.... more properties ...有关详细信息,请参阅这里
https://stackoverflow.com/questions/22035861
复制相似问题