mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
unused declaration UI polishing
This commit is contained in:
+8
-12
@@ -41,56 +41,52 @@ public class UnusedSymbolLocalInspectionBase extends BaseJavaLocalInspectionTool
|
||||
public boolean PARAMETER = true;
|
||||
public boolean REPORT_PARAMETER_FOR_PUBLIC_METHODS = true;
|
||||
|
||||
private String myClassVisibility = PsiModifier.PUBLIC;
|
||||
private String myFieldVisibility = PsiModifier.PUBLIC;
|
||||
private String myMethodVisibility = PsiModifier.PUBLIC;
|
||||
private String myParameterVisibility = PsiModifier.PUBLIC;
|
||||
protected String myClassVisibility = PsiModifier.PUBLIC;
|
||||
protected String myFieldVisibility = PsiModifier.PUBLIC;
|
||||
protected String myMethodVisibility = PsiModifier.PUBLIC;
|
||||
protected String myParameterVisibility = PsiModifier.PUBLIC;
|
||||
private boolean myIgnoreAccessors = false;
|
||||
|
||||
|
||||
@PsiModifier.ModifierConstant
|
||||
@Nullable
|
||||
public String getClassVisibility() {
|
||||
if (!CLASS || "none".equals(myClassVisibility)) return null;
|
||||
if (!CLASS) return null;
|
||||
return myClassVisibility;
|
||||
}
|
||||
@PsiModifier.ModifierConstant
|
||||
@Nullable
|
||||
public String getFieldVisibility() {
|
||||
if (!FIELD || "none".equals(myFieldVisibility)) return null;
|
||||
if (!FIELD) return null;
|
||||
return myFieldVisibility;
|
||||
}
|
||||
@PsiModifier.ModifierConstant
|
||||
@Nullable
|
||||
public String getMethodVisibility() {
|
||||
if (!METHOD || "none".equals(myMethodVisibility)) return null;
|
||||
if (!METHOD) return null;
|
||||
return myMethodVisibility;
|
||||
}
|
||||
|
||||
@PsiModifier.ModifierConstant
|
||||
@Nullable
|
||||
public String getParameterVisibility() {
|
||||
if (!PARAMETER || "none".equals(myParameterVisibility)) return null;
|
||||
if (!PARAMETER) return null;
|
||||
return myParameterVisibility;
|
||||
}
|
||||
|
||||
public void setClassVisibility(String classVisibility) {
|
||||
CLASS = !"none".equals(classVisibility);
|
||||
this.myClassVisibility = classVisibility;
|
||||
}
|
||||
|
||||
public void setFieldVisibility(String fieldVisibility) {
|
||||
FIELD = !"none".equals(fieldVisibility);
|
||||
this.myFieldVisibility = fieldVisibility;
|
||||
}
|
||||
|
||||
public void setMethodVisibility(String methodVisibility) {
|
||||
METHOD = !"none".equals(methodVisibility);
|
||||
this.myMethodVisibility = methodVisibility;
|
||||
}
|
||||
|
||||
public void setParameterVisibility(String parameterVisibility) {
|
||||
PARAMETER = !"none".equals(parameterVisibility);
|
||||
REPORT_PARAMETER_FOR_PUBLIC_METHODS = PsiModifier.PUBLIC.equals(parameterVisibility);
|
||||
this.myParameterVisibility = parameterVisibility;
|
||||
}
|
||||
|
||||
+1
-1
@@ -47,7 +47,7 @@ public class UnusedDeclarationInspection extends UnusedDeclarationInspectionBase
|
||||
public JComponent createOptionsPanel() {
|
||||
JTabbedPane tabs = new JBTabbedPane(SwingConstants.TOP);
|
||||
tabs.add("Entry points", new OptionsPanel());
|
||||
tabs.add("On the fly editor settings", myLocalInspectionBase.createOptionsPanel());
|
||||
tabs.add("Members to report", myLocalInspectionBase.createOptionsPanel());
|
||||
return tabs;
|
||||
}
|
||||
|
||||
|
||||
@@ -75,7 +75,7 @@ class ConfigureClassPatternsDialog extends DialogWrapper {
|
||||
})
|
||||
.setButtonComparator("Add", "Remove");
|
||||
JPanel panel = new JPanel(new BorderLayout());
|
||||
panel.add(SeparatorFactory.createSeparator("Mark class as reachable if name matches", null), BorderLayout.NORTH);
|
||||
panel.add(SeparatorFactory.createSeparator("Mark class as entry point if name matches", null), BorderLayout.NORTH);
|
||||
panel.add(toolbarDecorator.createPanel(), BorderLayout.CENTER);
|
||||
return panel;
|
||||
}
|
||||
|
||||
@@ -1,94 +1,150 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.intellij.codeInspection.unusedSymbol.UnusedSymbolLocalInspection.OptionsPanel">
|
||||
<grid id="27dc6" binding="myPanel" layout-manager="GridLayoutManager" row-count="7" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="2">
|
||||
<grid id="27dc6" binding="myPanel" layout-manager="GridLayoutManager" row-count="7" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="2">
|
||||
<margin top="0" left="0" bottom="0" right="0"/>
|
||||
<constraints>
|
||||
<xy x="357" y="305" width="299" height="400"/>
|
||||
<xy x="20" y="20" width="258" height="400"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="empty" title=""/>
|
||||
<children>
|
||||
<vspacer id="eb5d4">
|
||||
<constraints>
|
||||
<grid row="6" column="1" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/>
|
||||
<grid row="6" column="0" row-span="1" col-span="1" vsize-policy="6" hsize-policy="1" anchor="0" fill="2" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
</vspacer>
|
||||
<component id="c6c56" class="com.intellij.openapi.ui.ComboBox" binding="myCheckClassesCheckBox">
|
||||
<component id="2077d" class="javax.swing.JCheckBox" binding="myAccessors" default-binding="true">
|
||||
<constraints>
|
||||
<grid row="1" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="2" anchor="0" fill="0" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
</component>
|
||||
<component id="d4721" class="javax.swing.JLabel">
|
||||
<constraints>
|
||||
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<labelFor value="c6c56"/>
|
||||
<text resource-bundle="messages/InspectionsBundle" key="inspection.unused.symbol.check.classes"/>
|
||||
</properties>
|
||||
</component>
|
||||
<component id="4e0ea" class="javax.swing.JLabel">
|
||||
<constraints>
|
||||
<grid row="2" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<labelFor value="5954e"/>
|
||||
<text resource-bundle="messages/InspectionsBundle" key="inspection.unused.symbol.check.fields"/>
|
||||
</properties>
|
||||
</component>
|
||||
<component id="5954e" class="com.intellij.openapi.ui.ComboBox" binding="myCheckFieldsCheckBox">
|
||||
<constraints>
|
||||
<grid row="2" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="2" anchor="0" fill="0" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
</component>
|
||||
<component id="c9f09" class="javax.swing.JLabel">
|
||||
<constraints>
|
||||
<grid row="3" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<labelFor value="74fa3"/>
|
||||
<text resource-bundle="messages/InspectionsBundle" key="inspection.unused.symbol.check.methods"/>
|
||||
</properties>
|
||||
</component>
|
||||
<component id="74fa3" class="com.intellij.openapi.ui.ComboBox" binding="myCheckMethodsCheckBox">
|
||||
<constraints>
|
||||
<grid row="3" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="2" anchor="0" fill="0" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
</component>
|
||||
<component id="2b841" class="javax.swing.JLabel">
|
||||
<constraints>
|
||||
<grid row="5" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<labelFor value="96ef2"/>
|
||||
<text resource-bundle="messages/InspectionsBundle" key="inspection.unused.symbol.check.parameters"/>
|
||||
</properties>
|
||||
</component>
|
||||
<component id="96ef2" class="com.intellij.openapi.ui.ComboBox" binding="myCheckParametersCheckBox">
|
||||
<constraints>
|
||||
<grid row="5" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="2" anchor="0" fill="0" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
</component>
|
||||
<component id="38d94" class="javax.swing.JCheckBox" binding="myCheckLocalVariablesCheckBox" default-binding="true">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="2" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text resource-bundle="messages/InspectionsBundle" key="inspection.unused.symbol.check.localvars"/>
|
||||
</properties>
|
||||
</component>
|
||||
<component id="168d8" class="javax.swing.JCheckBox" binding="myCheckGettersSettersCheckBox" default-binding="true">
|
||||
<constraints>
|
||||
<grid row="4" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
|
||||
<grid row="3" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="2" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text resource-bundle="messages/InspectionsBundle" key="inspection.unused.symbol.check.accessors"/>
|
||||
</properties>
|
||||
</component>
|
||||
<component id="b6cc3" class="javax.swing.JCheckBox" binding="myCheckLocalVariablesCheckBox" default-binding="true">
|
||||
<constraints>
|
||||
<grid row="5" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false">
|
||||
<preferred-size width="172" height="22"/>
|
||||
</grid>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text resource-bundle="messages/InspectionsBundle" key="inspection.unused.symbol.check.localvars"/>
|
||||
</properties>
|
||||
</component>
|
||||
<grid id="38635" layout-manager="GridBagLayout">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="bcd0d" class="javax.swing.JCheckBox" binding="myCheckClassesCheckBox" default-binding="true">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false">
|
||||
<preferred-size width="158" height="20"/>
|
||||
</grid>
|
||||
<gridbag weightx="0.0" weighty="1.0"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text resource-bundle="messages/InspectionsBundle" key="inspection.unused.symbol.check.classes"/>
|
||||
</properties>
|
||||
</component>
|
||||
<component id="12f2f" class="javax.swing.JLabel" binding="myClassVisibilityCb" custom-create="true">
|
||||
<constraints>
|
||||
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
|
||||
<gridbag weightx="1.0" weighty="1.0"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text value="Label"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="d725d" layout-manager="GridBagLayout">
|
||||
<constraints>
|
||||
<grid row="1" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="b2b9f" class="javax.swing.JCheckBox" binding="myCheckFieldsCheckBox" default-binding="true">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="7" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
|
||||
<gridbag weightx="0.0" weighty="1.0"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text resource-bundle="messages/InspectionsBundle" key="inspection.unused.symbol.check.fields"/>
|
||||
</properties>
|
||||
</component>
|
||||
<component id="50c90" class="javax.swing.JLabel" binding="myFieldVisibilityCb" custom-create="true">
|
||||
<constraints>
|
||||
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
|
||||
<gridbag weightx="1.0" weighty="1.0"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text value="Label"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="e5507" layout-manager="GridBagLayout">
|
||||
<constraints>
|
||||
<grid row="2" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="c49dc" class="javax.swing.JCheckBox" binding="myCheckMethodsCheckBox" default-binding="true">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false">
|
||||
<preferred-size width="172" height="22"/>
|
||||
</grid>
|
||||
<gridbag weightx="0.0" weighty="1.0"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text resource-bundle="messages/InspectionsBundle" key="inspection.unused.symbol.check.methods"/>
|
||||
</properties>
|
||||
</component>
|
||||
<component id="9e9ee" class="javax.swing.JLabel" binding="myMethodVisibilityCb" custom-create="true">
|
||||
<constraints>
|
||||
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
|
||||
<gridbag weightx="1.0" weighty="1.0"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text value="Label"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
<grid id="f3ca1" layout-manager="GridBagLayout">
|
||||
<constraints>
|
||||
<grid row="4" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
|
||||
</constraints>
|
||||
<properties/>
|
||||
<border type="none"/>
|
||||
<children>
|
||||
<component id="6664b" class="javax.swing.JCheckBox" binding="myCheckParametersCheckBox" default-binding="true">
|
||||
<constraints>
|
||||
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false">
|
||||
<preferred-size width="172" height="22"/>
|
||||
</grid>
|
||||
<gridbag weightx="0.0" weighty="1.0"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text resource-bundle="messages/InspectionsBundle" key="inspection.unused.symbol.check.parameters"/>
|
||||
</properties>
|
||||
</component>
|
||||
<component id="f3bb8" class="javax.swing.JLabel" binding="myMethodParameterVisibilityCb" custom-create="true">
|
||||
<constraints>
|
||||
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
|
||||
<gridbag weightx="1.0" weighty="1.0"/>
|
||||
</constraints>
|
||||
<properties>
|
||||
<text value="Label"/>
|
||||
</properties>
|
||||
</component>
|
||||
</children>
|
||||
</grid>
|
||||
</children>
|
||||
</grid>
|
||||
</form>
|
||||
|
||||
+133
-35
@@ -16,14 +16,36 @@
|
||||
|
||||
package com.intellij.codeInspection.unusedSymbol;
|
||||
|
||||
import com.intellij.icons.AllIcons;
|
||||
import com.intellij.openapi.ui.popup.JBPopup;
|
||||
import com.intellij.openapi.ui.popup.JBPopupAdapter;
|
||||
import com.intellij.openapi.ui.popup.JBPopupFactory;
|
||||
import com.intellij.openapi.ui.popup.LightweightWindowEvent;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.psi.PsiModifier;
|
||||
import com.intellij.ui.ListCellRendererWrapper;
|
||||
import com.intellij.ui.ClickListener;
|
||||
import com.intellij.ui.UI;
|
||||
import com.intellij.ui.UserActivityProviderComponent;
|
||||
import com.intellij.ui.awt.RelativePoint;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
import com.intellij.util.Consumer;
|
||||
import com.intellij.util.Producer;
|
||||
import com.intellij.util.VisibilityUtil;
|
||||
import com.intellij.util.containers.HashSet;
|
||||
import com.intellij.util.ui.JBUI;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.event.ChangeEvent;
|
||||
import javax.swing.event.ChangeListener;
|
||||
import java.awt.*;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.ActionListener;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.util.Hashtable;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* User: anna
|
||||
@@ -40,49 +62,38 @@ public class UnusedSymbolLocalInspection extends UnusedSymbolLocalInspectionBase
|
||||
|
||||
public class OptionsPanel {
|
||||
private JCheckBox myCheckLocalVariablesCheckBox;
|
||||
private JComboBox<String> myCheckClassesCheckBox;
|
||||
private JComboBox<String> myCheckFieldsCheckBox;
|
||||
private JComboBox<String> myCheckMethodsCheckBox;
|
||||
private JComboBox<String> myCheckParametersCheckBox;
|
||||
private JCheckBox myCheckClassesCheckBox;
|
||||
private JCheckBox myCheckFieldsCheckBox;
|
||||
private JCheckBox myCheckMethodsCheckBox;
|
||||
private JCheckBox myCheckParametersCheckBox;
|
||||
private JCheckBox myAccessors;
|
||||
private JPanel myPanel;
|
||||
private JCheckBox myCheckGettersSettersCheckBox;
|
||||
private JLabel myClassVisibilityCb;
|
||||
private JLabel myFieldVisibilityCb;
|
||||
private JLabel myMethodVisibilityCb;
|
||||
private JLabel myMethodParameterVisibilityCb;
|
||||
|
||||
public OptionsPanel() {
|
||||
myCheckLocalVariablesCheckBox.setSelected(LOCAL_VARIABLE);
|
||||
myCheckGettersSettersCheckBox.setSelected(!isIgnoreAccessors());
|
||||
String[] visibilities = new String[] {"none", PsiModifier.PUBLIC, PsiModifier.PROTECTED, PsiModifier.PACKAGE_LOCAL, PsiModifier.PRIVATE};
|
||||
myCheckClassesCheckBox.setModel(new DefaultComboBoxModel<>(visibilities));
|
||||
myCheckFieldsCheckBox.setModel(new DefaultComboBoxModel<>(visibilities));
|
||||
myCheckMethodsCheckBox.setModel(new DefaultComboBoxModel<>(visibilities));
|
||||
myCheckParametersCheckBox.setModel(new DefaultComboBoxModel<>(visibilities));
|
||||
myCheckClassesCheckBox.setSelected(CLASS);
|
||||
myCheckFieldsCheckBox.setSelected(FIELD);
|
||||
myCheckMethodsCheckBox.setSelected(METHOD);
|
||||
|
||||
final ListCellRendererWrapper<String> renderer = new ListCellRendererWrapper<String>() {
|
||||
@Override
|
||||
public void customize(JList list, String value, int index, boolean selected, boolean hasFocus) {
|
||||
if (value != null && !"none".equals(value)) {
|
||||
setText(VisibilityUtil.toPresentableText(value));
|
||||
}
|
||||
}
|
||||
};
|
||||
myCheckClassesCheckBox.setRenderer(renderer);
|
||||
myCheckMethodsCheckBox.setRenderer(renderer);
|
||||
myCheckFieldsCheckBox.setRenderer(renderer);
|
||||
myCheckParametersCheckBox.setRenderer(renderer);
|
||||
|
||||
myCheckClassesCheckBox.setSelectedItem(getClassVisibility());
|
||||
myCheckFieldsCheckBox.setSelectedItem(getFieldVisibility());
|
||||
myCheckMethodsCheckBox.setSelectedItem(getMethodVisibility());
|
||||
myCheckParametersCheckBox.setSelectedItem(getParameterVisibility());
|
||||
myCheckParametersCheckBox.setSelected(PARAMETER);
|
||||
myAccessors.setSelected(isIgnoreAccessors());
|
||||
myAccessors.setEnabled(PARAMETER);
|
||||
|
||||
final ActionListener listener = new ActionListener() {
|
||||
@Override
|
||||
public void actionPerformed(ActionEvent e) {
|
||||
LOCAL_VARIABLE = myCheckLocalVariablesCheckBox.isSelected();
|
||||
setIgnoreAccessors(!myCheckGettersSettersCheckBox.isSelected());
|
||||
setClassVisibility((String)myCheckClassesCheckBox.getSelectedItem());
|
||||
setFieldVisibility((String)myCheckFieldsCheckBox.getSelectedItem());
|
||||
setMethodVisibility((String)myCheckMethodsCheckBox.getSelectedItem());
|
||||
setParameterVisibility((String)myCheckParametersCheckBox.getSelectedItem());
|
||||
CLASS = myCheckClassesCheckBox.isSelected();
|
||||
FIELD = myCheckFieldsCheckBox.isSelected();
|
||||
METHOD = myCheckMethodsCheckBox.isSelected();
|
||||
PARAMETER = myCheckParametersCheckBox.isSelected();
|
||||
|
||||
myAccessors.setEnabled(METHOD);
|
||||
setIgnoreAccessors(!myAccessors.isSelected());
|
||||
}
|
||||
};
|
||||
myCheckLocalVariablesCheckBox.addActionListener(listener);
|
||||
@@ -90,12 +101,99 @@ public class UnusedSymbolLocalInspection extends UnusedSymbolLocalInspectionBase
|
||||
myCheckMethodsCheckBox.addActionListener(listener);
|
||||
myCheckClassesCheckBox.addActionListener(listener);
|
||||
myCheckParametersCheckBox.addActionListener(listener);
|
||||
myCheckGettersSettersCheckBox.addActionListener(listener);
|
||||
myAccessors.addActionListener(listener);
|
||||
|
||||
((MyLabel)myClassVisibilityCb).setupVisibilityLabel(() -> myClassVisibility, modifier -> setClassVisibility(modifier));
|
||||
((MyLabel)myFieldVisibilityCb).setupVisibilityLabel( () -> myFieldVisibility, modifier -> setFieldVisibility(modifier));
|
||||
((MyLabel)myMethodVisibilityCb).setupVisibilityLabel(() -> myMethodVisibility, modifier -> setMethodVisibility(modifier));
|
||||
((MyLabel)myMethodParameterVisibilityCb).setupVisibilityLabel(() -> myParameterVisibility, modifier -> setParameterVisibility(modifier));
|
||||
}
|
||||
|
||||
public JComponent getPanel() {
|
||||
return myPanel;
|
||||
}
|
||||
|
||||
private void createUIComponents() {
|
||||
myClassVisibilityCb = new MyLabel();
|
||||
myFieldVisibilityCb = new MyLabel();
|
||||
myMethodVisibilityCb = new MyLabel();
|
||||
myMethodParameterVisibilityCb = new MyLabel();
|
||||
}
|
||||
}
|
||||
|
||||
private static class MyLabel extends JLabel implements UserActivityProviderComponent {
|
||||
|
||||
@PsiModifier.ModifierConstant private static final String[] MODIFIERS =
|
||||
new String[]{PsiModifier.PUBLIC, PsiModifier.PROTECTED, PsiModifier.PACKAGE_LOCAL, PsiModifier.PRIVATE};
|
||||
|
||||
private Set<ChangeListener> myListeners = new HashSet<>();
|
||||
|
||||
public MyLabel() {
|
||||
setIcon(AllIcons.General.Combo2);
|
||||
setHorizontalTextPosition(SwingConstants.LEFT);
|
||||
}
|
||||
|
||||
private void fireStateChanged() {
|
||||
for (ChangeListener listener : myListeners) {
|
||||
listener.stateChanged(new ChangeEvent(this));
|
||||
}
|
||||
}
|
||||
|
||||
private static String getPresentableText(String modifier) {
|
||||
return StringUtil.capitalize(VisibilityUtil.toPresentableText(modifier));
|
||||
}
|
||||
|
||||
private void setupVisibilityLabel(Producer<String> visibilityProducer, Consumer<String> setter) {
|
||||
setText(getPresentableText(visibilityProducer.produce()));
|
||||
new ClickListener() {
|
||||
@Override
|
||||
public boolean onClick(@NotNull MouseEvent e, int clickCount) {
|
||||
@SuppressWarnings("UseOfObsoleteCollectionType")
|
||||
Hashtable<Integer, JComponent> sliderLabels = new Hashtable<>();
|
||||
for (int i = 0; i < MODIFIERS.length; i++) {
|
||||
sliderLabels.put(i + 1, new JLabel(getPresentableText(MODIFIERS[i])));
|
||||
}
|
||||
|
||||
JSlider slider = new JSlider(SwingConstants.VERTICAL, 1, MODIFIERS.length, 1);
|
||||
slider.setLabelTable(sliderLabels);
|
||||
slider.putClientProperty(UIUtil.JSLIDER_ISFILLED, Boolean.TRUE);
|
||||
slider.setPreferredSize(JBUI.size(150, 100));
|
||||
slider.setPaintLabels(true);
|
||||
slider.setSnapToTicks(true);
|
||||
slider.setValue(ArrayUtil.find(MODIFIERS, visibilityProducer.produce()) + 1);
|
||||
final JBPopup popup = JBPopupFactory.getInstance()
|
||||
.createComponentPopupBuilder(slider, null)
|
||||
.setCancelOnClickOutside(true)
|
||||
.createPopup();
|
||||
popup.addListener(new JBPopupAdapter() {
|
||||
@Override
|
||||
public void onClosed(LightweightWindowEvent event) {
|
||||
final String modifier = MODIFIERS[slider.getValue() - 1];
|
||||
setter.consume(modifier);
|
||||
setText(getPresentableText(modifier));
|
||||
fireStateChanged();
|
||||
}
|
||||
});
|
||||
popup.show(new RelativePoint(MyLabel.this, new Point(getWidth(), 0)));
|
||||
return true;
|
||||
}
|
||||
}.installOn(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setForeground(Color fg) {
|
||||
super.setForeground(isEnabled() ? UI.getColor("link.foreground") : fg);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addChangeListener(ChangeListener changeListener) {
|
||||
myListeners.add(changeListener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeChangeListener(ChangeListener changeListener) {
|
||||
myListeners.remove(changeListener);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -314,12 +314,12 @@ inspection.javadoc.html.not.required.label.text=Additional Not Required Html Att
|
||||
inspection.javadoc.html.not.required.dialog.title=Edit Additional Not Required Html Attributes
|
||||
inspection.required.attributes.display.name=Missing required attribute
|
||||
|
||||
inspection.unused.symbol.check.localvars=Check &Local Variables
|
||||
inspection.unused.symbol.check.fields=Check &Fields:
|
||||
inspection.unused.symbol.check.methods=Check &Methods:
|
||||
inspection.unused.symbol.check.accessors=Check &Getters/Setters:
|
||||
inspection.unused.symbol.check.classes=Check &Classes:
|
||||
inspection.unused.symbol.check.parameters=Check &Parameters in Methods:
|
||||
inspection.unused.symbol.check.localvars=&Local variables (Editor only)
|
||||
inspection.unused.symbol.check.fields=&Fields:
|
||||
inspection.unused.symbol.check.methods=&Methods:
|
||||
inspection.unused.symbol.check.accessors=&Getters/setters
|
||||
inspection.unused.symbol.check.classes=&Classes:
|
||||
inspection.unused.symbol.check.parameters=Method ¶meters:
|
||||
|
||||
inspection.results.for.profile.toolwindow.title=''{0}'' Profile on {1}
|
||||
inspection.results.for.inspection.toolwindow.title=''{0}'' Inspection on {1}
|
||||
|
||||
Reference in New Issue
Block a user