Class Table<T>
java.lang.Object
org.eclipse.jface.viewers.Viewer
org.eclipse.jface.viewers.ContentViewer
org.eclipse.jface.viewers.StructuredViewer
org.eclipse.jface.viewers.ColumnViewer
org.eclipse.jface.viewers.AbstractTableViewer
org.eclipse.jface.viewers.TableViewer
com.amalgamasimulation.desktop.ui.tables.Table<T>
- All Implemented Interfaces:
com.amalgamasimulation.viewupdater.SimulationView,org.eclipse.jface.viewers.IInputProvider,org.eclipse.jface.viewers.IInputSelectionProvider,org.eclipse.jface.viewers.IPostSelectionProvider,org.eclipse.jface.viewers.ISelectionProvider
- Direct Known Subclasses:
EditableTable,EMFTable,TableView
public class Table<T>
extends org.eclipse.jface.viewers.TableViewer
implements com.amalgamasimulation.viewupdater.SimulationView
-
Nested Class Summary
Nested classes/interfaces inherited from class org.eclipse.jface.viewers.StructuredViewer
org.eclipse.jface.viewers.StructuredViewer.ColorAndFontCollector, org.eclipse.jface.viewers.StructuredViewer.ColorAndFontCollectorWithProviders -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected ColumnViewAdapter<T> protected static intprotected org.eclipse.swt.widgets.Compositeprotected Consumer<org.eclipse.jface.viewers.SelectionChangedEvent> Fields inherited from class org.eclipse.jface.viewers.Viewer
WIDGET_DATA_KEY -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddCheckedItemsChangedHandler(Consumer<List<T>> checkedItemsChangedHandler) Registers a handler for checked items change events.voidaddContextMenuHandler(Consumer<ColumnViewAdapter.ContextMenuArgs<T>> contextMenuHandler) Registers a handler for context menu events.voidaddDoubleClickHandler(BiConsumer<T, org.eclipse.jface.viewers.DoubleClickEvent> doubleClickHandler) Registers a handler for double-click events on table rows.voidaddFilter(org.eclipse.jface.viewers.ViewerFilter filter) voidaddSelectedItemChangedHandler(Consumer<T> selectedItemChangedHandler) Registers a handler for selected item change events.voidcheckAllItems(boolean callHandlers) Checks all items in the table.voidcheckItems(List<T> items) Checks the specified items, no triggering change handlers.voidcheckItems(List<T> items, boolean callHandlers) Checks the specified items, optionally triggering change handlers.Creates a new column with the specified value extractor function.Creates a new column with the specified value extractor function at the given index.voidCopies the visible rows to the system clipboard.protected voidcreateCheckboxColumn(String name, int width, ColumnViewAdapter<T> columnViewAdapter) protected voidcreateRowHeaderColumn(org.eclipse.swt.graphics.Image imageHeader, int width, ColumnViewAdapter<T> columnViewAdapter) protected voidfireSelectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent event) Returns the list of currently checked items.getData(int itemIndex) Returns the data object at the specified row index.protected List<ColumnViewAdapter.MenuItemDescriptor> getEditingMenuItems(IColumn<T, ?, ?> column, T clickedElement) intReturns the index of the first selected row.getItem(int rowIndex) Returns the item at the specified row index.protected ColumnViewAdapter.TypeCheckBoxgetTypeCheckBox(boolean checkbox) org.eclipse.jface.viewers.ViewerRowgetViewerRow(org.eclipse.swt.widgets.Widget item) protected voidinputChanged(Object input, Object oldInput) protected voidinternalRefresh(Object element, boolean updateLabels) protected voidbooleanbooleanReturns whether quick filtering is allowed for this table.booleanisShown()voidremoveCheckedItemsChangedHandler(Consumer<List<T>> checkedItemsChangedHandler) Unregisters a previously registered checked items change handler.voidremoveColumn(int index) Removes the column at the specified index.removeColumn(R viewerColumnDescriptor) Removes the specified column from the table.voidremoveContextMenuHandler(Consumer<ColumnViewAdapter.ContextMenuArgs<T>> contextMenuHandler) Unregisters a previously registered context menu handler.voidremoveDoubleClickHandler(BiConsumer<T, org.eclipse.jface.viewers.DoubleClickEvent> doubleClickHandler) Unregisters a previously registered double-click handler.voidremoveFilter(org.eclipse.jface.viewers.ViewerFilter filter) voidremoveSelectedItemChangedHandler(Consumer<T> selectedItemChangedHandler) Unregisters a previously registered selected item change handler.voidvoidsetMaxCheckedItemsCount(int maxCheckedItemsCount) Sets the maximum number of items that can be checked simultaneously.voidsetQuickFilterAllowed(boolean isQuickFilterAllowed) Enables or disables quick filtering for the table.voidsetSelectedRowIndex(int rowIndex) Selects the row at the specified index.voidsetSelectionChangedConsumer(Consumer<org.eclipse.jface.viewers.SelectionChangedEvent> selectionChangedConsumer) voidsetSortingAllowed(boolean isSortingAllowed) Enables or disables column sorting for the table.voidshowDefaultContextMenu(boolean showDefaultContextMenu) Controls whether the default context menu is shown.static org.eclipse.swt.graphics.ColorvoiduncheckAllItems(boolean callHandlers) Unchecks all items in the table.voidvoidMethods inherited from class org.eclipse.jface.viewers.TableViewer
createViewerEditor, doClear, doClearAll, doDeselectAll, doFindItem, doGetColumn, doGetColumnCount, doGetItem, doGetItemCount, doGetItems, doGetSelection, doGetSelectionIndices, doIndexOf, doRemove, doRemove, doRemoveAll, doResetItem, doSelect, doSetItemCount, doSetSelection, doSetSelection, doShowItem, doShowSelection, getControl, getItemAt, getTable, getViewerRowFromItem, internalCreateNewRowPart, refresh, refresh, remove, setSelectionMethods inherited from class org.eclipse.jface.viewers.AbstractTableViewer
add, add, assertContentProviderType, clear, contains, doFindInputItem, doUpdateItem, getColumnViewerOwner, getElementAt, getLabelProvider, getRawChildren, getSelectionFromWidget, handleDispose, hookControl, indexForElement, insert, internalRefresh, remove, replace, reveal, setContentProvider, setItemCount, setSelectionToWidgetMethods inherited from class org.eclipse.jface.viewers.ColumnViewer
applyEditorValue, cancelEditing, checkBusy, disassociate, editElement, firePostSelectionChanged, getCell, getCellEditors, getCellModifier, getColumnProperties, getColumnViewerEditor, getItem, getLabelProvider, getSortedChildren, getViewerRow, handleDoubleSelect, hookEditingSupport, isBusy, isCellEditorActive, isExpandableNode, refresh, refresh, setBusy, setCellEditors, setCellModifier, setColumnProperties, setColumnViewerEditor, setDisplayIncrementally, setLabelProvider, triggerEditorActivationEvent, update, updateSelectionMethods inherited from class org.eclipse.jface.viewers.StructuredViewer
addDoubleClickListener, addDragSupport, addDropSupport, addOpenListener, addPostSelectionChangedListener, assertElementsNotNull, associate, buildLabel, equals, filter, findItem, findItems, fireDoubleClick, fireOpen, getColorAndFontCollector, getComparator, getComparer, getFilteredChildren, getFilters, getRoot, getSelection, getSorter, getStructuredSelection, handleInvalidSelection, handleLabelProviderChanged, handleOpen, handlePostSelect, handleSelect, hasFilters, internalUpdate, mapElement, needsRefilter, preservingSelection, refresh, refresh, refreshItem, removeDoubleClickListener, removeOpenListener, removePostSelectionChangedListener, resetFilters, setComparator, setComparer, setFilters, setInput, setSelectionToWidget, setSorter, setUseHashlookup, testFindItem, testFindItems, unmapAllElements, unmapElement, unmapElement, update, updateItem, usingElementMapMethods inherited from class org.eclipse.jface.viewers.ContentViewer
getContentProvider, getInput, labelProviderChangedMethods inherited from class org.eclipse.jface.viewers.Viewer
addHelpListener, addSelectionChangedListener, fireHelpRequested, getData, handleHelpRequest, removeHelpListener, removeSelectionChangedListener, scrollDown, scrollUp, setData, setSelectionMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.eclipse.jface.viewers.ISelectionProvider
addSelectionChangedListener, removeSelectionChangedListener, setSelection
-
Field Details
-
DEFAULT_TABLE_COLUMN_WIDTH
protected static int DEFAULT_TABLE_COLUMN_WIDTH -
parent
protected org.eclipse.swt.widgets.Composite parent -
columnViewAdapter
-
selectionChangedConsumer
-
-
Constructor Details
-
Table
-
-
Method Details
-
getTypeCheckBox
-
createRowHeaderColumn
protected void createRowHeaderColumn(org.eclipse.swt.graphics.Image imageHeader, int width, ColumnViewAdapter<T> columnViewAdapter) -
createCheckboxColumn
-
getEditingMenuItems
protected List<ColumnViewAdapter.MenuItemDescriptor> getEditingMenuItems(IColumn<T, ?, ?> column, T clickedElement) -
getViewerRow
public org.eclipse.jface.viewers.ViewerRow getViewerRow(org.eclipse.swt.widgets.Widget item) -
getData
Returns the data object at the specified row index.- Parameters:
itemIndex- the row index in the table (considering filtering)- Returns:
- the data object, or null if the index is invalid
-
fireSelectionChanged
protected void fireSelectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent event) - Overrides:
fireSelectionChangedin classorg.eclipse.jface.viewers.Viewer
-
addFilter
public void addFilter(org.eclipse.jface.viewers.ViewerFilter filter) - Overrides:
addFilterin classorg.eclipse.jface.viewers.StructuredViewer
-
removeFilter
public void removeFilter(org.eclipse.jface.viewers.ViewerFilter filter) - Overrides:
removeFilterin classorg.eclipse.jface.viewers.StructuredViewer
-
inputChanged
- Overrides:
inputChangedin classorg.eclipse.jface.viewers.AbstractTableViewer
-
column
Creates a new column with the specified value extractor function at the given index.- Type Parameters:
E- the type of the column value- Parameters:
extractor- function that extracts the column value from a row objectindex- the position to insert the column (-1 for adding to the first position)- Returns:
- the created column descriptor for further configuration
-
column
Creates a new column with the specified value extractor function. The column is added to the first position- Type Parameters:
E- the type of the column value- Parameters:
extractor- function that extracts the column value from a row object- Returns:
- the created column descriptor for further configuration
-
invalidateEditors
protected void invalidateEditors() -
setSelectionChangedConsumer
public void setSelectionChangedConsumer(Consumer<org.eclipse.jface.viewers.SelectionChangedEvent> selectionChangedConsumer) -
removeColumn
public void removeColumn(int index) Removes the column at the specified index.- Parameters:
index- the index of the column to remove
-
removeColumn
Removes the specified column from the table.- Type Parameters:
R- the column type to remove- Parameters:
viewerColumnDescriptor- the column descriptor to remove
-
swtColor
-
addCheckedItemsChangedHandler
Registers a handler for checked items change events. The handler is invoked whenever the set of checked items changes.- Parameters:
checkedItemsChangedHandler- the consumer accepting the list of checked items
-
removeCheckedItemsChangedHandler
Unregisters a previously registered checked items change handler.- Parameters:
checkedItemsChangedHandler- the handler to remove
-
addContextMenuHandler
public void addContextMenuHandler(Consumer<ColumnViewAdapter.ContextMenuArgs<T>> contextMenuHandler) Registers a handler for context menu events. The handler will be invoked when a context menu is requested on a table cell.- Parameters:
contextMenuHandler- the consumer to handleColumnViewAdapter.ContextMenuArgsevents
-
removeContextMenuHandler
public void removeContextMenuHandler(Consumer<ColumnViewAdapter.ContextMenuArgs<T>> contextMenuHandler) Unregisters a previously registered context menu handler.- Parameters:
contextMenuHandler- the consumer to remove from the event handlers list
-
addSelectedItemChangedHandler
Registers a handler for selected item change events.- Parameters:
selectedItemChangedHandler- the consumer accepting the newly selected item
-
removeSelectedItemChangedHandler
Unregisters a previously registered selected item change handler.- Parameters:
selectedItemChangedHandler- the handler to remove
-
addDoubleClickHandler
public void addDoubleClickHandler(BiConsumer<T, org.eclipse.jface.viewers.DoubleClickEvent> doubleClickHandler) Registers a handler for double-click events on table rows.- Parameters:
doubleClickHandler- the handler accepting the clicked element and the event
-
removeDoubleClickHandler
public void removeDoubleClickHandler(BiConsumer<T, org.eclipse.jface.viewers.DoubleClickEvent> doubleClickHandler) Unregisters a previously registered double-click handler.- Parameters:
doubleClickHandler- the handler to remove
-
setSortingAllowed
public void setSortingAllowed(boolean isSortingAllowed) Enables or disables column sorting for the table.- Parameters:
isSortingAllowed- true to allow sorting, false to disable it
-
setData
-
getFirstSelectedRowIndex
public int getFirstSelectedRowIndex()Returns the index of the first selected row.- Returns:
- the row index, or -1 if no row is selected
-
setSelectedRowIndex
public void setSelectedRowIndex(int rowIndex) Selects the row at the specified index.- Parameters:
rowIndex- the index of the row to select
-
getCheckedItems
Returns the list of currently checked items.- Returns:
- an immutable list of checked items (empty list if none)
-
checkItems
Checks the specified items, no triggering change handlers.- Parameters:
items- the list of items to check
-
checkItems
Checks the specified items, optionally triggering change handlers.- Parameters:
items- the list of items to checkcallHandlers- true to trigger change handlers, false otherwise
-
checkAllItems
public void checkAllItems(boolean callHandlers) Checks all items in the table.- Parameters:
callHandlers- true to trigger change handlers, false otherwise
-
uncheckAllItems
public void uncheckAllItems(boolean callHandlers) Unchecks all items in the table.- Parameters:
callHandlers- true to trigger change handlers, false otherwise
-
isQuickFilterAllowed
public boolean isQuickFilterAllowed()Returns whether quick filtering is allowed for this table.- Returns:
- true if quick filtering is allowed, false otherwise
-
setQuickFilterAllowed
public void setQuickFilterAllowed(boolean isQuickFilterAllowed) Enables or disables quick filtering for the table.- Parameters:
isQuickFilterAllowed- true to allow quick filtering, false to disable it
-
setMaxCheckedItemsCount
public void setMaxCheckedItemsCount(int maxCheckedItemsCount) Sets the maximum number of items that can be checked simultaneously.- Parameters:
maxCheckedItemsCount- the maximum allowed checked items count
-
getViewerColumnDescriptors
-
isDisposed
public boolean isDisposed()- Specified by:
isDisposedin interfacecom.amalgamasimulation.viewupdater.SimulationView
-
isShown
public boolean isShown()- Specified by:
isShownin interfacecom.amalgamasimulation.viewupdater.SimulationView
-
copyToClipboard
public void copyToClipboard()Copies the visible rows to the system clipboard. -
updateContent
public void updateContent()- Specified by:
updateContentin interfacecom.amalgamasimulation.viewupdater.SimulationView
-
updateView
public void updateView()- Specified by:
updateViewin interfacecom.amalgamasimulation.viewupdater.SimulationView
-
getItem
Returns the item at the specified row index. Does not work for VIRTUAL table- Parameters:
rowIndex- the row index- Returns:
- the item at that row, or null if index is invalid
-
internalRefresh
- Overrides:
internalRefreshin classorg.eclipse.jface.viewers.AbstractTableViewer
-
showDefaultContextMenu
public void showDefaultContextMenu(boolean showDefaultContextMenu) Controls whether the default context menu is shown.- Parameters:
showDefaultContextMenu- true to show the default context menu, false to hide it
-