Class 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.

    • 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

      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  
      • Fields inherited from class org.eclipse.jface.viewers.AbstractTreeViewer

        ALL_LEVELS
      • Fields inherited from class org.eclipse.jface.viewers.Viewer

        WIDGET_DATA_KEY
    • 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 rowIndex
      protected 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 underlying Grid 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 text
      protected 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
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface org.eclipse.jface.viewers.ISelectionProvider

        addSelectionChangedListener, removeSelectionChangedListener, setSelection
    • Field Detail

      • grid

        private Grid grid
        This viewer's grid control.
      • 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 bits MULTI, H_SCROLL, V_SCROLL, and BORDER. 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 control
        style - 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

      • getGrid

        public Grid getGrid()
        Returns the underlying Grid Control.
        Returns:
        grid control.
      • getItemAt

        protected org.eclipse.swt.widgets.Item getItemAt​(org.eclipse.swt.graphics.Point point)
        Overrides:
        getItemAt in class org.eclipse.jface.viewers.AbstractTreeViewer
      • createViewerEditor

        protected org.eclipse.jface.viewers.ColumnViewerEditor createViewerEditor()
        Overrides:
        createViewerEditor in class org.eclipse.jface.viewers.AbstractTreeViewer
      • addTreeListener

        protected void addTreeListener​(org.eclipse.swt.widgets.Control control,
                                       org.eclipse.swt.events.TreeListener listener)
        Specified by:
        addTreeListener in class org.eclipse.jface.viewers.AbstractTreeViewer
      • getChildren

        protected org.eclipse.swt.widgets.Item[] getChildren​(org.eclipse.swt.widgets.Widget o)
        Specified by:
        getChildren in class org.eclipse.jface.viewers.AbstractTreeViewer
      • getExpanded

        protected boolean getExpanded​(org.eclipse.swt.widgets.Item item)
        Specified by:
        getExpanded in class org.eclipse.jface.viewers.AbstractTreeViewer
      • getItemCount

        protected int getItemCount​(org.eclipse.swt.widgets.Control control)
        Specified by:
        getItemCount in class org.eclipse.jface.viewers.AbstractTreeViewer
      • getItemCount

        protected int getItemCount​(org.eclipse.swt.widgets.Item item)
        Specified by:
        getItemCount in class org.eclipse.jface.viewers.AbstractTreeViewer
      • getItems

        protected org.eclipse.swt.widgets.Item[] getItems​(org.eclipse.swt.widgets.Item item)
        Specified by:
        getItems in class org.eclipse.jface.viewers.AbstractTreeViewer
      • getParentItem

        protected org.eclipse.swt.widgets.Item getParentItem​(org.eclipse.swt.widgets.Item item)
        Specified by:
        getParentItem in class org.eclipse.jface.viewers.AbstractTreeViewer
      • getSelection

        protected org.eclipse.swt.widgets.Item[] getSelection​(org.eclipse.swt.widgets.Control control)
        Specified by:
        getSelection in class org.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 class org.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 row
        style - the style bits to use for the new row
        rowIndex - 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 class org.eclipse.jface.viewers.AbstractTreeViewer
      • setExpanded

        protected void setExpanded​(org.eclipse.swt.widgets.Item item,
                                   boolean expand)
        Specified by:
        setExpanded in class org.eclipse.jface.viewers.AbstractTreeViewer
      • setSelection

        protected void setSelection​(java.util.List items)
        Specified by:
        setSelection in class org.eclipse.jface.viewers.AbstractTreeViewer
      • showItem

        protected void showItem​(org.eclipse.swt.widgets.Item item)
        Specified by:
        showItem in class org.eclipse.jface.viewers.AbstractTreeViewer
      • getControl

        public org.eclipse.swt.widgets.Control getControl()
        Specified by:
        getControl in class org.eclipse.jface.viewers.Viewer
      • getViewerRowFromItem

        protected org.eclipse.jface.viewers.ViewerRow getViewerRowFromItem​(org.eclipse.swt.widgets.Widget item)
        Overrides:
        getViewerRowFromItem in class org.eclipse.jface.viewers.AbstractTreeViewer
      • getColumnViewerOwner

        protected org.eclipse.swt.widgets.Widget getColumnViewerOwner​(int columnIndex)
        Overrides:
        getColumnViewerOwner in class org.eclipse.jface.viewers.AbstractTreeViewer
      • doGetColumnCount

        protected int doGetColumnCount()
        Returns the number of columns of this viewer.
        Overrides:
        doGetColumnCount in class org.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 class org.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 element
        index - 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)