From e43605d0850a7d18be062cf191b3095b02167e04 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Wed, 22 Jun 2016 13:49:18 +0300 Subject: [PATCH] EA-82721 - ISE: VisibilityUtil.getVisibilityString --- .../JavaChangeSignatureDialog.java | 7 +- .../extractMethod/AbstractExtractDialog.java | 2 + .../extractMethod/ExtractMethodDialog.java | 143 ++++++++---------- .../ExtractLightMethodObjectHandler.java | 2 +- .../ExtractMethodObjectDialog.java | 18 ++- .../IntroduceParameterHandler.java | 1 + .../src/com/intellij/util/VisibilityUtil.java | 3 +- 7 files changed, 91 insertions(+), 85 deletions(-) diff --git a/java/java-impl/src/com/intellij/refactoring/changeSignature/JavaChangeSignatureDialog.java b/java/java-impl/src/com/intellij/refactoring/changeSignature/JavaChangeSignatureDialog.java index 11fd628bf091..dcc88fd4bfac 100644 --- a/java/java-impl/src/com/intellij/refactoring/changeSignature/JavaChangeSignatureDialog.java +++ b/java/java-impl/src/com/intellij/refactoring/changeSignature/JavaChangeSignatureDialog.java @@ -54,10 +54,7 @@ import com.intellij.ui.*; import com.intellij.ui.table.JBTable; import com.intellij.ui.table.TableView; import com.intellij.ui.treeStructure.Tree; -import com.intellij.util.Consumer; -import com.intellij.util.IncorrectOperationException; -import com.intellij.util.TextFieldCompletionProvider; -import com.intellij.util.VisibilityUtil; +import com.intellij.util.*; import com.intellij.util.ui.DialogUtil; import com.intellij.util.ui.JBUI; import com.intellij.util.ui.UIUtil; @@ -672,7 +669,7 @@ public class JavaChangeSignatureDialog extends ChangeSignatureDialogBase conflicts = new MultiMap(); + MultiMap conflicts = new MultiMap<>(); checkMethodConflicts(conflicts); if (!conflicts.isEmpty()) { final ConflictsDialog conflictsDialog = new ConflictsDialog(myProject, conflicts); @@ -199,6 +206,7 @@ public class ExtractMethodDialog extends DialogWrapper implements AbstractExtrac super.doOKAction(); } + @Override protected JComponent createNorthPanel() { final JPanel main = new JPanel(new BorderLayout()); final JPanel namePanel = new JPanel(new BorderLayout(0, 2)); @@ -208,12 +216,7 @@ public class ExtractMethodDialog extends DialogWrapper implements AbstractExtrac namePanel.add(myNameField, BorderLayout.SOUTH); nameLabel.setLabelFor(myNameField); - myNameField.addDataChangedListener(new NameSuggestionsField.DataChanged() { - @Override - public void dataChanged() { - update(); - } - }); + myNameField.addDataChangedListener(this::update); myVisibilityPanel = createVisibilityPanel(); myVisibilityPanel.registerUpDownActionsFor(myNameField); @@ -266,22 +269,19 @@ public class ExtractMethodDialog extends DialogWrapper implements AbstractExtrac returnTypePanel.add(label, BorderLayout.NORTH); returnTypePanel.add(component, BorderLayout.SOUTH); DialogUtil.registerMnemonic(label, component); - ((JComboBox)component).addActionListener(new ActionListener() { - @Override - public void actionPerformed(ActionEvent e) { - final PsiType selectedType = mySelector.getSelectedType(); - if (myGenerateAnnotations != null) { - final boolean enabled = PsiUtil.resolveClassInType(selectedType) != null; - if (!enabled) { - myGenerateAnnotations.setSelected(false); - } - myGenerateAnnotations.setEnabled(enabled); + ((JComboBox)component).addActionListener(e -> { + final PsiType selectedType = mySelector.getSelectedType(); + if (myGenerateAnnotations != null) { + final boolean enabled = PsiUtil.resolveClassInType(selectedType) != null; + if (!enabled) { + myGenerateAnnotations.setSelected(false); } - resizeReturnCombo(component, selectedType); - returnTypePanel.revalidate(); - returnTypePanel.repaint(); - updateSignature(); + myGenerateAnnotations.setEnabled(enabled); } + resizeReturnCombo(component, selectedType); + returnTypePanel.revalidate(); + returnTypePanel.repaint(); + updateSignature(); }); resizeReturnCombo(component, mySelector.getSelectedType()); return returnTypePanel; @@ -312,16 +312,14 @@ public class ExtractMethodDialog extends DialogWrapper implements AbstractExtrac if (myVariableData.hasInstanceFields()) { myMakeStatic.setText(RefactoringBundle.message("declare.static.pass.fields.checkbox")); } - myMakeStatic.addItemListener(new ItemListener() { - public void itemStateChanged(ItemEvent e) { - if (myVariableData.hasInstanceFields()) { - myVariableData.setPassFields(myMakeStatic.isSelected()); - myInputVariables = myVariableData.getInputVariables().toArray(new VariableData[myVariableData.getInputVariables().size()]); - updateVarargsEnabled(); - createParametersPanel(); - } - updateSignature(); + myMakeStatic.addItemListener(e -> { + if (myVariableData.hasInstanceFields()) { + myVariableData.setPassFields(myMakeStatic.isSelected()); + myInputVariables = myVariableData.getInputVariables().toArray(new VariableData[myVariableData.getInputVariables().size()]); + updateVarargsEnabled(); + createParametersPanel(); } + updateSignature(); }); optionsPanel.add(myMakeStatic); } else { @@ -335,15 +333,13 @@ public class ExtractMethodDialog extends DialogWrapper implements AbstractExtrac myFoldParameters.setVisible(myVariableData.isFoldable()); myVariableData.setFoldingAvailable(myFoldParameters.isSelected()); myInputVariables = myVariableData.getInputVariables().toArray(new VariableData[myVariableData.getInputVariables().size()]); - myFoldParameters.addActionListener(new ActionListener() { - public void actionPerformed(ActionEvent e) { - myVariableData.setFoldingAvailable(myFoldParameters.isSelected()); - myInputVariables = - myVariableData.getInputVariables().toArray(new VariableData[myVariableData.getInputVariables().size()]); - updateVarargsEnabled(); - createParametersPanel(); - updateSignature(); - } + myFoldParameters.addActionListener(e -> { + myVariableData.setFoldingAvailable(myFoldParameters.isSelected()); + myInputVariables = + myVariableData.getInputVariables().toArray(new VariableData[myVariableData.getInputVariables().size()]); + updateVarargsEnabled(); + createParametersPanel(); + updateSignature(); }); optionsPanel.add(myFoldParameters); myFoldParameters.setBorder(emptyBorder); @@ -360,11 +356,7 @@ public class ExtractMethodDialog extends DialogWrapper implements AbstractExtrac myMakeVarargs = new NonFocusableCheckBox(RefactoringBundle.message("declare.varargs.checkbox")); myMakeVarargs.setBorder(emptyBorder); updateVarargsEnabled(); - myMakeVarargs.addItemListener(new ItemListener() { - public void itemStateChanged(ItemEvent e) { - updateSignature(); - } - }); + myMakeVarargs.addItemListener(e -> updateSignature()); myMakeVarargs.setSelected(false); optionsPanel.add(myMakeVarargs); } @@ -372,36 +364,29 @@ public class ExtractMethodDialog extends DialogWrapper implements AbstractExtrac if (myNullness != null && myNullness != Nullness.UNKNOWN) { final boolean isSelected = PropertiesComponent.getInstance(myProject).getBoolean(EXTRACT_METHOD_GENERATE_ANNOTATIONS, true); myGenerateAnnotations = new JCheckBox(RefactoringBundle.message("declare.generated.annotations"), isSelected); - myGenerateAnnotations.addItemListener(new ItemListener() { - @Override - public void itemStateChanged(ItemEvent e) { - updateSignature(); - } - }); + myGenerateAnnotations.addItemListener(e -> updateSignature()); optionsPanel.add(myGenerateAnnotations); } if (myCbChainedConstructor != null) { optionsPanel.add(myCbChainedConstructor); myCbChainedConstructor.setBorder(emptyBorder); - myCbChainedConstructor.addItemListener(new ItemListener() { - public void itemStateChanged(final ItemEvent e) { - if (myDefaultVisibility) { - myChangingVisibility = true; - try { - if (isChainedConstructor()) { - myVisibilityPanel.setVisibility(VisibilityUtil.getVisibilityModifier(myTargetClass.getModifierList())); - } - else { - myVisibilityPanel.setVisibility(PsiModifier.PRIVATE); - } + myCbChainedConstructor.addItemListener(e -> { + if (myDefaultVisibility) { + myChangingVisibility = true; + try { + if (isChainedConstructor()) { + myVisibilityPanel.setVisibility(VisibilityUtil.getVisibilityModifier(myTargetClass.getModifierList())); } - finally { - myChangingVisibility = false; + else { + myVisibilityPanel.setVisibility(PsiModifier.PRIVATE); } } - update(); + finally { + myChangingVisibility = false; + } } + update(); }); } return optionsPanel; @@ -413,13 +398,10 @@ public class ExtractMethodDialog extends DialogWrapper implements AbstractExtrac panel.setVisibility(containingMethod != null && containingMethod.hasModifierProperty(PsiModifier.PUBLIC) ? PropertiesComponent.getInstance(myProject).getValue(EXTRACT_METHOD_DEFAULT_VISIBILITY, PsiModifier.PRIVATE) : PsiModifier.PRIVATE); - panel.addListener(new ChangeListener() { - @Override - public void stateChanged(ChangeEvent e) { - updateSignature(); - if (!myChangingVisibility) { - myDefaultVisibility = false; - } + panel.addListener(e -> { + updateSignature(); + if (!myChangingVisibility) { + myDefaultVisibility = false; } }); return panel; @@ -445,11 +427,13 @@ public class ExtractMethodDialog extends DialogWrapper implements AbstractExtrac isChainedConstructor()); } + @Override + @NotNull public String getVisibility() { - return myTargetClass.isInterface() ? PsiModifier.PUBLIC : myVisibilityPanel.getVisibility(); + return myTargetClass.isInterface() ? PsiModifier.PUBLIC : ObjectUtils.notNull(myVisibilityPanel.getVisibility(), PsiModifier.PUBLIC); } - + @Override protected JComponent createCenterPanel() { myCenterPanel = new JPanel(new BorderLayout()); createParametersPanel(); @@ -494,19 +478,23 @@ public class ExtractMethodDialog extends DialogWrapper implements AbstractExtrac protected ParameterTablePanel createParameterTableComponent() { return new ParameterTablePanel(myProject, myInputVariables, myElementsToExtract) { + @Override protected void updateSignature() { updateVarargsEnabled(); ExtractMethodDialog.this.updateSignature(); } + @Override protected void doEnterAction() { clickDefaultButton(); } + @Override protected void doCancelAction() { ExtractMethodDialog.this.doCancelAction(); } + @Override protected boolean areTypesDirected() { return ExtractMethodDialog.this.areTypesDirected(); } @@ -534,7 +522,7 @@ public class ExtractMethodDialog extends DialogWrapper implements AbstractExtrac } protected String getSignature() { - final @NonNls StringBuilder buffer = new StringBuilder(); + @NonNls final StringBuilder buffer = new StringBuilder(); if (myGenerateAnnotations != null && myGenerateAnnotations.isSelected()) { final NullableNotNullManager nullManager = NullableNotNullManager.getInstance(myProject); buffer.append("@"); @@ -630,6 +618,7 @@ public class ExtractMethodDialog extends DialogWrapper implements AbstractExtrac ConflictsUtil.checkMethodConflicts(myTargetClass, null, prototype, conflicts); } + @Override public PsiType getReturnType() { return mySelector != null ? mySelector.getSelectedType() : myReturnType; } diff --git a/java/java-impl/src/com/intellij/refactoring/extractMethodObject/ExtractLightMethodObjectHandler.java b/java/java-impl/src/com/intellij/refactoring/extractMethodObject/ExtractLightMethodObjectHandler.java index b69b8a604381..c9ca2c95695f 100644 --- a/java/java-impl/src/com/intellij/refactoring/extractMethodObject/ExtractLightMethodObjectHandler.java +++ b/java/java-impl/src/com/intellij/refactoring/extractMethodObject/ExtractLightMethodObjectHandler.java @@ -32,7 +32,6 @@ import com.intellij.refactoring.extractMethod.PrepareFailedException; import com.intellij.refactoring.util.RefactoringUtil; import com.intellij.refactoring.util.VariableData; import com.intellij.usageView.UsageInfo; -import com.intellij.util.Function; import com.intellij.util.IncorrectOperationException; import com.intellij.util.VisibilityUtil; import com.intellij.util.containers.ContainerUtil; @@ -294,6 +293,7 @@ public class ExtractLightMethodObjectHandler { return inputVariables.getInputVariables().toArray(new VariableData[inputVariables.getInputVariables().size()]); } + @NotNull @Override public String getVisibility() { return PsiModifier.PUBLIC; diff --git a/java/java-impl/src/com/intellij/refactoring/extractMethodObject/ExtractMethodObjectDialog.java b/java/java-impl/src/com/intellij/refactoring/extractMethodObject/ExtractMethodObjectDialog.java index ada03da2a969..571c3ceaac77 100644 --- a/java/java-impl/src/com/intellij/refactoring/extractMethodObject/ExtractMethodObjectDialog.java +++ b/java/java-impl/src/com/intellij/refactoring/extractMethodObject/ExtractMethodObjectDialog.java @@ -31,7 +31,6 @@ import com.intellij.refactoring.ui.ConflictsDialog; import com.intellij.refactoring.util.ParameterTablePanel; import com.intellij.refactoring.util.VariableData; import com.intellij.ui.EditorTextField; -import com.intellij.util.Function; import com.intellij.util.VisibilityUtil; import com.intellij.util.containers.MultiMap; import com.intellij.util.ui.UIUtil; @@ -120,12 +119,14 @@ public class ExtractMethodObjectDialog extends DialogWrapper implements Abstract } + @Override public boolean isMakeStatic() { if (myStaticFlag) return true; if (!myCanBeStatic) return false; return myCbMakeStatic.isSelected(); } + @Override public boolean isChainedConstructor() { return false; } @@ -135,27 +136,33 @@ public class ExtractMethodObjectDialog extends DialogWrapper implements Abstract return null; } + @Override @NotNull protected Action[] createActions() { return new Action[]{getOKAction(), getCancelAction(), getHelpAction()}; } + @Override public String getChosenMethodName() { return myCreateInnerClassRb.isSelected() ? myInnerClassName.getText() : myMethodName.getText(); } + @Override public VariableData[] getChosenParameters() { return myInputVariables; } + @Override public JComponent getPreferredFocusedComponent() { return myInnerClassName; } + @Override protected void doHelpAction() { HelpManager.getInstance().invokeHelp(HelpID.EXTRACT_METHOD_OBJECT); } + @Override protected void doOKAction() { MultiMap conflicts = new MultiMap(); if (myCreateInnerClassRb.isSelected()) { @@ -199,6 +206,8 @@ public class ExtractMethodObjectDialog extends DialogWrapper implements Abstract (!myCreateInnerClassRb.isSelected() && helper.isIdentifier(myMethodName.getText()))); } + @Override + @NotNull public String getVisibility() { if (myPublicRadioButton.isSelected()) { return PsiModifier.PUBLIC; @@ -213,11 +222,13 @@ public class ExtractMethodObjectDialog extends DialogWrapper implements Abstract } + @Override protected JComponent createCenterPanel() { mySignatureArea.setEditable(false); myCreateInnerClassRb.setSelected(true); final ActionListener enableDisableListener = new ActionListener() { + @Override public void actionPerformed(final ActionEvent e) { enable(myCreateInnerClassRb.isSelected()); } @@ -231,6 +242,7 @@ public class ExtractMethodObjectDialog extends DialogWrapper implements Abstract myVariableData.setFoldingAvailable(myFoldCb.isSelected()); myInputVariables = myVariableData.getInputVariables().toArray(new VariableData[myVariableData.getInputVariables().size()]); myFoldCb.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { myVariableData.setFoldingAvailable(myFoldCb.isSelected()); myInputVariables = myVariableData.getInputVariables().toArray(new VariableData[myVariableData.getInputVariables().size()]); @@ -244,6 +256,7 @@ public class ExtractMethodObjectDialog extends DialogWrapper implements Abstract myParametersTableContainer.add(createParametersPanel(), BorderLayout.CENTER); final ActionListener updateSugnatureListener = new ActionListener() { + @Override public void actionPerformed(final ActionEvent e) { updateSignature(); IdeFocusManager.getInstance(myProject).requestFocus(myCreateInnerClassRb.isSelected() ? myInnerClassName : myMethodName, false); @@ -299,15 +312,18 @@ public class ExtractMethodObjectDialog extends DialogWrapper implements Abstract private JComponent createParametersPanel() { return new ParameterTablePanel(myProject, myInputVariables, myElementsToExtract) { + @Override protected void updateSignature() { updateVarargsEnabled(); ExtractMethodObjectDialog.this.updateSignature(); } + @Override protected void doEnterAction() { clickDefaultButton(); } + @Override protected void doCancelAction() { ExtractMethodObjectDialog.this.doCancelAction(); } diff --git a/java/java-impl/src/com/intellij/refactoring/introduceParameter/IntroduceParameterHandler.java b/java/java-impl/src/com/intellij/refactoring/introduceParameter/IntroduceParameterHandler.java index 139369de5c65..3bfef86d0a56 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceParameter/IntroduceParameterHandler.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceParameter/IntroduceParameterHandler.java @@ -771,6 +771,7 @@ public class IntroduceParameterHandler extends IntroduceHandlerBase { return datas.toArray(new VariableData[datas.size()]); } + @NotNull @Override public String getVisibility() { return PsiModifier.PUBLIC; diff --git a/java/java-psi-api/src/com/intellij/util/VisibilityUtil.java b/java/java-psi-api/src/com/intellij/util/VisibilityUtil.java index 6684db666210..2a81ede1c315 100644 --- a/java/java-psi-api/src/com/intellij/util/VisibilityUtil.java +++ b/java/java-psi-api/src/com/intellij/util/VisibilityUtil.java @@ -90,6 +90,7 @@ public class VisibilityUtil { } @PsiModifier.ModifierConstant + @NotNull public static String getVisibilityModifier(PsiModifierList list) { if (list == null) return PsiModifier.PACKAGE_LOCAL; for (@PsiModifier.ModifierConstant String modifier : visibilityModifiers) { @@ -102,7 +103,7 @@ public class VisibilityUtil { @NotNull @NonNls - public static String getVisibilityString(@PsiModifier.ModifierConstant String visibilityModifier) { + public static String getVisibilityString(@PsiModifier.ModifierConstant @NotNull String visibilityModifier) { if(PsiModifier.PACKAGE_LOCAL.equals(visibilityModifier)) { return ""; }