private static String constructMessage( final ConflictManagerExternal conflictManager, boolean allConflictsResolved) throws OseeCoreException { StringBuilder message = new StringBuilder(); Branch sourceBranch = conflictManager.getSourceBranch(); Branch destinationBranch = conflictManager.getDestinationBranch(); if (allConflictsResolved) { message.append("Ready to commit"); } else { message.append("Couldn't commit branch because of unresolved conflicts"); } message.append( String.format( "\n\n\"[%s]\"\n\n onto destination branch \n\n\"[%s]\"\n\n", sourceBranch, destinationBranch)); int numOriginalConflicts = conflictManager.getOriginalConflicts().size(); if (allConflictsResolved) { message.append( String.format( "with all (%d) conflicts resolved\n\nWould you like to Commit?", numOriginalConflicts)); } else { message.append( "with " + conflictManager.getRemainingConflicts().size() + " / " + numOriginalConflicts + " conflicts still unresolved\n"); } return message.toString(); }
private static int promptUserMutlipleChoices(ConflictManagerExternal conflictManager) throws OseeCoreException { boolean isAllConflictsResolved = !conflictManager.remainingConflictsExist(); Messages = constructMessage(conflictManager, isAllConflictsResolved); Choices = constructChoices(conflictManager, isAllConflictsResolved); final MutableInteger result = new MutableInteger(CANCEL); Displays.pendInDisplayThread( new Runnable() { @Override public void run() { MessageDialog dialog = new MessageDialog( PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), TITLE, null, Messages, MessageDialog.QUESTION, Choices, CANCEL); result.setValue(dialog.open()); } }); if (!isAllConflictsResolved) { // Since all conflicts were not resolved, options start with // Launch Merge Manager(1) instead of Commit(0) result.getValueAndInc(); } return result.getValue(); }
public static boolean handleCommitInProgressPostPrompt( final ConflictManagerExternal conflictManager, int userOption, boolean skipPrompts) throws OseeCoreException { boolean toReturn = false; Branch sourceBranch = conflictManager.getSourceBranch(); Branch destinationBranch = conflictManager.getDestinationBranch(); if (userOption == COMMIT) { // Commit BranchManager.commitBranch(null, conflictManager, archiveBranch, false); toReturn = true; } else if (userOption == LAUNCH_MERGE_VIEW) { // Launch Merge MergeView.openView(sourceBranch, destinationBranch, sourceBranch.getBaseTransaction()); } else if (userOption == DELETE_MERGE) { // Delete Merge deleteSingleMergeBranches(sourceBranch, destinationBranch, skipPrompts); } else if (userOption == FORCE_COMMIT) { // Force Commit, admin only BranchManager.commitBranch(null, conflictManager, archiveBranch, true); toReturn = true; } else if (userOption == CANCEL) { // do nothing } return toReturn; }