org.zkoss.pivot.ui
Class PivotFieldControl

java.lang.Object
  extended by org.zkoss.zk.ui.AbstractComponent
      extended by org.zkoss.zk.ui.HtmlBasedComponent
          extended by org.zkoss.zul.impl.XulElement
              extended by org.zkoss.zul.Div
                  extended by org.zkoss.pivot.ui.PivotFieldControl
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, org.zkoss.zk.ui.api.HtmlBasedComponent, 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, org.zkoss.zul.api.Div, org.zkoss.zul.impl.api.XulElement

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:
Serialized Form

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
 
Field Summary
protected  java.util.Map<java.lang.String,Calculator> _calmap
           
protected  boolean _deferred
           
protected  java.lang.String _layout
           
protected  PivotModelExt _model
           
protected static java.lang.String CHECKMARK_NULL_URI
           
protected static java.lang.String CHECKMARK_URI
           
protected  org.zkoss.zul.Grid clist
           
protected static java.lang.String DATA_FIELD_MENU_URI
           
protected  org.zkoss.zul.Grid dlist
           
protected static java.lang.String DRAG_GROUP
           
static java.lang.String DRAG_GROUP_KEY
           
protected  org.zkoss.zk.ui.event.EventListener FIELD_BTN_LISTENER
           
protected  org.zkoss.zul.RowRenderer FIELD_RENDERER
           
protected  org.zkoss.zk.ui.event.EventListener ITEM_DROP_LISTENER
           
static java.lang.String LABEL_RES_PREFIX
           
protected static java.util.Map<java.lang.String,java.lang.String> LABELS
           
static java.lang.String LAYOUT_HORIZONTAL
          The horizon layout, where the field lists are arranged horizontally.
static java.lang.String LAYOUT_SQUARE
          The square layout, where the field lists are arranged into a 2 by 2 square.
static java.lang.String LAYOUT_VERTICAL
          The vertical layout, where the field lists are arranged vertically.
protected  org.zkoss.zul.Menupopup menuDF
           
protected  org.zkoss.zul.Menupopup menuFilterList
           
protected  org.zkoss.zul.Menupopup menuRCF
           
protected  org.zkoss.zul.Menuitem menuSortA
           
protected  org.zkoss.zul.Menuitem menuSortZ
           
protected  org.zkoss.zul.Menupopup menuSummary
           
protected static java.lang.String RC_FIELD_MENU_URI
           
protected  org.zkoss.zul.Grid rlist
           
protected static java.lang.String SUBTOTAL_MODAL_URI
           
protected  org.zkoss.zk.ui.event.EventListener SUMMARY_CLICK_LISTENER
           
protected  org.zkoss.zul.Grid ulist
           
protected static java.util.Map<java.lang.String,java.lang.String> VIEW_URI
           
 
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
CE_BUSY_IGNORE, CE_DUPLICATE_IGNORE, CE_IMPORTANT, CE_NON_DEFERRABLE, CE_REPEAT_IGNORE
 
Constructor Summary
PivotFieldControl()
           
 
Method Summary
 void afterCompose()
           
protected static void clearChildren(org.zkoss.zk.ui.Component c)
           
protected  java.lang.String getDataFieldContextMenuURI()
          Override this method to provide a different zul template for the context menu on data fields.
protected  java.util.Map<java.lang.String,java.lang.String> getDefaultLabels()
          Override this method to provide the default label list.
protected  java.lang.String getDragGroup()
           
protected  PivotField.Type getFieldType(org.zkoss.zul.Grid grid)
           
protected  java.util.Map<java.lang.String,java.lang.Object> getLabels()
           
 java.lang.String getLayout()
          Return layout type.
 PivotModelExt getModel()
          Return the pivot model associated with this control
protected  java.lang.String getRowColumnFieldContextMenuURI()
          Override this method to provide a different zul template for the context menu on row/column fields.
protected  java.lang.String getSubtotalModalWindowURI()
          Override this method to provide a different zul template for the modal window for subtotal selection.
 Calculator[] getSubtotals(PivotField field)
           
protected  void initGrid(org.zkoss.zul.Grid grid)
           
protected  boolean isDataField(org.zkoss.zul.Row row)
           
 boolean isDeferredUpdate()
          Return true if in deferred update mode.
protected  boolean isRowOrColumnField(org.zkoss.zul.Row row)
           
protected  boolean isSortable(org.zkoss.zul.Row row)
           
 boolean isUpdated()
          Return true if the PivotModel is up to date.
protected  void loadLayout()
           
 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(java.lang.String layout)
          Set layout type.
 void setModel(PivotModelExt model)
          Set pivot model associated with this control.
 void setSubtotals(PivotField field, Calculator[] selected)
           
