de.jaret.util.ui.table.renderer
Class TableHierarchyRenderer

java.lang.Object
  extended by de.jaret.util.ui.table.renderer.RendererBase
      extended by de.jaret.util.ui.table.renderer.CellRendererBase
          extended by de.jaret.util.ui.table.renderer.TableHierarchyRenderer
All Implemented Interfaces:
ICellRenderer, IHierarchyRenderer

public class TableHierarchyRenderer
extends CellRendererBase
implements IHierarchyRenderer

A renderer for rendering the hierarchy (as a tree) of a hierarchical tree model.

Version:
$Id: TableHierarchyRenderer.java 1077 2010-12-17 12:03:27Z kliem $
Author:
Peter Kliem

Field Summary
protected  boolean _drawBorder
           
protected  boolean _drawFullSelection
           
protected  boolean _drawIcons
           
protected  boolean _drawLabels
           
protected  boolean _drawTree
           
protected  org.eclipse.jface.viewers.ILabelProvider _labelProvider
           
protected  int _levelWidth
           
protected  int _nodeMarkType
          type of nodemarks to draw: 0 none, 1 +/-, 2 triangles.
protected  int SIGNINSETS
           
protected  int SIZE
          size of the plus/minus signs.
 
Fields inherited from class de.jaret.util.ui.table.renderer.CellRendererBase
_inset, BLACKRGB, FOCUSINSETS, SELECTIONCOLOR, WHITERGB
 
Fields inherited from class de.jaret.util.ui.table.renderer.RendererBase
_printer, _scaleX, _scaleY, SCREEN_DPI_X, SCREEN_DPI_Y
 
Constructor Summary
TableHierarchyRenderer()
          Create the renderer for use with the display.
TableHierarchyRenderer(org.eclipse.swt.printing.Printer printer)
          Create the renderer for a printer device.
 
Method Summary
 boolean contains(org.eclipse.swt.graphics.Rectangle drawingArea, int x, int y)
          
 ICellRenderer createPrintRenderer(org.eclipse.swt.printing.Printer printer)
          Create a renderer connfigured for printing.
 void dispose()
          If there are resources to free - this is the place.
 void draw(org.eclipse.swt.graphics.GC gc, JaretTable jaretTable, ICellStyle cellStyle, org.eclipse.swt.graphics.Rectangle drawingArea, IRow row, IColumn column, boolean drawFocus, boolean selected, boolean printing)
          Draw a single cell.
protected  void drawLeaf(org.eclipse.swt.graphics.GC gc, int size, int x, int y)
           
protected  void drawMinus(org.eclipse.swt.graphics.GC gc, int size, int x, int y)
           
protected  void drawPlus(org.eclipse.swt.graphics.GC gc, int size, int x, int y)
           
protected  void drawTriangleDown(org.eclipse.swt.graphics.GC gc, int size, int x, int y)
           
protected  void drawTriangleRight(org.eclipse.swt.graphics.GC gc, int size, int x, int y)
           
 boolean getDrawBorder()
           
 boolean getDrawFullSelection()
           
 boolean getDrawIcons()
           
 boolean getDrawLabels()
           
 boolean getDrawTree()
           
 org.eclipse.jface.viewers.ILabelProvider getLabelProvider()
           
 int getLevelWidth()
           
 int getPreferredHeight(IRow row, IColumn column)
          
 int getPreferredWidth()
          
 int getPreferredWidth(java.util.List<IRow> rows, IColumn column)
          Calculate the preferred width for the column.
 boolean isInActiveArea(IRow row, org.eclipse.swt.graphics.Rectangle drawingArea, int xx, int yy)
          Should return true if a click on the coordinates x,y should toggle expanded state.
 void setDrawBorder(boolean drawBorder)
           
 void setDrawFUllSelection(boolean drawFullSelection)
           
 void setDrawIcons(boolean drawIcons)
           
 void setDrawLabels(boolean drawLabels)
           
 void setDrawTree(boolean drawTree)
           
 void setLabelProvider(org.eclipse.jface.viewers.ILabelProvider labelProvider)
           
 void setLevelWidth(int levelWidth)
           
 
Methods inherited from class de.jaret.util.ui.table.renderer.CellRendererBase
applyInsets, drawBackground, drawBorder, drawCommentMarker, drawFocus, drawSelection, getBackgroundColor, getBorderColor, getFont, getForegroundColor, getInnerWidth, getPreferredHeight, getTooltip, getVerticalSpacesSum, isInCommentMarkerArea
 
Methods inherited from class de.jaret.util.ui.table.renderer.RendererBase
getPrinter, getScaleX, getScaleY, restoreGCAttributes, saveGCAttributes, scaleX, scaleY
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface de.jaret.util.ui.table.renderer.ICellRenderer
getPreferredHeight, getTooltip
 

Field Detail

SIZE

protected int SIZE
size of the plus/minus signs.


SIGNINSETS

protected int SIGNINSETS

_drawTree

protected boolean _drawTree

_levelWidth

protected int _levelWidth

_drawIcons

protected boolean _drawIcons

_drawLabels

protected boolean _drawLabels

