Class GridTableViewer

  • 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 GridTableViewer
    extends org.eclipse.jface.viewers.AbstractTableViewer
    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 table viewers must not implement the ITreeContentProvider interface. Instead a GridTreeViewer should be used.

    • 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.Viewer

        WIDGET_DATA_KEY
    • Constructor Summary

      Constructors 
      Constructor Description
      GridTableViewer​(DataVisualizer dataVisualizer, org.eclipse.swt.widgets.Composite parent)
      Creates a grid viewer on a newly-created grid control under the given parent.
      GridTableViewer​(DataVisualizer dataVisualizer, org.eclipse.swt.widgets.Composite parent, int style)
      Creates a grid viewer on a newly-created grid control under the given parent.
      GridTableViewer​(Grid grid)
      Creates a grid viewer on the given grid control.
      GridTableViewer​(org.eclipse.swt.widgets.Composite parent)
      Creates a grid viewer on a newly-created grid control under the given parent.
      GridTableViewer​(org.eclipse.swt.widgets.Composite parent, int style)
      Creates a grid viewer on a newly-created grid control under the given parent.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private CellSelection createCellSelection()  
      protected org.eclipse.jface.viewers.ColumnViewerEditor createViewerEditor()
      protected void doClear​(int index)
      protected void doClearAll()
      protected void doDeselectAll()
      protected org.eclipse.swt.widgets.Widget doGetColumn​(int index)
      protected int doGetColumnCount()
      protected org.eclipse.swt.widgets.Item doGetItem​(int index)
      protected int doGetItemCount()
      protected org.eclipse.swt.widgets.Item[] doGetItems()
      protected org.eclipse.swt.widgets.Item[] doGetSelection()
      protected int[] doGetSelectionIndices()
      protected int doIndexOf​(org.eclipse.swt.widgets.Item item)
      protected void doRemove​(int[] indices)
      protected void doRemove​(int start, int end)
      protected void doRemoveAll()
      protected void doResetItem​(org.eclipse.swt.widgets.Item item)
      protected void doSelect​(int[] indices)
      protected void doSetItemCount​(int count)
      protected void doSetSelection​(int[] indices)
      protected void doSetSelection​(org.eclipse.swt.widgets.Item[] items)
      protected void doShowItem​(org.eclipse.swt.widgets.Item item)
      protected void doShowSelection()
      protected void doUpdateItem​(org.eclipse.swt.widgets.Widget widget, java.lang.Object element, boolean fullMap)
      void editElement​(java.lang.Object element, int column)
      boolean getAutoPreferredHeight()  
      org.eclipse.swt.widgets.Control getControl()
      Grid getGrid()
      Returns the underlying Grid Control.
      protected org.eclipse.swt.widgets.Item getItemAt​(org.eclipse.swt.graphics.Point point)
      org.eclipse.jface.viewers.ISelection getSelection()
      protected org.eclipse.jface.viewers.ViewerRow getViewerRowFromItem​(org.eclipse.swt.widgets.Widget item)
      protected void handleDispose​(org.eclipse.swt.events.DisposeEvent event)
      (non-Javadoc)
      protected org.eclipse.jface.viewers.ViewerRow internalCreateNewRowPart​(int style, int rowIndex)
      void refresh()  
      void refreshRowHeaders​(java.lang.Object element)
      Refresh row headers only
      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.
      void setRowHeaderLabelProvider​(org.eclipse.jface.viewers.CellLabelProvider rowHeaderLabelProvider)
      Label provider used by calculate the row header text
      protected void setSelectionToWidget​(org.eclipse.jface.viewers.ISelection selection, boolean reveal)
      private void updateRowHeader​(org.eclipse.swt.widgets.Widget widget)  
      • Methods inherited from class org.eclipse.jface.viewers.AbstractTableViewer

        add, add, assertContentProviderType, clear, doFindInputItem, doFindItem, getColumnViewerOwner, getElementAt, getLabelProvider, getRawChildren, getSelectionFromWidget, hookControl, indexForElement, inputChanged, insert, internalRefresh, internalRefresh, remove, remove, replace, reveal, setContentProvider, setItemCount, setSelectionToWidget
      • Methods inherited from class org.eclipse.jface.viewers.ColumnViewer

        applyEditorValue, cancelEditing, checkBusy, getCell, getCellEditors, getCellModifier, getColumnProperties, getColumnViewerEditor, getItem, getLabelProvider, getViewerRow, 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, associate, buildLabel, disassociate, equals, filter, findItem, findItems, fireDoubleClick, fireOpen, firePostSelectionChanged, getColorAndFontCollector, getComparator, getComparer, getFilteredChildren, getFilters, getRoot, getSortedChildren, getSorter, getStructuredSelection, handleDoubleSelect, handleInvalidSelection, handleLabelProviderChanged, handleOpen, handlePostSelect, handleSelect, hasFilters, internalUpdate, mapElement, needsRefilter, preservingSelection, 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, labelProviderChanged
      • Methods inherited from class org.eclipse.jface.viewers.Viewer

        addHelpListener, addSelectionChangedListener, fireHelpRequested, fireSelectionChanged, getData, handleHelpRequest, removeHelpListener, removeSelectionChangedListener, scrollDown, scrollUp, 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 final Grid grid
        This viewer's grid control.
      • rowHeaderLabelProvider

        private org.eclipse.jface.viewers.CellLabelProvider rowHeaderLabelProvider
      • autoPreferredHeight

        private boolean autoPreferredHeight
        If true, this grid viewer will ensure that the grid's rows / GridItems are always sized to their preferred height.
    • Constructor Detail

      • GridTableViewer

        public GridTableViewer​(org.eclipse.swt.widgets.Composite parent)
        Creates a grid 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
      • GridTableViewer

        public GridTableViewer​(DataVisualizer dataVisualizer,
                               org.eclipse.swt.widgets.Composite parent,
                               int style)
        Creates a grid 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:
        dataVisualizer -
        parent - the parent control
        style - the SWT style bits used to create the grid.
      • GridTableViewer

        public GridTableViewer​(DataVisualizer dataVisualizer,
                               org.eclipse.swt.widgets.Composite parent)
        Creates a grid 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:
        dataVisualizer -
        parent - the parent control
      • GridTableViewer

        public GridTableViewer​(org.eclipse.swt.widgets.Composite parent,
                               int style)
        Creates a grid 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.
      • GridTableViewer

        public GridTableViewer​(Grid grid)
        Creates a grid 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.
      • internalCreateNewRowPart

        protected org.eclipse.jface.viewers.ViewerRow internalCreateNewRowPart​(int style,
                                                                               int rowIndex)
        Specified by:
        internalCreateNewRowPart in class org.eclipse.jface.viewers.AbstractTableViewer
      • createViewerEditor

        protected org.eclipse.jface.viewers.ColumnViewerEditor createViewerEditor()
        Specified by:
        createViewerEditor in class org.eclipse.jface.viewers.ColumnViewer
      • doClear

        protected void doClear​(int index)
        Specified by:
        doClear in class org.eclipse.jface.viewers.AbstractTableViewer
      • doClearAll

        protected void doClearAll()
        Specified by:
        doClearAll in class org.eclipse.jface.viewers.AbstractTableViewer
      • refresh

        public void refresh()
        Overrides:
        refresh in class org.eclipse.jface.viewers.StructuredViewer
        See Also:
        StructuredViewer.refresh()
      • doSetItemCount

        protected void doSetItemCount​(int count)
        Specified by:
        doSetItemCount in class org.eclipse.jface.viewers.AbstractTableViewer
      • doDeselectAll

        protected void doDeselectAll()
        Specified by:
        doDeselectAll in class org.eclipse.jface.viewers.AbstractTableViewer
      • doGetColumn

        protected org.eclipse.swt.widgets.Widget doGetColumn​(int index)
        Specified by:
        doGetColumn in class org.eclipse.jface.viewers.AbstractTableViewer
      • doGetColumnCount

        protected int doGetColumnCount()
        Specified by:
        doGetColumnCount in class org.eclipse.jface.viewers.ColumnViewer
      • doGetItem

        protected org.eclipse.swt.widgets.Item doGetItem​(int index)
        Specified by:
        doGetItem in class org.eclipse.jface.viewers.AbstractTableViewer
      • doGetItemCount

        protected int doGetItemCount()
        Specified by:
        doGetItemCount in class org.eclipse.jface.viewers.AbstractTableViewer
      • doGetItems

        protected org.eclipse.swt.widgets.Item[] doGetItems()
        Specified by:
        doGetItems in class org.eclipse.jface.viewers.AbstractTableViewer
      • doGetSelection

        protected org.eclipse.swt.widgets.Item[] doGetSelection()
        Specified by:
        doGetSelection in class org.eclipse.jface.viewers.AbstractTableViewer
      • doGetSelectionIndices

        protected int[] doGetSelectionIndices()
        Specified by:
        doGetSelectionIndices in class org.eclipse.jface.viewers.AbstractTableViewer
      • doIndexOf

        protected int doIndexOf​(org.eclipse.swt.widgets.Item item)
        Specified by:
        doIndexOf in class org.eclipse.jface.viewers.AbstractTableViewer
      • doRemove

        protected void doRemove​(int[] indices)
        Specified by:
        doRemove in class org.eclipse.jface.viewers.AbstractTableViewer
      • doRemove

        protected void doRemove​(int start,
                                int end)
        Specified by:
        doRemove in class org.eclipse.jface.viewers.AbstractTableViewer
      • doRemoveAll

        protected void doRemoveAll()
        Specified by:
        doRemoveAll in class org.eclipse.jface.viewers.AbstractTableViewer
      • handleDispose

        protected void handleDispose​(org.eclipse.swt.events.DisposeEvent event)
        (non-Javadoc)
        Overrides:
        handleDispose in class org.eclipse.jface.viewers.AbstractTableViewer
        See Also:
        fix crossed reference for GC
      • doSetSelection

        protected void doSetSelection​(org.eclipse.swt.widgets.Item[] items)
        Specified by:
        doSetSelection in class org.eclipse.jface.viewers.AbstractTableViewer
      • doSetSelection

        protected void doSetSelection​(int[] indices)
        Specified by:
        doSetSelection in class org.eclipse.jface.viewers.AbstractTableViewer
      • doShowItem

        protected void doShowItem​(org.eclipse.swt.widgets.Item item)
        Specified by:
        doShowItem in class org.eclipse.jface.viewers.AbstractTableViewer
      • doShowSelection

        protected void doShowSelection()
        Specified by:
        doShowSelection in class org.eclipse.jface.viewers.AbstractTableViewer
      • getItemAt

        protected org.eclipse.swt.widgets.Item getItemAt​(org.eclipse.swt.graphics.Point point)
        Specified by:
        getItemAt in class org.eclipse.jface.viewers.ColumnViewer
      • 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)
        Specified by:
        getViewerRowFromItem in class org.eclipse.jface.viewers.ColumnViewer
      • doResetItem

        protected void doResetItem​(org.eclipse.swt.widgets.Item item)
        Specified by:
        doResetItem in class org.eclipse.jface.viewers.AbstractTableViewer
      • doSelect

        protected void doSelect​(int[] indices)
        Specified by:
        doSelect in class org.eclipse.jface.viewers.AbstractTableViewer
      • 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).

        Parameters:
        autoPreferredHeight -
      • 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.Widget widget,
                                    java.lang.Object element,
                                    boolean fullMap)
        Overrides:
        doUpdateItem in class org.eclipse.jface.viewers.AbstractTableViewer
      • updateRowHeader

        private void updateRowHeader​(org.eclipse.swt.widgets.Widget widget)
      • setRowHeaderLabelProvider

        public void setRowHeaderLabelProvider​(org.eclipse.jface.viewers.CellLabelProvider rowHeaderLabelProvider)
        Label provider used by calculate the row header text
        Parameters:
        rowHeaderLabelProvider - the provider
      • refreshRowHeaders

        public void refreshRowHeaders​(java.lang.Object element)
        Refresh row headers only
        Parameters:
        element - the element to start or null if all rows should be refreshed
      • editElement

        public void editElement​(java.lang.Object element,
                                int column)
        Overrides:
        editElement in class org.eclipse.jface.viewers.ColumnViewer
      • setSelectionToWidget

        protected void setSelectionToWidget​(org.eclipse.jface.viewers.ISelection selection,
                                            boolean reveal)
        Overrides:
        setSelectionToWidget in class org.eclipse.jface.viewers.StructuredViewer
      • getSelection

        public org.eclipse.jface.viewers.ISelection getSelection()
        Specified by:
        getSelection in interface org.eclipse.jface.viewers.ISelectionProvider
        Overrides:
        getSelection in class org.eclipse.jface.viewers.StructuredViewer
      • createCellSelection

        private CellSelection createCellSelection()