private boolean openWarning( final Command command ) {
final boolean[] runCommand=new boolean[1];
if (!(command instanceof UndoableCommand)
&& ProjectPlugin.getPlugin().getUndoableCommandWarning()) {
final IPreferenceStore preferenceStore = ProjectPlugin.getPlugin()
.getPreferenceStore();
if (!preferenceStore.getBoolean(PreferenceConstants.P_WARN_IRREVERSIBLE_COMMAND)) {
return preferenceStore
.getBoolean(PreferenceConstants.P_IRREVERSIBLE_COMMAND_VALUE);
}
PlatformGIS.syncInDisplayThread(new Runnable(){
public void run() {
String string = Messages.CommandManager_warning + command.getName();
if ( command instanceof RollbackCommand ||
command instanceof CommitCommand )
string += "?"; //$NON-NLS-1$
else
string+=Messages.CommandManager_warning2;
MessageDialogWithToggle dialog = MessageDialogWithToggle
.openOkCancelConfirm(
PlatformUI.getWorkbench().getActiveWorkbenchWindow()
.getShell(),
Messages.CommandManager_warningTitle, string,
Messages.CommandManager_toggleMessage, false, preferenceStore, PreferenceConstants.P_WARN_IRREVERSIBLE_COMMAND);
runCommand[0] = dialog.getReturnCode() == IDialogConstants.OK_ID;
if (dialog.getToggleState()) {
preferenceStore
.setValue(PreferenceConstants.P_IRREVERSIBLE_COMMAND_VALUE,
runCommand[0]);
}
}
});