Interface ILayer

    • Method Detail

      • dispose

        void dispose()
        Dispose any resource allocated by this layer.
      • registerPersistable

        void registerPersistable​(IPersistable persistable)
        Register an IPersistable that can write its state to the state Properties instance when the layer is persisted.
        Parameters:
        persistable - The persistable that should be registered.
      • unregisterPersistable

        void unregisterPersistable​(IPersistable persistable)
        Unregister the given IPersistable.
        Parameters:
        persistable - The persistable to unregister.
      • getRegionLabelsByXY

        LabelStack getRegionLabelsByXY​(int x,
                                       int y)
        Return the LabelStack containing the region labels for the cell at the given pixel position.
        Parameters:
        x - the x pixel coordinate
        y - the y pixel coordinate
        Returns:
        LabelStack containing the region labels for the cell at the given pixel position.
      • doCommand

        boolean doCommand​(ILayerCommand command)
        Opportunity to respond to a command as it flows down the stack. If the layer is not interested in the command it should allow the command to keep traveling down the stack.

        Note: Before the layer can process a command it must convert the command to its local coordinates using ILayerCommand.convertToTargetLayer(ILayer)

        Parameters:
        command - The command to execute.
        Returns:
        true if the command has been handled and was therefore consumed, false otherwise.
      • fireLayerEvent

        void fireLayerEvent​(ILayerEvent event)
        Events can be fired to notify other components of the grid. Events travel up the layer stack and may cause a repaint.

        Example: When the contents of the grid change IVisualChangeEvent can be fired to notify other layers to refresh their caches etc.

        Parameters:
        event - the event to fire
      • hasLayerListener

        boolean hasLayerListener​(Class<? extends ILayerListener> layerListenerClass)
        Check if an ILayerListener of the given type is registered on this layer or not.
        Parameters:
        layerListenerClass - The type of ILayerListener to check for.
        Returns:
        true if this ILayer has a ILayerListener of the specified type registered, false if there is no such listener registered.
      • setClientAreaProvider

        void setClientAreaProvider​(IClientAreaProvider clientAreaProvider)
        Parameters:
        clientAreaProvider - The IClientAreaProvider that specifies the rectangular area available on this layer.
      • getColumnCount

        int getColumnCount()
        Returns:
        The number of columns in this layer.
      • getPreferredColumnCount

        int getPreferredColumnCount()
      • getColumnIndexByPosition

        int getColumnIndexByPosition​(int columnPosition)
        Gets the underlying non-transformed column index for the given column position on this layer.
        Parameters:
        columnPosition - The column position relative to this layer.
        Returns:
        An underlying non-transformed column index, or -1 if the given column position does not exist within this coordinate system.
      • localToUnderlyingColumnPosition

        int localToUnderlyingColumnPosition​(int localColumnPosition)
        Convert a column position to the coordinates of the underlying layer. This is possible since each layer is aware of its underlying layer.
        Parameters:
        localColumnPosition - column position in local (the layer's own) coordinates
        Returns:
        column position in the underlying layer's coordinates
      • underlyingToLocalColumnPosition

        int underlyingToLocalColumnPosition​(ILayer sourceUnderlyingLayer,
                                            int underlyingColumnPosition)
        Transforms the column position relative to the given underlying layer to this layer coordinates.
        Parameters:
        sourceUnderlyingLayer - The underlying layer to which the given column position matches.
        underlyingColumnPosition - The column position in the given underlying layer that should be converted to a local column position.
        Returns:
        The given column position transformed to be local to this layer.
      • underlyingToLocalColumnPositions

        Collection<Range> underlyingToLocalColumnPositions​(ILayer sourceUnderlyingLayer,
                                                           Collection<Range> underlyingColumnPositionRanges)
        Transforms the column position ranges relative to the given underlying layer to this layer coordinates.
        Parameters:
        sourceUnderlyingLayer - The underlying layer to which the given column positions match.
        underlyingColumnPositionRanges - The column position ranges relative to the given underlying layer that should be converted to local column positions.
        Returns:
        The given column position ranges transformed to this layer.
      • getWidth

        int getWidth()
        Returns the total width in pixels of this layer.
        Returns:
        The total width in pixels of this layer.
      • getPreferredWidth

        int getPreferredWidth()
      • getColumnWidthByPosition

        int getColumnWidthByPosition​(int columnPosition)
        Returns the width in pixels of the given column. The width of invisible and non-existing columns is 0.
        Parameters:
        columnPosition - The column position in this layer.
        Returns:
        The width of the column.
      • isColumnPositionResizable

        boolean isColumnPositionResizable​(int columnPosition)
        Check if the column at the given position is resizable.
        Parameters:
        columnPosition - The column position to check.
        Returns:
        true if the column is resizable, false if not.
      • getColumnPositionByX

        int getColumnPositionByX​(int x)
        Returns the column position that contains the given x coordinate.
        Parameters:
        x - A horizontal pixel location relative to the pixel boundary of this layer.
        Returns:
        A column position relative to the associated coordinate system, or -1 if there is no column that contains x.
      • getStartXOfColumnPosition

        int getStartXOfColumnPosition​(int columnPosition)
        Returns the x offset in pixels of the given column.
        Parameters:
        columnPosition - The column position in this layer.
        Returns:
        The x offset of the column, or -1.
      • getUnderlyingLayersByColumnPosition

        Collection<ILayer> getUnderlyingLayersByColumnPosition​(int columnPosition)
        Returns the layers that are directly below this layer for the given column position. For simple layers this collection will typically only have one entry. Layer compositions might return multiple values, e.g. in a default grid there will be 2 layers in the collection as there are two layers involved in a column.
        Parameters:
        columnPosition - The column position for which the underlying layers are requested.
        Returns:
        The layers that are directly below this layer for the given column position or null if this layer has no underlying layers.
      • getRowCount

        int getRowCount()
        Returns:
        The number of rows in this layer.
      • getPreferredRowCount

        int getPreferredRowCount()
      • getRowIndexByPosition

        int getRowIndexByPosition​(int rowPosition)
        Gets the underlying non-transformed row index for the given row position on this layer.
        Parameters:
        rowPosition - The row position relative to this layer.
        Returns:
        An underlying non-transformed row index, or -1 if the given row position does not exist within this coordinate system.
      • localToUnderlyingRowPosition

        int localToUnderlyingRowPosition​(int localRowPosition)
        Convert a row position to the coordinates of the underlying layer. This is possible since each layer is aware of its underlying layer.
        Parameters:
        localRowPosition - row position in local (the layer's own) coordinates
        Returns:
        row position in the underlying layer's coordinates
      • underlyingToLocalRowPosition

        int underlyingToLocalRowPosition​(ILayer sourceUnderlyingLayer,
                                         int underlyingRowPosition)
        Transforms the row position relative to the given underlying layer to this layer coordinates.
        Parameters:
        sourceUnderlyingLayer - The underlying layer to which the given row position matches.
        underlyingRowPosition - The row position in the given underlying layer that should be converted to a local row position.
        Returns:
        The given row position transformed to be local to this layer.
      • underlyingToLocalRowPositions

        Collection<Range> underlyingToLocalRowPositions​(ILayer sourceUnderlyingLayer,
                                                        Collection<Range> underlyingRowPositionRanges)
        Transforms the row position ranges relative to the given underlying layer to this layer coordinates.
        Parameters:
        sourceUnderlyingLayer - The underlying layer to which the given row positions match.
        underlyingRowPositionRanges - The row position ranges relative to the given underlying layer that should be converted to local row positions.
        Returns:
        The given row position ranges transformed to this layer.
      • getHeight

        int getHeight()
        Returns the total height in pixels of this layer.
        Returns:
        The total height in pixels of this layer.
      • getPreferredHeight

        int getPreferredHeight()
      • getRowHeightByPosition

        int getRowHeightByPosition​(int rowPosition)
        Returns the height in pixels of the given row. The height of invisible and non-existing rows is 0.
        Parameters:
        rowPosition - The row position in this layer.
        Returns:
        The height of the row.
      • isRowPositionResizable

        boolean isRowPositionResizable​(int rowPosition)
        Check if the row at the given position is resizable.
        Parameters:
        rowPosition - The row position to check.
        Returns:
        true if the row is resizable, false if not.
      • getRowPositionByY

        int getRowPositionByY​(int y)
        Returns the row position that contains the given y coordinate.
        Parameters:
        y - a vertical pixel location relative to the pixel boundary of this layer
        Returns:
        a row position relative to the associated coordinate system, or -1 if there is no row that contains y
      • getStartYOfRowPosition

        int getStartYOfRowPosition​(int rowPosition)
        Returns the y offset in pixels of the given row.
        Parameters:
        rowPosition - the row position in this layer
        Returns:
        the y offset of the row, or -1
      • getUnderlyingLayersByRowPosition

        Collection<ILayer> getUnderlyingLayersByRowPosition​(int rowPosition)
        Returns the layers that are directly below this layer for the given row position. For simple layers this collection will typically only have one entry. Layer compositions might return multiple values, e.g. in a default grid there will be 2 layers in the collection as there are two layers involved in a row.
        Parameters:
        rowPosition - The row position for which the underlying layers are requested.
        Returns:
        The layers that are directly below this layer for the given row position or null if this layer has no underlying layers.
      • getCellByPosition

        ILayerCell getCellByPosition​(int columnPosition,
                                     int rowPosition)
        Returns the cell for the given coordinates on this layer.
        Parameters:
        columnPosition - The column position of the requested cell.
        rowPosition - The row position of the requested cell.
        Returns:
        The ILayerCell for the given coordinates in this layer or null if the coordinates are invalid on this layer.
      • getBoundsByPosition

        org.eclipse.swt.graphics.Rectangle getBoundsByPosition​(int columnPosition,
                                                               int rowPosition)
        Calculates the bounds in pixel for the given cell position.
        Parameters:
        columnPosition - the column position of the cell
        rowPosition - the row position of the cell
        Returns:
        the bounds, or null if there are no valid bounds
      • getDisplayModeByPosition

        DisplayMode getDisplayModeByPosition​(int columnPosition,
                                             int rowPosition)
        Returns the active DisplayMode for the cell at the given coordinates. Needed to retrieve the corresponding configurations out of the IConfigRegistry. The default value is DisplayMode.NORMAL. The SelectionLayer for example overrides this to return DisplayMode.SELECT for cells that are currently selected.
        Parameters:
        columnPosition - The column position of the cell.
        rowPosition - The row position of the cell.
        Returns:
        DisplayMode for the cell at the given coordinates.
        Since:
        2.0
      • getConfigLabelsByPosition

        LabelStack getConfigLabelsByPosition​(int columnPosition,
                                             int rowPosition)
        Returns the config labels for the cell at the given coordinates. Needed to retrieve the corresponding configurations out of the IConfigRegistry.
        Parameters:
        columnPosition - The column position of the cell.
        rowPosition - The row position of the cell.
        Returns:
        The LabelStack with the config labels for the cell at the given coordinates.
      • getDataValueByPosition

        Object getDataValueByPosition​(int columnPosition,
                                      int rowPosition)
        Returns the data value for the cell at the given coordinates.
        Parameters:
        columnPosition - The column position of the cell.
        rowPosition - The row position of the cell.
        Returns:
        The data value for the cell at the given coordinates.
      • getUnderlyingLayerByPosition

        ILayer getUnderlyingLayerByPosition​(int columnPosition,
                                            int rowPosition)
        Returns the layer that is directly below this layer for the given cell coordinate.
        Parameters:
        columnPosition - The column position for which the underlying layer is requested.
        rowPosition - The row position for which the underlying layer is requested.
        Returns:
        The layer that is directly below this layer for the given cell coordinates or null if this layer has no underlying layers.
      • isDynamicSizeLayer

        default boolean isDynamicSizeLayer()
        Returns:
        true if the layer has a dynamic size (e.g. viewport) or a fixed size.
        Since:
        2.0
      • getProvidedLabels

        default Collection<String> getProvidedLabels()
        Returns:
        The collection of labels that are provided by this layer used e.g. for CSS styling.
        Since:
        2.0