Java源码示例:ca.odell.glazedlists.FilterList
示例1
protected FilterControl(final JFrame jFrame, final String name, final EventList<E> eventList, final EventList<E> exportEventList, final FilterList<E> filterList, final Map<String, List<Filter>> filters, final Map<String, List<Filter>> defaultFilters) {
this.name = name;
this.eventList = eventList;
this.exportEventList = exportEventList;
this.filterList = filterList;
eventList.addListEventListener(new ListEventListener<E>() {
@Override @SuppressWarnings("deprecation")
public void listChanged(ListEvent<E> listChanges) {
try {
eventList.getReadWriteLock().readLock().lock();
List<E> delete = new ArrayList<E>();
List<E> update = new ArrayList<E>();
while(listChanges.next()) {
switch (listChanges.getType()) {
case ListEvent.DELETE:
addSafe(delete, listChanges.getOldValue());
break;
case ListEvent.UPDATE:
addSafe(eventList, update, listChanges.getIndex());
break;
}
}
cacheDelete(delete);
cacheUpdate(update);
} finally {
eventList.getReadWriteLock().readLock().unlock();
}
}
});
this.filters = filters;
this.defaultFilters = defaultFilters;
ListenerClass listener = new ListenerClass();
filterList.addListEventListener(listener);
gui = new FilterGui<E>(jFrame, this);
cache = new HashMap<E, String>();
}
示例2
public TODOLists() {
setModuleName("TODOLists");
setModuleType("Core");
setModuleVersion( CPSGlobalSettings.getVersion() );
tempCal = new GregorianCalendar();
data = new BasicEventList<CPSPlanting>();
dataFiltered = new FilterList<CPSPlanting>( data );
dataSorted = new SortedList<CPSPlanting>( dataFiltered, null );
}
示例3
protected FilterControl(final JFrame jFrame, final String name, final EventList<E> eventList, final EventList<E> exportEventList, final FilterList<E> filterList, final Map<String, List<Filter>> filters) {
this(jFrame, name, eventList, exportEventList, filterList, filters, new HashMap<String, List<Filter>>());
}
示例4
public FilterList<E> getFilterList() {
return filterList;
}
示例5
public TransactionsFilterControl(EnumTableFormatAdaptor<TransactionTableFormat, MyTransaction> tableFormat, JFrame jFrame, EventList<MyTransaction> eventList, EventList<MyTransaction> exportEventList, FilterList<MyTransaction> filterList, Map<String, List<Filter>> filters, Map<String, List<Filter>> defaultFilters) {
super(jFrame, NAME, eventList, exportEventList, filterList, filters, defaultFilters);
this.tableFormat = tableFormat;
}
示例6
public ContractsTab(Program program) {
super(program, TabsContracts.get().title(), Images.TOOL_CONTRACTS.getIcon(), true);
JFixedToolBar jToolBarLeft = new JFixedToolBar();
JFixedToolBar jToolBarRight = new JFixedToolBar();
JButton jCollapse = new JButton(TabsContracts.get().collapse(), Images.MISC_COLLAPSED.getIcon());
jCollapse.setActionCommand(ContractsAction.COLLAPSE.name());
jCollapse.addActionListener(listener);
jToolBarRight.addButton(jCollapse);
JButton jExpand = new JButton(TabsContracts.get().expand(), Images.MISC_EXPANDED.getIcon());
jExpand.setActionCommand(ContractsAction.EXPAND.name());
jExpand.addActionListener(listener);
jToolBarRight.addButton(jExpand);
//Table Format
tableFormat = new EnumTableFormatAdaptor<ContractsTableFormat, MyContractItem>(ContractsTableFormat.class);
//Backend
eventList = program.getProfileData().getContractItemEventList();
//Sorting (per column)
eventList.getReadWriteLock().readLock().lock();
SortedList<MyContractItem> sortedListColumn = new SortedList<MyContractItem>(eventList);
eventList.getReadWriteLock().readLock().unlock();
//Sorting Separator (ensure export always has the right order)
eventList.getReadWriteLock().readLock().lock();
SortedList<MyContractItem> sortedListSeparator = new SortedList<MyContractItem>(sortedListColumn, new SeparatorComparator());
eventList.getReadWriteLock().readLock().unlock();
//Filter
eventList.getReadWriteLock().readLock().lock();
filterList = new FilterList<MyContractItem>(sortedListSeparator);
eventList.getReadWriteLock().readLock().unlock();
//Separator
separatorList = new SeparatorList<MyContractItem>(filterList, new SeparatorComparator(), 1, Integer.MAX_VALUE);
//Table Model
tableModel = EventModels.createTableModel(separatorList, tableFormat);
//Table
jTable = new JContractsTable(program, tableModel, separatorList);
jTable.setSeparatorRenderer(new ContractsSeparatorTableCell(jTable, separatorList, listener));
jTable.setSeparatorEditor(new ContractsSeparatorTableCell(jTable, separatorList, listener));
jTable.setCellSelectionEnabled(true);
PaddingTableCellRenderer.install(jTable, 3);
//Sorting
TableComparatorChooser.install(jTable, sortedListColumn, TableComparatorChooser.MULTIPLE_COLUMN_MOUSE, tableFormat);
//Selection Model
selectionModel = EventModels.createSelectionModel(separatorList);
selectionModel.setSelectionMode(ListSelection.MULTIPLE_INTERVAL_SELECTION_DEFENSIVE);
jTable.setSelectionModel(selectionModel);
//Listeners
installTable(jTable, NAME);
//Scroll
JScrollPane jTableScroll = new JScrollPane(jTable);
//Table Filter
filterControl = new ContractsFilterControl(
tableFormat,
program.getMainWindow().getFrame(),
eventList,
sortedListSeparator,
filterList,
Settings.get().getTableFilters(NAME)
);
//Menu
installMenu(program, new ContractsTableMenu(), jTable, MyContractItem.class);
layout.setHorizontalGroup(
layout.createParallelGroup(GroupLayout.Alignment.TRAILING)
.addComponent(filterControl.getPanel())
.addGroup(layout.createSequentialGroup()
.addComponent(jToolBarLeft, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, Integer.MAX_VALUE)
.addGap(0)
.addComponent(jToolBarRight)
)
.addComponent(jTableScroll, 0, 0, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createSequentialGroup()
.addComponent(filterControl.getPanel())
.addGroup(layout.createParallelGroup()
.addComponent(jToolBarLeft, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE)
.addComponent(jToolBarRight, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE)
)
.addComponent(jTableScroll, 0, 0, Short.MAX_VALUE)
);
}
示例7
public ContractsFilterControl(EnumTableFormatAdaptor<ContractsTableFormat, MyContractItem> tableFormat, JFrame jFrame, EventList<MyContractItem> eventList, EventList<MyContractItem> exportEventList, FilterList<MyContractItem> filterList, Map<String, List<Filter>> filters) {
super(jFrame, NAME, eventList, exportEventList, filterList, filters);
this.tableFormat = tableFormat;
}
示例8
public AssetFilterControl(JFrame jFrame, EventList<TreeAsset> eventList, EventList<TreeAsset> exportEventList, FilterList<TreeAsset> filterList, Map<String, List<Filter>> filters) {
super(jFrame, NAME, eventList, exportEventList, filterList, filters);
}
示例9
public ReprocessedTab(final Program program) {
super(program, TabsReprocessed.get().title(), Images.TOOL_REPROCESSED.getIcon(), true);
JFixedToolBar jToolBarLeft = new JFixedToolBar();
JButton jClear = new JButton(TabsReprocessed.get().removeAll(), Images.EDIT_DELETE.getIcon());
jClear.setActionCommand(ReprocessedAction.CLEAR.name());
jClear.addActionListener(listener);
jToolBarLeft.addButton(jClear);
jToolBarLeft.addSpace(30);
JLabel jInfo = new JLabel(TabsReprocessed.get().info());
jInfo.setMinimumSize(new Dimension(100, Program.getButtonsHeight()));
jInfo.setMaximumSize(new Dimension(Short.MAX_VALUE, Program.getButtonsHeight()));
jInfo.setHorizontalAlignment(SwingConstants.LEFT);
jToolBarLeft.add(jInfo);
JFixedToolBar jToolBarRight = new JFixedToolBar();
JButton jCollapse = new JButton(TabsReprocessed.get().collapse(), Images.MISC_COLLAPSED.getIcon());
jCollapse.setActionCommand(ReprocessedAction.COLLAPSE.name());
jCollapse.addActionListener(listener);
jToolBarRight.addButton(jCollapse);
JButton jExpand = new JButton(TabsReprocessed.get().expand(), Images.MISC_EXPANDED.getIcon());
jExpand.setActionCommand(ReprocessedAction.EXPAND.name());
jExpand.addActionListener(listener);
jToolBarRight.addButton(jExpand);
//Table Format
tableFormat = new EnumTableFormatAdaptor<>(ReprocessedTableFormat.class);
//Backend
eventList = EventListManager.create();
//Sorting (per column)
eventList.getReadWriteLock().readLock().lock();
SortedList<ReprocessedInterface> sortedListColumn = new SortedList<>(eventList);
eventList.getReadWriteLock().readLock().unlock();
//Sorting Total (Ensure that total is always last)
eventList.getReadWriteLock().readLock().lock();
SortedList<ReprocessedInterface> sortedListTotal = new SortedList<>(sortedListColumn, new TotalComparator());
eventList.getReadWriteLock().readLock().unlock();
//Filter
eventList.getReadWriteLock().readLock().lock();
filterList = new FilterList<>(sortedListTotal);
eventList.getReadWriteLock().readLock().unlock();
//Separator
separatorList = new SeparatorList<>(filterList, new ReprocessedSeparatorComparator(), 1, Integer.MAX_VALUE);
//Table Model
tableModel = EventModels.createTableModel(separatorList, tableFormat);
//Table
jTable = new JReprocessedTable(program, tableModel, separatorList);
jTable.setSeparatorRenderer(new ReprocessedSeparatorTableCell(jTable, separatorList, listener));
jTable.setSeparatorEditor(new ReprocessedSeparatorTableCell(jTable, separatorList, listener));
jTable.setCellSelectionEnabled(true);
PaddingTableCellRenderer.install(jTable, 3);
//Sorting
TableComparatorChooser.install(jTable, sortedListColumn, TableComparatorChooser.MULTIPLE_COLUMN_MOUSE, tableFormat);
//Selection Model
selectionModel = EventModels.createSelectionModel(separatorList);
selectionModel.setSelectionMode(ListSelection.MULTIPLE_INTERVAL_SELECTION_DEFENSIVE);
jTable.setSelectionModel(selectionModel);
//Listeners
installTable(jTable, NAME);
//Scroll
JScrollPane jTableScroll = new JScrollPane(jTable);
//Table Filter
filterControl = new ReprocessedFilterControl(
tableFormat,
program.getMainWindow().getFrame(),
eventList,
sortedListTotal,
filterList,
Settings.get().getTableFilters(NAME)
);
//Menu
installMenu(program, new ReprocessedTableMenu(), jTable, ReprocessedInterface.class);
layout.setHorizontalGroup(
layout.createParallelGroup(GroupLayout.Alignment.TRAILING)
.addComponent(filterControl.getPanel())
.addGroup(layout.createSequentialGroup()
.addComponent(jToolBarLeft, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, Integer.MAX_VALUE)
.addGap(0)
.addComponent(jToolBarRight)
)
.addComponent(jTableScroll, 0, 0, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createSequentialGroup()
.addComponent(filterControl.getPanel())
.addGroup(layout.createParallelGroup()
.addComponent(jToolBarLeft, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE)
.addComponent(jToolBarRight, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE)
)
.addComponent(jTableScroll, 0, 0, Short.MAX_VALUE)
);
}
示例10
public ReprocessedFilterControl(EnumTableFormatAdaptor<ReprocessedTableFormat, ReprocessedInterface> tableFormat, JFrame jFrame, EventList<ReprocessedInterface> eventList, EventList<ReprocessedInterface> exportEventList, FilterList<ReprocessedInterface> filterList, Map<String, List<Filter>> filters) {
super(jFrame, NAME, eventList, exportEventList, filterList, filters);
this.tableFormat = tableFormat;
}
示例11
public MarketOrdersFilterControl(EnumTableFormatAdaptor<MarketTableFormat, MyMarketOrder> tableFormat, JFrame jFrame, EventList<MyMarketOrder> eventList, EventList<MyMarketOrder> exportEventList, FilterList<MyMarketOrder> filterList, Map<String, List<Filter>> filters, Map<String, List<Filter>> defaultFilters) {
super(jFrame, NAME, eventList, exportEventList, filterList, filters, defaultFilters);
this.tableFormat = tableFormat;
}
示例12
private void setLocationType(LocationType locationType) {
this.locationType = locationType;
boolean empty = false;
if (locationType == LocationType.PLANET) {
jLocationType.setIcon(Images.LOC_PLANET.getIcon());
jLocationType.setToolTipText(TabsStockpile.get().planet());
jPanel.setBorder(BorderFactory.createTitledBorder(TabsStockpile.get().planet()));
try {
planets.getReadWriteLock().readLock().lock();
empty = planets.isEmpty();
filterList = new FilterList<>(planets);
} finally {
planets.getReadWriteLock().readLock().unlock();
}
jPlanet.setSelected(true);
} else if (locationType == LocationType.STATION) {
jLocationType.setIcon(Images.LOC_STATION.getIcon());
jLocationType.setToolTipText(TabsStockpile.get().station());
jPanel.setBorder(BorderFactory.createTitledBorder(TabsStockpile.get().station()));
try {
stations.getReadWriteLock().readLock().lock();
empty = stations.isEmpty();
filterList = new FilterList<>(stations);
} finally {
stations.getReadWriteLock().readLock().unlock();
}
jStation.setSelected(true);
} else if (locationType == LocationType.SYSTEM) {
jLocationType.setIcon(Images.LOC_SYSTEM.getIcon());
jLocationType.setToolTipText(TabsStockpile.get().system());
jPanel.setBorder(BorderFactory.createTitledBorder(TabsStockpile.get().system()));
try {
systems.getReadWriteLock().readLock().lock();
empty = systems.isEmpty();
filterList = new FilterList<>(systems);
} finally {
systems.getReadWriteLock().readLock().unlock();
}
jSystem.setSelected(true);
} else if (locationType == LocationType.REGION) {
jLocationType.setIcon(Images.LOC_REGION.getIcon());
jLocationType.setToolTipText(TabsStockpile.get().region());
jPanel.setBorder(BorderFactory.createTitledBorder(TabsStockpile.get().region()));
try {
regions.getReadWriteLock().readLock().lock();
empty = regions.isEmpty();
filterList = new FilterList<>(regions);
} finally {
regions.getReadWriteLock().readLock().unlock();
}
jRegion.setSelected(true);
} else {
jLocationType.setIcon(Images.LOC_LOCATIONS.getIcon());
jLocationType.setToolTipText(TabsStockpile.get().universe());
jPanel.setBorder(BorderFactory.createTitledBorder(TabsStockpile.get().universe()));
EventList<MyLocation> eventList = EventListManager.create();
try {
eventList.getReadWriteLock().readLock().lock();
filterList = new FilterList<>(eventList);
} finally {
eventList.getReadWriteLock().readLock().unlock();
}
jUniverse.setSelected(true);
}
if (autoComplete != null) { //Remove old
jLocation.removeItemListener(listener);
autoComplete.uninstall();
autoComplete = null;
}
if (locationType != LocationType.UNIVERSE) {
if (empty) {
jLocation.setEnabled(false);
jLocation.getModel().setSelectedItem(TabsStockpile.get().noLocationsFound());
} else {
jLocation.setEnabled(true);
autoComplete = AutoCompleteSupport.install(jLocation, EventModels.createSwingThreadProxyList(filterList), new LocationsFilterator());
autoComplete.setStrict(true);
autoComplete.setCorrectsCase(true);
jLocation.addItemListener(listener); //Must be added after AutoCompleteSupport
}
} else {
jLocation.setEnabled(false);
jLocation.getModel().setSelectedItem(TabsStockpile.get().universe());
}
}
示例13
public StockpileFilterControl(EnumTableFormatAdaptor<StockpileTableFormat, StockpileItem> tableFormat, JFrame jFrame, EventList<StockpileItem> eventList, EventList<StockpileItem> exportEventList, FilterList<StockpileItem> filterList, Map<String, List<Filter>> filters) {
super(jFrame, NAME, eventList, exportEventList, filterList, filters);
this.tableFormat = tableFormat;
}
示例14
public ValueTableTab(final Program program) {
super(program, TabsValues.get().title(), Images.TOOL_VALUE_TABLE.getIcon(), true);
//Table Format
tableFormat = new EnumTableFormatAdaptor<>(ValueTableFormat.class);
//Backend
eventList = EventListManager.create();
//Sorting (per column)
eventList.getReadWriteLock().readLock().lock();
SortedList<Value> columnSortedList = new SortedList<>(eventList);
eventList.getReadWriteLock().readLock().unlock();
//Sorting Total
eventList.getReadWriteLock().readLock().lock();
SortedList<Value> totalSortedList = new SortedList<>(columnSortedList, new TotalComparator());
eventList.getReadWriteLock().readLock().unlock();
//Filter
eventList.getReadWriteLock().readLock().lock();
filterList = new FilterList<>(totalSortedList);
eventList.getReadWriteLock().readLock().unlock();
//Table Model
tableModel = EventModels.createTableModel(filterList, tableFormat);
//Table
jTable = new JValueTable(program, tableModel);
jTable.setCellSelectionEnabled(true);
jTable.setRowSelectionAllowed(true);
jTable.setColumnSelectionAllowed(true);
PaddingTableCellRenderer.install(jTable, 3);
//Sorting
TableComparatorChooser.install(jTable, columnSortedList, TableComparatorChooser.MULTIPLE_COLUMN_MOUSE, tableFormat);
//Selection Model
selectionModel = EventModels.createSelectionModel(filterList);
selectionModel.setSelectionMode(ListSelection.MULTIPLE_INTERVAL_SELECTION_DEFENSIVE);
jTable.setSelectionModel(selectionModel);
//Listeners
installTable(jTable, NAME);
//Scroll
JScrollPane jTableScroll = new JScrollPane(jTable);
//Table Filter
filterControl = new ValueFilterControl(
tableFormat,
program.getMainWindow().getFrame(),
eventList,
totalSortedList,
filterList,
Settings.get().getTableFilters(NAME)
);
//Menu
installMenu(program, new ValueTableMenu(), jTable, Value.class);
layout.setHorizontalGroup(
layout.createParallelGroup()
.addComponent(filterControl.getPanel())
.addComponent(jTableScroll, 0, 0, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createSequentialGroup()
.addComponent(filterControl.getPanel())
.addComponent(jTableScroll, 0, 0, Short.MAX_VALUE)
);
}
示例15
public ValueFilterControl(EnumTableFormatAdaptor<ValueTableFormat, Value> tableFormat, JFrame jFrame, EventList<Value> eventList, EventList<Value> exportEventList, FilterList<Value> filterList, Map<String, List<Filter>> filters) {
super(jFrame, NAME, eventList, exportEventList, filterList, filters);
this.tableFormat = tableFormat;
}
示例16
public AssetsTab(final Program program) {
super(program, TabsAssets.get().assets(), Images.TOOL_ASSETS.getIcon(), false);
layout.setAutoCreateGaps(true);
ListenerClass listener = new ListenerClass();
//Table Format
tableFormat = new EnumTableFormatAdaptor<AssetTableFormat, MyAsset>(AssetTableFormat.class);
//Backend
EventList<MyAsset> eventList = program.getProfileData().getAssetsEventList();
//Sorting (per column)
eventList.getReadWriteLock().readLock().lock();
SortedList<MyAsset> sortedList = new SortedList<MyAsset>(eventList);
eventList.getReadWriteLock().readLock().unlock();
//Filter
eventList.getReadWriteLock().readLock().lock();
filterList = new FilterList<MyAsset>(sortedList);
eventList.getReadWriteLock().readLock().unlock();
filterList.addListEventListener(listener);
//Table Model
tableModel = EventModels.createTableModel(filterList, tableFormat);
//Table
jTable = new JAssetTable(program, tableModel);
jTable.setCellSelectionEnabled(true);
jTable.setRowSelectionAllowed(true);
jTable.setColumnSelectionAllowed(true);
//Sorting
TableComparatorChooser.install(jTable, sortedList, TableComparatorChooser.MULTIPLE_COLUMN_MOUSE, tableFormat);
//Selection Model
selectionModel = EventModels.createSelectionModel(filterList);
selectionModel.setSelectionMode(ListSelection.MULTIPLE_INTERVAL_SELECTION_DEFENSIVE);
jTable.setSelectionModel(selectionModel);
//Listeners
installTable(jTable, NAME);
//Scroll
JScrollPane jTableScroll = new JScrollPane(jTable);
//Table Filter
filterControl = new AssetFilterControl(
program.getMainWindow().getFrame(),
eventList,
sortedList,
filterList,
Settings.get().getTableFilters(NAME)
);
//Menu
installMenu(program, new AssetTableMenu(), jTable, MyAsset.class);
jVolume = StatusPanel.createLabel(TabsAssets.get().totalVolume(), Images.ASSETS_VOLUME.getIcon());
this.addStatusbarLabel(jVolume);
jCount = StatusPanel.createLabel(TabsAssets.get().totalCount(), Images.EDIT_ADD.getIcon()); //Add
this.addStatusbarLabel(jCount);
jAverage = StatusPanel.createLabel(TabsAssets.get().average(), Images.ASSETS_AVERAGE.getIcon());
this.addStatusbarLabel(jAverage);
jReprocessed = StatusPanel.createLabel(TabsAssets.get().totalReprocessed(), Images.SETTINGS_REPROCESSING.getIcon());
this.addStatusbarLabel(jReprocessed);
jValue = StatusPanel.createLabel(TabsAssets.get().totalValue(), Images.TOOL_VALUES.getIcon());
this.addStatusbarLabel(jValue);
layout.setHorizontalGroup(
layout.createParallelGroup()
.addComponent(filterControl.getPanel())
.addComponent(jTableScroll, 0, 0, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createSequentialGroup()
.addComponent(filterControl.getPanel())
.addComponent(jTableScroll, 0, 0, Short.MAX_VALUE)
);
}
示例17
public AssetFilterControl(JFrame jFrame, EventList<MyAsset> eventList, EventList<MyAsset> exportEventList, FilterList<MyAsset> filterList, Map<String, List<Filter>> filters) {
super(jFrame, NAME, eventList, exportEventList, filterList, filters);
}
示例18
public IndustryJobsTab(final Program program) {
super(program, TabsJobs.get().industry(), Images.TOOL_INDUSTRY_JOBS.getIcon(), true);
ListenerClass listener = new ListenerClass();
//Table Format
tableFormat = new EnumTableFormatAdaptor<IndustryJobTableFormat, MyIndustryJob>(IndustryJobTableFormat.class);
//Backend
eventList = program.getProfileData().getIndustryJobsEventList();
//Sorting (per column)
eventList.getReadWriteLock().readLock().lock();
SortedList<MyIndustryJob> sortedList = new SortedList<MyIndustryJob>(eventList);
eventList.getReadWriteLock().readLock().unlock();
//Filter
eventList.getReadWriteLock().readLock().lock();
filterList = new FilterList<MyIndustryJob>(sortedList);
eventList.getReadWriteLock().readLock().unlock();
filterList.addListEventListener(listener);
//Table Model
tableModel = EventModels.createTableModel(filterList, tableFormat);
//Table
jTable = new JIndustryJobsTable(program, tableModel);
jTable.setCellSelectionEnabled(true);
PaddingTableCellRenderer.install(jTable, 1);
//Sorting
TableComparatorChooser.install(jTable, sortedList, TableComparatorChooser.MULTIPLE_COLUMN_MOUSE, tableFormat);
//Selection Model
selectionModel = EventModels.createSelectionModel(filterList);
selectionModel.setSelectionMode(ListSelection.MULTIPLE_INTERVAL_SELECTION_DEFENSIVE);
jTable.setSelectionModel(selectionModel);
//Listeners
installTable(jTable, NAME);
//Scroll
JScrollPane jTableScroll = new JScrollPane(jTable);
//Table Filter
Map<String, List<Filter>> defaultFilters = new HashMap<String, List<Filter>>();
List<Filter> filter;
filter = new ArrayList<Filter>();
filter.add(new Filter(LogicType.AND, IndustryJobTableFormat.STATE, CompareType.EQUALS_NOT, IndustryJobState.STATE_DELIVERED.toString()));
defaultFilters.put(TabsJobs.get().active(), filter);
filter = new ArrayList<Filter>();
filter.add(new Filter(LogicType.AND, IndustryJobTableFormat.STATE, CompareType.EQUALS, IndustryJobState.STATE_DELIVERED.toString()));
defaultFilters.put(TabsJobs.get().completed(), filter);
filterControl = new IndustryJobsFilterControl(
tableFormat,
program.getMainWindow().getFrame(),
eventList,
sortedList,
filterList,
Settings.get().getTableFilters(NAME),
defaultFilters
);
//Menu
installMenu(program, new JobsTableMenu(), jTable, MyIndustryJob.class);
jInventionSuccess = StatusPanel.createLabel(TabsJobs.get().inventionSuccess(), Images.JOBS_INVENTION_SUCCESS.getIcon());
this.addStatusbarLabel(jInventionSuccess);
jManufactureOutputValue = StatusPanel.createLabel(TabsJobs.get().manufactureJobsValue(), Images.TOOL_VALUES.getIcon());
this.addStatusbarLabel(jManufactureOutputValue);
jCount = StatusPanel.createLabel(TabsJobs.get().count(), Images.EDIT_ADD.getIcon());
this.addStatusbarLabel(jCount);
layout.setHorizontalGroup(
layout.createParallelGroup()
.addComponent(filterControl.getPanel())
.addComponent(jTableScroll, 700, 700, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createSequentialGroup()
.addComponent(filterControl.getPanel())
.addComponent(jTableScroll, 100, 400, Short.MAX_VALUE)
);
}
示例19
public IndustryJobsFilterControl(EnumTableFormatAdaptor<IndustryJobTableFormat, MyIndustryJob> tableFormat, JFrame jFrame, EventList<MyIndustryJob> eventList, EventList<MyIndustryJob> exportEventList, FilterList<MyIndustryJob> filterList, Map<String, List<Filter>> filters, Map<String, List<Filter>> defaultFilters) {
super(jFrame, NAME, eventList, exportEventList, filterList, filters, defaultFilters);
this.tableFormat = tableFormat;
}
示例20
public ItemsTab(final Program program) {
super(program, TabsItems.get().items(), Images.TOOL_ITEMS.getIcon(), true);
//Table Format
tableFormat = new EnumTableFormatAdaptor<>(ItemTableFormat.class);
//Backend
eventList = EventListManager.create();
//Sorting (per column)
eventList.getReadWriteLock().readLock().lock();
SortedList<Item> sortedList = new SortedList<>(eventList);
eventList.getReadWriteLock().readLock().unlock();
//Filter
eventList.getReadWriteLock().readLock().lock();
filterList = new FilterList<>(sortedList);
eventList.getReadWriteLock().readLock().unlock();
//Table Model
tableModel = EventModels.createTableModel(filterList, tableFormat);
//Table
jTable = new JAutoColumnTable(program, tableModel);
jTable.setCellSelectionEnabled(true);
//Sorting
TableComparatorChooser.install(jTable, sortedList, TableComparatorChooser.MULTIPLE_COLUMN_MOUSE, tableFormat);
//Selection Model
selectionModel = EventModels.createSelectionModel(filterList);
selectionModel.setSelectionMode(ListSelection.MULTIPLE_INTERVAL_SELECTION_DEFENSIVE);
jTable.setSelectionModel(selectionModel);
//Listeners
installTable(jTable, NAME);
//Scroll
JScrollPane jTableScroll = new JScrollPane(jTable);
//Table Filter
filterControl = new ItemsFilterControl(
tableFormat,
program.getMainWindow().getFrame(),
eventList,
sortedList,
filterList,
Settings.get().getTableFilters(NAME)
);
//Menu
installMenu(program, new ItemTableMenu(), jTable, Item.class);
layout.setHorizontalGroup(
layout.createParallelGroup()
.addComponent(filterControl.getPanel())
.addComponent(jTableScroll, 0, 0, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createSequentialGroup()
.addComponent(filterControl.getPanel())
.addComponent(jTableScroll, 0, 0, Short.MAX_VALUE)
);
try {
eventList.getReadWriteLock().writeLock().lock();
eventList.clear();
eventList.addAll(StaticData.get().getItems().values());
} finally {
eventList.getReadWriteLock().writeLock().unlock();
}
}
示例21
public ItemsFilterControl(EnumTableFormatAdaptor<ItemTableFormat, Item> tableFormat, JFrame jFrame, EventList<Item> eventList, SortedList<Item> sortedList, FilterList<Item> filterList, Map<String, List<Filter>> filters) {
super(jFrame, NAME, eventList, sortedList, filterList, filters);
this.tableFormat = tableFormat;
}