ar.com.fdvs.dj.core.layout
Class ClassicLayoutManager

java.lang.Object
  extended by ar.com.fdvs.dj.core.layout.AbstractLayoutManager
      extended by ar.com.fdvs.dj.core.layout.ClassicLayoutManager
All Implemented Interfaces:
LayoutManager

public class ClassicLayoutManager
extends AbstractLayoutManager

Main Layout Manager recommended for most cases.

It provides DJ full features (styles, groups, conditional styles,
expressions, group and total variables, etc)


Field Summary
protected static java.lang.String EXPRESSION_TRUE_WHEN_FIRST_PAGE
           
protected static java.lang.String EXPRESSION_TRUE_WHEN_NOT_FIRST_PAGE
           
protected static java.lang.String PAGE_BREAK_FOR_
           
protected  java.util.Map referencesMap
           
protected static int SUBREPORT_DEFAULT_HEIGHT
           
 
Fields inherited from class ar.com.fdvs.dj.core.layout.AbstractLayoutManager
EXPRESSION_TRUE_WHEN_EVEN, EXPRESSION_TRUE_WHEN_ODD, realGroups
 
Constructor Summary
ClassicLayoutManager()
           
 
Method Summary
protected  void applyBanners()
          Create the image elements for the banners tha goes into the title and header bands depending on the case
protected  void applyFooterAutotexts()
           
protected  void applyHeaderAutotexts()
           
protected  void applyImageBannersToBand(net.sf.jasperreports.engine.design.JRDesignBand band, java.util.Collection imageBanners, net.sf.jasperreports.engine.design.JRDesignExpression printWhenExpression)
          Create the image elements for the banners tha goes into the title band
protected  int changeHeaderBandHeightForVariables(net.sf.jasperreports.engine.design.JRDesignBand headerBand, DJGroup columnsGroup)
           
protected  net.sf.jasperreports.engine.design.JRDesignRectangle createBlankRectableCrosstab(int amount, int yOffset)
           
protected  net.sf.jasperreports.engine.design.JRDesignTextField createColumnNameTextField(DJGroup columnsGroup, AbstractColumn col)
           
protected  void endLayout()
           
protected  DJGroupVariable findLeftMostColumn(java.util.List variables)
           
protected  DJGroupVariable findRightMostColumn(java.util.List variables)
           
protected  int findTotalOffset(java.util.ArrayList aligments, java.util.ArrayList autotexts, byte position)
          Finds the highest sum of height for each possible alignment (left, center, right)
protected  void generateHeaderBand()
           
protected  void generateTitleBand()
          Adds title and subtitle to the TitleBand when it applies.
protected  int getFooterVariableHeight(DJGroup columnsGroup)
           
protected  int getHeaderVariablesHeight(DJGroup columnsGroup)
           
 java.util.Map getReferencesMap()
          Useful as shared object between RegistrationManagers and the LayOutManager.
protected  java.util.List getVisibleColumns()
          Returns a list with the columns that are visible.
protected  boolean groupLabelsPresent(java.util.List groupVariables)
           
protected  void insertValueInHeader(net.sf.jasperreports.engine.design.JRDesignBand headerBand, DJGroup djgroup, int headerOffset)
           
protected  void layoutGroupCrosstabs(DJGroup columnsGroup, net.sf.jasperreports.engine.design.JRDesignGroup jgroup)
          Looks for crosstabs in the groups, if any, it does the layout
protected  void layoutGroupFooterLabels(DJGroup djgroup, net.sf.jasperreports.engine.design.JRDesignGroup jgroup, int x, int y, int width, int height)
          Creates needed textfields for general label in footer groups.
protected  void layoutGroups()
          Layout columns in groups by reading the corresponding report options.
protected  void layoutGroupSubreports(DJGroup columnsGroup, net.sf.jasperreports.engine.design.JRDesignGroup jgroup)
          If there is a SubReport on a Group, we do the layout here
protected  void layoutGroupVariables(DJGroup group, net.sf.jasperreports.engine.design.JRDesignGroup jgroup, int labelOffset)
          If variables are present for a given group, they are placed in it's header/footer band.
protected  void layOutSubReportInBand(DJGroup columnsGroup, net.sf.jasperreports.engine.design.JRDesignBand band, java.lang.String position)
           
