IDEA-83600: pull up for local classes

This commit is contained in:
anna
2012-03-28 13:27:05 +02:00
parent 8d06f7224a
commit b4c42eb076
5 changed files with 45 additions and 4 deletions
@@ -192,10 +192,14 @@ public class PullUpDialog extends RefactoringDialog {
protected void doAction() {
if (!myCallback.checkConflicts(this)) return;
JavaRefactoringSettings.getInstance().PULL_UP_MEMBERS_JAVADOC = myJavaDocPanel.getPolicy();
StatisticsManager
.getInstance().incUseCount(new StatisticsInfo(PULL_UP_STATISTICS_KEY + myClass.getQualifiedName(), getSuperClass().getQualifiedName()));
final PsiClass superClass = getSuperClass();
String name = superClass.getQualifiedName();
if (name != null) {
StatisticsManager
.getInstance().incUseCount(new StatisticsInfo(PULL_UP_STATISTICS_KEY + myClass.getQualifiedName(), name));
}
invokeRefactoring(new PullUpHelper(myClass, getSuperClass(), getSelectedMemberInfos(),
invokeRefactoring(new PullUpHelper(myClass, superClass, getSelectedMemberInfos(),
new DocCommentPolicy(getJavaDocPolicy())));
close(OK_EXIT_CODE);
}
@@ -25,6 +25,7 @@
package com.intellij.refactoring.util;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.util.Comparing;
import com.intellij.psi.*;
import com.intellij.psi.search.PsiElementProcessor;
import com.intellij.psi.search.PsiElementProcessorAdapter;
@@ -129,7 +130,13 @@ public class RefactoringHierarchyUtil {
Collections.sort(
basesList, new Comparator<PsiClass>() {
public int compare(PsiClass c1, PsiClass c2) {
return c1.getQualifiedName().compareTo(c2.getQualifiedName());
final String fqn1 = c1.getQualifiedName();
final String fqn2 = c2.getQualifiedName();
if (fqn1 != null && fqn2 != null) return fqn1.compareTo(fqn2);
if (fqn1 == null && fqn2 == null) {
return Comparing.compare(c1.getName(), c2.getName());
}
return fqn1 == null ? 1 : -1;
}
}
);