Update legacy checkbox when legacy column visibility changes

This commit is contained in:
SiboVG 2023-09-19 19:06:07 +02:00
parent 26d399c5f1
commit 4ab28ac276

View File

@ -22,8 +22,12 @@ import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.RowFilter;
import javax.swing.event.ChangeEvent;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.TableColumnModelEvent;
import javax.swing.event.TableColumnModelListener;
import javax.swing.table.TableColumn;
import javax.swing.table.TableModel;
@ -245,12 +249,41 @@ public class ComponentPresetChooserDialog extends JDialog {
panel.add(showLegacyCheckBox, "wrap");
showLegacyCheckBox.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
updateFilters();
tm.setColumnVisible(legacyColumn, showLegacyCheckBox.isSelected());
@Override
public void itemStateChanged(ItemEvent e) {
updateFilters();
tm.setColumnVisible(legacyColumn, showLegacyCheckBox.isSelected());
}
});
// When the legacy column changes visibility (by right-clicking on the column header and toggling the legacy header checkbox),
// update the main legacy checkbox
tm.addColumnModelListener(new TableColumnModelListener() {
@Override
public void columnAdded(TableColumnModelEvent e) {
TableColumn column = tm.getColumn(e.getToIndex());
if (column == legacyColumn) {
showLegacyCheckBox.setSelected(true);
}
});
}
@Override
public void columnRemoved(TableColumnModelEvent e) {
// Use 'getFromIndex' since the column has been removed
if (e.getFromIndex() == legacyColumnIndex) {
showLegacyCheckBox.setSelected(false);
}
}
@Override
public void columnMoved(TableColumnModelEvent e) {}
@Override
public void columnMarginChanged(ChangeEvent e) {}
@Override
public void columnSelectionChanged(ListSelectionEvent e) {}
});
if(component instanceof SymmetricComponent) {
final SymmetricComponent curSym = (SymmetricComponent) component;