protected  void placeVariableInBand(java.util.List variables, DJGroup djGroup, net.sf.jasperreports.engine.design.JRDesignGroup jgroup, java.lang.String type, net.sf.jasperreports.engine.design.JRDesignBand band, int yOffset)
           
protected  void sendPageBreakToBottom(net.sf.jasperreports.engine.design.JRDesignBand band)
          page breaks should be near the bottom of the band, this method used while adding subreports which has the "start on new page" option.
protected  void setTextAndClassToExpression(net.sf.jasperreports.engine.design.JRDesignExpression expression, DJGroupVariable var, AbstractColumn col, java.lang.String variableName)
          If a variable has a DJValueFormatter, we must use it in the expression, otherwise, use plain $V{...}
protected  void startLayout()
           
protected  void transformDetailBandTextField(AbstractColumn column, net.sf.jasperreports.engine.design.JRDesignTextField textField)
           
 
Methods inherited from class ar.com.fdvs.dj.core.layout.AbstractLayoutManager
addStyleToDesign, applyLayout, applyStyleToElement, createChart, createChart, createGroupForChartAndGetBand, createGroupForChartAndGetBand, createUniqueStyleName, ensureDJStyles, existsGroupWithColumnNames, generateHeaderBand, generateTextFieldFromColumn, getChartColumnsGroup, getDesign, getDJGroup, getJRGroupFromDJGroup, getParent, getReport, getReportStyles, interpeterOptions, layoutCharts, makeConditionalStyle, registerChartVariable, registerChartVariable, registerRemainingStyles, setBandFinalHeight, setBandsFinalHeight, setColumnsFinalWidth, setDesign, setReport, setReportStyles, setWhenNoDataBand, transformDetailBand
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PAGE_BREAK_FOR_

protected static final java.lang.String PAGE_BREAK_FOR_
See Also:
Constant Field Values

SUBREPORT_DEFAULT_HEIGHT

protected static final int SUBREPORT_DEFAULT_HEIGHT
See Also:
Constant Field Values

EXPRESSION_TRUE_WHEN_NOT_FIRST_PAGE

protected static final java.lang.String EXPRESSION_TRUE_WHEN_NOT_FIRST_PAGE
See Also:
Constant Field Values

EXPRESSION_TRUE_WHEN_FIRST_PAGE

protected static final java.lang.String EXPRESSION_TRUE_WHEN_FIRST_PAGE
See Also:
Constant Field Values

referencesMap

protected java.util.Map referencesMap
Constructor Detail

ClassicLayoutManager

public ClassicLayoutManager()
Method Detail

getReferencesMap

public java.util.Map getReferencesMap()
Description copied from interface: LayoutManager
Useful as shared object between RegistrationManagers and the LayOutManager. An example of usage is the mapping between DJ objects and JR objects through its name, like a DJGroup and a JRDesignGroup

Returns:

startLayout

protected void startLayout()
Overrides:
startLayout in class AbstractLayoutManager

applyHeaderAutotexts

protected void applyHeaderAutotexts()

findTotalOffset

protected int findTotalOffset(java.util.ArrayList aligments,
                              java.util.ArrayList autotexts,
                              byte position)
Finds the highest sum of height for each possible alignment (left, center, right)

Parameters:
aligments -
autotexts -
Returns:

endLayout

protected void endLayout()
Overrides:
endLayout in class AbstractLayoutManager

applyFooterAutotexts

protected void applyFooterAutotexts()

getVisibleColumns

protected java.util.List getVisibleColumns()
Returns a list with the columns that are visible. Invisible column are the one whose group is configured with hideColumn = true (in the GroupLayout)

Overrides:
getVisibleColumns in class AbstractLayoutManager
Returns:

applyBanners

protected void applyBanners()
Create the image elements for the banners tha goes into the title and header bands depending on the case


applyImageBannersToBand

protected void applyImageBannersToBand(net.sf.jasperreports.engine.design.JRDesignBand band,
                                       java.util.Collection imageBanners,
                                       net.sf.jasperreports.engine.design.JRDesignExpression printWhenExpression)
Create the image elements for the banners tha goes into the title band

Parameters:
printWhenExpression -

generateTitleBand

protected void generateTitleBand()
Adds title and subtitle to the TitleBand when it applies. If title is not present then subtitle will be ignored


layoutGroups

protected void layoutGroups()
Layout columns in groups by reading the corresponding report options.

Throws:
LayoutException

