Class GalleryTreeViewer

  • 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 GalleryTreeViewer
    extends org.eclipse.jface.viewers.AbstractTreeViewer
    A concrete viewer based on a Nebula Gallery control.

    This class is not intended to be subclassed outside the viewer framework. It is designed to be instantiated with a pre-existing Nebula Gallery control and configured with a domain-specific content provider, label provider, element filter (optional), and element sorter (optional).

    SWT.VIRTUAL is currently unsupported

    THIS VIEWER SHOULD BE CONSIDERED AS ALPHA

    Since:
    Dec 5, 2007
    • 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 GalleryViewerRow cachedRow
      The row object reused
      protected Gallery gallery  
      protected boolean preservingSelection
      true if we are inside a preservingSelection() call
      • 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
      GalleryTreeViewer​(Gallery gallery)
      Creates a gallery viewer on the given gallery control.
      GalleryTreeViewer​(org.eclipse.swt.widgets.Composite parent)
      Creates a gallery viewer on a newly-created gallery control under the given parent.
      GalleryTreeViewer​(org.eclipse.swt.widgets.Composite parent, int style)
      Creates a gallery viewer on a newly-created gallery 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()  
      void editElement​(java.lang.Object element, int column)  
      protected org.eclipse.swt.widgets.Item getChild​(org.eclipse.swt.widgets.Widget widget, int index)  
      protected org.eclipse.swt.widgets.Item[] getChildren​(org.eclipse.swt.widgets.Widget widget)  
      protected org.eclipse.swt.widgets.Widget getColumnViewerOwner​(int columnIndex)  
      org.eclipse.swt.widgets.Control getControl()  
      protected boolean getExpanded​(org.eclipse.swt.widgets.Item item)  
      Gallery getGallery()
      Returns this gallery viewer's gallery.
      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 setAutoExpandLevel​(int level)  
      void setChildCount​(java.lang.Object elementOrTreePath, int count)
      For a GalleryViewer with a gallery with the VIRTUAL style bit set, set the number of children of the given element or tree path.
      void setContentProvider​(org.eclipse.jface.viewers.IContentProvider provider)
      Gallery expects contents to have exactly 2 levels of hierarchy, with groups as the root elements and image thumbnails as direct children of the groups.
      protected void setExpanded​(org.eclipse.swt.widgets.Item item, boolean expand)  
      protected void setSelection​(java.util.List items)  
      protected void showItem​(org.eclipse.swt.widgets.Item item)  
      • Methods inherited from class org.eclipse.jface.viewers.AbstractTreeViewer

        add, add, addSelectionListener, addTreeListener, assertContentProviderType, associate, buildLabel, collapseAll, collapseToLevel, createChildren, createTreeItem, disassociate, doFindInputItem, doFindItem, doGetColumnCount, doUpdateItem, doUpdateItem, expandAll, expandAll, expandToLevel, expandToLevel, expandToLevel, expandToLevel, fireTreeCollapsed, fireTreeExpanded, getAutoExpandLevel, 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, setExpandedElements, setExpandedState, setExpandedTreePaths, setExpandPreCheckFilters, setSelectionToWidget, setSelectionToWidget, updateChildren, updatePlus
      • Methods inherited from class org.eclipse.jface.viewers.ColumnViewer

        applyEditorValue, cancelEditing, checkBusy, 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

      • gallery

        protected Gallery gallery
      • preservingSelection

        protected boolean preservingSelection
        true if we are inside a preservingSelection() call
    • Constructor Detail

      • GalleryTreeViewer

        public GalleryTreeViewer​(org.eclipse.swt.widgets.Composite parent)
        Creates a gallery viewer on a newly-created gallery control under the given parent. The gallery control is created using the SWT style bits MULTI, 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
      • GalleryTreeViewer

        public GalleryTreeViewer​(org.eclipse.swt.widgets.Composite parent,
                                 int style)
        Creates a gallery viewer on a newly-created gallery control under the given parent. The gallery 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 gallery.
      • GalleryTreeViewer

        public GalleryTreeViewer​(Gallery gallery)
        Creates a gallery viewer on the given gallery control. The viewer has no input, no content provider, a default label provider, no sorter, and no filters.
        Parameters:
        gallery - the gallery control
    • Method Detail

      • 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
        See Also:
        AbstractTreeViewer.addTreeListener(org.eclipse .swt.widgets.Control, org.eclipse.swt.events.TreeListener)
      • getChild

        protected org.eclipse.swt.widgets.Item getChild​(org.eclipse.swt.widgets.Widget widget,
                                                        int index)
        Overrides:
        getChild in class org.eclipse.jface.viewers.AbstractTreeViewer
        See Also:
        AbstractTreeViewer.getChild(org.eclipse.swt .widgets.Widget, int)
      • getChildren

        protected org.eclipse.swt.widgets.Item[] getChildren​(org.eclipse.swt.widgets.Widget widget)
        Specified by:
        getChildren in class org.eclipse.jface.viewers.AbstractTreeViewer
        See Also:
        AbstractTreeViewer.getChildren(org.eclipse. swt.widgets.Widget)
      • getColumnViewerOwner

        protected org.eclipse.swt.widgets.Widget getColumnViewerOwner​(int columnIndex)
        Overrides:
        getColumnViewerOwner 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
        See Also:
        AbstractTreeViewer.getExpanded(org.eclipse. swt.widgets.Item)
      • getItemCount

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

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

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

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

        protected org.eclipse.swt.widgets.Item[] getSelection​(org.eclipse.swt.widgets.Control control)
        Specified by:
        getSelection in class org.eclipse.jface.viewers.AbstractTreeViewer
        See Also:
        AbstractTreeViewer.getSelection(org.eclipse .swt.widgets.Control)
      • 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
        See Also:
        AbstractTreeViewer.newItem(org.eclipse.swt. widgets.Widget, int, int)
      • removeAll

        protected void removeAll​(org.eclipse.swt.widgets.Control control)
        Specified by:
        removeAll in class org.eclipse.jface.viewers.AbstractTreeViewer
        See Also:
        AbstractTreeViewer.removeAll(org.eclipse.swt .widgets.Control)
      • setAutoExpandLevel

        public void setAutoExpandLevel​(int level)
        Overrides:
        setAutoExpandLevel in class org.eclipse.jface.viewers.AbstractTreeViewer
      • setContentProvider

        public void setContentProvider​(org.eclipse.jface.viewers.IContentProvider provider)

        Gallery expects contents to have exactly 2 levels of hierarchy, with groups as the root elements and image thumbnails as direct children of the groups. This method accepts ITreeContentProvider and ITreePathContentProvider as-is, and relies on the providers to return contents with the correct structure.

        This method also accepts IStructuredContentProvider and wraps it in a FlatTreeContentProvider with an empty string as the root node. If you need a different root node, construct your own FlatTreeContentProvider and pass it here. If you want the Gallery to suppress the collapsable group header, call

        getGallery().setGroupRenderer(new NoGroupRenderer());
        Overrides:
        setContentProvider 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
        See Also:
        AbstractTreeViewer.setExpanded(org.eclipse. swt.widgets.Item, boolean)
      • setSelection

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

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

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

        public Gallery getGallery()
        Returns this gallery viewer's gallery.
        Returns:
        the gallery 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
      • setChildCount

        public void setChildCount​(java.lang.Object elementOrTreePath,
                                  int count)
        For a GalleryViewer with a gallery with the VIRTUAL style bit set, set the number of children of the given element or tree path. To set the number of children of the invisible root of the gallery, you can pass the input object or an empty tree path.
        Parameters:
        elementOrTreePath - the element, or tree path
        count -
        Since:
        3.2
      • getViewerRowFromItem

        protected org.eclipse.jface.viewers.ViewerRow getViewerRowFromItem​(org.eclipse.swt.widgets.Widget item)
        Overrides:
        getViewerRowFromItem in class org.eclipse.jface.viewers.AbstractTreeViewer
        See Also:
        org.eclipse.jface.viewers.ColumnViewer#getRowPartFromItem(org.eclipse .swt.widgets.Widget)
      • 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 -
        style -
        rowIndex -
        Returns:
        ViewerRow
      • 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
      • editElement

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