diff --git a/java/java-impl/src/com/intellij/refactoring/introduceField/InplaceIntroduceConstantPopup.java b/java/java-impl/src/com/intellij/refactoring/introduceField/InplaceIntroduceConstantPopup.java index af7f156c858e..33805478c360 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceField/InplaceIntroduceConstantPopup.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceField/InplaceIntroduceConstantPopup.java @@ -65,7 +65,6 @@ public class InplaceIntroduceConstantPopup extends AbstractJavaInplaceIntroducer private JCheckBox myMoveToAnotherClassCb; - private JPanel myWholePanel; private final PsiClass myParentClass; public InplaceIntroduceConstantPopup(Project project, @@ -97,7 +96,6 @@ public class InplaceIntroduceConstantPopup extends AbstractJavaInplaceIntroducer myInitializerText = getExprText(expr, localVariable); - myWholePanel = new JPanel(new GridBagLayout()); GridBagConstraints gc = new GridBagConstraints(0, 0, 1, 1, 1, 0, GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0); myWholePanel.add(myLabel, gc); diff --git a/java/java-impl/src/com/intellij/refactoring/introduceField/InplaceIntroduceFieldPopup.java b/java/java-impl/src/com/intellij/refactoring/introduceField/InplaceIntroduceFieldPopup.java index 8ef7ef8ba6c2..632bbb2f445a 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceField/InplaceIntroduceFieldPopup.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceField/InplaceIntroduceFieldPopup.java @@ -55,8 +55,6 @@ public class InplaceIntroduceFieldPopup extends AbstractJavaInplaceIntroducer { private final IntroduceFieldCentralPanel myIntroduceFieldPanel; - private JPanel myWholePanel; - static BaseExpressionToFieldHandler.InitializationPlace ourLastInitializerPlace; public InplaceIntroduceFieldPopup(PsiLocalVariable localVariable, @@ -94,8 +92,6 @@ public class InplaceIntroduceFieldPopup extends AbstractJavaInplaceIntroducer { new IntroduceFieldPopupPanel(parentClass, initializerExpression, localVariable, currentMethodConstructor, localVariable != null, aStatic, myOccurrences, allowInitInMethod, allowInitInMethodIfAll, typeSelectorManager); - myWholePanel = new JPanel(new BorderLayout()); - myWholePanel.setBorder(null); myWholePanel.add(myLabel, BorderLayout.NORTH); final JComponent centerPanel = myIntroduceFieldPanel.createCenterPanel(); diff --git a/java/java-impl/src/com/intellij/refactoring/introduceParameter/InplaceIntroduceParameterPopup.java b/java/java-impl/src/com/intellij/refactoring/introduceParameter/InplaceIntroduceParameterPopup.java index 17c4c1907551..e4f25826fb4d 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceParameter/InplaceIntroduceParameterPopup.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceParameter/InplaceIntroduceParameterPopup.java @@ -20,13 +20,16 @@ import com.intellij.openapi.command.CommandProcessor; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.project.Project; +import com.intellij.openapi.ui.popup.Balloon; import com.intellij.openapi.util.Computable; import com.intellij.psi.*; import com.intellij.psi.util.PsiUtil; import com.intellij.refactoring.JavaRefactoringSettings; import com.intellij.refactoring.ui.TypeSelectorManagerImpl; +import com.intellij.ui.BalloonImpl; import com.intellij.ui.SimpleTextAttributes; import com.intellij.usageView.UsageInfo; +import com.intellij.util.ui.PositionTracker; import com.intellij.util.ui.UIUtil; import gnu.trove.TIntArrayList; import gnu.trove.TIntProcedure; @@ -47,7 +50,6 @@ public class InplaceIntroduceParameterPopup extends AbstractJavaInplaceIntroduce private final PsiMethod myMethodToSearchFor; private final boolean myMustBeFinal; - private final JPanel myWholePanel; private int myParameterIndex = -1; private InplaceIntroduceParameterUI myPanel; @@ -69,8 +71,6 @@ public class InplaceIntroduceParameterPopup extends AbstractJavaInplaceIntroduce myMethodToSearchFor = methodToSearchFor; myMustBeFinal = mustBeFinal; - myWholePanel = new JPanel(new GridBagLayout()); - myWholePanel.setBorder(null); myWholePanel.add(myLabel, new GridBagConstraints(0, GridBagConstraints.RELATIVE, 2, 1, 1, 0, GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL, new Insets(0,5,0,5), 0,0)); myPanel = new InplaceIntroduceParameterUI(project, localVar, expr, method, parametersToRemove, typeSelectorManager, @@ -206,7 +206,7 @@ public class InplaceIntroduceParameterPopup extends AbstractJavaInplaceIntroduce @Override protected void updateTitle(PsiVariable variable, String value) { - final PsiElement declarationScope = ((PsiParameter)variable).getDeclarationScope(); + final PsiElement declarationScope = variable != null ? ((PsiParameter)variable).getDeclarationScope() : null; if (declarationScope instanceof PsiMethod) { final PsiMethod psiMethod = (PsiMethod)declarationScope; myLabel.clear(); @@ -227,6 +227,8 @@ public class InplaceIntroduceParameterPopup extends AbstractJavaInplaceIntroduce } myLabel.append(")", SimpleTextAttributes.GRAYED_ATTRIBUTES); } + myWholePanel.revalidate(); + ((BalloonImpl)myBalloon).revalidate(new PositionTracker.Static(myTarget)); } @Override diff --git a/platform/lang-impl/src/com/intellij/refactoring/introduce/inplace/AbstractInplaceIntroducer.java b/platform/lang-impl/src/com/intellij/refactoring/introduce/inplace/AbstractInplaceIntroducer.java index 9bcbb51ea184..247a35b56630 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/introduce/inplace/AbstractInplaceIntroducer.java +++ b/platform/lang-impl/src/com/intellij/refactoring/introduce/inplace/AbstractInplaceIntroducer.java @@ -37,6 +37,7 @@ import com.intellij.openapi.editor.markup.TextAttributes; import com.intellij.openapi.keymap.Keymap; import com.intellij.openapi.keymap.KeymapManager; import com.intellij.openapi.project.Project; +import com.intellij.openapi.ui.popup.Balloon; import com.intellij.openapi.util.Key; import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.Ref; @@ -45,7 +46,9 @@ import com.intellij.psi.*; import com.intellij.psi.search.searches.ReferencesSearch; import com.intellij.psi.util.PsiTreeUtil; import com.intellij.refactoring.rename.inplace.VariableInplaceRenamer; +import com.intellij.ui.BalloonImpl; import com.intellij.ui.SimpleColoredComponent; +import com.intellij.util.ui.PositionTracker; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -70,6 +73,7 @@ public abstract class AbstractInplaceIntroducer(myTarget)); } protected void updateTitle(V variable) { myLabel.clear(); myLabel.append(variable.getText()); + myWholePanel.revalidate(); + ((BalloonImpl)myBalloon).revalidate(new PositionTracker.Static(myTarget)); } public void restartInplaceIntroduceTemplate() { diff --git a/platform/lang-impl/src/com/intellij/refactoring/introduce/inplace/AbstractInplaceVariableIntroducer.java b/platform/lang-impl/src/com/intellij/refactoring/introduce/inplace/AbstractInplaceVariableIntroducer.java index 4f9cf7872622..7aa610497b73 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/introduce/inplace/AbstractInplaceVariableIntroducer.java +++ b/platform/lang-impl/src/com/intellij/refactoring/introduce/inplace/AbstractInplaceVariableIntroducer.java @@ -60,6 +60,7 @@ public abstract class AbstractInplaceVariableIntroducer ex protected Balloon myBalloon; protected String myTitle; + protected RelativePoint myTarget; public AbstractInplaceVariableIntroducer(PsiNamedElement elementToRename, Editor editor, @@ -142,7 +143,8 @@ public abstract class AbstractInplaceVariableIntroducer ex if (target.getPoint().getY() > myEditor.getLineHeight() + myBalloon.getPreferredSize().getHeight()) { y -= myEditor.getLineHeight(); } - myBalloon.show(new RelativePoint(new Point(screenPoint.x, y)), Balloon.Position.above); + myTarget = new RelativePoint(new Point(screenPoint.x, y)); + myBalloon.show(myTarget, Balloon.Position.above); } @Override