void () { if (myCheckReadOnlyStatus && !checkReadonlyUsages()) return; PsiDocumentManager.getInstance(myProject).commitAllDocuments(); if (myCannotMakeString != null && !myCannotMakeString.isEmpty() && myChangesDetected) { String title = UsageViewBundle.message("changes.detected.error.title"); if (canPerformReRun()) { String message = myCannotMakeString + "\n\n" + UsageViewBundle.message("dialog.rerun.search"); int answer = Messages.showYesNoCancelDialog(myProject, message, title, UsageViewBundle.message("action.description.rerun"), UsageViewBundle.message("button.text.continue"), UsageViewBundle.message("usage.view.cancel.button"), Messages.getErrorIcon()); if (answer == Messages.YES) { refreshUsages(); return; } else if (answer == Messages.CANCEL) { return; } //continue as is } else { Messages.showMessageDialog(myProject, myCannotMakeString, title, Messages.getErrorIcon()); return; } } try { if (myCommandName == null) { myProcessRunnable.run(); } else { CommandProcessor.getInstance().executeCommand( myProject, myProcessRunnable, myCommandName, null ); } } finally { close(); } }