Package com.simplicite.util
Class Crosstab
- java.lang.Object
-
- com.simplicite.util.Crosstab
-
- All Implemented Interfaces:
java.io.Serializable
public class Crosstab extends java.lang.Object implements java.io.Serializable
Cross table definition- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description class
Crosstab.Axis
Crosstab axisclass
Crosstab.NodeLine
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
CAPTION_BOTTOM
static java.lang.String
CAPTION_LEFT
static java.lang.String
CAPTION_RIGHT
static java.lang.String
CAPTION_TOP
static char
METHOD_AVG_ALG
Algebraic average (optimized)static char
METHOD_AVG_GEO
Geometric averagestatic char
METHOD_FORMULA
Formulastatic char
METHOD_MAX
Max content (optimized)static char
METHOD_MIN
Min content (optimized)static char
METHOD_PROD
Product contentstatic char
METHOD_SUM
Sum content (optimized)static char
METHOD_TEXT
Text content
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description Crosstab.Axis
addAxis(java.lang.String fullInput, char type, int order, ObjectField field, ObjectDB obj, char method, java.lang.String chart, int precision, boolean subtotal, java.lang.String formula, java.lang.String display, boolean hidden)
Add a field in the crosstabvoid
addGrantedGroup(java.lang.String group)
void
build(ObjectDB obj)
Build pivot tablejava.util.List<java.lang.Object>[][]
build(java.util.List<java.lang.String> columns, java.util.List<java.lang.String> lines, java.util.Map<java.lang.String,java.lang.String> labels, Grant g)
Build pivot tableCrosstab.NodeLine
buildLineTree(Grant g, java.util.List<java.lang.String> lines, java.util.Map<java.lang.String,java.lang.String> labels, java.util.List<java.lang.Object>[][] val, boolean bText)
void
clear()
Clear memorystatic Crosstab.Axis
getAxis(java.util.List<Crosstab.Axis> axis, int index)
Get the field associated with axisCrosstab.Axis
getAxisForFullInput(char type, java.lang.String fullInput)
Get axis of specified type for specified input namejava.lang.String
getCaption()
Caption position top|bottom|left|rightjava.util.List<java.lang.Object>[][]
getCellValues()
java.lang.String
getChart()
Chart to display on front (without back-end Graphic)java.lang.String
getChartHeight()
Chart height to display on front (without back-end Graphic)java.lang.String
getChartWidth()
Chart width to display on front (without back-end Graphic)java.lang.String
getColor(int lineIndex, java.lang.String serieLabel)
Series colorjava.util.Map<java.lang.String,java.lang.String>
getColors()
Get serie label = #RRGGBBjava.util.List<Crosstab.Axis>
getColumnAxis(boolean all)
Definition of columns axisjava.lang.String
getColumnLabel(java.lang.String key, java.lang.String separator)
java.util.List<java.lang.String>
getColumnValues()
static java.lang.String
getCrosstabId(java.lang.String name)
Crosstab idjava.util.List<java.lang.String[]>
getCurrentColors()
Get current displayed colorsjava.lang.String
getDisplay()
Get translationstatic ObjectField
getField(ObjectDB obj, java.util.List<Crosstab.Axis> axis, int index)
Get the field associated with axisjava.util.List<java.lang.String>
getGrantedGroups()
Granted groupsGraphic
getGraphic()
java.lang.String
getId()
Crosstab idjava.lang.String
getLabel()
Get translation (alias to getDisplay)java.util.Map<java.lang.String,java.lang.String>
getLabels()
java.util.List<Crosstab.Axis>
getLineAxis(boolean all)
Definition of lines axisjava.lang.String
getLineLabel(java.lang.String key, java.lang.String separator, ObjectField value)
java.util.List<java.lang.String>
getLineValues()
char
getMethod()
Crosstab methodjava.lang.String
getName()
Crosstab nameObjectDB
getObject()
Objectjava.lang.String
getPaletteName()
Palette of colorsint
getPrecision()
PrecisionCrosstab.NodeLine
getRoot()
java.lang.String
getSubtotalColor(int level)
java.util.List<Crosstab.Axis>
getValueAxis(boolean all)
Definition of values axischar
getVisibility()
Action visibility Action.ACTION_ALL | ACTION_HIDDEN | ACTION_PLUSboolean
hasCaclulatedFields()
Has calculated fields ?boolean
hasFormulas()
Has formula values ?void
init(ObjectDB obj)
Initialize the databoolean
isControlVisible()
Controls visibleboolean
isEditable()
EXPERIMENTAL
The cell is editable if the value is linked to a unique row in DB:
- functional keys = heads values (column and row)
- other mandatory field are knownboolean
isEnabled()
boolean
isFixedColors()
Fixed colors ?boolean
isGrantable()
Grantable ?boolean
isGranted(Grant g)
boolean
isLoaded()
boolean
isSubtotalVisible()
Display sub totals ?boolean
isTableVisible()
Crosstable visible ?boolean
isVisible()
Visible ?void
nodeInsert(int line, java.lang.String pathKeys, java.lang.String pathLabels, Crosstab.NodeLine n, java.util.List<java.lang.Object>[] val)
Crosstab.NodeLine
nodeSearch(java.lang.String pathKeys, Crosstab.NodeLine nl)
void
removeGrantedGroup(java.lang.String group)
void
resetCurrentColors()
Reset current displayed colorsvoid
setCaption(java.lang.String caption)
void
setCellValues(java.util.List<java.lang.Object>[][] v)
void
setChart(java.lang.String chart)
void
setChartHeight(java.lang.String height)
void
setChartWidth(java.lang.String width)
void
setColor(java.lang.String serieLabel, java.lang.String color)
void
setColumnValues(java.util.List<java.lang.String> v)
void
setControlVisible(boolean b)
void
setDisplay(java.lang.String d)
void
setEnabled(boolean enabled)
void
setFixedColors(boolean fixed)
void
setGrantable(boolean b)
void
setGraphic(Graphic g)
void
setLabel(java.lang.String d)
void
setLabels(java.util.Map<java.lang.String,java.lang.String> h)
void
setLineValues(java.util.List<java.lang.String> v)
void
setLoaded(boolean b)
void
setMethod(char m)
void
setPaletteName(java.lang.String name)
void
setPrecision(int n)
void
setSubtotalColor(java.lang.String c)
Color of the total line (#RRGGBB)void
setSubtotalVisible(boolean b)
void
setTableVisible(boolean b)
void
setVisible(boolean b)
void
setVisible(char vis)
Set action visibilityjava.lang.String
toChartData(java.lang.String type, int line, java.lang.String title)
Publish to chart datajava.lang.String
toCSV(java.lang.String sep, Grant g)
Publish pivot table to CSVbyte[]
toExcel(Grant g, java.lang.String table, java.lang.String format)
Publish pivot table to Excel sheetjava.lang.String
toExcelHTML(Grant g, java.lang.String table)
Publish pivot table wrapped into an HTML Excel sheetbyte[]
toExcelPOI(Grant g)
Publish pivot table to binary Excel sheetjava.lang.String
toHTML(Grant g, boolean cubes)
Publish pivot table as raw HTMLjava.lang.String
toHTML(Grant g, boolean cubes, boolean embedded)
Publish pivot table as raw HTMLvoid
toHTML(Grant g, boolean cubes, boolean embedded, java.io.PrintWriter out)
Publish pivot table as raw HTML on specified print writer.void
toHTML(Grant g, boolean cubes, java.io.PrintWriter out)
Publish pivot table as raw HTML on specified print writer.java.lang.String
toJSON()
Publish to JSON { columns, lines, data } (does not support big decimals and sub-totals)java.lang.String
toJSONCubes()
Publish to JSON cubesjava.lang.String
toJSONDefinition()
java.lang.String
toJSONTree()
Prepared crosstab with tree of lines and up-to-date metadata { data:{columns,lines}, meta }, with sub-totals, colors and big decimalsjava.lang.String
toString()
java.lang.String
toXML()
java.lang.String
toXSD()
Publish pivot table in XSD format
-
-
-
Field Detail
-
METHOD_TEXT
public static final char METHOD_TEXT
Text content- See Also:
- Constant Field Values
-
METHOD_SUM
public static final char METHOD_SUM
Sum content (optimized)- See Also:
- Constant Field Values
-
METHOD_PROD
public static final char METHOD_PROD
Product content- See Also:
- Constant Field Values
-
METHOD_AVG_ALG
public static final char METHOD_AVG_ALG
Algebraic average (optimized)- See Also:
- Constant Field Values
-
METHOD_AVG_GEO
public static final char METHOD_AVG_GEO
Geometric average- See Also:
- Constant Field Values
-
METHOD_MIN
public static final char METHOD_MIN
Min content (optimized)- See Also:
- Constant Field Values
-
METHOD_MAX
public static final char METHOD_MAX
Max content (optimized)- See Also:
- Constant Field Values
-
METHOD_FORMULA
public static final char METHOD_FORMULA
Formula- See Also:
- Constant Field Values
-
CAPTION_TOP
public static final java.lang.String CAPTION_TOP
- See Also:
- Constant Field Values
-
CAPTION_BOTTOM
public static final java.lang.String CAPTION_BOTTOM
- See Also:
- Constant Field Values
-
CAPTION_LEFT
public static final java.lang.String CAPTION_LEFT
- See Also:
- Constant Field Values
-
CAPTION_RIGHT
public static final java.lang.String CAPTION_RIGHT
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
Crosstab
public Crosstab(java.lang.String id, ObjectDB object, java.lang.String name, java.lang.String display, char method, char visible, boolean fixedcolors, boolean grantable)
Constructor- Parameters:
id
- Crosstab idobject
- Objectname
- Crosstable namedisplay
- Label to displaymethod
- Group methodvisible
- Visible ?fixedcolors
- Use fixed colors ?grantable
- Granted to groups ?
-
-
Method Detail
-
getDisplay
public java.lang.String getDisplay()
Get translation- Returns:
- translation
-
getLabel
public java.lang.String getLabel()
Get translation (alias to getDisplay)- Returns:
- translation
-
setDisplay
public void setDisplay(java.lang.String d)
-
setLabel
public void setLabel(java.lang.String d)
-
isVisible
public boolean isVisible()
Visible ?- Returns:
- is Visible ?
-
getVisibility
public char getVisibility()
Action visibility Action.ACTION_ALL | ACTION_HIDDEN | ACTION_PLUS- Returns:
- Action visibility
-
setVisible
public void setVisible(boolean b)
-
setVisible
public void setVisible(char vis)
Set action visibility- Parameters:
vis
- Action.ACTION_ALL or Action.ACTION_HIDDEN or Action.ACTION_PLUS
-
isGrantable
public boolean isGrantable()
Grantable ?- Returns:
- Grantable ?
-
setGrantable
public void setGrantable(boolean b)
-
getGrantedGroups
public java.util.List<java.lang.String> getGrantedGroups()
Granted groups- Returns:
- Granted groups
-
addGrantedGroup
public void addGrantedGroup(java.lang.String group)
-
removeGrantedGroup
public void removeGrantedGroup(java.lang.String group)
-
isGranted
public boolean isGranted(Grant g)
-
isFixedColors
public boolean isFixedColors()
Fixed colors ?- Returns:
- Fixed colors ?
-
setFixedColors
public void setFixedColors(boolean fixed)
-
getPaletteName
public java.lang.String getPaletteName()
Palette of colors- Returns:
- Palette of colors
-
setPaletteName
public void setPaletteName(java.lang.String name)
-
getAxisForFullInput
public Crosstab.Axis getAxisForFullInput(char type, java.lang.String fullInput)
Get axis of specified type for specified input name- Parameters:
type
- Axis type (one of Crosstab.Axis.AXIS_*)fullInput
- Axis input name- Returns:
- null if not found
-
getColumnAxis
public java.util.List<Crosstab.Axis> getColumnAxis(boolean all)
Definition of columns axis- Parameters:
all
- All axis (otherwise only non hidden axis are returned) ?- Returns:
- Definition of columns axis
-
getLineAxis
public java.util.List<Crosstab.Axis> getLineAxis(boolean all)
Definition of lines axis- Parameters:
all
- All axis (otherwise only non hidden axis are returned) ?- Returns:
- Definition of lines axis
-
getValueAxis
public java.util.List<Crosstab.Axis> getValueAxis(boolean all)
Definition of values axis- Parameters:
all
- All axis (otherwise only non hidden axis are returned) ?- Returns:
- Definition of values axis
-
hasFormulas
public boolean hasFormulas()
Has formula values ?- Returns:
- Has formula values ?
-
hasCaclulatedFields
public boolean hasCaclulatedFields()
Has calculated fields ?- Returns:
- Contains a field without DB column
-
getMethod
public char getMethod()
Crosstab method- Returns:
- Crosstab method
-
setMethod
public void setMethod(char m)
-
setColumnValues
public void setColumnValues(java.util.List<java.lang.String> v)
-
getColumnValues
public java.util.List<java.lang.String> getColumnValues()
-
setLineValues
public void setLineValues(java.util.List<java.lang.String> v)
-
getLineValues
public java.util.List<java.lang.String> getLineValues()
-
setLabels
public void setLabels(java.util.Map<java.lang.String,java.lang.String> h)
-
getLabels
public java.util.Map<java.lang.String,java.lang.String> getLabels()
-
getColumnLabel
public java.lang.String getColumnLabel(java.lang.String key, java.lang.String separator)
-
getLineLabel
public java.lang.String getLineLabel(java.lang.String key, java.lang.String separator, ObjectField value)
-
setCellValues
public void setCellValues(java.util.List<java.lang.Object>[][] v)
-
getCellValues
public java.util.List<java.lang.Object>[][] getCellValues()
-
setGraphic
public void setGraphic(Graphic g)
-
getGraphic
public Graphic getGraphic()
-
getChart
public java.lang.String getChart()
Chart to display on front (without back-end Graphic)
-
setChart
public void setChart(java.lang.String chart)
-
getChartWidth
public java.lang.String getChartWidth()
Chart width to display on front (without back-end Graphic)
-
setChartWidth
public void setChartWidth(java.lang.String width)
-
getChartHeight
public java.lang.String getChartHeight()
Chart height to display on front (without back-end Graphic)
-
setChartHeight
public void setChartHeight(java.lang.String height)
-
getColor
public java.lang.String getColor(int lineIndex, java.lang.String serieLabel)
Series color- Parameters:
lineIndex
- lineserieLabel
- label- Returns:
- color
-
setColor
public void setColor(java.lang.String serieLabel, java.lang.String color)
-
getColors
public java.util.Map<java.lang.String,java.lang.String> getColors()
Get serie label = #RRGGBB- Returns:
- colors
-
getCurrentColors
public java.util.List<java.lang.String[]> getCurrentColors()
Get current displayed colors- Returns:
- Current displayed colors
-
resetCurrentColors
public void resetCurrentColors()
Reset current displayed colors
-
getId
public java.lang.String getId()
Crosstab id- Returns:
- Crosstab id
-
getCrosstabId
public static java.lang.String getCrosstabId(java.lang.String name)
Crosstab id- Parameters:
name
- Crosstab name- Returns:
- Crosstab id
-
getObject
public ObjectDB getObject()
Object- Returns:
- Object
-
getName
public java.lang.String getName()
Crosstab name- Returns:
- Crosstab name
-
isLoaded
public boolean isLoaded()
-
setLoaded
public void setLoaded(boolean b)
-
isEnabled
public boolean isEnabled()
-
setEnabled
public void setEnabled(boolean enabled)
-
isTableVisible
public boolean isTableVisible()
Crosstable visible ?- Returns:
- Crosstable visible ?
-
setTableVisible
public void setTableVisible(boolean b)
-
getCaption
public java.lang.String getCaption()
Caption position top|bottom|left|right- Returns:
- position CAPTION_*
-
setCaption
public void setCaption(java.lang.String caption)
-
isControlVisible
public boolean isControlVisible()
Controls visible- Returns:
- Controls visible
-
setControlVisible
public void setControlVisible(boolean b)
-
isSubtotalVisible
public boolean isSubtotalVisible()
Display sub totals ?- Returns:
- Display sub totals ?
-
setSubtotalVisible
public void setSubtotalVisible(boolean b)
-
setSubtotalColor
public void setSubtotalColor(java.lang.String c)
Color of the total line (#RRGGBB)- Parameters:
c
- subtotal color
-
getSubtotalColor
public java.lang.String getSubtotalColor(int level)
-
getPrecision
public int getPrecision()
Precision- Returns:
- precision
-
setPrecision
public void setPrecision(int n)
-
addAxis
public Crosstab.Axis addAxis(java.lang.String fullInput, char type, int order, ObjectField field, ObjectDB obj, char method, java.lang.String chart, int precision, boolean subtotal, java.lang.String formula, java.lang.String display, boolean hidden)
Add a field in the crosstab- Parameters:
fullInput
- Full input nametype
- Type (one of Crosstab.Axis.AXIS_*)order
- Axis orderfield
- Object fieldmethod
- Group by methodobj
- Objectchart
- Chart typeprecision
- Precisionsubtotal
- Sub total ?formula
- Formuladisplay
- Displayhidden
- Hidden ?
-
init
public void init(ObjectDB obj)
Initialize the data- Parameters:
obj
- Object with filters for search
-
clear
public void clear()
Clear memory
-
isEditable
public boolean isEditable()
EXPERIMENTAL
The cell is editable if the value is linked to a unique row in DB:
- functional keys = heads values (column and row)
- other mandatory field are known- Returns:
- True if the cell is editable
-
getAxis
public static Crosstab.Axis getAxis(java.util.List<Crosstab.Axis> axis, int index)
Get the field associated with axis- Parameters:
axis
- Axisindex
- Position- Returns:
- Field or null
-
getField
public static ObjectField getField(ObjectDB obj, java.util.List<Crosstab.Axis> axis, int index)
Get the field associated with axis- Parameters:
obj
- Objectaxis
- Axisindex
- Position- Returns:
- Field or null
-
build
public java.util.List<java.lang.Object>[][] build(java.util.List<java.lang.String> columns, java.util.List<java.lang.String> lines, java.util.Map<java.lang.String,java.lang.String> labels, Grant g)
Build pivot table- Parameters:
columns
- Column headerslines
- Row headerslabels
- Labelsg
- User rights- Returns:
- Values for each table cell (String or Double)
-
build
public void build(ObjectDB obj)
Build pivot table- Parameters:
obj
- Object
-
toXSD
public java.lang.String toXSD()
Publish pivot table in XSD format
-
toJSONDefinition
public java.lang.String toJSONDefinition()
-
toJSON
public java.lang.String toJSON()
Publish to JSON { columns, lines, data } (does not support big decimals and sub-totals)
-
toJSONTree
public java.lang.String toJSONTree()
Prepared crosstab with tree of lines and up-to-date metadata { data:{columns,lines}, meta }, with sub-totals, colors and big decimals
-
toJSONCubes
public java.lang.String toJSONCubes()
Publish to JSON cubes
-
toChartData
public java.lang.String toChartData(java.lang.String type, int line, java.lang.String title)
Publish to chart data- Parameters:
type
- Typeline
- Linetitle
- Title
-
toExcel
public byte[] toExcel(Grant g, java.lang.String table, java.lang.String format)
Publish pivot table to Excel sheet- Parameters:
g
- Granttable
- Tableformat
- Format (one of Globals.EXCEL_*)
-
toExcelHTML
public java.lang.String toExcelHTML(Grant g, java.lang.String table)
Publish pivot table wrapped into an HTML Excel sheet- Parameters:
g
- Granttable
- HTML table
-
toExcelPOI
public byte[] toExcelPOI(Grant g)
Publish pivot table to binary Excel sheet- Parameters:
g
- Grant
-
toCSV
public java.lang.String toCSV(java.lang.String sep, Grant g)
Publish pivot table to CSV- Parameters:
sep
- Separatorg
- Grant- Returns:
- CSV
-
toHTML
public java.lang.String toHTML(Grant g, boolean cubes)
Publish pivot table as raw HTML- Parameters:
g
- Grantcubes
- true generate data as cubes, false generates as pivot table- Returns:
- Publish pivot table as raw HTML
-
toHTML
public java.lang.String toHTML(Grant g, boolean cubes, boolean embedded)
Publish pivot table as raw HTML- Parameters:
g
- Grantcubes
- true generate data as cubes, false generates as pivot tableembedded
- Embedded? (false
means a full HTML Page,true
only the raw HTML table)- Returns:
- Publish pivot table as raw HTML
-
toHTML
public void toHTML(Grant g, boolean cubes, java.io.PrintWriter out)
Publish pivot table as raw HTML on specified print writer.- Parameters:
g
- Grantcubes
- true generate data as cubes, false generates as pivot tableout
- Print writer
-
toHTML
public void toHTML(Grant g, boolean cubes, boolean embedded, java.io.PrintWriter out)
Publish pivot table as raw HTML on specified print writer.- Parameters:
g
- Grantcubes
- true generate data as cubes, false generates as pivot tableembedded
- Embedded? (false
means a full HTML Page,true
only the raw HTML table)out
- Print writer
-
toXML
public java.lang.String toXML()
-
nodeSearch
public Crosstab.NodeLine nodeSearch(java.lang.String pathKeys, Crosstab.NodeLine nl)
-
nodeInsert
public void nodeInsert(int line, java.lang.String pathKeys, java.lang.String pathLabels, Crosstab.NodeLine n, java.util.List<java.lang.Object>[] val)
-
getRoot
public Crosstab.NodeLine getRoot()
-
buildLineTree
public Crosstab.NodeLine buildLineTree(Grant g, java.util.List<java.lang.String> lines, java.util.Map<java.lang.String,java.lang.String> labels, java.util.List<java.lang.Object>[][] val, boolean bText)
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-