Class 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
    • Constructor Summary

      Constructors 
      Constructor Description
      Crosstab​(java.lang.String id, ObjectDB object, java.lang.String name, java.lang.String display, char method, char visible, boolean fixedcolors, boolean grantable)
      Constructor
    • 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 crosstab
      void addGrantedGroup​(java.lang.String group, boolean edit)
      Add a granted group
      void build​(ObjectDB obj)
      Build pivot table
      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
      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)  
      boolean canEdit()
      Is the pivot table editable? true if rows/columns contain all key fields.
      void clear()
      Clear memory
      static Crosstab.Axis getAxis​(java.util.List<Crosstab.Axis> axis, int index)
      Get the field associated with axis
      Crosstab.Axis getAxisForFullInput​(char type, java.lang.String fullInput)
      Get axis of specified type for specified input name
      java.lang.String getCaption()
      Get caption position
      java.util.List<java.lang.Object>[][] getCellValues()
      Get cells values
      java.lang.String getChart()
      Get chart
      java.lang.String getChartHeight()
      Get chart height
      java.lang.String getChartWidth()
      Get chart width
      java.util.List<Crosstab.Axis> getColumnAxis​(boolean all)
      Definition of columns axis
      java.lang.String getColumnLabel​(java.lang.String key, java.lang.String separator)
      Get column label
      java.util.List<java.lang.String> getColumnValues()
      Get columns values
      static java.lang.String getCrosstabId​(java.lang.String name)
      Crosstab id
      java.lang.String getDisplay()
      Get translation
      static ObjectField getField​(ObjectDB obj, java.util.List<Crosstab.Axis> axis, int index)
      Get the field associated with axis
      java.lang.String getId()
      Get pivot table ID
      java.lang.String getLabel()
      Get translation (alias to getDisplay)
      java.util.Map<java.lang.String,​java.lang.String> getLabels()
      Get columns and lines labels
      java.util.List<Crosstab.Axis> getLineAxis​(boolean all)
      Definition of lines axis
      java.lang.String getLineLabel​(java.lang.String key, java.lang.String separator, ObjectField value)
      Get line label
      java.util.List<java.lang.String> getLineValues()
      Get lines values
      char getMethod()
      Get pivot table method
      java.lang.String getName()
      Get pivot table name
      static java.lang.String getName​(java.lang.String rowId)
      Get pivot table name from its row ID
      ObjectDB getObject()
      Get pivot table bject
      java.lang.String getPaletteName()
      Get palette of colors
      int getPrecision()
      Get precision
      Crosstab.NodeLine getRoot()  
      java.lang.String getSubtotalColor​(int level)
      Set sub-total color (#RRGGBB)
      java.util.List<Crosstab.Axis> getValueAxis​(boolean all)
      Definition of values axis
      char getVisibility()
      Get action visibility
      boolean hasCaclulatedFields()
      Has calculated fields ?
      boolean hasFormulas()
      Has formula values ?
      void init​(ObjectDB obj)
      Initialize the data
      boolean isControlVisible()
      Are controls visible
      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)
      boolean isEditGranted​(Grant g)
      Is the table editable for the user
      boolean isEnabled()
      Is enabled?
      boolean isFixedColors()
      Is using fixed colors ?
      boolean isGrantable()
      Is grantable?
      boolean isGranted​(Grant g)
      Is the table accessible to user
      boolean 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 group
      void setCaption​(java.lang.String caption)
      Set caption position
      void setCellValues​(java.util.List<java.lang.Object>[][] v)
      Set cells values
      void setChart​(java.lang.String chart)
      Set chart
      void setChartHeight​(java.lang.String height)
      Set chart height
      void setChartWidth​(java.lang.String width)
      Set chart width
      void setColumnValues​(java.util.List<java.lang.String> v)
      Set columns values
      void setControlVisible​(boolean b)
      Set controls visible
      void setDisplay​(java.lang.String d)
      Set translation
      void setEditable​(java.lang.Boolean b)
      Set the pivot table to be editable
      void setEnabled​(boolean enabled)
      Set enabled
      void setFixedColors​(boolean fixed)
      Set using fixed colors
      void setGrantable​(boolean b)
      Set grantable
      void 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 labels
      void setLineValues​(java.util.List<java.lang.String> v)
      Set lines values
      void setLoaded​(boolean b)
      Set is loaded
      void setMethod​(char m)
      Set pivot table method
      void setPaletteName​(java.lang.String name)
      Set palette of colors
      void setPrecision​(int n)
      Set precision
      void setSubtotalColor​(java.lang.String c)
      Set color of the sub-total line (#RRGGBB)
      void setSubtotalVisible​(boolean b)
      Set display sub-totals
      void setTableVisible​(boolean b)
      Set table visible
      void setVisible​(boolean b)
      Set visible
      void setVisible​(char vis)
      Set action visibility
      java.lang.String toCSV​(java.lang.String sep, Grant g)
      Publish pivot table to CSV
      byte[] toExcel​(Grant g)
      Publish pivot table to Excel POI sheet
      byte[] toExcelPOI​(Grant g)
      Publish pivot table to binary Excel sheet
      java.lang.String toHTML​(Grant g, boolean cubes)
      Publish pivot table as raw HTML
      java.lang.String toHTML​(Grant g, boolean cubes, boolean embedded)
      Publish pivot table as raw HTML
      void 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 cubes
      java.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 decimals
      java.lang.String toString()  
      java.lang.String toXML()  
      java.lang.String toXSD()
      Publish pivot table in XSD format
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • 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 id
        object - Object
        name - Crosstable name
        display - Label to display
        method - Group method
        visible - 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 name
        edit - 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 - Key
        separator - 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 - Key
        separator - Separator
        value - 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 name
        type - Type (one of Crosstab.Axis.AXIS_*)
        order - Axis order
        field - Object field
        method - Group by method
        obj - Object
        chart - Chart type for value axis
        yaxis - Yaxis 0 (left) or 1 (right)
        palette - Optional palette of colors (Base, Sea, Fire...)
        precision - Float precision
        subtotal - Sub total ?
        formula - Formula
        display - Display
        hidden - 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 - Axis
        index - 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 - Object
        axis - Axis
        index - 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 headers
        lines - Row headers
        labels - Labels
        g - 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 - Separator
        g - Grant
        Returns:
        CSV
      • toHTML

        public java.lang.String toHTML​(Grant g,
                                       boolean cubes)
        Publish pivot table as raw HTML
        Parameters:
        g - Grant
        cubes - 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 - Grant
        cubes - true generate data as cubes, false generates as pivot table
        embedded - 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 - Grant
        cubes - true generate data as cubes, false generates as pivot table
        out - 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 - Grant
        cubes - true generate data as cubes, false generates as pivot table
        embedded - Embedded? (false means a full HTML Page, true only the raw HTML table)
        out - Print writer
      • toXML

        public java.lang.String toXML()
      • nodeInsert

        public void nodeInsert​(int line,
                               java.lang.String pathKeys,
                               java.lang.String pathLabels,
                               Crosstab.NodeLine n,
                               java.util.List<java.lang.Object>[] val)
      • 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 class java.lang.Object