Class PivotFieldControl

java.lang.Object
org.zkoss.zk.ui.AbstractComponent
org.zkoss.zk.ui.HtmlBasedComponent
org.zkoss.zul.impl.XulElement
org.zkoss.zul.Div
org.zkoss.pivot.ui.PivotFieldControl
All Implemented Interfaces:
Serializable, Cloneable, org.zkoss.zk.ui.Component, org.zkoss.zk.ui.ext.AfterCompose, org.zkoss.zk.ui.ext.Scope, org.zkoss.zk.ui.IdSpace, org.zkoss.zk.ui.sys.ComponentCtrl

public class PivotFieldControl extends org.zkoss.zul.Div implements org.zkoss.zk.ui.IdSpace, org.zkoss.zk.ui.ext.AfterCompose
A composite component which provides a built-in drag-n-drop based UI control for adding/removing pivot fields.
Author:
simonpai
See Also:
  • Nested Class Summary

    Nested classes/interfaces inherited from class org.zkoss.zk.ui.HtmlBasedComponent

    org.zkoss.zk.ui.HtmlBasedComponent.ExtraCtrl

    Nested classes/interfaces inherited from class org.zkoss.zk.ui.AbstractComponent

    org.zkoss.zk.ui.AbstractComponent.Children, org.zkoss.zk.ui.AbstractComponent.ForwardInfo, org.zkoss.zk.ui.AbstractComponent.TargetInfo
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final Map<String,Calculator>
     
    protected boolean
     
    protected String
     
    protected PivotModelExt
     
    protected static final String
     
    protected static final String
     
    protected org.zkoss.zul.Grid
     
    protected static final String
     
    protected org.zkoss.zul.Grid
     
    protected static final String
     
    static final String
     
    protected final org.zkoss.zk.ui.event.EventListener
     
    protected final org.zkoss.zul.RowRenderer
     
    protected final org.zkoss.zk.ui.event.EventListener
     
    static final String
     
    protected static final Map<String,String>
     
    static final String
    The horizon layout, where the field lists are arranged horizontally.
    static final String
    The square layout, where the field lists are arranged into a 2 by 2 square.
    static final String
    The vertical layout, where the field lists are arranged vertically.
    protected org.zkoss.zul.Menupopup
     
    protected org.zkoss.zul.Menupopup
     
    protected org.zkoss.zul.Menupopup
     
    protected org.zkoss.zul.Menuitem
     
    protected org.zkoss.zul.Menuitem
     
    protected org.zkoss.zul.Menupopup
     
    protected static final String
     
    protected org.zkoss.zul.Grid
     
    protected static final String
     
    protected final org.zkoss.zk.ui.event.EventListener
     
    protected org.zkoss.zul.Grid
     
    protected static final Map<String,String>
     

    Fields inherited from class org.zkoss.zk.ui.HtmlBasedComponent

    _zclass

    Fields inherited from interface org.zkoss.zk.ui.Component

    APPLICATION_SCOPE, COMPONENT_SCOPE, DESKTOP_SCOPE, PAGE_SCOPE, REQUEST_SCOPE, SESSION_SCOPE, SPACE_SCOPE

    Fields inherited from interface org.zkoss.zk.ui.sys.ComponentCtrl

    AFTER_CHILD_ADDED, AFTER_CHILD_REMOVED, AFTER_CLONED, AFTER_PAGE_ATTACHED, AFTER_PAGE_DETACHED, AFTER_PARENT_CHANGED, CE_BUSY_IGNORE, CE_DUPLICATE_IGNORE, CE_IMPORTANT, CE_NON_DEFERRABLE, CE_REPEAT_IGNORE
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
     
    protected static final void
    clearChildren(org.zkoss.zk.ui.Component c)
     
    protected String
    Override this method to provide a different zul template for the context menu on data fields.
    protected Map<String,String>
    Override this method to provide the default label list.
    protected final String
     
    protected final PivotField.Type
    getFieldType(org.zkoss.zul.Grid grid)
     
    protected final Map<String,Object>
     
    Return layout type.
    Return the pivot model associated with this control
    protected String
    Override this method to provide a different zul template for the context menu on row/column fields.
    protected String
    Override this method to provide a different zul template for the modal window for subtotal selection.
     
    protected void
    initGrid(org.zkoss.zul.Grid grid)
     
    protected final boolean
    isDataField(org.zkoss.zul.Row row)
     
    boolean
    Return true if in deferred update mode.
    protected final boolean
    isRowOrColumnField(org.zkoss.zul.Row row)
     
    protected final boolean
    isSortable(org.zkoss.zul.Row row)
     
    boolean
    Return true if the PivotModel is up to date.
    protected void
     
    void
    onClick$menuSortA(org.zkoss.zk.ui.event.Event event)
     
    void
    onClick$menuSortZ(org.zkoss.zk.ui.event.Event event)
     
    void
    onClick$menuSubtotal(org.zkoss.zk.ui.event.Event event)
     
    void
    setDeferredUpdate(boolean deferred)
    Set deferred update mode.
    void
    setLayout(String layout)
    Set layout type.
    void
    Set pivot model associated with this control.
    void
    setSubtotals(PivotField field, Calculator[] selected)
     
    protected void
    sortField(boolean ascending)
     
    void
    Reload underlying Grids from current model.
    protected void
    syncModel(org.zkoss.zul.Grid grid, PivotField.Type type)
     
    void
    Update changes to PivotModel.
    protected void
    updatePivotFields(org.zkoss.zul.Grid grid, PivotField.Type type)
     

    Methods inherited from class org.zkoss.zul.impl.XulElement

    clone, getContext, getCtrlKeys, getPopup, getPropertyAccess, getTooltip, renderProperties, setContext, setContext, setContextAttributes, setCtrlKeys, setPopup, setPopup, setPopupAttributes, setTooltip, setTooltip, setTooltipAttributes

    Methods inherited from class org.zkoss.zk.ui.HtmlBasedComponent

    addSclass, evalCSSFlex, focus, getAction, getClientAction, getDraggable, getDroppable, getExtraCtrl, getHeight, getHflex, getLeft, getRenderdefer, getSclass, getStyle, getTabindex, getTabindexInteger, getTooltiptext, getTop, getVflex, getWidth, getZclass, getZindex, getZIndex, removeSclass, removeSclass, service, setAction, setClass, setClientAction, setDraggable, setDroppable, setFocus, setHeight, setHeight0, setHeightDirectly, setHflex, setHflex0, setHflexDirectly, setLeft, setLeftDirectly, setRenderdefer, setSclass, setStyle, setTabindex, setTabindex, setTooltiptext, setTop, setTopDirectly, setVflex, setVflex0, setVflexDirectly, setWidth, setWidth0, setWidthDirectly, setZclass, setZindex, setZIndex, setZIndexDirectly

    Methods inherited from class org.zkoss.zk.ui.AbstractComponent

    addAnnotation, addCallback, addClientEvent, addEventHandler, addEventListener, addEventListener, addForward, addForward, addForward, addForward, addMoved, addRedrawCallback, addScopeListener, addShadowRoot, addShadowRootBefore, addSharedEventHandlerMap, appendChild, applyProperties, beforeChildAdded, beforeChildRemoved, beforeParentChanged, destroyIndexCacheMap, detach, didActivate, didActivate, didDeserialize, didDeserialize, disableBindingAnnotation, disableClientUpdate, disableHostChanged, enableBindingAnnotation, enableHostChanged, getAnnotatedProperties, getAnnotatedPropertiesBy, getAnnotation, getAnnotations, getAnnotations, getAttribute, getAttribute, getAttribute, getAttributeOrFellow, getAttributes, getAttributes, getAuService, getAutag, getCallback, getChildren, getClientAttribute, getClientDataAttribute, getClientEvents, getDefaultMold, getDefinition, getDesktop, getEventHandler, getEventHandlerNames, getEventListenerMap, getEventListeners, getFellow, getFellow, getFellowIfAny, getFellowIfAny, getFellows, getFirstChild, getForwards, getId, getIndexCacheMap, getLastChild, getMold, getNextSibling, getPage, getParent, getPreviousSibling, getRedrawCallback, getRoot, getShadowFellowIfAny, getShadowRoots, getShadowVariable, getShadowVariable, getShadowVariable0, getSpaceOwner, getSpecialRendererOutput, getStubonly, getSubBindingAnnotationCount, getTemplate, getTemplateNames, getUuid, getWidgetAttributeNames, getWidgetClass, getWidgetListener, getWidgetListenerNames, getWidgetOverride, getWidgetOverrideNames, hasAttribute, hasAttribute, hasAttribute, hasAttributeOrFellow, hasBindingAnnotation, hasFellow, hasFellow, hasSubBindingAnnotation, initIndexCacheMap, insertBefore, invalidate, isChildable, isDisabledHostChanged, isInitialized, isInvalidated, isListenerAvailable, isVisible, onChildAdded, onChildRemoved, onPageAttached, onPageDetached, onParentChanged, onWrongValue, query, queryAll, redraw, redrawChildren, removeAttribute, removeAttribute, removeAttribute, removeCallback, removeChild, removeEventListener, removeForward, removeForward, removeRedrawCallback, removeScopeListener, removeShadowRoot, render, render, render, renderPropertiesOnly, replace, response, response, response, service, sessionDidActivate, sessionWillPassivate, setAttribute, setAttribute, setAttribute, setAuService, setAutag, setClientAttribute, setClientDataAttribute, setDefinition, setDefinition, setId, setMold, setPage, setPageBefore, setParent, setStubonly, setStubonly, setSubBindingAnnotationCount, setTemplate, setVisible, setVisibleDirectly, setWidgetClass, setWidgetListener, setWidgetOverride, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdateWidgetListener, smartUpdateWidgetOverride, toString, updateByClient, updateSubBindingAnnotationCount, willPassivate, willPassivate, willSerialize, willSerialize

    Methods inherited from class java.lang.Object

    equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

    Methods inherited from interface org.zkoss.zk.ui.IdSpace

    getFellow, getFellow, getFellowIfAny, getFellowIfAny, getFellows, hasFellow, hasFellow

    Methods inherited from interface org.zkoss.zk.ui.ext.Scope

    addScopeListener, getAttribute, hasAttribute, removeAttribute, removeScopeListener, setAttribute
  • Field Details

    • _deferred

      protected boolean _deferred
    • _layout

      protected String _layout
    • _model

      protected PivotModelExt _model
    • _calmap

      protected final Map<String,Calculator> _calmap
    • ulist

      protected org.zkoss.zul.Grid ulist
    • clist

      protected org.zkoss.zul.Grid clist
    • rlist

      protected org.zkoss.zul.Grid rlist
    • dlist

      protected org.zkoss.zul.Grid dlist
    • SUMMARY_CLICK_LISTENER

      protected final org.zkoss.zk.ui.event.EventListener SUMMARY_CLICK_LISTENER
    • ITEM_DROP_LISTENER

      protected final org.zkoss.zk.ui.event.EventListener ITEM_DROP_LISTENER
    • FIELD_BTN_LISTENER

      protected final org.zkoss.zk.ui.event.EventListener FIELD_BTN_LISTENER
    • FIELD_RENDERER

      protected final org.zkoss.zul.RowRenderer FIELD_RENDERER
    • LAYOUT_SQUARE

      public static final String LAYOUT_SQUARE
      The square layout, where the field lists are arranged into a 2 by 2 square.
      See Also:
    • LAYOUT_VERTICAL

      public static final String LAYOUT_VERTICAL
      The vertical layout, where the field lists are arranged vertically.
      See Also:
    • LAYOUT_HORIZONTAL

      public static final String LAYOUT_HORIZONTAL
      The horizon layout, where the field lists are arranged horizontally.
      See Also:
    • VIEW_URI

      protected static final Map<String,String> VIEW_URI
    • DATA_FIELD_MENU_URI

      protected static final String DATA_FIELD_MENU_URI
      See Also:
    • RC_FIELD_MENU_URI

      protected static final String RC_FIELD_MENU_URI
      See Also:
    • SUBTOTAL_MODAL_URI

      protected static final String SUBTOTAL_MODAL_URI
      See Also:
    • LABEL_RES_PREFIX

      public static final String LABEL_RES_PREFIX
      See Also:
    • LABELS

      protected static final Map<String,String> LABELS
    • DRAG_GROUP_KEY

      public static final String DRAG_GROUP_KEY
      See Also:
    • DRAG_GROUP

      protected static final String DRAG_GROUP
      See Also:
    • CHECKMARK_URI

      protected static final String CHECKMARK_URI
      See Also:
    • CHECKMARK_NULL_URI

      protected static final String CHECKMARK_NULL_URI
      See Also:
  • Constructor Details

    • PivotFieldControl

      public PivotFieldControl()
  • Method Details

    • setDeferredUpdate

      public void setDeferredUpdate(boolean deferred)
      Set deferred update mode. When true, the PivotModel is not updated when dragging a field. The update can be performed manually by calling update(). Also, in deferred update mode, dragging fields will fire an event, so we have a chance to reflect the state on other components.
    • isDeferredUpdate

      public boolean isDeferredUpdate()
      Return true if in deferred update mode.
    • update

      public void update()
      Update changes to PivotModel.
    • updatePivotFields

      protected void updatePivotFields(org.zkoss.zul.Grid grid, PivotField.Type type)
    • isUpdated

      public boolean isUpdated()
      Return true if the PivotModel is up to date.
    • getLayout

      public String getLayout()
      Return layout type.
    • setLayout

      public void setLayout(String layout)
      Set layout type. Default value is LAYOUT_SQUARE
      Parameters:
      layout - LAYOUT_SQUARE, LAYOUT_HORIZONTAL, LAYOUT_VERTICAL
    • getModel

      public PivotModelExt getModel()
      Return the pivot model associated with this control
    • setModel

      public void setModel(PivotModelExt model)
      Set pivot model associated with this control. An implementation of PivotModelExt is required.
    • syncModel

      public void syncModel()
      Reload underlying Grids from current model.
    • afterCompose

      public void afterCompose()
      Specified by:
      afterCompose in interface org.zkoss.zk.ui.ext.AfterCompose
    • syncModel

      protected void syncModel(org.zkoss.zul.Grid grid, PivotField.Type type)
    • loadLayout

      protected void loadLayout()
    • initGrid

      protected void initGrid(org.zkoss.zul.Grid grid)
    • onClick$menuSortA

      public void onClick$menuSortA(org.zkoss.zk.ui.event.Event event)
    • onClick$menuSortZ

      public void onClick$menuSortZ(org.zkoss.zk.ui.event.Event event)
    • sortField

      protected void sortField(boolean ascending)
    • onClick$menuSubtotal

      public void onClick$menuSubtotal(org.zkoss.zk.ui.event.Event event) throws Exception
      Throws:
      Exception
    • getSubtotals

      public Calculator[] getSubtotals(PivotField field)
    • setSubtotals

      public void setSubtotals(PivotField field, Calculator[] selected)
    • getRowColumnFieldContextMenuURI

      protected String getRowColumnFieldContextMenuURI()
      Override this method to provide a different zul template for the context menu on row/column fields. The template should have a Menupopup as the root component, with id "menuRCF".
    • getDataFieldContextMenuURI

      protected String getDataFieldContextMenuURI()
      Override this method to provide a different zul template for the context menu on data fields. The template should have a Menupopup as the root component, with id "menuDF".
    • getSubtotalModalWindowURI

      protected String getSubtotalModalWindowURI()
      Override this method to provide a different zul template for the modal window for subtotal selection.
    • getLabels

      protected final Map<String,Object> getLabels()
    • getDefaultLabels

      protected Map<String,String> getDefaultLabels()
      Override this method to provide the default label list.
    • clearChildren

      protected static final void clearChildren(org.zkoss.zk.ui.Component c)
    • getFieldType

      protected final PivotField.Type getFieldType(org.zkoss.zul.Grid grid)
    • isDataField

      protected final boolean isDataField(org.zkoss.zul.Row row)
    • isRowOrColumnField

      protected final boolean isRowOrColumnField(org.zkoss.zul.Row row)
    • isSortable

      protected final boolean isSortable(org.zkoss.zul.Row row)
    • getDragGroup

      protected final String getDragGroup()