protected  void sortField(boolean ascending)
           
 void syncModel()
          Reload underlying Grids from current model.
protected  void syncModel(org.zkoss.zul.Grid grid, PivotField.Type type)
           
 void update()
          Update changes to PivotModel.
protected  void updatePivotFields(org.zkoss.zul.Grid grid, PivotField.Type type)
           
 
Methods inherited from class org.zkoss.zul.Div
getAlign, renderProperties, setAlign
 
Methods inherited from class org.zkoss.zul.impl.XulElement
clone, getContext, getCtrlKeys, getPopup, getTooltip, setContext, setContext, setCtrlKeys, setPopup, setPopup, setTooltip, setTooltip
 
Methods inherited from class org.zkoss.zk.ui.HtmlBasedComponent
focus, getAction, getDraggable, getDroppable, getExtraCtrl, getHeight, getHflex, getLeft, getRenderdefer, getSclass, getStyle, getTooltiptext, getTop, getVflex, getWidth, getZclass, getZindex, getZIndex, service, setAction, setClass, setDraggable, setDroppable, setFocus, setHeight, setHeightDirectly, setHflex, setHflexDirectly, setLeft, setLeftDirectly, setRenderdefer, setSclass, setStyle, setTooltiptext, setTop, setTopDirectly, setVflex, setWidth, setWidthDirectly, setZclass, setZindex, setZIndex, setZIndexDirectly
 
Methods inherited from class org.zkoss.zk.ui.AbstractComponent
addAnnotation, addAnnotation, addClientEvent, addEventHandler, addEventListener, addForward, addForward, addForward, addForward, addMoved, addScopeListener, addSharedAnnotationMap, addSharedEventHandlerMap, appendChild, applyProperties, beforeChildAdded, beforeChildRemoved, beforeParentChanged, containsVariable, detach, didActivate, didActivate, didDeserialize, didDeserialize, disableClientUpdate, equals, getAnnotatedProperties, getAnnotatedPropertiesBy, getAnnotation, getAnnotation, getAnnotations, getAnnotations, getAttribute, getAttribute, getAttribute, getAttributeOrFellow, getAttributes, getAttributes, getAuService, getChildren, getClientEvents, getDefaultMold, getDefinition, getDesktop, getEventHandler, getEventHandlerNames, getFellow, getFellow, getFellowIfAny, getFellowIfAny, getFellows, getFirstChild, getId, getLastChild, getListenerIterator, getMold, getNamespace, getNextSibling, getPage, getParent, getPreviousSibling, getRoot, getSpaceOwner, getStubonly, getUuid, getVariable, getWidgetAttribute, getWidgetAttributeNames, getWidgetClass, getWidgetListener, getWidgetListenerNames, getWidgetOverride, getWidgetOverrideNames, hasAttribute, hasAttribute, hasAttribute, hasAttributeOrFellow, hasFellow, hasFellow, insertBefore, invalidate, isChildable, isInvalidated, isListenerAvailable, isVisible, newChildren, newExtraCtrl, onChildAdded, onChildRemoved, onPageAttached, onPageDetached, onWrongValue, redraw, redrawChildren, removeAttribute, removeAttribute, removeAttribute, removeChild, removeEventListener, removeForward, removeForward, removeScopeListener, render, render, render, renderIdSpace, response, response, sessionDidActivate, sessionWillPassivate, setAttribute, setAttribute, setAttribute, setAuService, setDefinition, setDefinition, setId, setMold, setPage, setPageBefore, setParent, setStubonly, setVariable, setVisible, setVisibleDirectly, setWidgetAttribute, setWidgetClass, setWidgetListener, setWidgetOverride, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdateWidgetListener, smartUpdateWidgetOverride, toString, unsetVariable, updateByClient, willPassivate, willPassivate, willSerialize, willSerialize
 
Methods inherited from class java.lang.Object
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, getAttribute, getAttributes, hasAttribute, hasAttribute, removeAttribute, removeAttribute, removeScopeListener, setAttribute, setAttribute
 
Methods inherited from interface org.zkoss.zul.impl.api.XulElement
getContext, getCtrlKeys, getPopup, getTooltip, setContext, setContext, setCtrlKeys, setPopup, setPopup, setTooltip, setTooltip
 
Methods inherited from interface org.zkoss.zk.ui.api.HtmlBasedComponent
focus, getHeight, getLeft, getRenderdefer, getSclass, getStyle, getTooltiptext, getTop, getWidth, getZclass, getZindex, getZIndex, setDraggable, setDroppable, setFocus, setHeight, setLeft, setRenderdefer, setSclass, setStyle, setTooltiptext, setTop, setWidth, setZclass, setZindex, setZIndex
 
