Skip to content

Commit f586cb9

Browse files
committed
Chore: Text first, Settings update, code cleanup
1 parent 80ca1c7 commit f586cb9

File tree

5 files changed

+50
-54
lines changed

5 files changed

+50
-54
lines changed

src/main/java/net/seesharpsoft/intellij/plugins/csv/CsvEscapeCharacter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.intellij.util.xmlb.Converter;
44
import com.intellij.xml.util.XmlStringUtil;
5+
import org.jetbrains.annotations.NotNull;
56

67
import java.util.Objects;
78
import java.util.regex.Pattern;
@@ -48,7 +49,7 @@ public static CsvEscapeCharacter create(String character) {
4849
}
4950

5051
public static class CsvEscapeCharacterConverter extends Converter<CsvEscapeCharacter> {
51-
public CsvEscapeCharacter fromString(String value) {
52+
public CsvEscapeCharacter fromString(@NotNull String value) {
5253
return CsvEscapeCharacter.create(XmlStringUtil.unescapeIllegalXmlChars(value));
5354
}
5455

@@ -100,10 +101,9 @@ public int hashCode() {
100101

101102
@Override
102103
public boolean equals(Object obj) {
103-
if (obj == null || !(obj instanceof CsvEscapeCharacter)) {
104+
if (!(obj instanceof CsvEscapeCharacter otherObj)) {
104105
return false;
105106
}
106-
CsvEscapeCharacter otherObj = (CsvEscapeCharacter) obj;
107107
return Objects.equals(otherObj.getCharacter(), this.getCharacter()) && Objects.equals(otherObj.isCustom(), this.isCustom());
108108
}
109109

src/main/java/net/seesharpsoft/intellij/plugins/csv/CsvPlugin.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import com.intellij.ide.plugins.PluginManagerCore;
77
import com.intellij.notification.*;
88
import com.intellij.openapi.extensions.PluginId;
9-
import com.intellij.openapi.options.ShowSettingsUtil;
109
import com.intellij.openapi.progress.ProgressIndicator;
1110
import com.intellij.openapi.progress.ProgressManager;
1211
import com.intellij.openapi.progress.Task;
@@ -17,7 +16,7 @@
1716
import net.seesharpsoft.intellij.plugins.csv.settings.CsvEditorSettingsProvider;
1817
import org.jetbrains.annotations.NotNull;
1918

20-
public class CsvPlugin implements StartupActivity, StartupActivity.DumbAware, StartupActivity.Background {
19+
public class CsvPlugin implements StartupActivity, StartupActivity.DumbAware {
2120

2221
protected static IdeaPluginDescriptor getPluginDescriptor() {
2322
return PluginManagerCore.getPlugin(PluginId.getId("net.seesharpsoft.intellij.plugins.csv"));
@@ -35,7 +34,7 @@ private static void openLink(Project project, String link) {
3534
if (project.isDisposed()) return;
3635

3736
if (link.startsWith("#")) {
38-
((ShowSettingsUtilImpl) ShowSettingsUtil.getInstance()).showSettingsDialog(project, link.substring(1), null);
37+
ShowSettingsUtilImpl.showSettingsDialog(project, link.substring(1), null);
3938
} else {
4039
BrowserUtil.browse(link, project);
4140
}
@@ -61,7 +60,7 @@ public void run(@NotNull ProgressIndicator progressIndicator) {
6160
}
6261
// finished
6362
progressIndicator.setFraction(1.0);
64-
progressIndicator.setText("finished");
63+
progressIndicator.setText("Finished");
6564
}
6665
});
6766
}

src/main/java/net/seesharpsoft/intellij/plugins/csv/settings/CsvEditorSettings.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,19 @@ public class CsvEditorSettings implements PersistentStateComponent<CsvEditorSett
3939
private static final CsvEditorSettings STATIC_TEST_INSTANCE = new CsvEditorSettings();
4040

4141
public enum EditorPrio {
42-
TEXT_FIRST,
43-
TABLE_FIRST,
44-
TEXT_ONLY
42+
TEXT_FIRST("Text editor first"),
43+
TABLE_FIRST("Table editor first"),
44+
TEXT_ONLY("Text editor only");
45+
46+
private final String label;
47+
48+
private EditorPrio(String label) {
49+
this.label = label;
50+
}
51+
52+
public String getDisplay() {
53+
return label;
54+
}
4555
}
4656

4757
public enum ValueColoring {
@@ -67,7 +77,7 @@ public static final class OptionSet {
6777
public boolean HIGHTLIGHT_TAB_SEPARATOR = true;
6878
public boolean SHOW_INFO_BALLOON = true;
6979
public String TAB_HIGHLIGHT_COLOR = "-7984";
70-
public EditorPrio EDITOR_PRIO = EditorPrio.TABLE_FIRST;
80+
public EditorPrio EDITOR_PRIO = EditorPrio.TEXT_FIRST;
7181
public int TABLE_EDITOR_ROW_HEIGHT = TABLE_EDITOR_ROW_HEIGHT_DEFAULT;
7282
public int TABLE_AUTO_MAX_COLUMN_WIDTH = TABLE_AUTO_MAX_COLUMN_WIDTH_DEFAULT;
7383
public int TABLE_DEFAULT_COLUMN_WIDTH = TABLE_DEFAULT_COLUMN_WIDTH_DEFAULT;

src/main/java/net/seesharpsoft/intellij/plugins/csv/settings/CsvEditorSettingsProvider.form

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -239,17 +239,11 @@
239239
<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"/>
240240
</constraints>
241241
</hspacer>
242-
<component id="a6cd2" class="javax.swing.JComboBox" binding="cbEditorUsage">
242+
<component id="a6cd2" class="javax.swing.JComboBox" binding="cbEditorUsage" custom-create="true">
243243
<constraints>
244244
<grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="2" anchor="8" fill="1" indent="0" use-parent-layout="false"/>
245245
</constraints>
246-
<properties>
247-
<model>
248-
<item value="Text editor first"/>
249-
<item value="Table editor first"/>
250-
<item value="Text editor only"/>
251-
</model>
252-
</properties>
246+
<properties/>
253247
</component>
254248
</children>
255249
</grid>

src/main/java/net/seesharpsoft/intellij/plugins/csv/settings/CsvEditorSettingsProvider.java

Lines changed: 28 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,12 @@
22

33
import com.intellij.application.options.editor.EditorOptionsProvider;
44
import com.intellij.openapi.fileEditor.FileEditorManager;
5+
import com.intellij.openapi.options.Configurable;
56
import com.intellij.openapi.options.ConfigurationException;
67
import com.intellij.openapi.project.ProjectManager;
78
import com.intellij.openapi.ui.ComboBox;
8-
import com.intellij.openapi.util.text.StringUtil;
99
import com.intellij.ui.CheckBoxWithColorChooser;
10+
import com.intellij.ui.JBColor;
1011
import com.intellij.util.FileContentUtilCore;
1112
import net.seesharpsoft.intellij.plugins.csv.CsvEscapeCharacter;
1213
import net.seesharpsoft.intellij.plugins.csv.CsvValueSeparator;
@@ -16,7 +17,6 @@
1617

1718
import javax.swing.*;
1819
import javax.swing.text.NumberFormatter;
19-
import java.awt.*;
2020
import java.text.NumberFormat;
2121
import java.util.Arrays;
2222
import java.util.Objects;
@@ -34,17 +34,17 @@ public class CsvEditorSettingsProvider implements EditorOptionsProvider {
3434
private JCheckBox cbUseSoftWraps;
3535
private CheckBoxWithColorChooser cbTabHighlightColor;
3636
private JCheckBox cbShowInfoBalloonCheckBox;
37-
private JComboBox cbEditorUsage;
37+
private JComboBox<CsvEditorSettings.EditorPrio> cbEditorUsage;
3838
private JCheckBox cbQuotingEnforced;
3939
private JCheckBox cbZeroBasedColumnNumbering;
4040
private JCheckBox cbFileEndLineBreak;
4141
private JFormattedTextField tfMaxColumnWidth;
4242
private JFormattedTextField tfDefaultColumnWidth;
43-
private JComboBox comboEscapeCharacter;
44-
private JComboBox comboValueSeparator;
43+
private JComboBox<CsvEscapeCharacter> comboEscapeCharacter;
44+
private JComboBox<CsvValueSeparator> comboValueSeparator;
4545
private JCheckBox cbKeepTrailingWhitespaces;
4646
private JTextField tfCommentIndicator;
47-
private JComboBox comboValueColoring;
47+
private JComboBox<CsvEditorSettings.ValueColoring> comboValueColoring;
4848
private JCheckBox cbAutoDetectSeparator;
4949
private JFormattedTextField tfDefaultRowHeight;
5050

@@ -70,37 +70,27 @@ public JComponent createComponent() {
7070
return myMainPanel;
7171
}
7272

73-
// ensure downward compatibility
74-
public boolean isModified(@NotNull JToggleButton toggleButton, boolean value) {
75-
return toggleButton.isSelected() != value;
76-
}
77-
78-
public boolean isModified(@NotNull JTextField textField, @NotNull String value) {
79-
return !StringUtil.equals(textField.getText().trim(), value);
80-
}
81-
8273
@Override
8374
public boolean isModified() {
8475
CsvEditorSettings csvEditorSettings = CsvEditorSettings.getInstance();
85-
return isModified(cbCaretRowShown, csvEditorSettings.isCaretRowShown()) ||
86-
isModified(cbUseSoftWraps, csvEditorSettings.isUseSoftWraps()) ||
87-
isModified(cbShowInfoBalloonCheckBox, csvEditorSettings.isShowInfoBalloon()) ||
76+
return Configurable.isCheckboxModified(cbCaretRowShown, csvEditorSettings.isCaretRowShown()) ||
77+
Configurable.isCheckboxModified(cbUseSoftWraps, csvEditorSettings.isUseSoftWraps()) ||
78+
Configurable.isCheckboxModified(cbShowInfoBalloonCheckBox, csvEditorSettings.isShowInfoBalloon()) ||
8879
cbTabHighlightColor.isSelected() != csvEditorSettings.isHighlightTabSeparator() ||
8980
!Objects.equals(cbTabHighlightColor.getColor(), csvEditorSettings.getTabHighlightColor()) ||
9081
!tfDefaultRowHeight.getValue().equals(csvEditorSettings.getTableEditorRowHeight()) ||
91-
!Objects.equals(cbEditorUsage.getSelectedIndex(), csvEditorSettings.getEditorPrio().ordinal()) ||
92-
isModified(cbQuotingEnforced, csvEditorSettings.isQuotingEnforced()) ||
93-
!Objects.equals(cbEditorUsage.getSelectedIndex(), csvEditorSettings.getEditorPrio().ordinal()) ||
94-
isModified(cbZeroBasedColumnNumbering, csvEditorSettings.isZeroBasedColumnNumbering()) ||
95-
isModified(cbFileEndLineBreak, csvEditorSettings.isFileEndLineBreak()) ||
82+
Configurable.isCheckboxModified(cbQuotingEnforced, csvEditorSettings.isQuotingEnforced()) ||
83+
!Objects.equals(cbEditorUsage.getSelectedItem(), csvEditorSettings.getEditorPrio()) ||
84+
Configurable.isCheckboxModified(cbZeroBasedColumnNumbering, csvEditorSettings.isZeroBasedColumnNumbering()) ||
85+
Configurable.isCheckboxModified(cbFileEndLineBreak, csvEditorSettings.isFileEndLineBreak()) ||
9686
!tfMaxColumnWidth.getValue().equals(csvEditorSettings.getTableAutoMaxColumnWidth()) ||
9787
!tfDefaultColumnWidth.getValue().equals(csvEditorSettings.getTableDefaultColumnWidth()) ||
9888
!Objects.equals(comboEscapeCharacter.getSelectedItem(), csvEditorSettings.getDefaultEscapeCharacter()) ||
9989
!Objects.equals(comboValueSeparator.getSelectedItem(), csvEditorSettings.getDefaultValueSeparator()) ||
100-
isModified(cbKeepTrailingWhitespaces, csvEditorSettings.getKeepTrailingSpaces()) ||
101-
isModified(tfCommentIndicator, csvEditorSettings.getCommentIndicator()) ||
90+
Configurable.isCheckboxModified(cbKeepTrailingWhitespaces, csvEditorSettings.getKeepTrailingSpaces()) ||
91+
Configurable.isFieldModified(tfCommentIndicator, csvEditorSettings.getCommentIndicator()) ||
10292
!Objects.equals(comboValueColoring.getSelectedItem(), csvEditorSettings.getValueColoring()) ||
103-
isModified(cbAutoDetectSeparator, csvEditorSettings.isAutoDetectValueSeparator());
93+
Configurable.isCheckboxModified(cbAutoDetectSeparator, csvEditorSettings.isAutoDetectValueSeparator());
10494
}
10595

10696
@Override
@@ -112,7 +102,7 @@ public void reset() {
112102
cbTabHighlightColor.setSelected(csvEditorSettings.isHighlightTabSeparator());
113103
cbTabHighlightColor.setColor(csvEditorSettings.getTabHighlightColor());
114104
tfDefaultRowHeight.setValue(csvEditorSettings.getTableEditorRowHeight());
115-
cbEditorUsage.setSelectedIndex(csvEditorSettings.getEditorPrio().ordinal());
105+
cbEditorUsage.setSelectedItem(csvEditorSettings.getEditorPrio());
116106
cbQuotingEnforced.setSelected(csvEditorSettings.isQuotingEnforced());
117107
cbZeroBasedColumnNumbering.setSelected(csvEditorSettings.isZeroBasedColumnNumbering());
118108
cbFileEndLineBreak.setSelected(csvEditorSettings.isFileEndLineBreak());
@@ -135,7 +125,7 @@ public void apply() throws ConfigurationException {
135125
csvEditorSettings.setHighlightTabSeparator(cbTabHighlightColor.isSelected());
136126
csvEditorSettings.setTabHighlightColor(cbTabHighlightColor.getColor());
137127
csvEditorSettings.setTableEditorRowHeight((int) tfDefaultRowHeight.getValue());
138-
csvEditorSettings.setEditorPrio(CsvEditorSettings.EditorPrio.values()[cbEditorUsage.getSelectedIndex()]);
128+
csvEditorSettings.setEditorPrio((CsvEditorSettings.EditorPrio) cbEditorUsage.getSelectedItem());
139129
csvEditorSettings.setQuotingEnforced(cbQuotingEnforced.isSelected());
140130
csvEditorSettings.setZeroBasedColumnNumbering(cbZeroBasedColumnNumbering.isSelected());
141131
csvEditorSettings.setFileEndLineBreak(cbFileEndLineBreak.isSelected());
@@ -165,17 +155,20 @@ protected void refreshOpenEditors() {
165155
}
166156

167157
protected void createUIComponents() {
168-
comboEscapeCharacter = new ComboBox(CsvEscapeCharacter.values());
169-
comboEscapeCharacter.setRenderer(new CustomDisplayListCellRenderer<CsvEscapeCharacter>(ec -> ec.getDisplay()));
158+
cbEditorUsage = new ComboBox<>(CsvEditorSettings.EditorPrio.values());
159+
cbEditorUsage.setRenderer(new CustomDisplayListCellRenderer<>(CsvEditorSettings.EditorPrio::getDisplay));
160+
161+
comboEscapeCharacter = new ComboBox<>(CsvEscapeCharacter.values());
162+
comboEscapeCharacter.setRenderer(new CustomDisplayListCellRenderer<>(CsvEscapeCharacter::getDisplay));
170163

171-
comboValueSeparator = new ComboBox(CsvValueSeparator.values());
172-
comboValueSeparator.setRenderer(new CustomDisplayListCellRenderer<CsvValueSeparator>(ec -> ec.getDisplay()));
164+
comboValueSeparator = new ComboBox<>(CsvValueSeparator.values());
165+
comboValueSeparator.setRenderer(new CustomDisplayListCellRenderer<>(CsvValueSeparator::getDisplay));
173166

174-
comboValueColoring = new ComboBox(CsvEditorSettings.ValueColoring.values());
175-
comboValueColoring.setRenderer(new CustomDisplayListCellRenderer<CsvEditorSettings.ValueColoring>(ec -> ec.getDisplay()));
167+
comboValueColoring = new ComboBox<>(CsvEditorSettings.ValueColoring.values());
168+
comboValueColoring.setRenderer(new CustomDisplayListCellRenderer<>(CsvEditorSettings.ValueColoring::getDisplay));
176169

177170
cbTabHighlightColor = new CheckBoxWithColorChooser("Highlight tab separator ");
178-
cbTabHighlightColor.setColor(Color.CYAN);
171+
cbTabHighlightColor.setColor(JBColor.CYAN);
179172

180173
NumberFormat numberFormat = NumberFormat.getIntegerInstance();
181174
NumberFormatter numberFormatter = new NumberFormatter(numberFormat);

0 commit comments

Comments
 (0)