private DeleteRemoteBranchDecision confirmBranchDeletion( @NotNull String branchName, @NotNull Collection<String> trackingBranches, boolean currentBranchTracksBranchToDelete, @NotNull Collection<GitRepository> repositories) { String title = "Delete Remote Branch"; String message = "Delete remote branch " + branchName; boolean delete; final boolean deleteTracking; if (trackingBranches.isEmpty()) { delete = Messages.showYesNoDialog( myProject, message, title, "Delete", "Cancel", Messages.getQuestionIcon()) == Messages.YES; deleteTracking = false; } else { if (currentBranchTracksBranchToDelete) { message += "\n\nCurrent branch " + GitBranchUtil.getCurrentBranchOrRev(repositories) + " tracks " + branchName + " but won't be deleted."; } final String checkboxMessage; if (trackingBranches.size() == 1) { checkboxMessage = "Delete tracking local branch " + trackingBranches.iterator().next() + " as well"; } else { checkboxMessage = "Delete tracking local branches " + StringUtil.join(trackingBranches, ", "); } final AtomicBoolean deleteChoice = new AtomicBoolean(); delete = MessageDialogBuilder.yesNo(title, message) .project(myProject) .yesText("Delete") .noText("Cancel") .doNotAsk( new DialogWrapper.DoNotAskOption.Adapter() { @Override public void rememberChoice(boolean isSelected, int exitCode) { deleteChoice.set(isSelected); } @NotNull @Override public String getDoNotShowMessage() { return checkboxMessage; } }) .show() == Messages.YES; deleteTracking = deleteChoice.get(); } return new DeleteRemoteBranchDecision(delete, deleteTracking); }
private boolean getAddedFilesPlaceOption() { final SvnConfiguration configuration = SvnConfiguration.getInstance(myVcs.getProject()); boolean add = Boolean.TRUE.equals(configuration.isKeepNewFilesAsIsForTreeConflictMerge()); if (configuration.isKeepNewFilesAsIsForTreeConflictMerge() != null) { return add; } if (!containAdditions(myTheirsChanges) && !containAdditions(myTheirsBinaryChanges)) { return false; } return Messages.YES == MessageDialogBuilder.yesNo( TreeConflictRefreshablePanel.TITLE, "Keep newly created file(s) in their original place?") .yesText("Keep") .noText("Move") .doNotAsk( new DialogWrapper.DoNotAskOption() { @Override public boolean isToBeShown() { return true; } @Override public void setToBeShown(boolean value, int exitCode) { if (!value) { if (exitCode == 0) { // yes configuration.setKeepNewFilesAsIsForTreeConflictMerge(true); } else { configuration.setKeepNewFilesAsIsForTreeConflictMerge(false); } } } @Override public boolean canBeHidden() { return true; } @Override public boolean shouldSaveOptionsOnCancel() { return true; } @NotNull @Override public String getDoNotShowMessage() { return CommonBundle.message("dialog.options.do.not.ask"); } }) .show(); }