Package com.inmethod.grid.common
Class AbstractGrid<M,I,S>
java.lang.Object
org.apache.wicket.Component
org.apache.wicket.MarkupContainer
org.apache.wicket.markup.html.WebMarkupContainer
org.apache.wicket.markup.html.panel.Panel
com.inmethod.grid.common.AbstractGrid<M,I,S>
- Type Parameters:
M- grid model object typeI- row/item model object type
- All Implemented Interfaces:
Serializable,Iterable<Component>,IEventSink,IEventSource,IFeedbackContributor,IConverterLocator,IMetadataContext<Serializable,,Component> IQueueRegion,IHeaderContributor,IRequestableComponent,IHierarchical<Component>,IClusterable
- Author:
- Matej Knopp
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final PackageResourceReferencestatic final StringINTERNALstatic final JavaScriptResourceReferencestatic final JavaScriptResourceReferencestatic final JavaScriptResourceReferencestatic final JavaScriptResourceReferencestatic final JavaScriptResourceReferencestatic final StringConstant for the Vista theme (default).Fields inherited from class org.apache.wicket.Component
ENABLE, FLAG_INITIALIZED, FLAG_RESERVED1, FLAG_RESERVED2, FLAG_RESERVED3, FLAG_RESERVED4, FLAG_RESERVED5, FLAG_RESERVED8, PARENT_PATH, PATH_SEPARATOR, RENDER, RFLAG_CONTAINER_DEQUEING, RFLAG_CONTAINER_HAS_REMOVALS -
Constructor Summary
ConstructorsConstructorDescriptionAbstractGrid(String id, IModel<M> model, List<IGridColumn<M, I, S>> columns) Creates newAbstractGridinstance -
Method Summary
Modifier and TypeMethodDescriptionvoidaddBottomToolbar(AbstractToolbar<M, I, S> toolbar) Adds a toolbar to the bottom section (below the actual data).voidaddHeaderToolbar(AbstractHeaderToolbar<M, I, S> toolbar) Ads a toolbar to the header section (below the grid header, above the actual data).voidaddTopToolbar(AbstractToolbar<M, I, S> toolbar) Adds a toolbar to the top section (above the grid header).voidprotected voidcolumnSanityCheck(IGridColumn<M, I, S> column) Checks whether the column is a valid grid columnprotected booleanabstract WebMarkupContainerfindParentRow(Component child) Returns the row in DataTable that contains the child componentprotected abstract WebMarkupContainerfindRowComponent(IModel<I> rowModel) Returns the row component for specified item.Collection<IGridColumn<M,I, S>> Returns collection of currently visible columns.List<IGridColumn<M,I, S>> Returns the list of all columns in this grid.Returns the column state.intReturns the content height.Returns the size unit for content height.getForm()IGridColumn<M,I, S> abstract Collection<IModel<I>>Returns the collection of models of all currently selected items.Returns the sort state of this grid.getTheme()Returns the theme identifierabstract booleanReturns whether user will be able to select more than one item at a time.booleanReturns whether clicking a selected row deselects it.booleanReturns whether a click on grid row should select/deselect the row.booleanisItemEdited(IModel<I> rowModel) Returns whether the row is in editable mode.abstract booleanisItemSelected(IModel<I> itemModel) Queries whether the item specified by itemModel is currently selected.booleanReturns whether selected rows are also editable.booleanisUseYui()abstract voidmarkItemDirty(IModel<I> model) Marks the item from the given model as dirty.protected voidprotected voidprotected booleanonCellClicked(AjaxRequestTarget target, IModel<I> rowModel, IGridColumn<M, I, S> column) voidInvoked when client change the column state (e.g. resize or reorder a column).protected voidprotected voidprotected voidonItemSelectionChanged(IModel<I> item, boolean newValue) Invoked when an item selection state has been changed.protected voidonRowClicked(AjaxRequestTarget target, IModel<I> rowModel) protected voidonRowPopulated(WebMarkupContainer rowComponent) Called after a grid row has been populated.protected voidonSortStateChanged(AjaxRequestTarget target) Invoked when sort state of this grid has changed (e.g. user clicked a sortable column header).voidrenderHead(IHeaderResponse response) abstract voidDeselects all items.abstract voidMarks all currently displayed items as selected.abstract voidselectItem(IModel<I> itemModel, boolean selected) Alters the selection state of item specified by the item model.abstract voidsetAllowSelectMultiple(boolean value) Sets whether user will be able to select more than one item.voidsetClickRowToDeselect(boolean clickRowToDeselect) Sets whether a click on selected grid row should deselect it.AbstractGrid<M,I, S> setClickRowToSelect(boolean clickRowToSelect) Sets whether a click on grid row should select/deselect the row.voidsetColumnState(ColumnsState columnState) Sets a new column state.voidsetContentHeight(Integer contentHeight, SizeUnit contentSizeUnit) Sets the height of grid content.voidsetItemEdit(IModel<I> rowModel, boolean edit) Sets the edit mode of the row.voidsetSelectToEdit(boolean selectToEdit) Determines whether selected items should also be editable.voidSets the grid theme.voidsetUseYui(boolean useYui) abstract voidupdate()During an Ajax request this method updates the changed grid rows.Methods inherited from class org.apache.wicket.markup.html.panel.Panel
getRegionMarkup, newMarkupSourcingStrategyMethods inherited from class org.apache.wicket.markup.html.WebMarkupContainer
getWebApplication, getWebPage, getWebRequest, getWebResponse, getWebSessionMethods inherited from class org.apache.wicket.MarkupContainer
add, addDequeuedComponent, addOrReplace, autoAdd, canDequeueTag, contains, dequeue, dequeue, dequeuePreamble, findChildComponent, findComponentToDequeue, get, getAssociatedMarkup, getAssociatedMarkupStream, getMarkup, getMarkupType, internalAdd, internalInitialize, iterator, iterator, newDequeueContext, onComponentTagBody, onDetach, onRender, queue, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderNext, replace, setDefaultModel, size, stream, streamChildren, toString, toString, visitChildren, visitChildrenMethods inherited from class org.apache.wicket.Component
add, addStateChange, beforeRender, canCallListener, canCallListenerAfterExpiry, checkComponentTag, checkComponentTagAttribute, checkHierarchyChange, clearOriginalDestination, configure, continueToOriginalDestination, createConverter, debug, detach, detachModel, detachModels, determineVisibility, error, exceptionMessage, fatal, findMarkupStream, findPage, findParent, findParentWithAssociatedMarkup, getAjaxRegionMarkupId, getApplication, getBehaviorById, getBehaviorId, getBehaviors, getBehaviors, getClassRelativePath, getConverter, getDefaultModel, getDefaultModelObject, getDefaultModelObjectAsString, getDefaultModelObjectAsString, getEscapeModelStrings, getFeedbackMessages, getFlag, getId, getInnermostModel, getInnermostModel, getLocale, getLocalizer, getMarkup, getMarkupAttributes, getMarkupId, getMarkupId, getMarkupIdFromMarkup, getMarkupIdImpl, getMarkupSourcingStrategy, getMarkupTag, getMetaData, getModelComparator, getOutputMarkupId, getOutputMarkupPlaceholderTag, getPage, getPageRelativePath, getParent, getPath, getRenderBodyOnly, getRequest, getRequestCycle, getRequestFlag, getResponse, getSession, getSizeInBytes, getStatelessHint, getString, getString, getString, getStyle, getVariation, hasBeenRendered, hasErrorMessage, hasFeedbackMessage, info, initModel, internalOnModelChanged, internalRenderComponent, internalRenderHead, isActionAuthorized, isAuto, isBehaviorAccepted, isEnableAllowed, isEnabled, isEnabledInHierarchy, isIgnoreAttributeModifier, isInitialized, isRenderAllowed, isRendering, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, markRendering, modelChanged, modelChanging, onConfigure, onEvent, onModelChanged, onModelChanging, onReAdd, onRemove, redirectToInterceptPage, remove, remove, render, renderComponentTag, rendered, renderPart, renderPlaceholderTag, replaceComponentTagBody, replaceWith, sameInnermostModel, sameInnermostModel, send, setAuto, setDefaultModelObject, setEnabled, setEscapeModelStrings, setFlag, setIgnoreAttributeModifier, setMarkup, setMarkupId, setMarkupIdImpl, setMetaData, setOutputMarkupId, setOutputMarkupPlaceholderTag, setParent, setRenderBodyOnly, setResponsePage, setResponsePage, setResponsePage, setVersioned, setVisibilityAllowed, setVisible, success, urlFor, urlFor, urlFor, urlForListener, urlForListener, visitParents, visitParents, warn, wrapMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.apache.wicket.IQueueRegion
dequeue, newDequeueContextMethods inherited from interface java.lang.Iterable
forEach, spliterator
-
Field Details
-
INTERNAL_TOOLBAR_ITEM_ID
INTERNALId of toolbar item (inside toolbar repeaters).
- See Also:
-
THEME_VISTA
Constant for the Vista theme (default).- See Also:
-
JS_YAHOO
-
JS_EVENT
-
JS_DOM
-
JS_SCRIPT
-
JS_SCRIPT_JQ
-
CSS
-
-
Constructor Details
-
AbstractGrid
Creates newAbstractGridinstance- Parameters:
id-model-columns-
-
-
Method Details
-
getForm
-
columnSanityCheck
Checks whether the column is a valid grid column- Parameters:
column-
-
onColumnStateChanged
public void onColumnStateChanged()Invoked when client change the column state (e.g. resize or reorder a column).- See Also:
-
getColumnState
Returns the column state.- Returns:
- state of columns
- See Also:
-
setColumnState
Sets a new column state. The state must not be null and must match current set of columns, i.e. for every column in grid there must be entry in the given state.- Parameters:
columnState- new column state- See Also:
-
onInitialize
protected void onInitialize()- Overrides:
onInitializein classMarkupContainer
-
onBeforeRender
protected void onBeforeRender()- Overrides:
onBeforeRenderin classComponent
-
onAfterRender
protected void onAfterRender()- Overrides:
onAfterRenderin classComponent
-
addTopToolbar
Adds a toolbar to the top section (above the grid header).- Parameters:
toolbar- toolbar instance- See Also:
-
addBottomToolbar
Adds a toolbar to the bottom section (below the actual data).- Parameters:
toolbar- toolbar instance- See Also:
-
addHeaderToolbar
Ads a toolbar to the header section (below the grid header, above the actual data).- Parameters:
toolbar- toolbar instance- See Also:
-
onSortStateChanged
Invoked when sort state of this grid has changed (e.g. user clicked a sortable column header). By default refreshes the grid.- Parameters:
target-
-
getActiveColumns
Returns collection of currently visible columns.- Returns:
- collection of currently visible columns
-
getAllColumns
Returns the list of all columns in this grid.- Returns:
- list of columns
-
getSortState
Returns the sort state of this grid.- Returns:
- sort state
- See Also:
-
setTheme
Sets the grid theme. Grid theme is used as CSS style class for the grid. The theme itself consist of a proper style definition in stylesheet. For more information on custom theme creation see the custom theme example.- Parameters:
theme- theme identifier
-
getTheme
Returns the theme identifier- Returns:
- theme identifier
- See Also:
-
onComponentTag
- Overrides:
onComponentTagin classComponent
-
renderHead
- Specified by:
renderHeadin interfaceIHeaderContributor- Overrides:
renderHeadin classComponent
-
selectItem
Alters the selection state of item specified by the item model.- Parameters:
itemModel- item modelselected-trueif the item should be selected,falseotherwise.
-
selectAllVisibleItems
public abstract void selectAllVisibleItems() -
resetSelectedItems
public abstract void resetSelectedItems()Deselects all items. This method marks all items (not just visible items) as no selected. -
isItemSelected
Queries whether the item specified by itemModel is currently selected.- Parameters:
itemModel- item model- Returns:
trueif the item is selected,falseotherwise
-
getSelectedItems
Returns the collection of models of all currently selected items.- Returns:
- collection of models of currently selected items
-
setAllowSelectMultiple
public abstract void setAllowSelectMultiple(boolean value) Sets whether user will be able to select more than one item.- Parameters:
value-trueif the user will be able to select more than one item at a time,falseotherwise (single selection mode).
-
isAllowSelectMultiple
public abstract boolean isAllowSelectMultiple()Returns whether user will be able to select more than one item at a time.- Returns:
trueif multiple items can be selected at a time,falseotherwise.
-
update
public abstract void update()During an Ajax request this method updates the changed grid rows.The definition of "changed" varies in
DataGridandTreeGrid.- In both grids the items for which the selection state changed are considered changed.
- In
TreeGridthe changes toTreeModelitself are being tracked (assuming the proper listeners are fired) and all rows that need to be updated are also considered changed. - In
DataGridthe items that need to be updated can be marked byDataGrid.markItemDirty(IModel)orDataGrid.markAllItemsDirty(). The grid itself doesn't track changes to specific items (apart from the selection state).
-
onItemSelectionChanged
Invoked when an item selection state has been changed.- Parameters:
item- item modelnewValue-trueif the item became selected,falseotherwise.
-
getLastClickedColumn
-
cleanLastClickedColumn
public void cleanLastClickedColumn() -
disableRowClickNotifications
protected boolean disableRowClickNotifications() -
onRowPopulated
Called after a grid row has been populated. This method allows adding behaviors to grid rows.- Parameters:
rowComponent-
-
onCellClicked
protected boolean onCellClicked(AjaxRequestTarget target, IModel<I> rowModel, IGridColumn<M, I, S> column) -
onRowClicked
-
setClickRowToSelect
Sets whether a click on grid row should select/deselect the row.- Parameters:
clickRowToSelect-trueif the row selection state should be changed upon a mouse click,falseotherwise.- Returns:
this(useful for method chaining)- See Also:
-
isClickRowToSelect
public boolean isClickRowToSelect()Returns whether a click on grid row should select/deselect the row.- Returns:
trueif the row click should alter the row selection state,falseotherwise.
-
setClickRowToDeselect
public void setClickRowToDeselect(boolean clickRowToDeselect) Sets whether a click on selected grid row should deselect it. This only applies whensetClickRowToSelect(boolean)is set totrue.- Parameters:
clickRowToDeselect- whether clicking a selected row should deselect it
-
isClickRowToDeselect
public boolean isClickRowToDeselect()Returns whether clicking a selected row deselects it.- Returns:
trueif clicking a selected row deselects it,falseotherwise.
-
setContentHeight
Sets the height of grid content. Content is the part of grid displaying the actual data (rows), i.e. it doesn't cover the header part and toolbars. When the actual content height is bigger than specified height, a vertical scrollbar is displayed.- Parameters:
contentHeight- desired height of the content ornullis the height should be determined by the actual height (no scrollbar displayed, defalt value)contentSizeUnit- size unit for thecontentHeight
-
getContentHeight
public int getContentHeight()Returns the content height.- Returns:
- content height or 0 if the content height should be determined by the actual content.
- See Also:
-
getContentHeightSizeUnit
Returns the size unit for content height.- Returns:
- size unit
-
findParentRow
Returns the row in DataTable that contains the child component- Parameters:
child-- Returns:
-
findRowComponent
Returns the row component for specified item.- Parameters:
rowModel-- Returns:
-
markItemDirty
Marks the item from the given model as dirty. Dirty items are updated during Ajax requests whenupdate()method is called.- Parameters:
model- model used to access the item
-
setSelectToEdit
public void setSelectToEdit(boolean selectToEdit) Determines whether selected items should also be editable. This should be set tofalsewhen the grid is both selectable and editable (independently).- Parameters:
selectToEdit- whether selected rows should be editable
-
isSelectToEdit
public boolean isSelectToEdit()Returns whether selected rows are also editable.- Returns:
-
setItemEdit
Sets the edit mode of the row. If selectToEdit is true, this is same as callingselectItem(IModel, boolean).- Parameters:
rowModel- row modeledit-trueif the row should be in editable mode,falseotherwise.- See Also:
-
isItemEdited
Returns whether the row is in editable mode.- Parameters:
rowModel-- Returns:
trueif the row is in editable mode,falseotherwise.
-
isUseYui
public boolean isUseYui() -
setUseYui
public void setUseYui(boolean useYui)
-