Class JmixPivotTable<T>
- Type Parameters:
T
- type of items contained
- All Implemented Interfaces:
com.vaadin.flow.component.AttachNotifier
,com.vaadin.flow.component.DetachNotifier
,com.vaadin.flow.component.HasElement
,com.vaadin.flow.component.HasEnabled
,com.vaadin.flow.component.HasSize
,com.vaadin.flow.component.HasStyle
,Serializable
- Direct Known Subclasses:
PivotTable
- See Also:
-
Nested Class Summary
-
Field Summary
Modifier and TypeFieldDescriptionprotected boolean
protected static final String
protected final List<JmixPivotTable.PendingJsFunction>
protected JmixPivotTableItems<T>
protected com.vaadin.flow.shared.Registration
protected PivotTableOptions
protected JmixPivotTableSerializer
protected com.vaadin.flow.internal.StateTree.ExecutionRegistration
protected com.vaadin.flow.internal.StateTree.ExecutionRegistration
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addAggregationProperties
(String... aggregationProperties) Original property name:vals
.com.vaadin.flow.shared.Registration
addCellClickListener
(com.vaadin.flow.component.ComponentEventListener<PivotTableCellClickEvent<T>> listener) Adds a listener to the pivot table cell click events.void
addColumns
(String... columns) Adds an array of attribute names to use as cols.void
addExclusions
(String property, String... exclusions) Adds property values to a given property which denote records to exclude from rendering; used to prepopulate the filter menus that appear on double-click.void
addHiddenFromAggregations
(String... hiddenFromAggregations) Adds attribute names to omit from the aggregation arguments dropdowns.void
addHiddenFromDragDrop
(String... hiddenFromDragDrop) Adds attribute names to omit from the drag'n'drop portion of the UI.void
addHiddenProperties
(String... hiddenProperties) Adds attribute names to omit from the UI.void
addInclusions
(String property, String... inclusions) Adds property values to a given property which denote records to include in rendering; used to prepopulate the filter menus that appear on double-click (overridesgetExclusions()
).void
addProperties
(Map<String, String> properties) Adds properties and their localized valuesvoid
addProperty
(String property, String value) Adds property and its localized valuecom.vaadin.flow.shared.Registration
addRefreshEventListener
(com.vaadin.flow.component.ComponentEventListener<PivotTableRefreshEvent> listener) Adds a listener to the pivot table refresh events.void
Adds an array of attribute names to use as rows.protected void
callJsFunction
(String function, elemental.json.JsonObject resultJson) protected void
callPendingJsFunction
(String function, elemental.json.JsonObject resultJson) Execute JavaScript function with theresultJson
passed.protected PivotTableOptions
protected JmixPivotTableSerializer
getItems()
getRows()
protected void
protected void
isShowUI()
protected void
onAttach
(com.vaadin.flow.component.AttachEvent attachEvent) protected void
onDetach
(com.vaadin.flow.component.DetachEvent detachEvent) protected void
protected void
onRefresh
(PivotTableRefreshEvent event) protected void
performUpdateItems
(com.vaadin.flow.internal.ExecutionContext context) protected void
performUpdateOptions
(com.vaadin.flow.internal.ExecutionContext context) protected void
ready()
protected void
protected void
void
setAggregation
(Aggregation aggregation) Original property name:aggregator
.void
setAggregationProperties
(List<String> aggregationProperties) Original property name:vals
.void
setAggregations
(Aggregations aggregations) Original property name:aggregators
.void
setAutoSortUnusedProperties
(Boolean autoSortUnusedProperties) Original property name:autoSortUnusedAttrs
.void
setColumnOrder
(Order columnOrder) Sets the order in which column data is provided to the renderer.void
setColumns
(List<String> columns) Sets a collection of attribute names to use as cols.void
setDerivedProperties
(DerivedProperties derivedProperties) Original property name:derivedAttributes
.void
setEmptyDataMessage
(String emptyDataMessage) Sets the message that will be displayed in case of empty data.void
setExclusions
(String property, List<String> exclusions) Sets a list whose values are arrays of attribute values which denote records to exclude from rendering; used to prepopulate the filter menus that appear on double-click.void
setExclusions
(Map<String, List<String>> exclusions) Sets a map whose keys are attribute names and values are arrays of attribute values which denote records to exclude from rendering; used to prepopulate the filter menus that appear on double-click.void
setFilterFunction
(JsFunction filter) Original property name:filter
.void
setHiddenFromAggregations
(List<String> hiddenFromAggregations) Sets attribute names to omit from the aggregation arguments dropdowns.void
setHiddenFromDragDrop
(List<String> hiddenFromDragDrop) Sets attribute names to omit from the drag'n'drop portion of the UI.void
setHiddenProperties
(List<String> hiddenProperties) Sets attribute names to omit from the UI.void
setInclusions
(String property, List<String> inclusions) Sets a list whose values are arrays of attribute values which denote records to include in rendering; used to prepopulate the filter menus that appear on double-click (overridesgetExclusions()
).void
setInclusions
(Map<String, List<String>> inclusions) Sets a map whose keys are attribute names and values are arrays of attribute values which denote records to include in rendering; used to prepopulate the filter menus that appear on double-click (overridesgetExclusions()
).void
setItems
(JmixPivotTableItems<T> items) Sets theJmixPivotTableItems
instance to use as data provider.void
setMenuLimit
(Integer menuLimit) Sets the maximum number of values to list in the attribute values dialogvoid
setProperties
(Map<String, String> properties) Sets properties and their localized valuesvoid
setRenderer
(Renderer renderer) Sets a descriptor of an object which will generate output from pivot data structure (see documentation).void
setRendererOptions
(RendererOptions rendererOptions) Sets an object that is passed through to renderer as options.void
setRenderers
(Renderers renderers) Sets an object that represents a list of rendering functions (see documentation).void
setRowOrder
(Order rowOrder) Sets the order in which row data is provided to the renderer.void
Sets a collection of attribute names to use as rows.void
setShowColumnTotals
(Boolean showColumnTotals) Shows an additional column of totals for each colvoid
setShowRowTotals
(Boolean showRowTotals) Shows an additional column of totals for each rowvoid
Show pivot table in the UI mode.void
setSortersFunction
(JsFunction sorters) Original property name:sorters
.void
setUnusedPropertiesVertical
(UnusedPropertiesVertical unusedPropertiesVertical) Original property name:unusedAttrsVertical
.protected void
Methods inherited from class com.vaadin.flow.component.Component
addListener, findAncestor, fireEvent, from, get, getChildren, getElement, getEventBus, getId, getListeners, getLocale, getParent, getTranslation, getTranslation, getTranslation, getTranslation, getTranslation, getTranslation, getUI, hasListener, isAttached, isTemplateMapped, isVisible, onEnabledStateChanged, removeFromParent, scrollIntoView, scrollIntoView, set, setElement, setId, setVisible
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.vaadin.flow.component.AttachNotifier
addAttachListener
Methods inherited from interface com.vaadin.flow.component.DetachNotifier
addDetachListener
Methods inherited from interface com.vaadin.flow.component.HasElement
getElement
Methods inherited from interface com.vaadin.flow.component.HasEnabled
isEnabled, setEnabled
Methods inherited from interface com.vaadin.flow.component.HasSize
getHeight, getHeightUnit, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getWidth, getWidthUnit, setHeight, setHeight, setHeightFull, setMaxHeight, setMaxHeight, setMaxWidth, setMaxWidth, setMinHeight, setMinHeight, setMinWidth, setMinWidth, setSizeFull, setSizeUndefined, setWidth, setWidth, setWidthFull
Methods inherited from interface com.vaadin.flow.component.HasStyle
addClassName, addClassNames, getClassName, getClassNames, getStyle, hasClassName, removeClassName, removeClassNames, setClassName, setClassName
-
Field Details
-
DATA_ITEM_ID_PROPERTY_NAME
- See Also:
-
jmixPivotTableItems
-
jmixPivotTableItemsChangeRegistration
protected com.vaadin.flow.shared.Registration jmixPivotTableItemsChangeRegistration -
options
-
serializer
-
clientReady
protected volatile boolean clientReady -
functions
-
synchronizeOptionsExecution
protected com.vaadin.flow.internal.StateTree.ExecutionRegistration synchronizeOptionsExecution -
synchronizeItemsExecution
protected com.vaadin.flow.internal.StateTree.ExecutionRegistration synchronizeItemsExecution
-
-
Constructor Details
-
JmixPivotTable
public JmixPivotTable()
-
-
Method Details
-
getItems
-
addRefreshEventListener
public com.vaadin.flow.shared.Registration addRefreshEventListener(com.vaadin.flow.component.ComponentEventListener<PivotTableRefreshEvent> listener) Adds a listener to the pivot table refresh events. Fired only for editable PivotTable.- Parameters:
listener
- a listener to add- Returns:
- subscription
-
addCellClickListener
public com.vaadin.flow.shared.Registration addCellClickListener(com.vaadin.flow.component.ComponentEventListener<PivotTableCellClickEvent<T>> listener) Adds a listener to the pivot table cell click events. Fired only for table renderers (table, heatmap, table barchart, col heatmap, row heatmap).- Parameters:
listener
- a listener to add- Returns:
- subscription
-
getProperties
- Returns:
- map of properties and their localized values
-
setProperties
Sets properties and their localized values- Parameters:
properties
- map with properties and their localized values
-
addProperties
Adds properties and their localized values- Parameters:
properties
- map with properties and their localized values
-
addProperty
Adds property and its localized value- Parameters:
property
- property namevalue
- property localized value
-
getRows
- Returns:
- a collection of attribute names to use as rows
-
setRows
Sets a collection of attribute names to use as rows.- Parameters:
rows
- a collection of attribute names to use as rows
-
addRows
Adds an array of attribute names to use as rows.- Parameters:
rows
- an array of attribute names to add
-
getColumns
- Returns:
- a collection of attribute names to use as cols
-
setColumns
Sets a collection of attribute names to use as cols.- Parameters:
columns
- a collection of attribute names to use as cols
-
addColumns
Adds an array of attribute names to use as cols.- Parameters:
columns
- an array of attribute names to add
-
getAggregation
- Returns:
- an object which will aggregate results per cell
-
setAggregation
Original property name:aggregator
.Sets a descriptor of an object which will aggregate results per cell (see documentation).
Applies only when
this.isShowUI() == false
.- Parameters:
aggregation
- an object which will aggregate results per cell
-
getRenderer
- Returns:
- an object which will generate output from pivot data structure
-
setRenderer
Sets a descriptor of an object which will generate output from pivot data structure (see documentation).Applies only when
this.isShowUI() == false
.- Parameters:
renderer
- an object which will generate output from pivot data structure
-
getAggregationProperties
- Returns:
- attribute names to prepopulate in vals area
-
setAggregationProperties
Original property name:vals
.Sets attribute names to prepopulate in vals area (gets passed to aggregator generating function).
Applies only when
this.isShowUI() == true
.- Parameters:
aggregationProperties
- attribute names to prepopulate in vals area
-
addAggregationProperties
Original property name:vals
.Adds attribute names to prepopulate in vals area (gets passed to aggregator generating function).
Applies only when
this.isShowUI() == true
.- Parameters:
aggregationProperties
- attribute names to prepopulate in vals area
-
getAggregations
- Returns:
- an object that represents a list of generators for aggregation functions in dropdown
-
setAggregations
Original property name:aggregators
.Sets an object that represents a list of generators for aggregation functions in dropdown (see documentation).
Applies only when
this.isShowUI() == true
.- Parameters:
aggregations
- an object that represents a list of generators for aggregation functions in dropdown
-
getRenderers
- Returns:
- n object that represents a list of rendering functions
-
setRenderers
Sets an object that represents a list of rendering functions (see documentation).Applies only when
this.isShowUI() == true
.- Parameters:
renderers
- n object that represents a list of rendering functions
-
getHiddenProperties
- Returns:
- attribute names to omit from the UI
-
setHiddenProperties
Sets attribute names to omit from the UI.Applies only when
this.isShowUI() == true
.- Parameters:
hiddenProperties
- attribute names to omit from the UI
-
addHiddenProperties
Adds attribute names to omit from the UI.Applies only when
this.isShowUI() == true
.- Parameters:
hiddenProperties
- attribute names to omit from the UI
-
getHiddenFromAggregations
- Returns:
- attribute names to omit from the aggregation arguments dropdowns
-
setHiddenFromAggregations
Sets attribute names to omit from the aggregation arguments dropdowns.Applies only when
this.isShowUI() == true
.- Parameters:
hiddenFromAggregations
- attribute names to omit from the aggregation arguments dropdowns
-
addHiddenFromAggregations
Adds attribute names to omit from the aggregation arguments dropdowns.Applies only when
this.isShowUI() == true
.- Parameters:
hiddenFromAggregations
- attribute names to omit from the aggregation arguments dropdowns
-
getHiddenFromDragDrop
- Returns:
- attribute names to omit from the drag'n'drop portion of the UI
-
setHiddenFromDragDrop
Sets attribute names to omit from the drag'n'drop portion of the UI.Applies only when
this.isShowUI() == true
.- Parameters:
hiddenFromDragDrop
- attribute names to omit from the drag'n'drop portion of the UI
-
addHiddenFromDragDrop
Adds attribute names to omit from the drag'n'drop portion of the UI.Applies only when
this.isShowUI() == true
.- Parameters:
hiddenFromDragDrop
- attribute names to omit from the drag'n'drop portion of the UI
-
getColumnOrder
- Returns:
- the order in which column data is provided to the renderer
-
setColumnOrder
Sets the order in which column data is provided to the renderer.Ordering by value orders by column total.
- Parameters:
columnOrder
- the order in which column data is provided to the renderer
-
getRowOrder
- Returns:
- the order in which row data is provided to the renderer
-
setRowOrder
Sets the order in which row data is provided to the renderer.Ordering by value orders by row total.
- Parameters:
rowOrder
- the order in which row data is provided to the renderer
-
getMenuLimit
- Returns:
- the maximum number of values to list in the attribute values dialog
-
setMenuLimit
Sets the maximum number of values to list in the attribute values dialogApplies only when
this.isShowUI() == true
.- Parameters:
menuLimit
- the maximum number of values to list in the attribute values dialog
-
getAutoSortUnusedProperties
- Returns:
- whether or not unused attributes are kept sorted in the UI
-
setAutoSortUnusedProperties
Original property name:autoSortUnusedAttrs
.Sets whether or not unused attributes are kept sorted in the UI.
Applies only when
this.isShowUI() == true
.- Parameters:
autoSortUnusedProperties
- whether or not unused attributes are kept sorted in the UI
-
getUnusedPropertiesVertical
- Returns:
- whether or not unused attributes are shown vertically
-
setUnusedPropertiesVertical
Original property name:unusedAttrsVertical
.Sets whether or not unused attributes are shown vertically instead of the default which is horizontally.
true
means always vertical,false
means always horizontal. If set to a number (as is the default) then if the attributes' names' combined length in characters exceeds the number then the attributes will be shown vertically.Applies only when
this.isShowUI() == true
.- Parameters:
unusedPropertiesVertical
- whether or not unused attributes are shown vertically
-
getFilterFunction
- Returns:
- a filter function that is called on each record
-
setFilterFunction
Original property name:filter
.Sets a filter function that is called on each record, returns
false
if the record is to be excluded from the input before rendering ortrue
otherwise.- Parameters:
filter
- a filter function that is called on each record
-
getSortersFunction
- Returns:
- a sorter function
-
setSortersFunction
Original property name:sorters
.Sets a sorter function that is called with an attribute name and can return a function which can be used as an argument to
Array.sort
for output purposes. If no function is returned, the default sorting mechanism is a built-in "natural sort" implementation. Useful for sorting attributes like month names.- Parameters:
sorters
- a sorter function
-
getRendererOptions
- Returns:
- an object that is passed through to renderer as options
-
setRendererOptions
Sets an object that is passed through to renderer as options.- Parameters:
rendererOptions
- an object that is passed through to renderer as options
-
getInclusions
- Returns:
- a map whose keys are attribute names and values are arrays of attribute values
- See Also:
-
setInclusions
Sets a map whose keys are attribute names and values are arrays of attribute values which denote records to include in rendering; used to prepopulate the filter menus that appear on double-click (overridesgetExclusions()
).Applies only when
this.isShowUI() == true
.- Parameters:
inclusions
- a map whose keys are attribute names and values are arrays of attribute values- See Also:
-
setInclusions
Sets a list whose values are arrays of attribute values which denote records to include in rendering; used to prepopulate the filter menus that appear on double-click (overridesgetExclusions()
).Applies only when
this.isShowUI() == true
.- Parameters:
property
- a property for which set inclusionsinclusions
- a list of property values- See Also:
-
addInclusions
Adds property values to a given property which denote records to include in rendering; used to prepopulate the filter menus that appear on double-click (overridesgetExclusions()
).Applies only when
this.isShowUI() == true
.- Parameters:
property
- a property for which set inclusionsinclusions
- an array of property values- See Also:
-
getExclusions
- Returns:
- a map whose keys are attribute names and values are arrays of attribute values
-
setExclusions
Sets a map whose keys are attribute names and values are arrays of attribute values which denote records to exclude from rendering; used to prepopulate the filter menus that appear on double-click.Applies only when
this.isShowUI() == true
.- Parameters:
exclusions
- a map whose keys are attribute names and values are arrays of attribute values- See Also:
-
setExclusions
Sets a list whose values are arrays of attribute values which denote records to exclude from rendering; used to prepopulate the filter menus that appear on double-click.Applies only when
this.isShowUI() == true
.- Parameters:
property
- a property for which set exclusionsexclusions
- a map whose keys are attribute names and values are arrays of attribute values- See Also:
-
addExclusions
Adds property values to a given property which denote records to exclude from rendering; used to prepopulate the filter menus that appear on double-click.Applies only when
this.isShowUI() == true
.- Parameters:
property
- a property for which set exclusionsexclusions
- a map whose keys are attribute names and values are arrays of attribute values- See Also:
-
getDerivedProperties
- Returns:
- an object that represents derived properties
-
setDerivedProperties
Original property name:derivedAttributes
.Sets an object that represents derived properties (see documentation).
- Parameters:
derivedProperties
- an object that represents derived properties
-
setEmptyDataMessage
Sets the message that will be displayed in case of empty data.- Parameters:
emptyDataMessage
- the message that will be displayed in case of empty data
-
getEmptyDataMessage
- Returns:
- the message that will be displayed in case of empty data
-
setShowUI
Show pivot table in the UI mode.- Parameters:
showUI
-true
if pivot table UI is shown,false
if not.
-
isShowUI
- Returns:
true
if pivot table UI is shown,false
if not.
-
setShowRowTotals
Shows an additional column of totals for each row- Parameters:
showRowTotals
-true
if row totals are shown,false
if not.
-
isShowRowTotals
- Returns:
true
if row totals are shown,false
if not.
-
setShowColumnTotals
Shows an additional column of totals for each col- Parameters:
showColumnTotals
-true
if col totals are shown,false
if not.
-
isShowColumnTotals
- Returns:
true
if col totals are shown,false
if not.
-
setItems
Sets theJmixPivotTableItems
instance to use as data provider.- Parameters:
items
- theJmixPivotTableItems
instance to use
-
initComponent
protected void initComponent() -
createOptions
-
createSerializer
-
initComponentListeners
protected void initComponentListeners() -
onOptionsChange
-
onRefresh
-
updateOptionsAfterRefresh
-
requestUpdateOptions
protected void requestUpdateOptions() -
requestUpdateItems
protected void requestUpdateItems() -
performUpdateOptions
protected void performUpdateOptions(com.vaadin.flow.internal.ExecutionContext context) -
performUpdateItems
protected void performUpdateItems(com.vaadin.flow.internal.ExecutionContext context) -
onAttach
protected void onAttach(com.vaadin.flow.component.AttachEvent attachEvent) - Overrides:
onAttach
in classcom.vaadin.flow.component.Component
-
ready
@ClientCallable protected void ready() -
onDetach
protected void onDetach(com.vaadin.flow.component.DetachEvent detachEvent) - Overrides:
onDetach
in classcom.vaadin.flow.component.Component
-
callPendingJsFunction
Execute JavaScript function with theresultJson
passed. Execution will be delayed till the client-side is ready.- Parameters:
function
- JavaScript function to executeresultJson
- resultJson
-
callJsFunction
-