Skip to content

Commit e6f56a0

Browse files
authored
Merge pull request #96 from hza/disable-guava
option to disable guava code generation. + splitter in preferences dialog.
2 parents e182aed + 2129927 commit e6f56a0

File tree

4 files changed

+181
-57
lines changed

4 files changed

+181
-57
lines changed

src/main/java/com/bruce/intellijplugin/generatesetter/template/GenerateAllSetterSettingForm.form

Lines changed: 109 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -15,103 +15,157 @@
1515
<properties/>
1616
<border type="none"/>
1717
<children>
18-
<grid id="a574c" layout-manager="GridLayoutManager" row-count="2" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
18+
<grid id="a574c" layout-manager="GridLayoutManager" row-count="3" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
1919
<margin top="0" left="0" bottom="0" right="0"/>
2020
<constraints border-constraint="North"/>
2121
<properties/>
2222
<border type="none"/>
2323
<children>
24-
<component id="62a45" class="javax.swing.JCheckBox" binding="enableGenerateByTemplateCheckBox" default-binding="true">
25-
<constraints>
26-
<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"/>
27-
</constraints>
28-
<properties>
29-
<text value="enable generate by template"/>
30-
</properties>
31-
</component>
32-
<hspacer id="29fc7">
33-
<constraints>
34-
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="1" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
35-
</constraints>
36-
</hspacer>
37-
<grid id="2fa98" layout-manager="GridLayoutManager" row-count="1" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
24+
<grid id="fb8f2" layout-manager="GridLayoutManager" row-count="1" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
3825
<margin top="0" left="0" bottom="0" right="0"/>
3926
<constraints>
40-
<grid row="1" column="0" row-span="1" col-span="2" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
27+
<grid row="0" column="0" row-span="1" col-span="2" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
4128
</constraints>
4229
<properties/>
4330
<border type="none"/>
4431
<children>
45-
<component id="be5e2" class="com.intellij.refactoring.ui.ClassNameReferenceEditor" binding="classNameReferenceEditor1" custom-create="true" default-binding="true">
32+
<component id="47e63" class="javax.swing.JCheckBox" binding="useOnlyJDKClassesCheckBox" default-binding="true">
4633
<constraints>
47-
<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"/>
34+
<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"/>
4835
</constraints>
49-
<properties/>
36+
<properties>
37+
<text value="Use only JDK classes (disables Guava)"/>
38+
</properties>
5039
</component>
51-
<grid id="59676" layout-manager="GridLayoutManager" row-count="1" column-count="3" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
40+
<hspacer id="3ddff">
41+
<constraints>
42+
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="1" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
43+
</constraints>
44+
</hspacer>
45+
</children>
46+
</grid>
47+
<grid id="99e56" layout-manager="GridLayoutManager" row-count="2" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
48+
<margin top="0" left="0" bottom="0" right="0"/>
49+
<constraints>
50+
<grid row="1" column="0" row-span="2" col-span="2" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
51+
</constraints>
52+
<properties/>
53+
<border type="none"/>
54+
<children>
55+
<grid id="2fa98" binding="generateByTemplateSettings" layout-manager="GridLayoutManager" row-count="1" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
5256
<margin top="0" left="0" bottom="0" right="0"/>
5357
<constraints>
54-
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
58+
<grid row="1" column="0" row-span="1" col-span="2" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
5559
</constraints>
5660
<properties/>
5761
<border type="none"/>
5862
<children>
59-
<component id="b97a8" class="javax.swing.JButton" binding="debugButton" default-binding="true">
63+
<component id="be5e2" class="com.intellij.refactoring.ui.ClassNameReferenceEditor" binding="classNameReferenceEditor1" custom-create="true" default-binding="true">
6064
<constraints>
61-
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
65+
<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"/>
6266
</constraints>
63-
<properties>
64-
<text value="debug"/>
65-
</properties>
67+
<properties/>
6668
</component>
67-
<hspacer id="3732c">
69+
<grid id="59676" layout-manager="GridLayoutManager" row-count="1" column-count="3" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
70+
<margin top="0" left="0" bottom="0" right="0"/>
6871
<constraints>
69-
<grid row="0" column="2" row-span="1" col-span="1" vsize-policy="1" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
72+
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
7073
</constraints>
71-
</hspacer>
72-
<component id="2ca29" class="com.intellij.ui.components.labels.LinkLabel" binding="exampleField">
74+
<properties/>
75+
<border type="none"/>
76+
<children>
77+
<component id="b97a8" class="javax.swing.JButton" binding="debugButton" default-binding="true">
78+
<constraints>
79+
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
80+
</constraints>
81+
<properties>
82+
<text value="Debug"/>
83+
</properties>
84+
</component>
85+
<hspacer id="3732c">
86+
<constraints>
87+
<grid row="0" column="2" row-span="1" col-span="1" vsize-policy="1" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
88+
</constraints>
89+
</hspacer>
90+
<component id="2ca29" class="com.intellij.ui.components.labels.LinkLabel" binding="exampleField">
91+
<constraints>
92+
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="0" indent="0" use-parent-layout="false"/>
93+
</constraints>
94+
<properties>
95+
<text value="Read documentation"/>
96+
</properties>
97+
</component>
98+
</children>
99+
</grid>
100+
</children>
101+
</grid>
102+
<grid id="c6236" layout-manager="GridLayoutManager" row-count="1" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
103+
<margin top="0" left="0" bottom="0" right="0"/>
104+
<constraints>
105+
<grid row="0" column="0" row-span="1" col-span="2" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
106+
</constraints>
107+
<properties/>
108+
<border type="none"/>
109+
<children>
110+
<component id="62a45" class="javax.swing.JCheckBox" binding="enableGenerateByTemplateCheckBox" default-binding="true">
73111
<constraints>
74-
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="0" indent="0" use-parent-layout="false"/>
112+
<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"/>
75113
</constraints>
76114
<properties>
77-
<text value="example"/>
115+
<text value="Enable generate by template"/>
78116
</properties>
79117
</component>
118+
<hspacer id="2c3fa">
119+
<constraints>
120+
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="1" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
121+
</constraints>
122+
</hspacer>
80123
</children>
81124
</grid>
82125
</children>
83126
</grid>
84127
</children>
85128
</grid>
86-
<grid id="3e5b" layout-manager="BorderLayout" hgap="0" vgap="0">
87-
<constraints border-constraint="West"/>
129+
<grid id="ca9b3" binding="splitterPanel" layout-manager="BorderLayout" hgap="0" vgap="0">
130+
<constraints border-constraint="Center"/>
88131
<properties/>
89-
<border type="none"/>
132+
<border type="empty">
133+
<size top="0" left="5" bottom="0" right="0"/>
134+
</border>
90135
<children>
91-
<component id="c0121" class="com.intellij.ui.components.JBList" binding="myJBList">
92-
<constraints border-constraint="Center"/>
93-
<properties/>
94-
</component>
95-
<grid id="b7ec4" binding="toolbarPanel" layout-manager="BorderLayout" hgap="0" vgap="0">
96-
<constraints border-constraint="North"/>
136+
<grid id="3e5b" layout-manager="BorderLayout" hgap="0" vgap="0">
137+
<constraints border-constraint="West"/>
97138
<properties/>
98139
<border type="none"/>
99-
<children/>
140+
<children>
141+
<component id="c0121" class="com.intellij.ui.components.JBList" binding="myJBList">
142+
<constraints border-constraint="Center"/>
143+
<properties>
144+
<model/>
145+
</properties>
146+
</component>
147+
<grid id="b7ec4" binding="toolbarPanel" layout-manager="BorderLayout" hgap="0" vgap="0">
148+
<constraints border-constraint="North"/>
149+
<properties/>
150+
<border type="none"/>
151+
<children/>
152+
</grid>
153+
</children>
100154
</grid>
101-
</children>
102-
</grid>
103-
<grid id="b566c" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
104-
<margin top="0" left="0" bottom="0" right="0"/>
105-
<constraints border-constraint="Center"/>
106-
<properties/>
107-
<border type="none"/>
108-
<children>
109-
<component id="4f3af" class="com.intellij.ui.EditorTextField" binding="myEditorTextField" custom-create="true">
110-
<constraints>
111-
<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"/>
112-
</constraints>
155+
<grid id="b566c" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
156+
<margin top="0" left="0" bottom="0" right="0"/>
157+
<constraints border-constraint="Center"/>
113158
<properties/>
114-
</component>
159+
<border type="none"/>
160+
<children>
161+
<component id="4f3af" class="com.intellij.ui.EditorTextField" binding="myEditorTextField" custom-create="true">
162+
<constraints>
163+
<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"/>
164+
</constraints>
165+
<properties/>
166+
</component>
167+
</children>
168+
</grid>
115169
</children>
116170
</grid>
117171
</children>

