svn: Made "SelectMergeItemsResult" to be class and not interface
authorKonstantin Kolosovsky <konstantin.kolosovsky@jetbrains.com>
Thu, 13 Oct 2016 12:49:43 +0000 (15:49 +0300)
committerKonstantin Kolosovsky <konstantin.kolosovsky@jetbrains.com>
Wed, 9 Nov 2016 20:53:59 +0000 (23:53 +0300)
plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/QuickMergeInteraction.java
plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/QuickMergeInteractionImpl.java
plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/SelectMergeItemsResult.java [new file with mode: 0644]
plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/ShowRevisionSelector.java
plugins/svn4idea/testSource/org/jetbrains/idea/svn/QuickMergeTestInteraction.java

index 0c3dc8ad7e901338ab05f95b53eb21a3c4b9434f..821629f6b5670d2edde2ade11768ee50e4c691a1 100644 (file)
@@ -50,12 +50,4 @@ public interface QuickMergeInteraction {
   List<CommittedChangeList> showRecentListsForSelection(@NotNull List<CommittedChangeList> list,
                                                         @NotNull MergeChecker mergeChecker,
                                                         boolean allListsLoaded);
-
-  interface SelectMergeItemsResult {
-    @NotNull
-    QuickMergeContentsVariants getResultCode();
-
-    @NotNull
-    List<CommittedChangeList> getSelectedLists();
-  }
 }
index 90089a17d86fae18338b6a9ffdb44e39d8c38461..06a49bcec76945ad650a8288b9c69ca9e60894ca 100644 (file)
@@ -17,7 +17,6 @@ package org.jetbrains.idea.svn.integrate;
 
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.ui.DialogBuilder;
-import com.intellij.openapi.ui.DialogWrapper;
 import com.intellij.openapi.ui.MessageType;
 import com.intellij.openapi.vcs.AbstractVcsHelper;
 import com.intellij.openapi.vcs.FilePath;
@@ -30,11 +29,13 @@ import org.jetbrains.idea.svn.mergeinfo.MergeChecker;
 
 import java.util.List;
 
+import static com.intellij.openapi.ui.DialogWrapper.OK_EXIT_CODE;
 import static com.intellij.openapi.ui.Messages.*;
 import static com.intellij.util.Functions.TO_STRING;
 import static com.intellij.util.containers.ContainerUtil.emptyList;
 import static com.intellij.util.containers.ContainerUtil.map2Array;
 import static org.jetbrains.idea.svn.integrate.LocalChangesAction.*;
