From a62d37c4d4d124d6fe666b7aded319bde165427a Mon Sep 17 00:00:00 2001 From: GeeK Date: Sun, 25 Aug 2019 13:49:48 +0200 Subject: [PATCH 1/2] [FIX] Index out of bound error on multi line clear cells Fixes #151 --- .../csv/editor/table/CsvTableEditor.java | 18 +++++++++++++++--- .../table/swing/CsvTableEditorActions.java | 19 +++++-------------- 2 files changed, 20 insertions(+), 17 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 44f2edac..61b9965c 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 @@ -392,8 +392,9 @@ public final Object[][] removeRows(int[] indices) { currentRows.sort(Collections.reverseOrder()); TableDataHandler dataHandler = getDataHandler(); Object[][] currentData = dataHandler.getCurrentState(); + int offset = getFileEditorState().getFixedHeaders() ? 1 : 0; for (int currentRow : currentRows) { - currentData = ArrayUtil.remove(currentData, currentRow + (getFileEditorState().getFixedHeaders() ? 1 : 0)); + currentData = ArrayUtil.remove(currentData, currentRow + offset); } updateTableComponentData(dataHandler.addState(currentData)); return currentData; @@ -414,10 +415,8 @@ public final Object[][] addColumn(int focusedColumnIndex, boolean before) { public final Object[][] removeColumns(int[] indices) { List currentColumns = Ints.asList(indices); currentColumns.sort(Collections.reverseOrder()); - TableDataHandler dataHandler = getDataHandler(); Object[][] currentData = dataHandler.getCurrentState(); - for (int currentColumn : currentColumns) { for (int i = 0; i < currentData.length; ++i) { currentData[i] = ArrayUtil.remove(currentData[i], currentColumn); @@ -426,4 +425,17 @@ public final Object[][] removeColumns(int[] indices) { updateTableComponentData(dataHandler.addState(currentData)); return currentData; } + + public final Object[][] clearCells(int[] columns, int[] rows) { + TableDataHandler dataHandler = getDataHandler(); + Object[][] currentData = dataHandler.getCurrentState(); + int offset = getFileEditorState().getFixedHeaders() ? 1 : 0; + for (int currentColumn : columns) { + for (int currentRow : rows) { + currentData[currentRow + offset][currentColumn] = ""; + } + } + updateTableComponentData(dataHandler.addState(currentData)); + return currentData; + } } 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 b01101bd..5eafbf1b 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 @@ -8,7 +8,6 @@ import net.seesharpsoft.intellij.plugins.csv.editor.CsvFileEditorProvider; import javax.swing.*; -import javax.swing.table.DefaultTableModel; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; @@ -184,25 +183,17 @@ public void actionPerformed(ActionEvent e) { try { JBTable table = csvTableEditor.getTable(); int[] selectedRows = table.getSelectedRows(); - if (selectedRows == null || selectedRows.length == 0) { - return; - } int[] selectedColumns = table.getSelectedColumns(); - if (selectedColumns == null || selectedColumns.length == 0) { + + if (selectedRows == null || selectedRows.length == 0 || + selectedColumns == null || selectedColumns.length == 0) { return; } + int focusedRow = table.getSelectedRow(); int focusedColumn = table.getSelectedColumn(); - DefaultTableModel tableModel = csvTableEditor.getTableModel(); - - for (int row : selectedRows) { - for (int column : selectedColumns) { - tableModel.setValueAt("", row, column); - } - } - - csvTableEditor.syncTableModelWithUI(); + csvTableEditor.clearCells(selectedColumns, selectedRows); selectCell(table, focusedRow, focusedColumn); } finally { From e084797e34d1e478bbc998f913bf642dff2aa365 Mon Sep 17 00:00:00 2001 From: GeeK Date: Sun, 25 Aug 2019 15:54:45 +0200 Subject: [PATCH 2/2] [INTERNAL] switch to token based auth - prepare release 2.6.3 --- CHANGELOG | 5 +++++ build.gradle | 3 +-- gradle.properties | 2 +- src/main/resources/META-INF/plugin.xml | 3 +-- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 6561d294..70538647 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,8 @@ +2.6.3 +Aug 25, 2019 + +FIX: Index out of bound error on multi line clear cells #151 + 2.6.2 Aug 09, 2019 diff --git a/build.gradle b/build.gradle index c9b0c2d1..549c0523 100644 --- a/build.gradle +++ b/build.gradle @@ -78,8 +78,7 @@ intellij { downloadSources = false } publishPlugin { - username = System.getenv().getOrDefault('JI_USER', '') - password = System.getenv().getOrDefault('JI_PASSWORD', '') + token = System.getenv().getOrDefault('JI_TOKEN', '') channels = [System.getenv().getOrDefault('JI_CHANNELS', 'Testing')] } diff --git a/gradle.properties b/gradle.properties index 693330a1..ccfc8a85 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ # https://www.jetbrains.com/intellij-repository/snapshots name='CSV Plugin' -pluginVersion=2.6.2 +pluginVersion=2.6.3 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 d53ca39d..0b9ff4ab 100644 --- a/src/main/resources/META-INF/plugin.xml +++ b/src/main/resources/META-INF/plugin.xml @@ -46,8 +46,7 @@ -FIX: AssertionError: Already disposed Project #147 -FIX: No fallback font used in table editor #145 +FIX: Index out of bound error on multi line clear cells #151 ]]>