2017-07-27 75 views
0

我创建了一个包含多个字段的首选项页面。在包含代码以重新启动应用程序时,我在preference store中添加了propertychangelistener。仅调用一次重新启动工作台代码

getPreferenceStore().addPropertyChangeListener(new IPropertyChangeListener() { 

     @Override 
     public void propertyChange(PropertyChangeEvent event) { 
     if(MessageDialog.openConfirm(shell,"Restart Required", "Restart now?")) 
      PlatformUI.getWorkbench().restart(); 
     } 
    }); 

问题是当我在首选项页面中更改多个条目时,此重新启动代码将被多次调用。我应该放什么样的条件,以便即使在改变多个条目之后,这个重新启动也只会被调用一次。

+0

您不能添加保存/应用按钮并使用它来提示用户重新启动工作台吗? –

回答

0

只需在属性更改侦听器中设置一个标志,并在页面的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(); 
} 
+0

非常感谢greg-449 :) – techie

相关问题