Example G.3. A Custom Table Header Visualizer
public class CustomTableHeaderVisualizer
extends AbstractTableHeaderVisualizer
{
private Composite composite;
private Rect2D backRect, foreRect;
public CustomTableHeaderVisualizer()
{
CompositeFactory factory = CompositeFactory.newInstance();
try
{
composite = factory.newComposite(CoordinateSystemPool
.parse("x=Lin[min=0;max=400],y=Lin[min=0;max=400]"));
composite.addPrimitive(backRect = new Rect2D());
backRect.set(0, 0, 400, 400);
composite.addPrimitive(foreRect = new Rect2D());
} catch (CoordinateSystemParseException e)
{
if (Debug.DISPLAY_THROWABLES)
Debug.printThrowable(e);
}
}
// deep-copy constructor.
private CustomTableHeaderVisualizer(
AbstractTableHeaderVisualizer source)
{
this.composite =
((CustomTableHeaderVisualizer) source).composite.deepCopy();
}
public AbstractTableHeaderVisualizer deepCopy()
{
return new CustomTableHeaderVisualizer(this);
}
// ************************************************************
// abstract methods AbstractTableHeaderVisualizer
public Composite getHeaderVisualizer(
Object value, boolean selected, int index)
{
if (index != 3)
return null;
if (selected)
{
backRect.setPaint(selectedPaintFormat);
foreRect.setPaint(unselectedPaintFormat);
foreRect.set(50, 50, 350, 350);
} else
{
backRect.setPaint(unselectedPaintFormat);
foreRect.setPaint(selectedPaintFormat);
foreRect.set(100, 100, 300, 300);
}
return composite;
}
}
© 2004, 2005 Tensegrity Software GmbH