Only show visible columns in popup menu
This commit is contained in:
parent
c7e9f46b39
commit
26d399c5f1
@ -7,6 +7,7 @@ import java.awt.event.MouseEvent;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
|
import java.util.Enumeration;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
@ -45,6 +46,7 @@ public class ComponentPresetTable extends JTable {
|
|||||||
private final AbstractTableModel tableModel;
|
private final AbstractTableModel tableModel;
|
||||||
private final XTableColumnModel tableColumnModel;
|
private final XTableColumnModel tableColumnModel;
|
||||||
private final ComponentPresetTableColumn[] columns;
|
private final ComponentPresetTableColumn[] columns;
|
||||||
|
private final List<TableColumn> hiddenColumns;
|
||||||
|
|
||||||
public ComponentPresetTable(final ComponentPreset.Type presetType, List<ComponentPreset> presets, List<TypedKey<?>> visibleColumnKeys) {
|
public ComponentPresetTable(final ComponentPreset.Type presetType, List<ComponentPreset> presets, List<TypedKey<?>> visibleColumnKeys) {
|
||||||
super();
|
super();
|
||||||
@ -54,7 +56,7 @@ public class ComponentPresetTable extends JTable {
|
|||||||
this.columns = new ComponentPresetTableColumn[ComponentPreset.ORDERED_KEY_LIST.size() + 1];
|
this.columns = new ComponentPresetTableColumn[ComponentPreset.ORDERED_KEY_LIST.size() + 1];
|
||||||
|
|
||||||
|
|
||||||
tableModel = new AbstractTableModel() {
|
this.tableModel = new AbstractTableModel() {
|
||||||
final ComponentPresetTableColumn[] myColumns = columns;
|
final ComponentPresetTableColumn[] myColumns = columns;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -97,17 +99,16 @@ public class ComponentPresetTable extends JTable {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
sorter = new TableRowSorter<TableModel>(tableModel);
|
this.sorter = new TableRowSorter<TableModel>(tableModel);
|
||||||
|
this.tableColumnModel = new XTableColumnModel();
|
||||||
tableColumnModel = new XTableColumnModel();
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set up the Column Table model, and customize the sorting.
|
* Set up the Column Table model, and customize the sorting.
|
||||||
*/
|
*/
|
||||||
columns[0] = new ComponentPresetTableColumn.Favorite(0);
|
this.columns[0] = new ComponentPresetTableColumn.Favorite(0);
|
||||||
tableColumnModel.addColumn(columns[0]);
|
this.tableColumnModel.addColumn(columns[0]);
|
||||||
|
|
||||||
List<TableColumn> hiddenColumns = new ArrayList<TableColumn>();
|
this.hiddenColumns = new ArrayList<>();
|
||||||
{
|
{
|
||||||
int index = 1;
|
int index = 1;
|
||||||
for (final TypedKey<?> key : ComponentPreset.ORDERED_KEY_LIST) {
|
for (final TypedKey<?> key : ComponentPreset.ORDERED_KEY_LIST) {
|
||||||
@ -144,7 +145,7 @@ public class ComponentPresetTable extends JTable {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
if (visibleColumnKeys.indexOf(key) < 0) {
|
if (!visibleColumnKeys.contains(key)) {
|
||||||
hiddenColumns.add(columns[index]);
|
hiddenColumns.add(columns[index]);
|
||||||
}
|
}
|
||||||
index++;
|
index++;
|
||||||
@ -156,10 +157,10 @@ public class ComponentPresetTable extends JTable {
|
|||||||
this.setModel(tableModel);
|
this.setModel(tableModel);
|
||||||
this.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
|
this.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
|
||||||
this.setRowSorter(sorter);
|
this.setRowSorter(sorter);
|
||||||
sorter.toggleSortOrder(2); // Sort by the first column (manufacturer) by default
|
this.sorter.toggleSortOrder(2); // Sort by the first column (manufacturer) by default
|
||||||
|
|
||||||
for (TableColumn hiddenColumn : hiddenColumns) {
|
for (TableColumn hiddenColumn : this.hiddenColumns) {
|
||||||
tableColumnModel.setColumnVisible(hiddenColumn, false);
|
this.tableColumnModel.setColumnVisible(hiddenColumn, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
JTableHeader header = this.getTableHeader();
|
JTableHeader header = this.getTableHeader();
|
||||||
@ -185,7 +186,7 @@ public class ComponentPresetTable extends JTable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public XTableColumnModel getXColumnModel() {
|
public XTableColumnModel getXColumnModel() {
|
||||||
return tableColumnModel;
|
return this.tableColumnModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setRowFilter(RowFilter<? super TableModel, ? super Integer> filter) {
|
public void setRowFilter(RowFilter<? super TableModel, ? super Integer> filter) {
|
||||||
@ -231,6 +232,9 @@ public class ComponentPresetTable extends JTable {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (TableColumn c : columns) {
|
for (TableColumn c : columns) {
|
||||||
|
if (hiddenColumns.contains(c)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
JCheckBoxMenuItem item = new ToggleColumnMenuItem(c);
|
JCheckBoxMenuItem item = new ToggleColumnMenuItem(c);
|
||||||
this.add(item);
|
this.add(item);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user