From d261fc9ae0121a62943facf620fb73da3b115511 Mon Sep 17 00:00:00 2001 From: GeeK Date: Sat, 9 Mar 2019 21:34:45 +0100 Subject: [PATCH 1/6] [FIX] use JPanel instead of JToolbar Fixes #113 --- .../table/swing/CsvTableEditorSwing.form | 212 ++++++++++-------- 1 file changed, 120 insertions(+), 92 deletions(-) diff --git a/src/main/java/net/seesharpsoft/intellij/plugins/csv/editor/table/swing/CsvTableEditorSwing.form b/src/main/java/net/seesharpsoft/intellij/plugins/csv/editor/table/swing/CsvTableEditorSwing.form index 144a04c0..9d3684ca 100644 --- a/src/main/java/net/seesharpsoft/intellij/plugins/csv/editor/table/swing/CsvTableEditorSwing.form +++ b/src/main/java/net/seesharpsoft/intellij/plugins/csv/editor/table/swing/CsvTableEditorSwing.form @@ -15,37 +15,16 @@ - + - - - + - - - - - - - - - - - - - - - - - - - - - - - + + + + @@ -53,50 +32,11 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + @@ -107,7 +47,10 @@ - + + + + @@ -116,7 +59,10 @@ - + + + + @@ -125,7 +71,10 @@ - + + + + @@ -136,7 +85,10 @@ - + + + + @@ -144,32 +96,108 @@ - - + + + + + - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + - - + + + + + - - - - - + + + + + + + + + + - + From a69db839d717a9fd678ca631689e247d6f000709 Mon Sep 17 00:00:00 2001 From: GeeK Date: Sun, 31 Mar 2019 12:02:01 +0200 Subject: [PATCH 2/6] [FEATURE] use default font for table editor Fixes #115 --- .../csv/editor/table/CsvTableEditor.java | 7 +++++++ .../table/swing/CsvTableEditorSwing.java | 19 +++++++++++-------- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/main/java/net/seesharpsoft/intellij/plugins/csv/editor/table/CsvTableEditor.java b/src/main/java/net/seesharpsoft/intellij/plugins/csv/editor/table/CsvTableEditor.java index 53b0c6ca..0a6e428c 100644 --- a/src/main/java/net/seesharpsoft/intellij/plugins/csv/editor/table/CsvTableEditor.java +++ b/src/main/java/net/seesharpsoft/intellij/plugins/csv/editor/table/CsvTableEditor.java @@ -6,6 +6,8 @@ import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.command.CommandProcessor; import com.intellij.openapi.editor.Document; +import com.intellij.openapi.editor.colors.EditorColorsManager; +import com.intellij.openapi.editor.colors.EditorFontType; import com.intellij.openapi.fileEditor.*; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Key; @@ -27,6 +29,7 @@ import org.jetbrains.annotations.Nullable; import javax.swing.*; +import java.awt.*; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; import java.util.Collections; @@ -295,6 +298,10 @@ public int getRowCount() { return getDataHandler().getCurrentState().length; } + public Font getFont() { + return EditorColorsManager.getInstance().getGlobalScheme().getFont(EditorFontType.PLAIN); + } + public int getColumnCount() { Object[][] currentData = getDataHandler().getCurrentState(); return currentData.length > 0 ? currentData[0].length : 0; diff --git a/src/main/java/net/seesharpsoft/intellij/plugins/csv/editor/table/swing/CsvTableEditorSwing.java b/src/main/java/net/seesharpsoft/intellij/plugins/csv/editor/table/swing/CsvTableEditorSwing.java index 321bd71e..114c0175 100644 --- a/src/main/java/net/seesharpsoft/intellij/plugins/csv/editor/table/swing/CsvTableEditorSwing.java +++ b/src/main/java/net/seesharpsoft/intellij/plugins/csv/editor/table/swing/CsvTableEditorSwing.java @@ -118,14 +118,17 @@ private void initializedUIComponents() { tblEditor.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); tblEditor.setShowColumns(true); + tblEditor.setFont(getFont()); setTableRowHeight(0); tblEditor.getColumnModel().addColumnModelListener(tableEditorListener); - tblEditor.setDefaultRenderer(String.class, new MultiLineCellRenderer(this.tableEditorKeyListener, this)); - tblEditor.setDefaultRenderer(Object.class, new MultiLineCellRenderer(this.tableEditorKeyListener, this)); - tblEditor.setDefaultEditor(String.class, new MultiLineCellRenderer(this.tableEditorKeyListener, this)); - tblEditor.setDefaultEditor(Object.class, new MultiLineCellRenderer(this.tableEditorKeyListener, this)); + MultiLineCellRenderer cellRenderer = new MultiLineCellRenderer(this.tableEditorKeyListener, this); + MultiLineCellRenderer cellEditor = new MultiLineCellRenderer(this.tableEditorKeyListener, this); + tblEditor.setDefaultRenderer(String.class, cellRenderer); + tblEditor.setDefaultRenderer(Object.class, cellRenderer); + tblEditor.setDefaultEditor(String.class, cellEditor); + tblEditor.setDefaultEditor(Object.class, cellEditor); tblEditor.registerKeyboardAction(this.tableEditorActions.undo, KeyStroke.getKeyStroke(KeyEvent.VK_Z, InputEvent.CTRL_MASK), JComponent.WHEN_FOCUSED); tblEditor.registerKeyboardAction(this.tableEditorActions.redo, @@ -201,7 +204,7 @@ public void updateEditorLayout() { getFileEditorState().setColumnWidths(columnWidths); } - float zoomFactor = calcuateZoomFactor(); + float zoomFactor = calculateZoomFactor(); for (int i = 0; i < currentColumnCount; ++i) { TableColumn column = this.tblEditor.getColumnModel().getColumn(i); column.setPreferredWidth(Math.round(columnWidths[i] * zoomFactor)); @@ -212,7 +215,7 @@ public void updateEditorLayout() { panelInfo.setVisible(getFileEditorState().showInfoPanel()); } - private float calcuateZoomFactor() { + private float calculateZoomFactor() { float fontHeight = getFontHeight(); return fontHeight / baseFontHeight; } @@ -386,7 +389,7 @@ public JComponent getPreferredFocusedComponent() { public void storeCurrentTableLayout() { int[] widths = getCurrentColumnsWidths(); - float zoomFactor = calcuateZoomFactor(); + float zoomFactor = calculateZoomFactor(); for (int i = 0; i < widths.length; i++) { widths[i] /= zoomFactor; } @@ -459,7 +462,7 @@ protected String generateCsv(Object[][] data) { } private int getGlobalFontSize() { - return EditorColorsManager.getInstance().getGlobalScheme().getEditorFontSize(); + return EditorColorsManager.getInstance().getGlobalScheme().getEditorFontSize(); } private int getFontHeight() { From 359c48b79290a5f60a5e7aab3295b00b68bf69a3 Mon Sep 17 00:00:00 2001 From: GeeK Date: Sun, 31 Mar 2019 12:02:39 +0200 Subject: [PATCH 3/6] [FIX] synchronize adding/removing cellEditorListener Fixes #111 --- .../csv/editor/table/swing/MultiLineCellRenderer.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/seesharpsoft/intellij/plugins/csv/editor/table/swing/MultiLineCellRenderer.java b/src/main/java/net/seesharpsoft/intellij/plugins/csv/editor/table/swing/MultiLineCellRenderer.java index a633da67..0f191dd3 100644 --- a/src/main/java/net/seesharpsoft/intellij/plugins/csv/editor/table/swing/MultiLineCellRenderer.java +++ b/src/main/java/net/seesharpsoft/intellij/plugins/csv/editor/table/swing/MultiLineCellRenderer.java @@ -17,7 +17,7 @@ public class MultiLineCellRenderer extends JTextArea implements TableCellRenderer, TableCellEditor { - private Set cellEditorListenerSet = Collections.synchronizedSet(new HashSet<>()); + private Set cellEditorListenerSet = new HashSet<>(); private final UserDataHolder userDataHolder; public MultiLineCellRenderer(CsvTableEditorKeyListener keyListener, UserDataHolder userDataHolderParam) { @@ -142,11 +142,15 @@ protected void fireCancelCellEditing() { @Override public void addCellEditorListener(CellEditorListener cellEditorListener) { - cellEditorListenerSet.add(cellEditorListener); + synchronized (cellEditorListenerSet) { + cellEditorListenerSet.add(cellEditorListener); + } } @Override public void removeCellEditorListener(CellEditorListener cellEditorListener) { - cellEditorListenerSet.remove(cellEditorListener); + synchronized (cellEditorListenerSet) { + cellEditorListenerSet.remove(cellEditorListener); + } } } From f5d95c687168cd9b7d02fd6f329bbbd71dbfab96 Mon Sep 17 00:00:00 2001 From: GeeK Date: Sun, 31 Mar 2019 12:05:06 +0200 Subject: [PATCH 4/6] [FIX] remove unused function --- .../editor/table/swing/CsvTableEditorActions.java | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/src/main/java/net/seesharpsoft/intellij/plugins/csv/editor/table/swing/CsvTableEditorActions.java b/src/main/java/net/seesharpsoft/intellij/plugins/csv/editor/table/swing/CsvTableEditorActions.java index 671a9ed3..73a39a3e 100644 --- a/src/main/java/net/seesharpsoft/intellij/plugins/csv/editor/table/swing/CsvTableEditorActions.java +++ b/src/main/java/net/seesharpsoft/intellij/plugins/csv/editor/table/swing/CsvTableEditorActions.java @@ -14,7 +14,6 @@ import java.awt.event.ActionListener; import java.io.IOException; import java.net.URI; -import java.util.Vector; public class CsvTableEditorActions extends CsvTableEditorUtilBase { @@ -145,18 +144,6 @@ public void actionPerformed(ActionEvent e) { } } - private void removeColumn(DefaultTableModel tableModel, int column) { - int prevColumnCount = tableModel.getColumnCount(); - - Vector rows = tableModel.getDataVector(); - for (Object row : rows) { - ((Vector) row).remove(column); - } - - tableModel.setColumnCount(prevColumnCount - 1); - tableModel.fireTableStructureChanged(); - } - private final class DeleteColumnAction implements ActionListener { @Override public void actionPerformed(ActionEvent e) { From 3aab0eda00532b0c4dcf63986dadbdef07e5b716 Mon Sep 17 00:00:00 2001 From: GeeK Date: Sun, 31 Mar 2019 12:12:06 +0200 Subject: [PATCH 5/6] [FIX] bettercodehub complaint --- .bettercodehub.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.bettercodehub.yml b/.bettercodehub.yml index efca290b..c5f9ef68 100644 --- a/.bettercodehub.yml +++ b/.bettercodehub.yml @@ -1,3 +1,3 @@ -component_depth: 10 +component_depth: 8 languages: -- java + - java From 9b3b9c223c97411a3bab93434f86cd1bb0689d0d Mon Sep 17 00:00:00 2001 From: GeeK Date: Sun, 31 Mar 2019 15:11:50 +0200 Subject: [PATCH 6/6] [INTERNAL] prepare release 2.3.1 --- CHANGELOG | 6 ++++++ gradle.properties | 2 +- src/main/resources/META-INF/plugin.xml | 5 ++--- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index d7db1df6..606163bd 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,9 @@ +2.3.1 +Mar 31, 2019 + +NEW: use default color scheme font for table editor as well +FIX: ConcurrentModificationException tackled (table editor) + 2.3.0 Mar 04, 2019 diff --git a/gradle.properties b/gradle.properties index 8b985ea6..1c579bf2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ # https://www.jetbrains.com/intellij-repository/snapshots name='CSV Plugin' -pluginVersion=2.3.0 +pluginVersion=2.3.1 javaVersion=1.8 javaTargetVersion=1.8 downloadIntellijSources=false diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml index bb7f6ecd..b66f16ac 100644 --- a/src/main/resources/META-INF/plugin.xml +++ b/src/main/resources/META-INF/plugin.xml @@ -46,9 +46,8 @@ -NEW: Zoom table-editor cells with Ctrl+Mouse Wheel (contribution by @royqh1979) -FIX: Scratches are now recognised as CSV -FIX: Several issues resolved by reworking column/row editing +NEW: use default color scheme font for table editor as well +FIX: ConcurrentModificationException tackled (table editor) ]]>