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 static int SUBREPORT_DEFAULT_HEIGHT
           
 
Fields inherited from class ar.com.fdvs.dj.core.layout.AbstractLayoutManager
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  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  java.util.List getVisibleColumns()
          Returns a list with the columns that are visible.
protected  void insertValueInHeader(net.sf.jasperreports.engine.design.JRDesignBand headerBand, DJGroup columnsGroup, 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 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)
          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 columnsGroup, 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 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, createGroupForChartAndGetBand, createUniqueStyleName, ensureDJStyles, generateHeaderBand, generateTextFieldFromColumn, getDesign, getJRGroupFromDJGroup, getParent, getReport, getReportStyles, interpeterOptions, layoutCharts, 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
Constructor Detail

ClassicLayoutManager

public ClassicLayoutManager()
Method Detail

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

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)
If variables are present for a given group, they are placed in it's header/footer band.

Parameters:
DJGroup - group
JRDesignGroup - jgroup
Throws:
LayoutException

placeVariableInBand

protected void placeVariableInBand(java.util.List variables,
                                   DJGroup columnsGroup,
                                   net.sf.jasperreports.engine.design.JRDesignGroup jgroup,
                                   java.lang.String type,
                                   net.sf.jasperreports.engine.design.JRDesignBand band,
                                   int yOffset)

findLeftMostColumn

protected DJGroupVariable findLeftMostColumn(java.util.List variables)

insertValueInHeader

protected void insertValueInHeader(net.sf.jasperreports.engine.design.JRDesignBand headerBand,
                                   DJGroup columnsGroup,
                                   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-2008 FDV Solutions. All Rights Reserved.