diff --git a/source/com/intellij/refactoring/move/moveMembers/MoveMembersDialog.java b/source/com/intellij/refactoring/move/moveMembers/MoveMembersDialog.java index 103448521760..33ff7656fb02 100644 --- a/source/com/intellij/refactoring/move/moveMembers/MoveMembersDialog.java +++ b/source/com/intellij/refactoring/move/moveMembers/MoveMembersDialog.java @@ -17,6 +17,7 @@ import com.intellij.psi.util.PsiTreeUtil; import com.intellij.refactoring.HelpID; import com.intellij.refactoring.RefactoringDialog; import com.intellij.refactoring.RefactoringSettings; +import com.intellij.refactoring.move.MoveCallback; import com.intellij.refactoring.ui.MemberSelectionTable; import com.intellij.refactoring.ui.VisibilityPanel; import com.intellij.refactoring.util.RefactoringMessageUtil; @@ -40,30 +41,27 @@ import java.util.Set; public class MoveMembersDialog extends RefactoringDialog implements MoveMembersOptions { private MyMemberInfoModel myMemberInfoModel; - public static interface Callback { - void invoke(MoveMembersDialog dialog); - } - private Project myProject; - private Callback myCallback; private PsiClass mySourceClass; private String mySourceClassName; private MemberInfo[] myMemberInfos; private final TextFieldWithBrowseButton myTfTargetClassName; private MemberSelectionTable myTable; private Set myPreselectMembers; + private final MoveCallback myMoveCallback; VisibilityPanel myVisibilityPanel; - public MoveMembersDialog(Project project, PsiClass sourceClass, final PsiClass initialTargetClass, - Set preselectMembers, Callback callback) { - - + public MoveMembersDialog(Project project, + PsiClass sourceClass, + final PsiClass initialTargetClass, + Set preselectMembers, + MoveCallback moveCallback) { super(project, true); myProject = project; - myCallback = callback; mySourceClass = sourceClass; myPreselectMembers = preselectMembers; + myMoveCallback = moveCallback; setTitle(MoveMembersImpl.REFACTORING_NAME); mySourceClassName = mySourceClass.getQualifiedName(); @@ -215,7 +213,20 @@ public class MoveMembersDialog extends RefactoringDialog implements MoveMembersO return; } - myCallback.invoke(this); + invokeRefactoring(new MoveMembersProcessor(getProject(), myMoveCallback, new MoveMembersOptions() { + public String getMemberVisibility() { + return MoveMembersDialog.this.getMemberVisibility(); + } + + public PsiMember[] getSelectedMembers() { + return MoveMembersDialog.this.getSelectedMembers(); + } + + public String getTargetClassName() { + return MoveMembersDialog.this.getTargetClassName(); + } + })); + RefactoringSettings.getInstance().MOVE_PREVIEW_USAGES = isPreviewUsages(); } diff --git a/source/com/intellij/refactoring/move/moveMembers/MoveMembersImpl.java b/source/com/intellij/refactoring/move/moveMembers/MoveMembersImpl.java index e702f30bb9a4..ddc42f464800 100644 --- a/source/com/intellij/refactoring/move/moveMembers/MoveMembersImpl.java +++ b/source/com/intellij/refactoring/move/moveMembers/MoveMembersImpl.java @@ -89,7 +89,6 @@ public class MoveMembersImpl { if (!RefactoringMessageUtil.checkReadOnlyStatus(project, sourceClass)) return; } - final MoveMembersProcessor callback = new MoveMembersProcessor(project, moveCallback); final PsiClass initialTargerClass = targetContainer instanceof PsiClass? (PsiClass) targetContainer : (PsiClass) null; MoveMembersDialog dialog = new MoveMembersDialog( @@ -97,8 +96,7 @@ public class MoveMembersImpl { sourceClass, initialTargerClass, preselectMembers, - callback - ); + moveCallback); dialog.show(); } } diff --git a/source/com/intellij/refactoring/move/moveMembers/MoveMembersOptions.java b/source/com/intellij/refactoring/move/moveMembers/MoveMembersOptions.java index 3691fa6da949..7132feff93ad 100644 --- a/source/com/intellij/refactoring/move/moveMembers/MoveMembersOptions.java +++ b/source/com/intellij/refactoring/move/moveMembers/MoveMembersOptions.java @@ -11,8 +11,4 @@ public interface MoveMembersOptions { String getTargetClassName(); String getMemberVisibility(); - - boolean isPreviewUsages(); - - void close(int exitCode); } diff --git a/source/com/intellij/refactoring/move/moveMembers/MoveMembersProcessor.java b/source/com/intellij/refactoring/move/moveMembers/MoveMembersProcessor.java index 979694d2599c..8da831c48ace 100644 --- a/source/com/intellij/refactoring/move/moveMembers/MoveMembersProcessor.java +++ b/source/com/intellij/refactoring/move/moveMembers/MoveMembersProcessor.java @@ -7,7 +7,6 @@ package com.intellij.refactoring.move.moveMembers; import com.intellij.codeInsight.ChangeContextUtil; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.project.Project; -import com.intellij.openapi.ui.DialogWrapper; import com.intellij.psi.*; import com.intellij.psi.codeStyle.CodeStyleManager; import com.intellij.psi.search.GlobalSearchScope; @@ -31,7 +30,7 @@ import com.intellij.util.IncorrectOperationException; import java.util.*; -public class MoveMembersProcessor extends BaseRefactoringProcessor implements MoveMembersDialog.Callback { +public class MoveMembersProcessor extends BaseRefactoringProcessor { private static final Logger LOG = Logger.getInstance("#com.intellij.refactoring.move.moveMembers.MoveMembersProcessor"); private PsiClass myTargetClass; @@ -40,9 +39,10 @@ public class MoveMembersProcessor extends BaseRefactoringProcessor implements Mo private MoveCallback myMoveCallback; private String myNewVisibility; // "null" means "as is" - public MoveMembersProcessor(Project project, MoveCallback moveCallback) { + public MoveMembersProcessor(Project project, MoveCallback moveCallback, MoveMembersOptions options) { super(project); myMoveCallback = moveCallback; + setOptions(options); } public MoveMembersProcessor(Project project, MoveMembersOptions options) { @@ -54,21 +54,6 @@ public class MoveMembersProcessor extends BaseRefactoringProcessor implements Mo return MoveMembersImpl.REFACTORING_NAME; } - public void invoke(final MoveMembersDialog dialog) { - setOptions(dialog); - setPrepareSuccessfulSwingThreadCallback(new Runnable() { - public void run() { - dialog.close(DialogWrapper.CANCEL_EXIT_CODE); - } - }); - run(null); - } - - public void testRun(MoveMembersOptions dialog) { - setOptions(dialog); - super.testRun(); - } - private void setOptions(MoveMembersOptions dialog) { myDialog = dialog; PsiMember[] members = myDialog.getSelectedMembers(); diff --git a/source/com/intellij/refactoring/openapi/impl/MoveMembersRefactoringImpl.java b/source/com/intellij/refactoring/openapi/impl/MoveMembersRefactoringImpl.java index 482e42eaf8d9..714313c7f9a5 100644 --- a/source/com/intellij/refactoring/openapi/impl/MoveMembersRefactoringImpl.java +++ b/source/com/intellij/refactoring/openapi/impl/MoveMembersRefactoringImpl.java @@ -33,12 +33,6 @@ public class MoveMembersRefactoringImpl extends RefactoringImpl