ca.sqlpower.wabit.report
Class Label

java.lang.Object
  extended by ca.sqlpower.wabit.AbstractWabitObject
      extended by ca.sqlpower.wabit.report.Label
All Implemented Interfaces:
ReportContentRenderer, WabitObject

public class Label
extends AbstractWabitObject
implements ReportContentRenderer

A simple report content item that prints out some text with optional variable substitution. Variables are described in the documentation for the Variables class.


Nested Class Summary
 
Nested classes/interfaces inherited from interface ca.sqlpower.wabit.report.ReportContentRenderer
ReportContentRenderer.BackgroundColours
 
Constructor Summary
Label()
           
Label(Label label)
          Copy constructor
Label(java.lang.String text)
          Creates a new label with the given initial text.
 
Method Summary
 boolean allowsChildren()
          Returns true if this object may contain children.
 int childPositionOffset(java.lang.Class<? extends WabitObject> childType)
          Returns the position in the list that would be returned by getChildren() that the first object of type childClass is, or where it would be if there were any children of that type.
 java.awt.Color getBackgroundColour()
           
 java.util.List<? extends WabitObject> getChildren()
          Returns an unmodifiable list of the children in this WabitObject.
 java.util.List<WabitObject> getDependencies()
          Returns a list of all WabitObjects that this Wabit object is dependent on.
 java.awt.Font getFont()
           
 HorizontalAlignment getHorizontalAlignment()
           
 ContentBox getParent()
          Returns the parent of this WabitObject.
 java.lang.String getText()
          Returns the text of this label without substituting the variables.
 VariableContext getVariableContext()
           
 VerticalAlignment getVerticalAlignment()
           
 void refresh()
          Refreshes the data being rendered by this ReportContentRenderer so that it has the most recent data.
protected  boolean removeChildImpl(WabitObject child)
          This is the object specific implementation of removeChild.
 void removeDependency(WabitObject dependency)
          Removes the given object as a dependency of this object.
 boolean renderReportContent(java.awt.Graphics2D g, ContentBox contentBox, double scaleFactor, int pageIndex, boolean printing)
          Renders this label to the given graphics, with the baseline centered in the content box.
 void resetToFirstPage()
          Tells this content renderer that the next call to #renderReportContent(Graphics2D, ContentBox, double) should produce the first page of output again.
 void setBackgroundColour(java.awt.Color backgroundColour)
           
 void setFont(java.awt.Font font)
           
 void setHorizontalAlignment(HorizontalAlignment alignment)
           
 void setText(java.lang.String text)
          Sets the new text for this label.
 void setVariableContext(VariableContext variableContext)
          ONLY USED FOR TESTING
 void setVerticalAlignment(VerticalAlignment alignment)
           
 
Methods inherited from class ca.sqlpower.wabit.AbstractWabitObject
addChild, addChildImpl, addWabitListener, begin, beginTransaction, cleanup, commit, commitTransaction, equals, fireChildAdded, fireChildRemoved, firePropertyChange, firePropertyChange, firePropertyChange, fireTransactionEnded, fireTransactionRollback, fireTransactionStarted, generateNewUUID, getChildren, getName, getSession, getUUID, isForegroundThread, removeChild, removeWabitListener, rollback, rollbackTransaction, runInBackground, runInForeground, setName, setParent, setUUID, toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface ca.sqlpower.wabit.WabitObject
addChild, addWabitListener, begin, cleanup, commit, generateNewUUID, getChildren, getName, getUUID, removeChild, removeWabitListener, rollback, setName, setParent, setUUID
 

Constructor Detail

Label

public Label(java.lang.String text)
Creates a new label with the given initial text.

Parameters:
variableContext -
text -

Label

public Label(Label label)
Copy constructor


Label

public Label()
Method Detail

setText

public void setText(java.lang.String text)
Sets the new text for this label. The text may include variables as described in the class-level docs of Variables.


getText

public java.lang.String getText()
Returns the text of this label without substituting the variables.


getHorizontalAlignment

public HorizontalAlignment getHorizontalAlignment()

setHorizontalAlignment

public void setHorizontalAlignment(HorizontalAlignment alignment)

getVerticalAlignment

public VerticalAlignment getVerticalAlignment()

setVerticalAlignment

public void setVerticalAlignment(VerticalAlignment alignment)

setFont

public void setFont(java.awt.Font font)

getFont

public java.awt.Font getFont()

setVariableContext

public void setVariableContext(VariableContext variableContext)
ONLY USED FOR TESTING


renderReportContent

