diff options
Diffstat (limited to 'platform/dvcs-impl/src/com/intellij/dvcs/push/ui/VcsPushDialog.java')
-rw-r--r-- | platform/dvcs-impl/src/com/intellij/dvcs/push/ui/VcsPushDialog.java | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/platform/dvcs-impl/src/com/intellij/dvcs/push/ui/VcsPushDialog.java b/platform/dvcs-impl/src/com/intellij/dvcs/push/ui/VcsPushDialog.java index b441952f7a43..22f1e74abbbd 100644 --- a/platform/dvcs-impl/src/com/intellij/dvcs/push/ui/VcsPushDialog.java +++ b/platform/dvcs-impl/src/com/intellij/dvcs/push/ui/VcsPushDialog.java @@ -15,11 +15,13 @@ */ package com.intellij.dvcs.push.ui; +import com.intellij.CommonBundle; import com.intellij.dvcs.push.PushController; import com.intellij.dvcs.push.VcsPushOptionsPanel; import com.intellij.dvcs.repo.Repository; import com.intellij.openapi.project.Project; import com.intellij.openapi.ui.DialogWrapper; +import com.intellij.openapi.ui.Messages; import com.intellij.openapi.ui.OptionAction; import com.intellij.openapi.ui.ValidationInfo; import net.miginfocom.swing.MigLayout; @@ -32,8 +34,11 @@ import java.awt.event.ActionEvent; import java.util.ArrayList; import java.util.List; +import static com.intellij.openapi.ui.Messages.OK; + public class VcsPushDialog extends DialogWrapper { + @NotNull private final Project myProject; private final PushLog myListPanel; private final PushController myController; private final Action[] myExecutorActions = {new DvcsPushAction("&Force Push", true)}; @@ -43,8 +48,9 @@ public class VcsPushDialog extends DialogWrapper { public VcsPushDialog(@NotNull Project project, @NotNull List<? extends Repository> selectedRepositories) { super(project); + myProject = project; myController = new PushController(project, this, selectedRepositories); - myListPanel = myController.getPushPanelInfo(); + myListPanel = myController.getPushPanelLog(); myAdditionalOptionsFromVcsPanel = new JPanel(new MigLayout("ins 0 0, flowx")); init(); setOKButtonText("Push"); @@ -82,6 +88,12 @@ public class VcsPushDialog extends DialogWrapper { return actions.toArray(new Action[actions.size()]); } + @Nullable + @Override + public JComponent getPreferredFocusedComponent() { + return myListPanel.getPreferredFocusedComponent(); + } + @NotNull @Override protected Action getOKAction() { @@ -127,6 +139,12 @@ public class VcsPushDialog extends DialogWrapper { @Override public void actionPerformed(ActionEvent e) { + if (myForce) { + int answer = Messages.showOkCancelDialog(myProject, getConfirmationMessage(), + "Force Push", + "&Force Push", CommonBundle.getCancelButtonText(), Messages.getWarningIcon()); + if (answer != OK) return; + } myController.push(myForce); close(OK_EXIT_CODE); } @@ -141,4 +159,9 @@ public class VcsPushDialog extends DialogWrapper { myOptions = actions; } } + + @NotNull + private static String getConfirmationMessage() { + return "You're going to force push. It will overwrite commits at the remote. Are you sure you want to proceed?"; + } } |