From 2bddbf84d2d746ee3cd5215079207ad328d7a30a Mon Sep 17 00:00:00 2001 From: SiboVG Date: Sun, 22 Sep 2024 07:26:02 +0100 Subject: [PATCH] Fix selectall cell after selecting another cell --- .../swing/gui/simulation/SimulationConditionsPanel.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/swing/src/main/java/info/openrocket/swing/gui/simulation/SimulationConditionsPanel.java b/swing/src/main/java/info/openrocket/swing/gui/simulation/SimulationConditionsPanel.java index 8e1c18dcb..c380a0816 100644 --- a/swing/src/main/java/info/openrocket/swing/gui/simulation/SimulationConditionsPanel.java +++ b/swing/src/main/java/info/openrocket/swing/gui/simulation/SimulationConditionsPanel.java @@ -1065,6 +1065,7 @@ public class SimulationConditionsPanel extends JPanel { private final JTable table; private int editingRow; private int editingColumn; + private Object originalValue; public SelectAllCellEditor(JTable table) { super(new JTextField()); @@ -1091,7 +1092,11 @@ public class SimulationConditionsPanel extends JPanel { @Override public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { + editingRow = row; + editingColumn = column; + originalValue = value; JTextField textField = (JTextField) super.getTableCellEditorComponent(table, value, isSelected, row, column); + textField.setText(value != null ? value.toString() : ""); SwingUtilities.invokeLater(textField::selectAll); return textField; } @@ -1105,7 +1110,8 @@ public class SimulationConditionsPanel extends JPanel { // If successful, update the cell value table.getModel().setValueAt(value, editingRow, editingColumn); } catch (NumberFormatException e) { - // If parsing fails, revert to the original value + // Revert to the original value if parsing fails + textField.setText(originalValue != null ? originalValue.toString() : ""); return false; } boolean result = super.stopCellEditing();