src/main/java/com/bruce/intellijplugin/generatesetter/template/GenerateAllSetterSettingForm.java

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import com.intellij.openapi.project.Project;
2929
import com.intellij.openapi.project.ProjectUtil;
3030
import com.intellij.openapi.ui.Messages;
31+
import com.intellij.openapi.ui.Splitter;
3132
import com.intellij.psi.*;
3233
import com.intellij.psi.search.GlobalSearchScope;
3334
import com.intellij.refactoring.ui.ClassNameReferenceEditor;
@@ -59,6 +60,9 @@ public class GenerateAllSetterSettingForm {
5960
private ClassNameReferenceEditor classNameReferenceEditor1;
6061
private JButton debugButton;
6162
private LinkLabel exampleField;
63+
private JPanel splitterPanel;
64+
private JCheckBox useOnlyJDKClassesCheckBox;
65+
private JPanel generateByTemplateSettings;
6266
private GenerateSetterState myGenerateSetterState;
6367
private int currentSelectedIndex = -1;
6468

@@ -79,6 +83,15 @@ public GenerateAllSetterSettingForm() {
7983
ActionToolbar actionToolbar = ActionManager.getInstance().createActionToolbar("Item Toolbar", actionGroup, true);
8084
this.toolbarPanel.add(actionToolbar.getComponent(), BorderLayout.CENTER);
8185

86+
// surround panels with splitter.
87+
JComponent leftPanel = (JComponent) splitterPanel.getComponent(0);
88+
JComponent rightPanel = (JComponent) splitterPanel.getComponent(1);
89+
splitterPanel.removeAll();
90+
Splitter splitter = new Splitter(false, 0.3f);
91+
splitter.setFirstComponent(leftPanel);
92+
splitter.setSecondComponent(rightPanel);
93+
splitterPanel.add(splitter, BorderLayout.CENTER);
94+
8295
debugButton.addActionListener(new ActionListener() {
8396
@Override
8497
public void actionPerformed(ActionEvent e) {
@@ -126,6 +139,33 @@ public void linkSelected(LinkLabel aSource, Object aLinkData) {
126139
BrowserUtil.browse("https://github.com/gejun123456/intellij-generateAllSetMethod");
127140
}
128141
}, null);
142+
143+
enableGenerateByTemplateCheckBox.addActionListener(new ActionListener() {
144+
@Override
145+
public void actionPerformed(ActionEvent e) {
146+
updateGenerateByTemplateCheckBoxState();
147+
}
148+
});
149+
}
150+
151+
private void updateGenerateByTemplateCheckBoxState() {
152+
boolean selected = enableGenerateByTemplateCheckBox.isSelected();
153+
setPanelEnabled(generateByTemplateSettings, selected);
154+
setPanelEnabled(splitterPanel, selected);
155+
}
156+
157+
// https://stackoverflow.com/questions/19324918/how-to-disable-all-components-in-a-jpanel
158+
public static void setPanelEnabled(JPanel panel, Boolean isEnabled) {
159+
panel.setEnabled(isEnabled);
160+
161+
Component[] components = panel.getComponents();
162+
163+
for (Component component : components) {
164+
if (component instanceof JPanel) {
165+
setPanelEnabled((JPanel) component, isEnabled);
166+
}
167+
component.setEnabled(isEnabled);
168+
}
129169
}
130170

131171
public JPanel getThePanel() {
@@ -177,8 +217,14 @@ public void update(@NotNull AnActionEvent e) {
177217

178218
public void importFromSettings(GenerateSetterState state) {
179219
myGenerateSetterState = state;
220+
221+
Boolean useJdkClassesOnly = state.getUseJdkClassesOnly();
222+
useOnlyJDKClassesCheckBox.setSelected(useJdkClassesOnly);
223+
180224
Boolean generateByTemplate = state.getGenerateByTemplate();
181225
enableGenerateByTemplateCheckBox.setSelected(generateByTemplate);
226+
updateGenerateByTemplateCheckBoxState();
227+
182228
currentSelectedIndex = -1;
183229
DefaultListModel model = new DefaultListModel();
184230
List<Template> templateList = state.getTemplateList();
@@ -205,6 +251,7 @@ public void importFromSettings(GenerateSetterState state) {
205251

206252
public GenerateSetterState getTheState() {
207253
myGenerateSetterState.setGenerateByTemplate(enableGenerateByTemplateCheckBox.isSelected());
254+
myGenerateSetterState.setUseJdkClassesOnly(useOnlyJDKClassesCheckBox.isSelected());
208255
return myGenerateSetterState;
209256
}
210257

src/main/java/com/bruce/intellijplugin/generatesetter/template/GenerateSetterState.java

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,19 @@
2525
* @author bruce ge 2022/8/25
2626
*/
2727
public class GenerateSetterState {
28+
private Boolean useJdkClassesOnly = false;
2829
private Boolean generateByTemplate = false;
2930

3031
private List<Template> templateList = Lists.newArrayList();
3132

33+
public Boolean getUseJdkClassesOnly() {
34+
return useJdkClassesOnly;
35+
}
36+
37+
public void setUseJdkClassesOnly(Boolean useJdkClassesOnly) {
38+
this.useJdkClassesOnly = useJdkClassesOnly;
39+
}
40+
3241
public Boolean getGenerateByTemplate() {
3342
return generateByTemplate;
3443
}
@@ -53,11 +62,19 @@ public boolean equals(Object o) {
5362

5463
GenerateSetterState that = (GenerateSetterState) o;
5564

56-
return new EqualsBuilder().append(generateByTemplate, that.generateByTemplate).append(templateList, that.templateList).isEquals();
65+
return new EqualsBuilder()
66+
.append(useJdkClassesOnly, that.useJdkClassesOnly)
67+
.append(generateByTemplate, that.generateByTemplate)
68+
.append(templateList, that.templateList)
69+
.isEquals();
5770
}
5871

5972
@Override
6073
public int hashCode() {
61-
return new HashCodeBuilder(17, 37).append(generateByTemplate).append(templateList).toHashCode();
74+
return new HashCodeBuilder(17, 37)
75+
.append(useJdkClassesOnly)
76+
.append(generateByTemplate)
77+
.append(templateList)
78+
.toHashCode();
6279
}
6380
}

0 commit comments

Comments
 (0)