ca.odell.glazedlists.FilterList Java Examples

The following examples show how to use ca.odell.glazedlists.FilterList. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: FilterControl.java    From jeveassets with GNU General Public License v2.0 5 votes vote down vote up
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>();
}
 
Example #2
Source File: TODOLists.java    From cropplanning with GNU General Public License v3.0 5 votes vote down vote up
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 );
    
}
 
Example #3
Source File: StockpileTab.java    From jeveassets with GNU General Public License v2.0 4 votes vote down vote up
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;
}
 
Example #4
Source File: FilterControl.java    From jeveassets with GNU General Public License v2.0 4 votes vote down vote up
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>>());
}
 
Example #5
Source File: ItemsTab.java    From jeveassets with GNU General Public License v2.0 4 votes vote down vote up
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;
}
 
Example #6
Source File: ItemsTab.java    From jeveassets with GNU General Public License v2.0 4 votes vote down vote up
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();
	}
}
 
Example #7
Source File: IndustryJobsTab.java    From jeveassets with GNU General Public License v2.0 4 votes vote down vote up
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;
}
 
Example #8
Source File: IndustryJobsTab.java    From jeveassets with GNU General Public License v2.0 4 votes vote down vote up
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)
	);
}
 
Example #9
Source File: AssetsTab.java    From jeveassets with GNU General Public License v2.0 4 votes vote down vote up
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);
}
 
Example #10
Source File: AssetsTab.java    From jeveassets with GNU General Public License v2.0 4 votes vote down vote up
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)
	);
}
 
Example #11
Source File: ValueTableTab.java    From jeveassets with GNU General Public License v2.0 4 votes vote down vote up
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;
}
 
Example #12
Source File: ValueTableTab.java    From jeveassets with GNU General Public License v2.0 4 votes vote down vote up
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)
	);
}
 
Example #13
Source File: FilterControl.java    From jeveassets with GNU General Public License v2.0 4 votes vote down vote up
public FilterList<E> getFilterList() {
	return filterList;
}
 
Example #14
Source File: StockpileDialog.java    From jeveassets with GNU General Public License v2.0 4 votes vote down vote up
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());
	}
}
 
Example #15
Source File: MarketOrdersTab.java    From jeveassets with GNU General Public License v2.0 4 votes vote down vote up
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;
}
 
Example #16
Source File: ReprocessedTab.java    From jeveassets with GNU General Public License v2.0 4 votes vote down vote up
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;
}
 
Example #17
Source File: ReprocessedTab.java    From jeveassets with GNU General Public License v2.0 4 votes vote down vote up
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)
	);
}
 
Example #18
Source File: TreeTab.java    From jeveassets with GNU General Public License v2.0 4 votes vote down vote up
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);
}
 
Example #19
Source File: ContractsTab.java    From jeveassets with GNU General Public License v2.0 4 votes vote down vote up
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;
}
 
Example #20
Source File: ContractsTab.java    From jeveassets with GNU General Public License v2.0 4 votes vote down vote up
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)
	);
}
 
Example #21
Source File: TransactionTab.java    From jeveassets with GNU General Public License v2.0 4 votes vote down vote up
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;
}