Methods inherited from interface org.zkoss.zk.ui.Component
addEventListener, addForward, addForward, addForward, addForward, appendChild, applyProperties, clone, containsVariable, detach, getAttribute, getAttribute, getAttributeOrFellow, getAttributes, getAttributes, getAuService, getChildren, getDefinition, getDesktop, getFellow, getFellow, getFellowIfAny, getFellowIfAny, getFellows, getFirstChild, getId, getLastChild, getListenerIterator, getMold, getNamespace, getNextSibling, getPage, getParent, getPreviousSibling, getRoot, getSpaceOwner, getStubonly, getUuid, getVariable, getWidgetAttribute, getWidgetAttributeNames, getWidgetClass, getWidgetListener, getWidgetListenerNames, getWidgetOverride, getWidgetOverrideNames, hasAttribute, hasAttribute, hasAttributeOrFellow, hasFellow, hasFellow, insertBefore, invalidate, isInvalidated, isListenerAvailable, isVisible, removeAttribute, removeAttribute, removeChild, removeEventListener, removeForward, removeForward, setAttribute, setAttribute, setAuService, setId, setMold, setPage, setPageBefore, setParent, setStubonly, setVariable, setVisible, setWidgetAttribute, setWidgetClass, setWidgetListener, setWidgetOverride, unsetVariable
 

Field Detail

_deferred

protected boolean _deferred

_layout

protected java.lang.String _layout

_model

protected PivotModelExt _model

_calmap

protected final java.util.Map<java.lang.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

menuRCF

protected org.zkoss.zul.Menupopup menuRCF

menuDF

protected org.zkoss.zul.Menupopup menuDF

menuSummary

protected org.zkoss.zul.Menupopup menuSummary

menuFilterList

protected org.zkoss.zul.Menupopup menuFilterList

menuSortA

protected org.zkoss.zul.Menuitem menuSortA

menuSortZ

protected org.zkoss.zul.Menuitem menuSortZ

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 java.lang.String LAYOUT_SQUARE
The square layout, where the field lists are arranged into a 2 by 2 square.

See Also:
setLayout(String), Constant Field Values

LAYOUT_VERTICAL

public static final java.lang.String LAYOUT_VERTICAL
The vertical layout, where the field lists are arranged vertically.

See Also:
setLayout(String), Constant Field Values

LAYOUT_HORIZONTAL

public static final java.lang.String LAYOUT_HORIZONTAL
The horizon layout, where the field lists are arranged horizontally.

See Also:
setLayout(String), Constant Field Values

VIEW_URI

protected static final java.util.Map<java.lang.String,java.lang.String> VIEW_URI

DATA_FIELD_MENU_URI

protected static final java.lang.String DATA_FIELD_MENU_URI
See Also:
Constant Field Values

RC_FIELD_MENU_URI

protected static final java.lang.String RC_FIELD_MENU_URI
See Also:
Constant Field Values

SUBTOTAL_MODAL_URI

protected static final java.lang.String SUBTOTAL_MODAL_URI
See Also:
Constant Field Values

LABEL_RES_PREFIX

public static final java.lang.String LABEL_RES_PREFIX
See Also:
Constant Field Values

LABELS

protected static final java.util.Map<java.lang.String,java.lang.String> LABELS

DRAG_GROUP_KEY

public static final java.lang.String DRAG_GROUP_KEY
See Also:
Constant Field Values

DRAG_GROUP

protected static final java.lang.String DRAG_GROUP
See Also:
Constant Field Values

CHECKMARK_URI

protected static final java.lang.String CHECKMARK_URI
See Also:
Constant Field Values

CHECKMARK_NULL_URI

protected static final java.lang.String CHECKMARK_NULL_URI
See Also:
Constant Field Values
Constructor Detail

PivotFieldControl

public PivotFieldControl()
Method Detail

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 java.lang.String getLayout()
Return layout type.


setLayout

public void setLayout(java.lang.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 java.lang.Exception
Throws:
java.lang.Exception

getSubtotals

public Calculator[] getSubtotals(PivotField field)

setSubtotals

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

getRowColumnFieldContextMenuURI

protected java.lang.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 java.lang.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 java.lang.String getSubtotalModalWindowURI()
Override this method to provide a different zul template for the modal window for subtotal selection.


getLabels

protected final java.util.Map<java.lang.String,java.lang.Object> getLabels()

getDefaultLabels

protected java.util.Map<java.lang.String,java.lang.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 java.lang.String getDragGroup()


Copyright © 2013. All Rights Reserved.