仅调用 Restart workbench 代码一次
Calling Restart workbench code only once
我创建了一个包含多个字段的首选项页面。在首选项商店中,我添加了 propertychangelistener when contains code to restart application.
getPreferenceStore().addPropertyChangeListener(new IPropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent event) {
if(MessageDialog.openConfirm(shell,"Restart Required", "Restart now?"))
PlatformUI.getWorkbench().restart();
}
});
问题是当我更改首选项页面中的多个条目时,此重启代码将被调用多次。我应该设置什么条件,以便即使在更改多个条目后,此重启也只会被调用一次。
只需在属性更改监听器中设置一个标志,并在页面的performOk
方法中进行重启提示。
// Field in the page:
boolean restartRequired = false;
getPreferenceStore().addPropertyChangeListener(new IPropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent event) {
restartRequired = true;
}
});
@Override
public boolean performOk()
{
if (restartRequired) {
... prompt / restart
}
return super.performOk();
}
我创建了一个包含多个字段的首选项页面。在首选项商店中,我添加了 propertychangelistener when contains code to restart application.
getPreferenceStore().addPropertyChangeListener(new IPropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent event) {
if(MessageDialog.openConfirm(shell,"Restart Required", "Restart now?"))
PlatformUI.getWorkbench().restart();
}
});
问题是当我更改首选项页面中的多个条目时,此重启代码将被调用多次。我应该设置什么条件,以便即使在更改多个条目后,此重启也只会被调用一次。
只需在属性更改监听器中设置一个标志,并在页面的performOk
方法中进行重启提示。
// Field in the page:
boolean restartRequired = false;
getPreferenceStore().addPropertyChangeListener(new IPropertyChangeListener() {
@Override
public void propertyChange(PropertyChangeEvent event) {
restartRequired = true;
}
});
@Override
public boolean performOk()
{
if (restartRequired) {
... prompt / restart
}
return super.performOk();
}