Class FakeTableCell

  • All Implemented Interfaces:
    TableCell, TableCellCore, TableCellSWT, java.lang.Comparable, java.util.EventListener, org.eclipse.swt.events.MouseListener, org.eclipse.swt.events.MouseMoveListener, org.eclipse.swt.events.MouseTrackListener, org.eclipse.swt.events.PaintListener, org.eclipse.swt.internal.SWTEventListener

    public class FakeTableCell
    extends java.lang.Object
    implements TableCellSWT, org.eclipse.swt.events.PaintListener, org.eclipse.swt.events.MouseListener, org.eclipse.swt.events.MouseMoveListener, org.eclipse.swt.events.MouseTrackListener
    • Field Detail

      • refreshListeners

        private java.util.ArrayList refreshListeners
      • disposeListeners

        private java.util.ArrayList disposeListeners
      • tooltipListeners

        private java.util.ArrayList tooltipListeners
      • cellMouseListeners

        private java.util.ArrayList cellMouseListeners
      • cellMouseMoveListeners

        private java.util.ArrayList cellMouseMoveListeners
      • cellVisibilityListeners

        private java.util.ArrayList cellVisibilityListeners
      • image

        private org.eclipse.swt.graphics.Image image
      • imageBounds

        private org.eclipse.swt.graphics.Rectangle imageBounds
      • marginHeight

        private int marginHeight
      • orientation

        private int orientation
      • marginWidth

        private int marginWidth
      • sortValue

        private java.lang.Comparable sortValue
      • coreDataSource

        private java.lang.Object coreDataSource
      • composite

        private org.eclipse.swt.widgets.Composite composite
      • text

        private java.lang.String text
      • pluginDataSource

        private java.lang.Object pluginDataSource
      • tooltip

        private java.lang.Object tooltip
      • default_tooltip

        private java.lang.Object default_tooltip
      • cellArea

        private org.eclipse.swt.graphics.Rectangle cellArea
      • hadMore

        private boolean hadMore
      • wrapText

        private boolean wrapText
      • cellSWTPaintListeners

        private java.util.ArrayList cellSWTPaintListeners
      • valid

        private boolean valid
      • userData

        private java.util.Map<java.lang.Object,​java.lang.Object> userData
    • Constructor Detail

      • FakeTableCell

        public FakeTableCell​(TableColumn column,
                             java.lang.Object ds)
        Parameters:
        columnRateUpDown -
      • FakeTableCell

        public FakeTableCell​(TableColumnCore column,
                             java.lang.Object ds)
    • Method Detail

      • addRefreshListener

        public void addRefreshListener​(TableCellRefreshListener listener)
        Description copied from interface: TableCell
        Adds a listener that triggers when the TableCell needs refreshing
        Specified by:
        addRefreshListener in interface TableCell
        Parameters:
        listener - Listener Object to be called when refresh is needed.
      • addDisposeListener

        public void addDisposeListener​(TableCellDisposeListener listener)
        Description copied from interface: TableCell
        Adds a listener that triggers when the TableCell has been disposed
        Specified by:
        addDisposeListener in interface TableCell
        Parameters:
        listener - listener object to be called
      • addMouseListener

        public void addMouseListener​(TableCellMouseListener listener)
        Description copied from interface: TableCell
        Adds a listener that triggers when a TableCell that belongs to this column has a mouse event.
        Specified by:
        addMouseListener in interface TableCell
      • removeMouseListener

        public void removeMouseListener​(TableCellMouseListener listener)
        Description copied from interface: TableCell
        Remove a previously added TableCellMouseListener
        Specified by:
        removeMouseListener in interface TableCell
        Parameters:
        listener - Previously added listener
      • addSWTPaintListener

        private void addSWTPaintListener​(TableCellSWTPaintListener listener)
        Parameters:
        listenerObject -
        Since:
        4.0.0.1
      • invokeSWTPaintListeners

        public void invokeSWTPaintListeners​(org.eclipse.swt.graphics.GC gc)
      • getClipboardText

        public java.lang.String getClipboardText()
        Description copied from interface: TableCell
        Returns text that's meant for the clipboard
        Specified by:
        getClipboardText in interface TableCell
      • addListeners

        public void addListeners​(java.lang.Object listenerObject)
        Description copied from interface: TableCell
        A listener is added for every type of cell listener the supplied object implements
        Specified by:
        addListeners in interface TableCell
        Parameters:
        listenerObject - Object implementing some cell listeneters
      • getDataSource

        public java.lang.Object getDataSource()
        Description copied from interface: TableCell
        Retrieve the data object associated with the current table row and cell. The results of this method MUST NOT BE CACHED. The link between a table cell and a DataSource is not persistent and can change from call to call (for example when the table is re-ordered, the link may be modified)
        Specified by:
        getDataSource in interface TableCell
        Returns:
        The return type is dependent upon which table the cell is for:
        TABLE_MYTORRENTS_*: Download object for the current row
        TABLE_TORRENT_PEERS: Peer object for the current row
        TABLE_TORRENT_FILES: DiskManagerFileInfo object for the current row
        TABLE_MYTRACKER: TrackerTorrent object for the current row
        TABLE_MYSHARES: ShareResource object for the current row
        remaining TABLE_* constants: undefined or null
      • getForeground

        public int[] getForeground()
        Description copied from interface: TableCell
        Get the foreground color of the cell
        Specified by:
        getForeground in interface TableCell
        Returns:
        array containing red, green, and blue color
      • getBackground

        public int[] getBackground()
        Description copied from interface: TableCell
        Get the background color of the cell
        Specified by:
        getBackground in interface TableCell
        Returns:
        array containing red, green, and blue color. Might be null
      • getGraphic

        public Graphic getGraphic()
        Description copied from interface: TableCell
        Retrieve the SWT graphic related to this table item for TableColumn objects of TYPE_GRAPHIC only.
        Specified by:
        getGraphic in interface TableCell
        Returns:
        the Image that is draw in the cell, or null if there is none.
      • getHeight

        public int getHeight()
        Description copied from interface: TableCell
        Retrieve the height of the cell's drawing area (excluding any margin) for TableColumn objects of TYPE_GRAPHIC only.
        Specified by:
        getHeight in interface TableCell
        Returns:
        if you are filling the cell, this is the height your image should be
      • getMaxLines

        public int getMaxLines()
        Description copied from interface: TableCell
        Retrieves the number of lines available for setting text
        Specified by:
        getMaxLines in interface TableCell
        Returns:
        # of lines available, -1 if unknown
      • getSortValue

        public java.lang.Comparable getSortValue()
        Description copied from interface: TableCell
        Retrieves the sorting value
        Specified by:
        getSortValue in interface TableCell
        Returns:
        Object that will be sorted on
      • getTableColumn

        public TableColumn getTableColumn()
        Description copied from interface: TableCell
        Retreive the TableColumn that this cell belongs to
        Specified by:
        getTableColumn in interface TableCell
        Returns:
        this cell's TableColumn
      • getTableID

        public java.lang.String getTableID()
        Description copied from interface: TableCell
        Returns which table the cell is being displayed in.
        Specified by:
        getTableID in interface TableCell
        Returns:
        TableManager.TABLE_* constant
      • getTableRow

        public TableRow getTableRow()
        Description copied from interface: TableCell
        Retrieve the TableRow that this cell belongs to
        Specified by:
        getTableRow in interface TableCell
        Returns:
        this cell's TableRow
      • getText

        public java.lang.String getText()
        Description copied from interface: TableCell
        Retrieve the Cell's text
        Specified by:
        getText in interface TableCell
        Returns:
        Cell's text
      • getWidth

        public int getWidth()
        Description copied from interface: TableCell
        Retrieve the width of the cell's drawing area (excluding any margin) for TableColumn objects of TYPE_GRAPHIC only.
        Specified by:
        getWidth in interface TableCell
        Returns:
        if you are filling the cell, this is the width your image should be
      • invalidate

        public void invalidate()
        Description copied from interface: TableCell
        Sets the cell to invalid. This will result in a refresh on the next scheduled interval.
        Specified by:
        invalidate in interface TableCell
      • isDisposed

        public boolean isDisposed()
        Description copied from interface: TableCell
        Retrieve whether the cell has been disposed. This will return true after the TableCellDisposeListener is triggered.
        Specified by:
        isDisposed in interface TableCell
        Returns:
        disposal state
      • isShown

        public boolean isShown()
        Description copied from interface: TableCell
        Determines if the user has chosen to display the cell
        Specified by:
        isShown in interface TableCell
        Returns:
        True - User has chosen to display cell
      • isValid

        public boolean isValid()
        Description copied from interface: TableCell
        Validility of the cell's text.
        Specified by:
        isValid in interface TableCell
        Returns:
        True - Text is the same as last call. You do not need to update unless you have new text to display.
        False - Cell-to-Datasource link has changed, and the text is definitely not valid.
      • setFillCell

        public void setFillCell​(boolean fillCell)
        Description copied from interface: TableCell
        Sets whether the graphic fills the whole cell for TableColumn objects of TYPE_GRAPHIC only. This may effect how often a refresh of the cell is needed, and effects alignment.
        Specified by:
        setFillCell in interface TableCell
        Parameters:
        fillCell - true - the whole cell is filled by the graphic
      • setWrapText

        public void setWrapText​(boolean wrap)
      • setForeground

        public boolean setForeground​(int red,
                                     int green,
                                     int blue)
        Description copied from interface: TableCell
        Change the cell's foreground color.

        pass -1 to return color back to default

        Specified by:
        setForeground in interface TableCell
        Parameters:
        red - red value (0 - 255)
        green - green value (0 - 255)
        blue - blue value (0 - 255)
        Returns:
        True - Color changed.
        False - Color was already set.
      • setForeground

        public boolean setForeground​(int[] rgb)
        Description copied from interface: TableCell
        Change the cell's foreground color
        Specified by:
        setForeground in interface TableCell
        Parameters:
        rgb - int array containing red, green, and blue values, respectively. null to return color back to default
        Returns:
      • setForegroundToErrorColor

        public boolean setForegroundToErrorColor()
        Description copied from interface: TableCell
        Change the cell's foreground color to the user's defined "error" color.
        Specified by:
        setForegroundToErrorColor in interface TableCell
        Returns:
        True - Color changed.
        False - Color was already set.
      • setGraphic

        public boolean setGraphic​(Graphic img)
        Description copied from interface: TableCell
        Sets the image to be drawn.

        From 3.0.1.1, setting the graphic to the same Graphic object will not redraw the image. You need to TableCell.invalidate() the cell if you know the image bits have changed (or you could pass a new Graphic object in each time a new image is generated)

        Previously, setting the graphic to the same object resulted in a repaint. Plugins were naughty and would do this on every refresh, causing horrible repaint slowdowns.

        Specified by:
        setGraphic in interface TableCell
        Parameters:
        img - image to be stored & drawn
        Returns:
        true - image was changed.
        false = image was the same
      • setMarginHeight

        public void setMarginHeight​(int height)
        Description copied from interface: TableCell
        Specifies the number of pixels of vertical margin that will be placed along the top and bottom edges of the layout for TableColumn objects of TYPE_GRAPHIC only.

        The default is 1.

        Specified by:
        setMarginHeight in interface TableCell
        Parameters:
        height - new margin height
      • setMarginWidth

        public void setMarginWidth​(int width)
        Description copied from interface: TableCell
        Specifies the number of pixels of horizontal margin that will be placed along the left and right edges of the layout for TableColumn object of TYPE_GRAPHIC only.

        The default is 1.

        Specified by:
        setMarginWidth in interface TableCell
        Parameters:
        width - new margin width
      • setSortValue

        public boolean setSortValue​(java.lang.Comparable valueToSort)
        Description copied from interface: TableCell
        Sets a Comparable object that column sorting will act on. If you never call setSortValue, your column will be sorted by the cell's text.
        Specified by:
        setSortValue in interface TableCell
        Parameters:
        valueToSort - the object that will be used when the column cell's are compared to each other
        Returns:
        True - Sort Value changed.
        False - Sort Value was already set to object supplied.
      • setSortValue

        public boolean setSortValue​(float valueToSort)
        Description copied from interface: TableCell
        Sets a float value that the column sorting will act upon.
        Specified by:
        setSortValue in interface TableCell
        Parameters:
        valueToSort - float sort value
        Returns:
        true if sort value changed, or false if sort value already set to value supplied
      • setText

        public boolean setText​(java.lang.String text)
        Description copied from interface: TableCell
        This method is called to set the cell's text. Caching is done, so that if same text is used several times, there won't be any 'flickering' effect. Ie the text is only updated if it's different from current value.

        This function must be called from the same thread that the GUI is running under. Listeners like TableCellAddedListener do not always get called on the GUI thread.

        If you wish to set the text and not worry about changing to the GUI thread, use TableCell.invalidate(), and set the text in the TableCellRefreshListener

        Specified by:
        setText in interface TableCell
        Parameters:
        text - the text to be set
        Returns:
        True - the text was updated.
        False - the text was the same and not modified.
      • setDefaultToolTip

        public void setDefaultToolTip​(java.lang.Object o)
        Description copied from interface: TableCellCore
        Sets tooltip to be shown in absence of an explicit one
        Specified by:
        setDefaultToolTip in interface TableCellCore
      • updateTooltip

        private void updateTooltip()
      • _setSortValue

        private boolean _setSortValue​(java.lang.Comparable valueToSort)
      • setSortValue

        public boolean setSortValue​(long valueToSort)
        Description copied from interface: TableCell
        Sets a long value that the column sorting will act on.
        Specified by:
        setSortValue in interface TableCell
        Parameters:
        valueToSort - sorting value.
        Returns:
        True - Sort Value changed.
        False - Sort Value was already set to value supplied.
      • doPaint

        public void doPaint​(org.eclipse.swt.graphics.GC gc,
                            org.eclipse.swt.graphics.Rectangle bounds)
      • refresh

        public boolean refresh()
        Description copied from interface: TableCellCore
        Refresh the cell, including graphic types
        Specified by:
        refresh in interface TableCellCore
      • setDataSource

        public void setDataSource​(java.lang.Object _coreDataSource)
      • setControl

        public void setControl​(org.eclipse.swt.widgets.Composite composite)
      • setControl

        public void setControl​(org.eclipse.swt.widgets.Composite composite,
                               org.eclipse.swt.graphics.Rectangle cellArea,
                               boolean addListeners)
      • paintControl

        public void paintControl​(org.eclipse.swt.events.PaintEvent e)
        Specified by:
        paintControl in interface org.eclipse.swt.events.PaintListener
      • mouseUp

        public void mouseUp​(org.eclipse.swt.events.MouseEvent e)
        Specified by:
        mouseUp in interface org.eclipse.swt.events.MouseListener
      • mouseDown

        public void mouseDown​(org.eclipse.swt.events.MouseEvent e)
        Specified by:
        mouseDown in interface org.eclipse.swt.events.MouseListener
      • mouseDoubleClick

        public void mouseDoubleClick​(org.eclipse.swt.events.MouseEvent e)
        Specified by:
        mouseDoubleClick in interface org.eclipse.swt.events.MouseListener
      • mouseMove

        public void mouseMove​(org.eclipse.swt.events.MouseEvent e)
        Specified by:
        mouseMove in interface org.eclipse.swt.events.MouseMoveListener
      • mouseHover

        public void mouseHover​(org.eclipse.swt.events.MouseEvent e)
        Specified by:
        mouseHover in interface org.eclipse.swt.events.MouseTrackListener
      • mouseExit

        public void mouseExit​(org.eclipse.swt.events.MouseEvent e)
        Specified by:
        mouseExit in interface org.eclipse.swt.events.MouseTrackListener
      • mouseEnter

        public void mouseEnter​(org.eclipse.swt.events.MouseEvent e)
        Specified by:
        mouseEnter in interface org.eclipse.swt.events.MouseTrackListener
      • buildMouseEvent

        protected TableCellMouseEvent buildMouseEvent​(org.eclipse.swt.events.MouseEvent e,
                                                      int eventType)
        Parameters:
        e -
        Returns:
        Since:
        3.0.2.1
      • setOrientationViaColumn

        private void setOrientationViaColumn()
      • getCursorID

        public int getCursorID()
        Description copied from interface: TableCellCore
        Get the cursor ID we are currently using XXX Should NOT be SWT.CURSOR_ constants!
        Specified by:
        getCursorID in interface TableCellCore
        Returns:
      • getObfuscatedText

        public java.lang.String getObfuscatedText()
        Description copied from interface: TableCellCore
        Return the text used when generating diagnostics
        Specified by:
        getObfuscatedText in interface TableCellCore
        Returns:
      • getVisuallyChangedSinceRefresh

        public boolean getVisuallyChangedSinceRefresh()
        Description copied from interface: TableCellCore
        Returns whether the cell has visually changed since the last refresh call. Could be used to prevent a refresh, or refresh early.
        Specified by:
        getVisuallyChangedSinceRefresh in interface TableCellCore
        Returns:
        visually changed since refresh state
      • invalidate

        public void invalidate​(boolean mustRefresh)
        Specified by:
        invalidate in interface TableCellCore
      • invokeVisibilityListeners

        public void invokeVisibilityListeners​(int visibility,
                                              boolean invokeColumnListeners)
        Description copied from interface: TableCellCore
        Trigger all the visibility listeners that have been added to this cell.
        Specified by:
        invokeVisibilityListeners in interface TableCellCore
        Parameters:
        visibility - See TableCellVisibilityListener.VISIBILITY_* constants
      • isUpToDate

        public boolean isUpToDate()
        Description copied from interface: TableCellCore
        Returns whether the cell will need updating when it's visible again
        Specified by:
        isUpToDate in interface TableCellCore
        Returns:
      • needsPainting

        public boolean needsPainting()
        Description copied from interface: TableCellCore
        Retrieve whether the cell need any paint calls (graphic)
        Specified by:
        needsPainting in interface TableCellCore
        Returns:
        whether the cell needs painting
      • refresh

        public boolean refresh​(boolean doGraphics)
        Description copied from interface: TableCellCore
        Refresh the cell
        Specified by:
        refresh in interface TableCellCore
        Parameters:
        doGraphics - Whether to update graphic cells
      • refresh

        public boolean refresh​(boolean doGraphics,
                               boolean rowVisible,
                               boolean cellVisible)
        Description copied from interface: TableCellCore
        Refresh the cell. This method overide takes a bRowVisible paramater and a bCellVisible parameter in order to reduce the number of calls to TableRow.isVisible() and calculations of cell visibility.
        Specified by:
        refresh in interface TableCellCore
        Parameters:
        doGraphics - Whether to update graphic cells
        rowVisible - Assumed visibility state of row
        cellVisible - Assumed visibility state of the cell
      • refresh

        public boolean refresh​(boolean doGraphics,
                               boolean rowVisible)
        Description copied from interface: TableCellCore
        Refresh the cell. This method override takes a bRowVisible parameter in order to reduce the number of calls to TableRow.isVisible() in cases where multiple cells on the same row are being refreshed.
        Specified by:
        refresh in interface TableCellCore
        Parameters:
        doGraphics - Whether to update graphic cells
        rowVisible - Visibility state of row
      • setCursorID

        public boolean setCursorID​(int cursorID)
        Description copied from interface: TableCellCore
        Set the cursor ID that should be used for the cell
        Specified by:
        setCursorID in interface TableCellCore
        Returns:
        changed
      • setUpToDate

        public void setUpToDate​(boolean upToDate)
        Description copied from interface: TableCellCore
        Sets whether the cell will need updating when it's visible again
        Specified by:
        setUpToDate in interface TableCellCore
      • compareTo

        public int compareTo​(java.lang.Object arg0)
        Specified by:
        compareTo in interface java.lang.Comparable
      • setOrentation

        public void setOrentation​(int o)
      • getCellArea

        public org.eclipse.swt.graphics.Rectangle getCellArea()
      • setCellArea

        public void setCellArea​(org.eclipse.swt.graphics.Rectangle cellArea)
      • getMouseOffset

        public int[] getMouseOffset()
        Description copied from interface: TableCell
        Return the position of the mouse relative to the cell.
        Specified by:
        getMouseOffset in interface TableCell
        Returns:
        array of 2 containing x and y position position relative to cell. null if cell doesn't have mouse.
      • doPaint

        public void doPaint​(org.eclipse.swt.graphics.GC gc)
        Description copied from interface: TableCellSWT
        Paint the cell (for graphics)
        Specified by:
        doPaint in interface TableCellSWT
        Parameters:
        gc - GC object to be used for painting
      • getBackgroundImage

        public org.eclipse.swt.graphics.Image getBackgroundImage()
        Specified by:
        getBackgroundImage in interface TableCellSWT
        Returns:
      • getBackgroundSWT

        public org.eclipse.swt.graphics.Color getBackgroundSWT()
        Specified by:
        getBackgroundSWT in interface TableCellSWT
        Returns:
      • getBounds

        public org.eclipse.swt.graphics.Rectangle getBounds()
        Specified by:
        getBounds in interface TableCellSWT
      • getForegroundSWT

        public org.eclipse.swt.graphics.Color getForegroundSWT()
        Specified by:
        getForegroundSWT in interface TableCellSWT
        Returns:
      • getGraphicSWT

        public org.eclipse.swt.graphics.Image getGraphicSWT()
        Specified by:
        getGraphicSWT in interface TableCellSWT
      • getIcon

        public org.eclipse.swt.graphics.Image getIcon()
        Specified by:
        getIcon in interface TableCellSWT
        Returns:
      • getSize

        public org.eclipse.swt.graphics.Point getSize()
        Specified by:
        getSize in interface TableCellSWT
      • setForeground

        public boolean setForeground​(org.eclipse.swt.graphics.Color color)
        Description copied from interface: TableCellSWT
        Change the cell's foreground color. NOTE: favor (R, G, B)
        Specified by:
        setForeground in interface TableCellSWT
        Parameters:
        color - SWT Color object.
        Returns:
        True - Color changed.
        False - Color was already set.
      • setGraphic

        public boolean setGraphic​(org.eclipse.swt.graphics.Image img)
        Specified by:
        setGraphic in interface TableCellSWT
      • setIcon

        public boolean setIcon​(org.eclipse.swt.graphics.Image img)
        Description copied from interface: TableCellSWT
        Set the cell's icon
        Specified by:
        setIcon in interface TableCellSWT
        Parameters:
        img - Cell's new icon
        Returns:
        true if the icon will be used
      • useSimpleSortValue

        public boolean useSimpleSortValue()
        Description copied from interface: TableCell
        When true, the user is sorting by multiple columns, and you should set the cell's sort value based solely on your column's data.
        Specified by:
        useSimpleSortValue in interface TableCell
      • getData

        public java.lang.Object getData​(java.lang.Object key)
        Specified by:
        getData in interface TableCellCore
      • setData

        public void setData​(java.lang.Object key,
                            java.lang.Object data)
        Specified by:
        setData in interface TableCellCore