+import static org.jetbrains.idea.svn.integrate.ToBeMergedDialog.MERGE_ALL_CODE;
 
 public class QuickMergeInteractionImpl implements QuickMergeInteraction {
 
@@ -83,26 +84,10 @@ public class QuickMergeInteractionImpl implements QuickMergeInteraction {
     ToBeMergedDialog dialog = new ToBeMergedDialog(myMergeContext, lists, mergeTitle, mergeChecker, true, true);
     dialog.show();
 
-    return new SelectMergeItemsResult() {
-      @NotNull
-      @Override
-      public QuickMergeContentsVariants getResultCode() {
-        switch (dialog.getExitCode()) {
-          case ToBeMergedDialog.MERGE_ALL_CODE:
-            return QuickMergeContentsVariants.all;
-          case DialogWrapper.OK_EXIT_CODE:
-            return QuickMergeContentsVariants.select;
-          default:
-            return QuickMergeContentsVariants.cancel;
-        }
-      }
-
-      @NotNull
-      @Override
-      public List<CommittedChangeList> getSelectedLists() {
-        return dialog.getSelected();
-      }
-    };
+    QuickMergeContentsVariants resultCode = toMergeVariant(dialog.getExitCode());
+    List<CommittedChangeList> selectedLists = resultCode == QuickMergeContentsVariants.select ? dialog.getSelected() : emptyList();
+
+    return new SelectMergeItemsResult(resultCode, selectedLists);
   }
 
   @NotNull
@@ -152,4 +137,16 @@ public class QuickMergeInteractionImpl implements QuickMergeInteraction {
   private boolean prompt(@NotNull String question) {
     return showOkCancelDialog(myProject, question, myTitle, getQuestionIcon()) == OK;
   }
+
+  @NotNull
+  private static QuickMergeContentsVariants toMergeVariant(int exitCode) {
+    switch (exitCode) {
+      case MERGE_ALL_CODE:
+        return QuickMergeContentsVariants.all;
+      case OK_EXIT_CODE:
+        return QuickMergeContentsVariants.select;
+      default:
+        return QuickMergeContentsVariants.cancel;
+    }
+  }
 }
diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/SelectMergeItemsResult.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/integrate/SelectMergeItemsResult.java
new file mode 100644 (file)
index 0000000..af04487
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2000-2016 JetBrains s.r.o.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jetbrains.idea.svn.integrate;
+
+import com.intellij.openapi.vcs.versionBrowser.CommittedChangeList;
+import org.jetbrains.annotations.NotNull;
+
+import java.util.List;
+
+public class SelectMergeItemsResult {
+  @NotNull private final QuickMergeContentsVariants myResultCode;
+  @NotNull private final List<CommittedChangeList> myLists;
+
+  public SelectMergeItemsResult(@NotNull QuickMergeContentsVariants resultCode, @NotNull List<CommittedChangeList> lists) {
+    myResultCode = resultCode;
+    myLists = lists;
+  }
+
+  @NotNull
+  public QuickMergeContentsVariants getResultCode() {
+    return myResultCode;
+  }
+
+  @NotNull
+  public List<CommittedChangeList> getSelectedLists() {
+    return myLists;
+  }
+}
index a3c230fae28a28fead0ac90accd12160480fa22a..46fa7b3f399715a11d8a2b6847669e6faf1ab1c7 100644 (file)
@@ -38,8 +38,7 @@ public class ShowRevisionSelector extends BaseMergeTask {
 
   @Override
   public void run() {
-    QuickMergeInteraction.SelectMergeItemsResult result =
-      myInteraction.selectMergeItems(myChangeLists, myMergeContext.getTitle(), myMergeChecker);
+    SelectMergeItemsResult result = myInteraction.selectMergeItems(myChangeLists, myMergeContext.getTitle(), myMergeChecker);
 
     switch (result.getResultCode()) {
       case cancel:
index cdbd2f75f8cd17c27b993b118b6db5c292263933..9be5cdffd1cf937b456858599cbbfd0daa1d7152 100644 (file)
@@ -24,6 +24,7 @@ import org.jetbrains.annotations.Nullable;
 import org.jetbrains.idea.svn.integrate.LocalChangesAction;
 import org.jetbrains.idea.svn.integrate.QuickMergeContentsVariants;
 import org.jetbrains.idea.svn.integrate.QuickMergeInteraction;
+import org.jetbrains.idea.svn.integrate.SelectMergeItemsResult;
 import org.jetbrains.idea.svn.mergeinfo.MergeChecker;
 
 import java.util.List;
@@ -70,19 +71,10 @@ public class QuickMergeTestInteraction implements QuickMergeInteraction {
   public SelectMergeItemsResult selectMergeItems(@NotNull List<CommittedChangeList> lists,
                                                  @NotNull String mergeTitle,
                                                  @NotNull MergeChecker mergeChecker) {
-    return new SelectMergeItemsResult() {
-      @NotNull
-      @Override
-      public QuickMergeContentsVariants getResultCode() {
-        return mySelectedListsProvider != null ? QuickMergeContentsVariants.select : QuickMergeContentsVariants.all;
-      }
-
-      @NotNull
-      @Override
-      public List<CommittedChangeList> getSelectedLists() {
-        return mySelectedListsProvider != null ? mySelectedListsProvider.fun(lists) : emptyList();
-      }
-    };
+    return new SelectMergeItemsResult(
+      mySelectedListsProvider != null ? QuickMergeContentsVariants.select : QuickMergeContentsVariants.all,
+      mySelectedListsProvider != null ? mySelectedListsProvider.fun(lists) : emptyList()
+    );
   }
 
   @NotNull