public boolean renderReportContent(java.awt.Graphics2D g,
                                   ContentBox contentBox,
                                   double scaleFactor,
                                   int pageIndex,
                                   boolean printing)
Renders this label to the given graphics, with the baseline centered in the content box. Note that specifying a pageIndex has no effect, since Labels are intended to be the same on every page.

Specified by:
renderReportContent in interface ReportContentRenderer
Parameters:
g - The graphics to render into. The origin (top left corner or (0,0)) of this graphics is translated to the top-left corner of the content box.
contentBox - The box that determines the size and shape that the rendered data must fit within. You can ignore the X and Y coordinates of the box because the given graphics object's origin is already set to this box's origin.
scaleFactor - The amount of scaling currently in effect. The nominal size of a unit when displayed via the given graphics is scaleFactor/72 inches.
pageIndex - The zero-based page number for which the corresponding report content will be rendered.
printing - This tells the renderer if the report is being printed. If set to true the full report will be built, otherwise a cached result will be used. Set this to true if the report is being printed.
Returns:
True if this renderer has more data to render, and would like to be called upon again. Returning true will typically cause the report to grow by another page. The final page of the report is the first one where all content renderers involved return false.

getParent

public ContentBox getParent()
Description copied from interface: WabitObject
Returns the parent of this WabitObject. This will be null when the object is first created until it is added as a child to another object. If this object is never added as a child to another object this will remain null and the object may be treated as the root node of a WabitObject tree.

Specified by:
getParent in interface WabitObject
Overrides:
getParent in class AbstractWabitObject
Returns:
The parent of this object.

allowsChildren

public boolean allowsChildren()
Description copied from interface: WabitObject
Returns true if this object may contain children. Not all types of WabitObjects can be a child to any WabitObject.

Specified by:
allowsChildren in interface WabitObject
See Also:
WabitObject.childPositionOffset(Class)

childPositionOffset

public int childPositionOffset(java.lang.Class<? extends WabitObject> childType)
Description copied from interface: WabitObject
Returns the position in the list that would be returned by getChildren() that the first object of type childClass is, or where it would be if there were any children of that type.

Specified by:
childPositionOffset in interface WabitObject

getChildren

public java.util.List<? extends WabitObject> getChildren()
Description copied from interface: WabitObject
Returns an unmodifiable list of the children in this WabitObject. If there are no children in this WabitObject an empty list should be returned.

Specified by:
getChildren in interface WabitObject

resetToFirstPage

public void resetToFirstPage()
Description copied from interface: ReportContentRenderer
Tells this content renderer that the next call to #renderReportContent(Graphics2D, ContentBox, double) should produce the first page of output again.

Specified by:
resetToFirstPage in interface ReportContentRenderer

getBackgroundColour

public java.awt.Color getBackgroundColour()
Specified by:
getBackgroundColour in interface ReportContentRenderer

setBackgroundColour

public void setBackgroundColour(java.awt.Color backgroundColour)

getDependencies

public java.util.List<WabitObject> getDependencies()
Description copied from interface: WabitObject
Returns a list of all WabitObjects that this Wabit object is dependent on. Children of a WabitObject are not dependencies and will not be returned in this list. If there are no objects this Wabit object is dependent on an empty list should be returned. These are only the immediate dependencies of this object. If you want to find the dependencies of this object's dependencies as well it may be useful to look at WorkspaceGraphModel to make a full graph of all of the dependencies.

Specified by:
getDependencies in interface WabitObject

removeDependency

public void removeDependency(WabitObject dependency)
Description copied from interface: WabitObject
Removes the given object as a dependency of this object. For this object to no longer be dependent on the given dependency all of its children must also not be dependent on the given dependency when this method returns. This may remove this object from its parent if necessary.

Specified by:
removeDependency in interface WabitObject

getVariableContext

public VariableContext getVariableContext()

refresh

public void refresh()
Description copied from interface: ReportContentRenderer
Refreshes the data being rendered by this ReportContentRenderer so that it has the most recent data. If the data this renderer renders is static, then it doesn't need to do anything (no-op).

Specified by:
refresh in interface ReportContentRenderer

removeChildImpl

protected boolean removeChildImpl(WabitObject child)
Description copied from class: AbstractWabitObject
This is the object specific implementation of removeChild. There are checks in the removeChild method to ensure the child being removed has no dependencies and is a child of this object.

Specified by:
removeChildImpl in class AbstractWabitObject
See Also:
AbstractWabitObject.removeChild(WabitObject)


Copyright © 2009. All Rights Reserved.