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
Line tree
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
CAPTION_BOTTOM
Caption on bottomstatic java.lang.String
CAPTION_LEFT
Caption on leftstatic java.lang.String
CAPTION_RIGHT
Caption on rightstatic java.lang.String
CAPTION_TOP
Caption on topstatic 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 Deprecated 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)
Deprecated.Crosstab.Axis
addAxis(java.lang.String fullInput, char type, int order, ObjectField field, ObjectDB obj, char method, java.lang.String chart, int yaxis, java.lang.String palette, 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, boolean edit)
Add a granted groupvoid
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)
boolean
canEdit()
Is the pivot table editable? true if rows/columns contain all key fields.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()
Get caption positionjava.util.List<java.lang.Object>[][]
getCellValues()
Get cells valuesjava.lang.String
getChart()
Get chartjava.lang.String
getChartHeight()
Get chart heightjava.lang.String
getChartWidth()
Get chart widthjava.util.List<Crosstab.Axis>
getColumnAxis(boolean all)
Definition of columns axisjava.lang.String
getColumnLabel(java.lang.String key, java.lang.String separator)
Get column labeljava.util.List<java.lang.String>
getColumnValues()
Get columns valuesstatic java.lang.String
getCrosstabId(java.lang.String name)
Crosstab idjava.lang.String
getDisplay()
Get translationstatic ObjectField
getField(ObjectDB obj, java.util.List<Crosstab.Axis> axis, int index)
Get the field associated with axisjava.lang.String
getId()
Get pivot table IDjava.lang.String
getLabel()
Get translation (alias to getDisplay)java.util.Map<java.lang.String,java.lang.String>
getLabels()
Get columns and lines labelsjava.util.List<Crosstab.Axis>
getLineAxis(boolean all)
Definition of lines axisjava.lang.String
getLineLabel(java.lang.String key, java.lang.String separator, ObjectField value)
Get line labeljava.util.List<java.lang.String>
getLineValues()
Get lines valueschar
getMethod()
Get pivot table methodjava.lang.String
getName()
Get pivot table namestatic java.lang.String
getName(java.lang.String rowId)
Get pivot table name from its row IDObjectDB
getObject()
Get pivot table bjectjava.lang.String
getPaletteName()
Get palette of colorsint
getPrecision()
Get precisionCrosstab.NodeLine
getRoot()
java.lang.String
getSubtotalColor(int level)
Set sub-total color (#RRGGBB)java.util.List<Crosstab.Axis>
getValueAxis(boolean all)
Definition of values axischar
getVisibility()
Get action visibilityboolean
hasCaclulatedFields()
Has calculated fields ?boolean
hasFormulas()
Has formula values ?void
init(ObjectDB obj)
Initialize the databoolean
isControlVisible()
Are controls visibleboolean
isEditable(Grant g)
Is the pivot table editable and the user granted? The cell is editable if the cell is linked to a unique row in DB (columns and rows must contain the user-key)boolean
isEditGranted(Grant g)
Is the table editable for the userboolean
isEnabled()
Is enabled?boolean
isFixedColors()
Is using fixed colors ?boolean
isGrantable()
Is grantable?boolean
isGranted(Grant g)
Is the table accessible to userboolean
isLoaded()
Is loaded?boolean
isSubtotalVisible()
Display sub-totals?boolean
isTableVisible()
Is table visible?boolean
isVisible()
Is 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)
Remove a grabted groupvoid
setCaption(java.lang.String caption)
Set caption positionvoid
setCellValues(java.util.List<java.lang.Object>[][] v)
Set cells valuesvoid
setChart(java.lang.String chart)
Set chartvoid
setChartHeight(java.lang.String height)
Set chart heightvoid
setChartWidth(java.lang.String width)
Set chart widthvoid
setColumnValues(java.util.List<java.lang.String> v)
Set columns valuesvoid
setControlVisible(boolean b)
Set controls visiblevoid
setDisplay(java.lang.String d)
Set translationvoid
setEditable(java.lang.Boolean b)
Set the pivot table to be editablevoid
setEnabled(boolean enabled)
Set enabledvoid
setFixedColors(boolean fixed)
Set using fixed colorsvoid
setGrantable(boolean b)
Set grantablevoid
setLabel(java.lang.String d)
Set translation (alias to setDisplay)void
setLabels(java.util.Map<java.lang.String,java.lang.String> h)
Set columns and lines labelsvoid
setLineValues(java.util.List<java.lang.String> v)
Set lines valuesvoid
setLoaded(boolean b)
Set is loadedvoid
setMethod(char m)
Set pivot table methodvoid
setPaletteName(java.lang.String name)
Set palette of colorsvoid
setPrecision(int n)
Set precisionvoid
setSubtotalColor(java.lang.String c)
Set color of the sub-total line (#RRGGBB)void
setSubtotalVisible(boolean b)
Set display sub-totalsvoid
setTableVisible(boolean b)
Set table visiblevoid
setVisible(boolean b)
Set visiblevoid
setVisible(char vis)
Set action visibilityjava.lang.String
toCSV(java.lang.String sep, Grant g)
Publish pivot table to CSVbyte[]
toExcel(Grant g)
Publish pivot table to Excel POI 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
Caption on top- See Also:
- Constant Field Values
-
CAPTION_BOTTOM
public static final java.lang.String CAPTION_BOTTOM
Caption on bottom- See Also:
- Constant Field Values
-
CAPTION_LEFT
public static final java.lang.String CAPTION_LEFT
Caption on left- See Also:
- Constant Field Values
-
CAPTION_RIGHT
public static final java.lang.String CAPTION_RIGHT
Caption on 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)
Set translation- Parameters:
d
- Translation
-
setLabel
public void setLabel(java.lang.String d)
Set translation (alias to setDisplay)- Parameters:
d
- Translation
-
isVisible
public boolean isVisible()
Is visible?- Returns:
- True if is Visible
-
getVisibility
public char getVisibility()
Get action visibility- Returns:
- Action visibility (Action.ACTION_ALL or ACTION_HIDDEN or ACTION_PLUS)
-
setVisible
public void setVisible(boolean b)
Set visible- Parameters:
b
- Visible?
-
setVisible
public void setVisible(char vis)
Set action visibility- Parameters:
vis
- Action visibility (Action.ACTION_ALL or Action.ACTION_HIDDEN or Action.ACTION_PLUS)
-
isGrantable
public boolean isGrantable()
Is grantable?- Returns:
- True if is grantable
-
setGrantable
public void setGrantable(boolean b)
Set grantable- Parameters:
b
- Granteble?
-
addGrantedGroup
public void addGrantedGroup(java.lang.String group, boolean edit)
Add a granted group- Parameters:
group
- Group nameedit
- Editable?
-
removeGrantedGroup
public void removeGrantedGroup(java.lang.String group)
Remove a grabted group- Parameters:
group
- Group name
-
isGranted
public boolean isGranted(Grant g)
Is the table accessible to user- Parameters:
g
- User rights- Returns:
- True if the table is not grantable or one granted group is permitted
-
isEditGranted
public boolean isEditGranted(Grant g)
Is the table editable for the user- Parameters:
g
- User rights- Returns:
- True if the table is grantable and one granted group is allowed to edit
-
isFixedColors
public boolean isFixedColors()
Is using fixed colors ?- Returns:
- True if using fixed colors
-
setFixedColors
public void setFixedColors(boolean fixed)
Set using fixed colors- Parameters:
fixed
- Using fixed colors?
-
getPaletteName
public java.lang.String getPaletteName()
Get palette of colors- Returns:
- Palette of colors
-
setPaletteName
public void setPaletteName(java.lang.String name)
Set palette of colors- Parameters:
name
- Palette of colors
-
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()
Get pivot table method- Returns:
- Pivot table method
-
setMethod
public void setMethod(char m)
Set pivot table method- Parameters:
m
- Pivot table method
-
setColumnValues
public void setColumnValues(java.util.List<java.lang.String> v)
Set columns values- Parameters:
v
- Columns values
-
getColumnValues
public java.util.List<java.lang.String> getColumnValues()
Get columns values- Returns:
- Columns values
-
setLineValues
public void setLineValues(java.util.List<java.lang.String> v)
Set lines values- Parameters:
v
- Lines values
-
getLineValues
public java.util.List<java.lang.String> getLineValues()
Get lines values- Returns:
- Lines values
-
setLabels
public void setLabels(java.util.Map<java.lang.String,java.lang.String> h)
Set columns and lines labels- Parameters:
h
- Columns and lines labels
-
getLabels
public java.util.Map<java.lang.String,java.lang.String> getLabels()
Get columns and lines labels- Returns:
- Columns and lines labels
-
getColumnLabel
public java.lang.String getColumnLabel(java.lang.String key, java.lang.String separator)
Get column label- Parameters:
key
- Keyseparator
- Separator- Returns:
- Column label
-
getLineLabel
public java.lang.String getLineLabel(java.lang.String key, java.lang.String separator, ObjectField value)
Get line label- Parameters:
key
- Keyseparator
- Separatorvalue
- Value field- Returns:
- Line label
-
setCellValues
public void setCellValues(java.util.List<java.lang.Object>[][] v)
Set cells values- Parameters:
v
- Cells values
-
getCellValues
public java.util.List<java.lang.Object>[][] getCellValues()
Get cells values- Returns:
- Cells values
-
getChart
public java.lang.String getChart()
Get chart- Returns:
- Chart
-
setChart
public void setChart(java.lang.String chart)
Set chart- Parameters:
chart
- Chart
-
getChartWidth
public java.lang.String getChartWidth()
Get chart width- Returns:
- Chart width
-
setChartWidth
public void setChartWidth(java.lang.String width)
Set chart width- Parameters:
width
- Chart width
-
getChartHeight
public java.lang.String getChartHeight()
Get chart height- Returns:
- Chart height
-
setChartHeight
public void setChartHeight(java.lang.String height)
Set chart height- Parameters:
height
- Chart height
-
getId
public java.lang.String getId()
Get pivot table ID- Returns:
- Pivot table 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()
Get pivot table bject- Returns:
- Pivot table object
-
getName
public java.lang.String getName()
Get pivot table name- Returns:
- Pivot table name
-
getName
public static java.lang.String getName(java.lang.String rowId)
Get pivot table name from its row ID- Parameters:
rowId
- Row ID- Returns:
- Pivot table name if it exists
-
isLoaded
public boolean isLoaded()
Is loaded?- Returns:
- True if is loaded
-
setLoaded
public void setLoaded(boolean b)
Set is loaded- Parameters:
b
- Loaded?
-
isEnabled
public boolean isEnabled()
Is enabled?- Returns:
- True if enabled
-
setEnabled
public void setEnabled(boolean enabled)
Set enabled- Parameters:
enabled
- Enabled?
-
isTableVisible
public boolean isTableVisible()
Is table visible?- Returns:
- True if table is visible
-
setTableVisible
public void setTableVisible(boolean b)
Set table visible- Parameters:
b
- Table visible?
-
getCaption
public java.lang.String getCaption()
Get caption position- Returns:
- Caption position (one of CAPTION_*)
-
setCaption
public void setCaption(java.lang.String caption)
Set caption position- Parameters:
caption
- Caption position (one of CAPTION_*)
-
isControlVisible
public boolean isControlVisible()
Are controls visible- Returns:
- True if controls are visible
-
setControlVisible
public void setControlVisible(boolean b)
Set controls visible- Parameters:
b
- Visible?
-
isSubtotalVisible
public boolean isSubtotalVisible()
Display sub-totals?- Returns:
- True if sub-totals are displayed
-
setSubtotalVisible
public void setSubtotalVisible(boolean b)
Set display sub-totals- Parameters:
b
- Display sub-totals?
-
setSubtotalColor
public void setSubtotalColor(java.lang.String c)
Set color of the sub-total line (#RRGGBB)- Parameters:
c
- Sub-total color
-
getSubtotalColor
public java.lang.String getSubtotalColor(int level)
Set sub-total color (#RRGGBB)- Parameters:
level
- Level- Returns:
- Suv-total color
-
getPrecision
public int getPrecision()
Get precision- Returns:
- Precision
-
setPrecision
public void setPrecision(int n)
Set precision- Parameters:
n
- Precision
-
addAxis
@Deprecated(forRemoval=false, since="5") 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)
Deprecated.
-
addAxis
public Crosstab.Axis addAxis(java.lang.String fullInput, char type, int order, ObjectField field, ObjectDB obj, char method, java.lang.String chart, int yaxis, java.lang.String palette, 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 type for value axisyaxis
- Yaxis 0 (left) or 1 (right)palette
- Optional palette of colors (Base, Sea, Fire...)precision
- Float 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
-
setEditable
public void setEditable(java.lang.Boolean b)
Set the pivot table to be editable- Parameters:
b
- Editable or null to reset the ability to be editable
-
isEditable
public boolean isEditable(Grant g)
Is the pivot table editable and the user granted? The cell is editable if the cell is linked to a unique row in DB (columns and rows must contain the user-key)- Parameters:
g
- User rights- Returns:
- True if the cells are editable and the user is authorized
-
canEdit
public boolean canEdit()
Is the pivot table editable? true if rows/columns contain all key fields.- Returns:
- true if 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 (BigDecimals or String)
-
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
-
toExcel
public byte[] toExcel(Grant g)
Publish pivot table to Excel POI sheet- Parameters:
g
- Grant
-
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
-
-