layoutGroupFooterLabels

protected void layoutGroupFooterLabels(DJGroup djgroup,
                                       net.sf.jasperreports.engine.design.JRDesignGroup jgroup,
                                       int x,
                                       int y,
                                       int width,
                                       int height)
Creates needed textfields for general label in footer groups.

Parameters:
djgroup -
jgroup -

layoutGroupCrosstabs

protected void layoutGroupCrosstabs(DJGroup columnsGroup,
                                    net.sf.jasperreports.engine.design.JRDesignGroup jgroup)
Looks for crosstabs in the groups, if any, it does the layout

Parameters:
columnsGroup -
jgroup -

createBlankRectableCrosstab

protected net.sf.jasperreports.engine.design.JRDesignRectangle createBlankRectableCrosstab(int amount,
                                                                                           int yOffset)
Parameters:
djcross -
crosst -
Returns:

createColumnNameTextField

protected net.sf.jasperreports.engine.design.JRDesignTextField createColumnNameTextField(DJGroup columnsGroup,
                                                                                         AbstractColumn col)
Parameters:
columnsGroup -
col -
Returns:

layoutGroupSubreports

protected void layoutGroupSubreports(DJGroup columnsGroup,
                                     net.sf.jasperreports.engine.design.JRDesignGroup jgroup)
If there is a SubReport on a Group, we do the layout here

Parameters:
columnsGroup -
jgroup -

layOutSubReportInBand

protected void layOutSubReportInBand(DJGroup columnsGroup,
                                     net.sf.jasperreports.engine.design.JRDesignBand band,
                                     java.lang.String position)
Parameters:
columnsGroup -
band -
position -

sendPageBreakToBottom

protected void sendPageBreakToBottom(net.sf.jasperreports.engine.design.JRDesignBand band)
page breaks should be near the bottom of the band, this method used while adding subreports which has the "start on new page" option.

Parameters:
band -

layoutGroupVariables

protected void layoutGroupVariables(DJGroup group,
                                    net.sf.jasperreports.engine.design.JRDesignGroup jgroup,
                                    int labelOffset)
If variables are present for a given group, they are placed in it's header/footer band.

Parameters:
DJGroup - group
JRDesignGroup - jgroup
int - labelOffset
Throws:
LayoutException

groupLabelsPresent

protected boolean groupLabelsPresent(java.util.List groupVariables)
Parameters:
groupVariables -
Returns:

placeVariableInBand

protected void placeVariableInBand(java.util.List variables,
                                   DJGroup djGroup,
                                   net.sf.jasperreports.engine.design.JRDesignGroup jgroup,
                                   java.lang.String type,
                                   net.sf.jasperreports.engine.design.JRDesignBand band,
                                   int yOffset)
Parameters:
variables -
djGroup -
jgroup -
type - (header or footer)
band -
yOffset -

getHeaderVariablesHeight

protected int getHeaderVariablesHeight(DJGroup columnsGroup)

getFooterVariableHeight

protected int getFooterVariableHeight(DJGroup columnsGroup)

setTextAndClassToExpression

protected void setTextAndClassToExpression(net.sf.jasperreports.engine.design.JRDesignExpression expression,
                                           DJGroupVariable var,
                                           AbstractColumn col,
                                           java.lang.String variableName)
If a variable has a DJValueFormatter, we must use it in the expression, otherwise, use plain $V{...}

Parameters:
expression -
var -
col -
variableName -

findLeftMostColumn

protected DJGroupVariable findLeftMostColumn(java.util.List variables)

findRightMostColumn

protected DJGroupVariable findRightMostColumn(java.util.List variables)

insertValueInHeader

protected void insertValueInHeader(net.sf.jasperreports.engine.design.JRDesignBand headerBand,
                                   DJGroup djgroup,
                                   int headerOffset)

changeHeaderBandHeightForVariables

protected int changeHeaderBandHeightForVariables(net.sf.jasperreports.engine.design.JRDesignBand headerBand,
                                                 DJGroup columnsGroup)

generateHeaderBand

protected void generateHeaderBand()

transformDetailBandTextField

protected void transformDetailBandTextField(AbstractColumn column,
                                            net.sf.jasperreports.engine.design.JRDesignTextField textField)
Specified by:
transformDetailBandTextField in class AbstractLayoutManager


Copyright © 2006-2011 FDV Solutions. All Rights Reserved.