1
2
3
4
5
6
7
8
9
10
11 package de.funfried.netbeans.plugins.external.formatter.java.palantir.ui;
12
13 import java.awt.event.ActionEvent;
14 import java.awt.event.ActionListener;
15 import java.util.prefs.Preferences;
16
17 import javax.swing.GroupLayout;
18 import javax.swing.JCheckBox;
19 import javax.swing.LayoutStyle;
20
21 import org.netbeans.api.project.Project;
22 import org.openide.awt.Mnemonics;
23 import org.openide.util.NbBundle;
24
25 import de.funfried.netbeans.plugins.external.formatter.java.palantir.PalantirJavaFormatterSettings;
26 import de.funfried.netbeans.plugins.external.formatter.ui.options.AbstractFormatterOptionsPanel;
27
28
29
30
31
32 public class PalantirJavaFormatterOptionsPanel extends AbstractFormatterOptionsPanel {
33
34
35
36
37
38
39 public PalantirJavaFormatterOptionsPanel(Project project) {
40 super(project);
41
42 initComponents();
43 }
44
45
46
47
48
49
50
51 @SuppressWarnings("unchecked")
52
53 private void initComponents() {
54
55 organizeImportsAfterFixImportsChkBox = new JCheckBox();
56 organizeImportsChkBox = new JCheckBox();
57
58 Mnemonics.setLocalizedText(organizeImportsAfterFixImportsChkBox, NbBundle.getMessage(PalantirJavaFormatterOptionsPanel.class, "PalantirJavaFormatterOptionsPanel.organizeImportsAfterFixImportsChkBox.text"));
59 organizeImportsAfterFixImportsChkBox.setEnabled(false);
60 organizeImportsAfterFixImportsChkBox.addActionListener(new ActionListener() {
61 public void actionPerformed(ActionEvent evt) {
62 organizeImportsAfterFixImportsChkBoxActionPerformed(evt);
63 }
64 });
65
66 Mnemonics.setLocalizedText(organizeImportsChkBox, NbBundle.getMessage(PalantirJavaFormatterOptionsPanel.class, "PalantirJavaFormatterOptionsPanel.organizeImportsChkBox.text"));
67 organizeImportsChkBox.addActionListener(new ActionListener() {
68 public void actionPerformed(ActionEvent evt) {
69 organizeImportsChkBoxActionPerformed(evt);
70 }
71 });
72
73 GroupLayout layout = new GroupLayout(this);
74 this.setLayout(layout);
75 layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
76 .addGroup(layout.createSequentialGroup()
77 .addContainerGap()
78 .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
79 .addComponent(organizeImportsChkBox)
80 .addGroup(layout.createSequentialGroup()
81 .addGap(21, 21, 21)
82 .addComponent(organizeImportsAfterFixImportsChkBox)))
83 .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
84 );
85 layout.setVerticalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
86 .addGroup(GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
87 .addContainerGap()
88 .addComponent(organizeImportsChkBox)
89 .addPreferredGap(LayoutStyle.ComponentPlacement.UNRELATED)
90 .addComponent(organizeImportsAfterFixImportsChkBox)
91 .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
92 );
93 }
94
95 private void organizeImportsAfterFixImportsChkBoxActionPerformed(java.awt.event.ActionEvent evt) {
96 fireChangedListener();
97 }
98
99 private void organizeImportsChkBoxActionPerformed(ActionEvent evt) {
100 fireChangedListener();
101 }
102
103
104 private JCheckBox organizeImportsAfterFixImportsChkBox;
105 private JCheckBox organizeImportsChkBox;
106
107
108
109
110 @Override
111 public void load(Preferences preferences) {
112 boolean organizeImports = preferences.getBoolean(PalantirJavaFormatterSettings.ORGANIZE_IMPORTS, false);
113
114 organizeImportsChkBox.setSelected(organizeImports);
115
116 organizeImportsAfterFixImportsChkBox.setEnabled(organizeImports);
117 if (!organizeImports) {
118 organizeImportsAfterFixImportsChkBox.setSelected(false);
119 } else {
120 boolean organizeImportsAfterFixImports = preferences.getBoolean(PalantirJavaFormatterSettings.ORGANIZE_IMPORTS_AFTER_FIX_IMPORTS, false);
121
122 organizeImportsAfterFixImportsChkBox.setSelected(organizeImportsAfterFixImports);
123 }
124 }
125
126
127
128
129 @Override
130 public void store(Preferences preferences) {
131 boolean organizeImports = organizeImportsChkBox.isSelected();
132 preferences.putBoolean(PalantirJavaFormatterSettings.ORGANIZE_IMPORTS, organizeImports);
133 preferences.putBoolean(PalantirJavaFormatterSettings.ORGANIZE_IMPORTS_AFTER_FIX_IMPORTS, organizeImports && organizeImportsAfterFixImportsChkBox.isSelected());
134 }
135
136
137
138
139 @Override
140 public boolean valid() {
141 boolean organizeImports = organizeImportsChkBox.isSelected();
142 organizeImportsAfterFixImportsChkBox.setEnabled(organizeImports);
143 if (!organizeImports) {
144 organizeImportsAfterFixImportsChkBox.setEnabled(false);
145 }
146
147 return true;
148 }
149 }