_drawBorder

protected boolean _drawBorder

_drawFullSelection

protected boolean _drawFullSelection

_labelProvider

protected org.eclipse.jface.viewers.ILabelProvider _labelProvider

_nodeMarkType

protected int _nodeMarkType
type of nodemarks to draw: 0 none, 1 +/-, 2 triangles.

Constructor Detail

TableHierarchyRenderer

public TableHierarchyRenderer(org.eclipse.swt.printing.Printer printer)
Create the renderer for a printer device.

Parameters:
printer - printer device

TableHierarchyRenderer

public TableHierarchyRenderer()
Create the renderer for use with the display.

Method Detail

draw

public void draw(org.eclipse.swt.graphics.GC gc,
                 JaretTable jaretTable,
                 ICellStyle cellStyle,
                 org.eclipse.swt.graphics.Rectangle drawingArea,
                 IRow row,
                 IColumn column,
                 boolean drawFocus,
                 boolean selected,
                 boolean printing)
Draw a single cell. The draw method should be null safe (handling null as the cell value).

Specified by:
draw in interface ICellRenderer
Parameters:
gc - GC to paint on
jaretTable - table the rendering is for
cellStyle - style of the cell
drawingArea - rectangle to draw within
row - row of the cell to paint
column - column of the cell to paint
drawFocus - true if a focus mark should be drawn
selected - true if the cell is currently selected
printing - true if the render operation is for a printer

drawPlus

protected void drawPlus(org.eclipse.swt.graphics.GC gc,
                        int size,
                        int x,
                        int y)

drawMinus

protected void drawMinus(org.eclipse.swt.graphics.GC gc,
                         int size,
                         int x,
                         int y)

drawTriangleDown

protected void drawTriangleDown(org.eclipse.swt.graphics.GC gc,
                                int size,
                                int x,
                                int y)

drawTriangleRight

protected void drawTriangleRight(org.eclipse.swt.graphics.GC gc,
                                 int size,
                                 int x,
                                 int y)

drawLeaf

protected void drawLeaf(org.eclipse.swt.graphics.GC gc,
                        int size,
                        int x,
                        int y)

contains

public boolean contains(org.eclipse.swt.graphics.Rectangle drawingArea,
                        int x,
                        int y)


getPreferredWidth

public int getPreferredWidth()


dispose

public void dispose()
If there are resources to free - this is the place.

Specified by:
dispose in interface ICellRenderer

getLabelProvider

public org.eclipse.jface.viewers.ILabelProvider getLabelProvider()
Returns:
Returns the labelProvider.

setLabelProvider

public void setLabelProvider(org.eclipse.jface.viewers.ILabelProvider labelProvider)
Parameters:
labelProvider - The labelProvider to set.

getLevelWidth

public int getLevelWidth()
Returns:
Returns the levelWidth.

setLevelWidth

public void setLevelWidth(int levelWidth)
Parameters:
levelWidth - The levelWidth to set.

getDrawIcons

public boolean getDrawIcons()
Returns:
Returns the drawIcons.

setDrawIcons

public void setDrawIcons(boolean drawIcons)
Parameters:
drawIcons - The drawIcons to set.

getDrawLabels

public boolean getDrawLabels()
Returns:
Returns the drawLabels.

setDrawLabels

public void setDrawLabels(boolean drawLabels)
Parameters:
drawLabels - The drawLabels to set.

createPrintRenderer

public ICellRenderer createPrintRenderer(org.eclipse.swt.printing.Printer printer)
Create a renderer connfigured for printing.

Specified by:
createPrintRenderer in interface ICellRenderer
Parameters:
printer - printer to use
Returns:
a configured renderer for printing

getPreferredWidth

public int getPreferredWidth(java.util.List<IRow> rows,
                             IColumn column)
Calculate the preferred width for the column. Default implementation: no prferred width.

Specified by:
getPreferredWidth in interface ICellRenderer
Overrides:
getPreferredWidth in class CellRendererBase
Parameters:
rows - the rows currently displayed by the table
column - the column for which the preferred width is to be calculated
Returns:
the preferred width or -1 for no special preferred width.

getPreferredHeight

public int getPreferredHeight(IRow row,
                              IColumn column)


isInActiveArea

public boolean isInActiveArea(IRow row,
                              org.eclipse.swt.graphics.Rectangle drawingArea,
                              int xx,
                              int yy)
Should return true if a click on the coordinates x,y should toggle expanded state.

Specified by:
isInActiveArea in interface IHierarchyRenderer
Parameters:
row - row
drawingArea - drawing area of the hierarchy section of the row
xx - x coordinate to check
yy - y coordinate to check
Returns:
true if the click is in the acive area

getDrawBorder

public boolean getDrawBorder()

setDrawBorder

public void setDrawBorder(boolean drawBorder)

getDrawTree

public boolean getDrawTree()

setDrawTree

public void setDrawTree(boolean drawTree)

getDrawFullSelection

public boolean getDrawFullSelection()

setDrawFUllSelection

public void setDrawFUllSelection(boolean drawFullSelection)


Copyright © 2012. All Rights Reserved.