Class GridTreeViewer
- 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.AbstractTreeViewer
-
- org.eclipse.nebula.jface.gridviewer.GridTreeViewer
-
- All Implemented Interfaces:
org.eclipse.jface.viewers.IInputProvider
,org.eclipse.jface.viewers.IInputSelectionProvider
,org.eclipse.jface.viewers.IPostSelectionProvider
,org.eclipse.jface.viewers.ISelectionProvider
public class GridTreeViewer extends org.eclipse.jface.viewers.AbstractTreeViewer
A concrete viewer based on an Grid control.This class is not intended to be subclassed outside the viewer framework. It is designed to be instantiated with a pre-existing Grid control and configured with a domain-specific content provider, label provider, element filter (optional), and element sorter (optional).
Content providers for grid tree viewers must implement the
ITreeContentProvider
interface.The current implementation does not support lazy content providers.
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
autoPreferredHeight
If true, this grid viewer will ensure that the grid's rows / GridItems are always sized to their preferred height.private GridViewerRow
cachedRow
private Grid
grid
This viewer's grid control.private org.eclipse.jface.viewers.CellLabelProvider
rowHeaderLabelProvider
-
Constructor Summary
Constructors Constructor Description GridTreeViewer(Grid grid)
Creates a grid tree viewer on the given grid control.GridTreeViewer(org.eclipse.swt.widgets.Composite parent)
Creates a grid tree viewer on a newly-created grid control under the given parent.GridTreeViewer(org.eclipse.swt.widgets.Composite parent, int style)
Creates a grid tree viewer on a newly-created grid control under the given parent.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addTreeListener(org.eclipse.swt.widgets.Control control, org.eclipse.swt.events.TreeListener listener)
private org.eclipse.jface.viewers.ViewerRow
createNewRowPart(org.eclipse.jface.viewers.ViewerRow parent, int style, int rowIndex)
Create a new ViewerRow at rowIndexprotected org.eclipse.jface.viewers.ColumnViewerEditor
createViewerEditor()
protected int
doGetColumnCount()
Returns the number of columns of this viewer.protected void
doUpdateItem(org.eclipse.swt.widgets.Item item, java.lang.Object element)
boolean
getAutoPreferredHeight()
protected org.eclipse.swt.widgets.Item[]
getChildren(org.eclipse.swt.widgets.Widget o)
protected org.eclipse.swt.widgets.Widget
getColumnViewerOwner(int columnIndex)
org.eclipse.swt.widgets.Control
getControl()
protected boolean
getExpanded(org.eclipse.swt.widgets.Item item)
Grid
getGrid()
Returns the underlyingGrid
Control.protected org.eclipse.swt.widgets.Item
getItemAt(org.eclipse.swt.graphics.Point point)
protected int
getItemCount(org.eclipse.swt.widgets.Control control)
protected int
getItemCount(org.eclipse.swt.widgets.Item item)
protected org.eclipse.swt.widgets.Item[]
getItems(org.eclipse.swt.widgets.Item item)
protected org.eclipse.swt.widgets.Item
getParentItem(org.eclipse.swt.widgets.Item item)
protected org.eclipse.swt.widgets.Item[]
getSelection(org.eclipse.swt.widgets.Control control)
protected org.eclipse.jface.viewers.ViewerRow
getViewerRowFromItem(org.eclipse.swt.widgets.Widget item)
protected org.eclipse.swt.widgets.Item
newItem(org.eclipse.swt.widgets.Widget parent, int style, int index)
void
remove(java.lang.Object parentOrTreePath, int index)
Removes the element at the specified index of the parent.protected void
removeAll(org.eclipse.swt.widgets.Control control)
void
setAutoPreferredHeight(boolean autoPreferredHeight)
When set to true, this grid viewer will ensure that each of the grid's items is always automatically sized to its preferred height.protected void
setExpanded(org.eclipse.swt.widgets.Item item, boolean expand)
void
setRowHeaderLabelProvider(org.eclipse.jface.viewers.CellLabelProvider rowHeaderLabelProvider)
Label provider used by calculate the row header textprotected void
setSelection(java.util.List items)
protected void
showItem(org.eclipse.swt.widgets.Item item)
private void
updateRowHeader(org.eclipse.swt.widgets.Widget widget)
-
Methods inherited from class org.eclipse.jface.viewers.AbstractTreeViewer
add, add, addSelectionListener, addTreeListener, assertContentProviderType, associate, buildLabel, collapseAll, collapseToLevel, createChildren, createTreeItem, disassociate, doFindInputItem, doFindItem, doUpdateItem, expandAll, expandAll, expandToLevel, expandToLevel, expandToLevel, expandToLevel, fireTreeCollapsed, fireTreeExpanded, getAutoExpandLevel, getChild, getChildren, getExpandedElements, getExpandedState, getExpandedTreePaths, getNextItem, getParentElement, getPreviousItem, getRawChildren, getSelection, getSelectionFromWidget, getSortedChildren, getStructuredSelection, getTreePathFromItem, getVisibleExpandedElements, handleDoubleSelect, handleTreeCollapse, handleTreeExpand, hookControl, indexForElement, inputChanged, insert, internalAdd, internalCollapseToLevel, internalExpand, internalExpandToLevel, internalFindItems, internalGetWidgetToSelect, internalInitializeTree, internalIsInputOrEmptyPath, internalRefresh, internalRefresh, internalRefresh, internalRemove, internalRemove, isExpandable, isSameSelection, labelProviderChanged, remove, remove, remove, removeTreeListener, reveal, scrollDown, scrollUp, setAutoExpandLevel, setContentProvider, setExpandedElements, setExpandedState, setExpandedTreePaths, setExpandPreCheckFilters, setSelectionToWidget, setSelectionToWidget, updateChildren, updatePlus
-
Methods inherited from class org.eclipse.jface.viewers.ColumnViewer
applyEditorValue, cancelEditing, checkBusy, editElement, getCell, getCellEditors, getCellModifier, getColumnProperties, getColumnViewerEditor, getItem, getLabelProvider, getViewerRow, handleDispose, hookEditingSupport, isBusy, isCellEditorActive, refresh, refresh, setBusy, setCellEditors, setCellModifier, setColumnProperties, setColumnViewerEditor, setLabelProvider, triggerEditorActivationEvent, update
-
Methods inherited from class org.eclipse.jface.viewers.StructuredViewer
addDoubleClickListener, addDragSupport, addDropSupport, addFilter, addOpenListener, addPostSelectionChangedListener, assertElementsNotNull, equals, filter, findItem, findItems, fireDoubleClick, fireOpen, firePostSelectionChanged, getColorAndFontCollector, getComparator, getComparer, getFilteredChildren, getFilters, getRoot, getSorter, handleInvalidSelection, handleLabelProviderChanged, handleOpen, handlePostSelect, handleSelect, hasFilters, internalUpdate, mapElement, needsRefilter, preservingSelection, refresh, refresh, refreshItem, removeDoubleClickListener, removeFilter, removeOpenListener, removePostSelectionChangedListener, resetFilters, setComparator, setComparer, setFilters, setInput, setSelection, setSorter, setUseHashlookup, testFindItem, testFindItems, unmapAllElements, unmapElement, unmapElement, update, updateItem, updateSelection, usingElementMap
-
Methods inherited from class org.eclipse.jface.viewers.ContentViewer
getContentProvider, getInput, getLabelProvider
-
Methods inherited from class org.eclipse.jface.viewers.Viewer
addHelpListener, addSelectionChangedListener, fireHelpRequested, fireSelectionChanged, getData, handleHelpRequest, removeHelpListener, removeSelectionChangedListener, setData, setSelection
-
-
-
-
Field Detail
-
grid
private Grid grid
This viewer's grid control.
-
cachedRow
private GridViewerRow cachedRow
-
autoPreferredHeight
private boolean autoPreferredHeight
If true, this grid viewer will ensure that the grid's rows / GridItems are always sized to their preferred height.
-
rowHeaderLabelProvider
private org.eclipse.jface.viewers.CellLabelProvider rowHeaderLabelProvider
-
-
Constructor Detail
-
GridTreeViewer
public GridTreeViewer(org.eclipse.swt.widgets.Composite parent)
Creates a grid tree viewer on a newly-created grid control under the given parent. The grid control is created using the SWT style bitsMULTI, H_SCROLL, V_SCROLL,
andBORDER
. The viewer has no input, no content provider, a default label provider, no sorter, and no filters.- Parameters:
parent
- the parent control
-
GridTreeViewer
public GridTreeViewer(org.eclipse.swt.widgets.Composite parent, int style)
Creates a grid tree viewer on a newly-created grid control under the given parent. The grid control is created using the given SWT style bits. The viewer has no input, no content provider, a default label provider, no sorter, and no filters.- Parameters:
parent
- the parent controlstyle
- the SWT style bits used to create the grid.
-
GridTreeViewer
public GridTreeViewer(Grid grid)
Creates a grid tree viewer on the given grid control. The viewer has no input, no content provider, a default label provider, no sorter, and no filters.- Parameters:
grid
- the grid control
-
-
Method Detail
-
getItemAt
protected org.eclipse.swt.widgets.Item getItemAt(org.eclipse.swt.graphics.Point point)
- Overrides:
getItemAt
in classorg.eclipse.jface.viewers.AbstractTreeViewer
-
createViewerEditor
protected org.eclipse.jface.viewers.ColumnViewerEditor createViewerEditor()
- Overrides:
createViewerEditor
in classorg.eclipse.jface.viewers.AbstractTreeViewer
-
addTreeListener
protected void addTreeListener(org.eclipse.swt.widgets.Control control, org.eclipse.swt.events.TreeListener listener)
- Specified by:
addTreeListener
in classorg.eclipse.jface.viewers.AbstractTreeViewer
-
getChildren
protected org.eclipse.swt.widgets.Item[] getChildren(org.eclipse.swt.widgets.Widget o)
- Specified by:
getChildren
in classorg.eclipse.jface.viewers.AbstractTreeViewer
-
getExpanded
protected boolean getExpanded(org.eclipse.swt.widgets.Item item)
- Specified by:
getExpanded
in classorg.eclipse.jface.viewers.AbstractTreeViewer
-
getItemCount
protected int getItemCount(org.eclipse.swt.widgets.Control control)
- Specified by:
getItemCount
in classorg.eclipse.jface.viewers.AbstractTreeViewer
-
getItemCount
protected int getItemCount(org.eclipse.swt.widgets.Item item)
- Specified by:
getItemCount
in classorg.eclipse.jface.viewers.AbstractTreeViewer
-
getItems
protected org.eclipse.swt.widgets.Item[] getItems(org.eclipse.swt.widgets.Item item)
- Specified by:
getItems
in classorg.eclipse.jface.viewers.AbstractTreeViewer
-
getParentItem
protected org.eclipse.swt.widgets.Item getParentItem(org.eclipse.swt.widgets.Item item)
- Specified by:
getParentItem
in classorg.eclipse.jface.viewers.AbstractTreeViewer
-
getSelection
protected org.eclipse.swt.widgets.Item[] getSelection(org.eclipse.swt.widgets.Control control)
- Specified by:
getSelection
in classorg.eclipse.jface.viewers.AbstractTreeViewer
-
newItem
protected org.eclipse.swt.widgets.Item newItem(org.eclipse.swt.widgets.Widget parent, int style, int index)
- Specified by:
newItem
in classorg.eclipse.jface.viewers.AbstractTreeViewer
-
createNewRowPart
private org.eclipse.jface.viewers.ViewerRow createNewRowPart(org.eclipse.jface.viewers.ViewerRow parent, int style, int rowIndex)
Create a new ViewerRow at rowIndex- Parameters:
parent
- the parent rowstyle
- the style bits to use for the new rowrowIndex
- the index at which the new row should be created under the parent- Returns:
- ViewerRow the new row
-
removeAll
protected void removeAll(org.eclipse.swt.widgets.Control control)
- Specified by:
removeAll
in classorg.eclipse.jface.viewers.AbstractTreeViewer
-
setExpanded
protected void setExpanded(org.eclipse.swt.widgets.Item item, boolean expand)
- Specified by:
setExpanded
in classorg.eclipse.jface.viewers.AbstractTreeViewer
-
setSelection
protected void setSelection(java.util.List items)
- Specified by:
setSelection
in classorg.eclipse.jface.viewers.AbstractTreeViewer
-
showItem
protected void showItem(org.eclipse.swt.widgets.Item item)
- Specified by:
showItem
in classorg.eclipse.jface.viewers.AbstractTreeViewer
-
getControl
public org.eclipse.swt.widgets.Control getControl()
- Specified by:
getControl
in classorg.eclipse.jface.viewers.Viewer
-
getViewerRowFromItem
protected org.eclipse.jface.viewers.ViewerRow getViewerRowFromItem(org.eclipse.swt.widgets.Widget item)
- Overrides:
getViewerRowFromItem
in classorg.eclipse.jface.viewers.AbstractTreeViewer
-
getColumnViewerOwner
protected org.eclipse.swt.widgets.Widget getColumnViewerOwner(int columnIndex)
- Overrides:
getColumnViewerOwner
in classorg.eclipse.jface.viewers.AbstractTreeViewer
-
doGetColumnCount
protected int doGetColumnCount()
Returns the number of columns of this viewer.- Overrides:
doGetColumnCount
in classorg.eclipse.jface.viewers.AbstractTreeViewer
- Returns:
- the number of columns
-
setAutoPreferredHeight
public void setAutoPreferredHeight(boolean autoPreferredHeight)
When set to true, this grid viewer will ensure that each of the grid's items is always automatically sized to its preferred height. The default is false.Since this mechanism usually leads to a grid with rows of different heights and thus to a grid with decreased performance, it should only be applied if that is intended. To set the height of all items to a specific value, use
Grid.setItemHeight(int)
instead.When a column with activated word wrapping is resized by dragging the column resizer, the items are only auto-resized properly if you use
GridViewerColumn
to create the columns.When this method is called, existing rows are not resized to their preferred height. Therefore it is suggested that this method be called before rows are populated (i.e. before setInput).
-
getAutoPreferredHeight
public boolean getAutoPreferredHeight()
- Returns:
- true if this grid viewer sizes its rows to their preferred height
- See Also:
setAutoPreferredHeight(boolean)
-
doUpdateItem
protected void doUpdateItem(org.eclipse.swt.widgets.Item item, java.lang.Object element)
- Overrides:
doUpdateItem
in classorg.eclipse.jface.viewers.AbstractTreeViewer
-
remove
public void remove(java.lang.Object parentOrTreePath, int index)
Removes the element at the specified index of the parent. The selection is updated if required.- Parameters:
parentOrTreePath
- the parent element, the input element, or a tree path to the parent elementindex
- child index- Since:
- 3.3
-
setRowHeaderLabelProvider
public void setRowHeaderLabelProvider(org.eclipse.jface.viewers.CellLabelProvider rowHeaderLabelProvider)
Label provider used by calculate the row header text- Parameters:
rowHeaderLabelProvider
- the provider
-
updateRowHeader
private void updateRowHeader(org.eclipse.swt.widgets.Widget widget)
-
-