| package com.intellij.diagnostic.errordialog; |
| |
| import com.intellij.diagnostic.DiagnosticBundle; |
| import com.intellij.openapi.application.ApplicationNamesInfo; |
| import com.intellij.openapi.ui.DialogWrapper; |
| import com.intellij.openapi.util.SystemInfo; |
| import org.jetbrains.annotations.NotNull; |
| |
| import javax.swing.*; |
| import java.awt.*; |
| import java.awt.event.ActionEvent; |
| |
| /** |
| * @author ksafonov |
| */ |
| public class DisablePluginWarningDialog extends DialogWrapper { |
| private JLabel myPromptLabel; |
| private JLabel myRestartLabel; |
| private JPanel myContentPane; |
| |
| public static final int DISABLE_EXIT_CODE = OK_EXIT_CODE; |
| public static final int DISABLE_AND_RESTART_EXIT_CODE = NEXT_USER_EXIT_CODE; |
| private final boolean myRestartCapable; |
| |
| public DisablePluginWarningDialog(Component c, String pluginName, boolean hasDependants, boolean restartCapable) { |
| super(c, false); |
| myRestartCapable = restartCapable; |
| myPromptLabel.setText( |
| DiagnosticBundle.message(hasDependants ? "error.dialog.disable.plugin.prompt.dependants" : "error.dialog.disable.plugin.prompt", |
| pluginName)); |
| myRestartLabel |
| .setText(DiagnosticBundle.message(restartCapable ? "error.dialog.disable.plugin.restart" : "error.dialog.disable.plugin.norestart", |
| ApplicationNamesInfo.getInstance().getFullProductName())); |
| |
| setTitle(DiagnosticBundle.message("error.dialog.disable.plugin.title")); |
| init(); |
| } |
| |
| @Override |
| protected JComponent createCenterPanel() { |
| return myContentPane; |
| } |
| |
| @NotNull |
| @Override |
| protected Action[] createActions() { |
| if (SystemInfo.isMac) { |
| if (myRestartCapable) { |
| return new Action[]{getCancelAction(), new DisableAction(), new DisableAndRestartAction()}; |
| } |
| else { |
| return new Action[]{getCancelAction(), new DisableAction()}; |
| } |
| } |
| else { |
| if (myRestartCapable) { |
| return new Action[]{new DisableAction(), new DisableAndRestartAction(), getCancelAction()}; |
| } |
| else { |
| return new Action[]{new DisableAction(), getCancelAction()}; |
| } |
| } |
| } |
| |
| private class DisableAction extends DialogWrapperAction { |
| protected DisableAction() { |
| super(DiagnosticBundle.message("error.dialog.disable.plugin.action.disable")); |
| } |
| |
| @Override |
| protected void doAction(ActionEvent e) { |
| close(DISABLE_EXIT_CODE); |
| } |
| } |
| |
| private class DisableAndRestartAction extends DialogWrapperAction { |
| protected DisableAndRestartAction() { |
| super(DiagnosticBundle.message("error.dialog.disable.plugin.action.disableAndRestart")); |
| } |
| |
| @Override |
| protected void doAction(ActionEvent e) { |
| close(DISABLE_AND_RESTART_EXIT_CODE); |
| } |
| } |
| } |