Skip to content

Commit 82647f4

Browse files
authored
Merge pull request #116 from SeeSharpSoft/fb_cell_renderer_fixes
Fonts & Fixes
2 parents edff7c0 + 3aab0ed commit 82647f4

File tree

5 files changed

+27
-26
lines changed

5 files changed

+27
-26
lines changed

.bettercodehub.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
component_depth: 10
1+
component_depth: 8
22
languages:
3-
- java
3+
- java

src/main/java/net/seesharpsoft/intellij/plugins/csv/editor/table/CsvTableEditor.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import com.intellij.openapi.application.ApplicationManager;
77
import com.intellij.openapi.command.CommandProcessor;
88
import com.intellij.openapi.editor.Document;
9+
import com.intellij.openapi.editor.colors.EditorColorsManager;
10+
import com.intellij.openapi.editor.colors.EditorFontType;
911
import com.intellij.openapi.fileEditor.*;
1012
import com.intellij.openapi.project.Project;
1113
import com.intellij.openapi.util.Key;
@@ -27,6 +29,7 @@
2729
import org.jetbrains.annotations.Nullable;
2830

2931
import javax.swing.*;
32+
import java.awt.*;
3033
import java.beans.PropertyChangeListener;
3134
import java.beans.PropertyChangeSupport;
3235
import java.util.Collections;
@@ -295,6 +298,10 @@ public int getRowCount() {
295298
return getDataHandler().getCurrentState().length;
296299
}
297300

301+
public Font getFont() {
302+
return EditorColorsManager.getInstance().getGlobalScheme().getFont(EditorFontType.PLAIN);
303+
}
304+
298305
public int getColumnCount() {
299306
Object[][] currentData = getDataHandler().getCurrentState();
300307
return currentData.length > 0 ? currentData[0].length : 0;

src/main/java/net/seesharpsoft/intellij/plugins/csv/editor/table/swing/CsvTableEditorActions.java

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
import java.awt.event.ActionListener;
1515
import java.io.IOException;
1616
import java.net.URI;
17-
import java.util.Vector;
1817

1918
public class CsvTableEditorActions extends CsvTableEditorUtilBase {
2019

@@ -145,18 +144,6 @@ public void actionPerformed(ActionEvent e) {
145144
}
146145
}
147146

148-
private void removeColumn(DefaultTableModel tableModel, int column) {
149-
int prevColumnCount = tableModel.getColumnCount();
150-
151-
Vector rows = tableModel.getDataVector();
152-
for (Object row : rows) {
153-
((Vector) row).remove(column);
154-
}
155-
156-
tableModel.setColumnCount(prevColumnCount - 1);
157-
tableModel.fireTableStructureChanged();
158-
}
159-
160147
private final class DeleteColumnAction implements ActionListener {
161148
@Override
162149
public void actionPerformed(ActionEvent e) {

src/main/java/net/seesharpsoft/intellij/plugins/csv/editor/table/swing/CsvTableEditorSwing.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -118,14 +118,17 @@ private void initializedUIComponents() {
118118

119119
tblEditor.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
120120
tblEditor.setShowColumns(true);
121+
tblEditor.setFont(getFont());
121122
setTableRowHeight(0);
122123

123124
tblEditor.getColumnModel().addColumnModelListener(tableEditorListener);
124125

125-
tblEditor.setDefaultRenderer(String.class, new MultiLineCellRenderer(this.tableEditorKeyListener, this));
126-
tblEditor.setDefaultRenderer(Object.class, new MultiLineCellRenderer(this.tableEditorKeyListener, this));
127-
tblEditor.setDefaultEditor(String.class, new MultiLineCellRenderer(this.tableEditorKeyListener, this));
128-
tblEditor.setDefaultEditor(Object.class, new MultiLineCellRenderer(this.tableEditorKeyListener, this));
126+
MultiLineCellRenderer cellRenderer = new MultiLineCellRenderer(this.tableEditorKeyListener, this);
127+
MultiLineCellRenderer cellEditor = new MultiLineCellRenderer(this.tableEditorKeyListener, this);
128+
tblEditor.setDefaultRenderer(String.class, cellRenderer);
129+
tblEditor.setDefaultRenderer(Object.class, cellRenderer);
130+
tblEditor.setDefaultEditor(String.class, cellEditor);
131+
tblEditor.setDefaultEditor(Object.class, cellEditor);
129132
tblEditor.registerKeyboardAction(this.tableEditorActions.undo,
130133
KeyStroke.getKeyStroke(KeyEvent.VK_Z, InputEvent.CTRL_MASK), JComponent.WHEN_FOCUSED);
131134
tblEditor.registerKeyboardAction(this.tableEditorActions.redo,
@@ -201,7 +204,7 @@ public void updateEditorLayout() {
201204
getFileEditorState().setColumnWidths(columnWidths);
202205
}
203206

204-
float zoomFactor = calcuateZoomFactor();
207+
float zoomFactor = calculateZoomFactor();
205208
for (int i = 0; i < currentColumnCount; ++i) {
206209
TableColumn column = this.tblEditor.getColumnModel().getColumn(i);
207210
column.setPreferredWidth(Math.round(columnWidths[i] * zoomFactor));
@@ -212,7 +215,7 @@ public void updateEditorLayout() {
212215
panelInfo.setVisible(getFileEditorState().showInfoPanel());
213216
}
214217

215-
private float calcuateZoomFactor() {
218+
private float calculateZoomFactor() {
216219
float fontHeight = getFontHeight();
217220
return fontHeight / baseFontHeight;
218221
}
@@ -386,7 +389,7 @@ public JComponent getPreferredFocusedComponent() {
386389

387390
public void storeCurrentTableLayout() {
388391
int[] widths = getCurrentColumnsWidths();
389-
float zoomFactor = calcuateZoomFactor();
392+
float zoomFactor = calculateZoomFactor();
390393
for (int i = 0; i < widths.length; i++) {
391394
widths[i] /= zoomFactor;
392395
}
@@ -459,7 +462,7 @@ protected String generateCsv(Object[][] data) {
459462
}
460463

461464
private int getGlobalFontSize() {
462-
return EditorColorsManager.getInstance().getGlobalScheme().getEditorFontSize();
465+
return EditorColorsManager.getInstance().getGlobalScheme().getEditorFontSize();
463466
}
464467

465468
private int getFontHeight() {

src/main/java/net/seesharpsoft/intellij/plugins/csv/editor/table/swing/MultiLineCellRenderer.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
public class MultiLineCellRenderer extends JTextArea implements TableCellRenderer, TableCellEditor {
1919

20-
private Set<CellEditorListener> cellEditorListenerSet = Collections.synchronizedSet(new HashSet<>());
20+
private Set<CellEditorListener> cellEditorListenerSet = new HashSet<>();
2121
private final UserDataHolder userDataHolder;
2222

2323
public MultiLineCellRenderer(CsvTableEditorKeyListener keyListener, UserDataHolder userDataHolderParam) {
@@ -142,11 +142,15 @@ protected void fireCancelCellEditing() {
142142

143143
@Override
144144
public void addCellEditorListener(CellEditorListener cellEditorListener) {
145-
cellEditorListenerSet.add(cellEditorListener);
145+
synchronized (cellEditorListenerSet) {
146+
cellEditorListenerSet.add(cellEditorListener);
147+
}
146148
}
147149

148150
@Override
149151
public void removeCellEditorListener(CellEditorListener cellEditorListener) {
150-
cellEditorListenerSet.remove(cellEditorListener);
152+
synchronized (cellEditorListenerSet) {
153+
cellEditorListenerSet.remove(cellEditorListener);
154+
}
151155
}
152156
}

0 commit comments

Comments
 (0)