Package org.adempiere.webui.panel
Class InfoPanel
java.lang.Object
org.zkoss.zk.ui.AbstractComponent
org.zkoss.zk.ui.HtmlBasedComponent
org.zkoss.zul.impl.XulElement
org.zkoss.zul.Window
org.adempiere.webui.component.Window
org.adempiere.webui.panel.InfoPanel
- All Implemented Interfaces:
Serializable,Cloneable,WTableModelListener,ISupportMask,IHelpContext,org.zkoss.zk.ui.Component,org.zkoss.zk.ui.event.EventListener<org.zkoss.zk.ui.event.Event>,org.zkoss.zk.ui.ext.Scope,org.zkoss.zk.ui.IdSpace,org.zkoss.zk.ui.sys.ComponentCtrl,org.zkoss.zul.ext.Framable,org.zkoss.zul.ext.Sortable<Object>
- Direct Known Subclasses:
InfoAssetPanel,InfoAssignmentPanel,InfoBPartnerPanel,InfoCashLinePanel,InfoGeneralPanel,InfoInOutPanel,InfoInvoicePanel,InfoOrderPanel,InfoPaymentPanel,InfoProductPanel,InfoWindow
public abstract class InfoPanel
extends Window
implements org.zkoss.zk.ui.event.EventListener<org.zkoss.zk.ui.event.Event>, WTableModelListener, org.zkoss.zul.ext.Sortable<Object>, IHelpContext
Abstract base class for info panel and info window.
Info window that works in two mode.
Lookup mode: Popup dialog for a field. Search and return selection to lookup field.
Viewing mode: Independent popup or embedded window. Search and view search results. Optional support for execution of process.
Info window that works in two mode.
Lookup mode: Popup dialog for a field. Search and return selection to lookup field.
Viewing mode: Independent popup or embedded window. Search and view search results. Optional support for execution of process.
- Author:
- Sendy Yagambrum, Elaine
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.zkoss.zul.Window
org.zkoss.zul.Window.ModeNested classes/interfaces inherited from class org.zkoss.zk.ui.HtmlBasedComponent
org.zkoss.zk.ui.HtmlBasedComponent.ExtraCtrlNested 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
FieldsModifier and TypeFieldDescriptionprotected static final Stringprotected Stringcolumn name for auto complete callprotected ButtonIDEMPIERE-1334 button and combobox when layout process button as dropdown listprotected Buttonprotected Comboboxprotected static final StringAD_InfoColumn_ID:Index Column Sequence
Store index of infoColumn that have been added.Index increase from 0.protected ConfirmPanelprotected WListboxColumn:WEditorprotected intprotected booleanprotected booleanflag detect exists info processprotected intNumber of index column that have been added tocolumnDataIndex.protected intindex ofkeyColumnOfViewin data model, set when prepare listboxprotected intprotected static final Stringprotected List<MInfoProcess>Info process with style = buttonprotected List<MInfoProcess>Info process with style = drop down listprotected MInfoProcess[]Info processes of this infoWindowprotected List<MInfoProcess>Info process with style = menuprotected MInfoWindowprotected booleantrue for auto complete call from lookup fieldprotected Booleanprotected booleanprotected booleanprotected booleanprotected booleanAfter loading of first record, set this to false.
When need to updatecolumnDataIndex, set this to true.protected booleanIf false, use saved where clause.protected booleanWhen re-query but don't want to clear selected record (example after run process), set this flag to true to run sync selected record.protected MInfoColumnMInfoColumn with isKey = true.protected CLoggerLoggerBefore the start of reading of a row, reset this list.protected intprotected GridFieldprotected intAD_InfoWindow_IDprotected booleantrue for lookup modeContains the keys of the selected rows in the order of selectionprotected intNumber of selected rowsprotected StringCount SQL Statementprotected StringMain SQL Statementprotected StringOrder By ClauseKeyNamePair/ValueNamePair:[Column:Value]protected Collection<NamePair>saved selected id and viewIDprotected intprotected static final Stringprotected static final Stringprotected static final Stringprotected StringKey Column Nameprotected ColumnInfo[]Layout ofcontentPanelprotected booleanLoading success indicatorprotected booleanEnable more than one selectionprotected StringTable Nameprotected StringInitial WHERE Clauseprotected intLookup mode: parent window number.protected intprotected intprotected org.zkoss.zul.PagingParameter Name:Value Values that will be put into the context on re-querysaved value of previous query parametersprotected Stringsaved where clause of previous queryprotected static final Stringprotected intprotected StringValue of Key Column:Values of Row.
Store selected rows.
If there's no key column of view, use value ofp_keyColumn.
Zk6.x listview deosn't send event when user click header checkbox to select all rows, so we can't manage selectedRecord all the time.protected InfoRelatedVO[]protected static final Stringstatic final Stringprotected Stringsql column name of infocolumn (can be alias)protected StatusBarPanelprotected booleanstatic final intstatic final intFields inherited from class org.adempiere.webui.component.Window
DECORATE_INFO, INSERT_END, INSERT_NEXT, INSERT_POSITION_KEY, MODE_EMBEDDED, MODE_HIGHLIGHTED, MODE_KEY, MODE_MODAL, MODE_OVERLAPPED, MODE_POPUP, REPLACE, showMaskWrapperFields inherited from class org.zkoss.zul.Window
EMBEDDED, HIGHLIGHTED, MODAL, OVERLAPPED, POPUPFields inherited from class org.zkoss.zk.ui.HtmlBasedComponent
_zclassFields inherited from interface org.zkoss.zk.ui.Component
APPLICATION_SCOPE, COMPONENT_SCOPE, DESKTOP_SCOPE, PAGE_SCOPE, REQUEST_SCOPE, SESSION_SCOPE, SPACE_SCOPEFields inherited from interface org.zkoss.zk.ui.sys.ComponentCtrl
AFTER_CHILD_ADDED, AFTER_CHILD_REMOVED, AFTER_PAGE_ATTACHED, AFTER_PAGE_DETACHED, AFTER_PARENT_CHANGED, CE_BUSY_IGNORE, CE_DUPLICATE_IGNORE, CE_IMPORTANT, CE_NON_DEFERRABLE, CE_REPEAT_IGNOREFields inherited from interface org.adempiere.webui.ISupportMask
READY_SHOW_MASK_FLAG -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedInfoPanel(int WindowNo, String tableName, String keyColumn, boolean multipleSelection, String whereClause) protectedInfoPanel(int WindowNo, String tableName, String keyColumn, boolean multipleSelection, String whereClause, boolean lookup) protectedInfoPanel(int WindowNo, String tableName, String keyColumn, boolean multipleSelection, String whereClause, boolean lookup, int ADInfoWindowID) protectedInfoPanel(int WindowNo, String tableName, String keyColumn, boolean multipleSelection, String whereClause, boolean lookup, int ADInfoWindowID, String queryValue) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddValueChangeListener(ValueChangeListener listener) protected voidAppendkeyColumnOfViewto data.protected voidAppend id column in related info list to data.protected voidAppend viewID column in infoProcessList to data.protected voidappendInfoColumnData(ResultSet rs, List<Object> data, IInfoColumn[] listModelHasInfoColumn, List<Integer> listReadedColumn) Append value of infoColumn in listModelHaveInfoColumn to data.protected voidauto hide empty columnsprotected voidEvaluate display logic of processes.protected StringbuildDataSQL(int start, int end) build sql clause with pagingprotected voidSet sort direction indicatorstatic InfoPanelcreate(int WindowNo, String tableName, String keyColumn, String value, boolean multiSelection, String whereClause) voidcreateT_Selection_InfoWindow(int AD_PInstance_ID) Insert selected rows to T_Selection_InfoWindowprotected voidShow Customize dialogvoiddispose(boolean ok) Dispose and save Selectionprotected voidenable all control button or disable all depends on whether there are selected records.protected voidenableButtons(boolean enable) enable or disable all control button Enable OK, History, Zoom if row/s selected --- Changes: Changed the logic for accommodating multiple selection author ashleyprotected voidExecute QueryvoidfireValueChange(ValueChangeEvent event) Fire ValueChangeEvent event.protected intgetAD_Window_ID(String tableName, boolean isSOTrx) Get Zoom WindowGet alias of the table, or the table nameprotected intprotected intgetColumnHeader(ColumnInfo[] p_layout) protected ObjectgetColumnValue(int rowIndex) Get keyView value at rowIndex.
Exception is raise if value is null.String[]field call this info panel as search editor null in case info window open in stand-alone window (from menu, fav,...)protected intget column index of keyViewprotected intgetInfoColumnIDFromProcess(int processId) Get InfoColumnID of infoProcessprotected IntegergetIntSelectedRowKey(int tableId) Get the integer key of currently selected rowprotected StringGet Key Column Nameprotected AdempiereExceptionGet last selected rowprotected intgetOverIntValue(long value) When calculating value at bound of integer datatype, sometime value will overflow.protected intgetOverIntValue(long value, int extra) seegetOverIntValue(long). when value >= max_value, set it near or equal to max_value.intintgetRowKeyAt(int row) getSaveKeys(int infoColumnId) Add view id column (infoColumnId) tom_viewIDMap.protected StringGet a comma-separated string of selected IDsGet (first) selected KeyObject[]Get selected KeysDeprecated.use getSaveKeysUpdaterecordSelectedDataprotected <T extends Serializable>
TGet the key of currently selected rowprotected <T extends Serializable>
List<T>Get the keys of selected rowsGet where clause for (first) selected keygetSortDirection(Comparator<Object> cmpr) protected abstract StringGet dynamic WHERE part of SQL.
When override this method, please take isQueryByUser and prevWhereClause into consideration.Widget support Depending on Window/Tab returns widget lines infogetSubList(int fromIndex, int toIndex, List<Object> line) fromIndex and toIndex is calculate base on result fromtestCount().protected StringGet Table name Synonymprotected Stringbuild order clause of current sort column, and save it to m_sqlUserOrderprotected StringgetUserOrderClause(int col) Build order clause of given column index.intprotected booleanHas Customize dialog (default false).protected booleanHas History (default false).protected booleanhasNew()Support create new record (default false)protected booleanprotected booleanhasZoom()Has Zoom support (default false)protected voidCall after loading of parameter panel to set initial value.protected voidadd paging component for list boxprotected booleanbooleanIs cancelled?booleanprotected booleanisIDColumn(Object keyData) callisIDColumn(Object, boolean)without null checkprotected booleanisIDColumn(Object keyData, boolean isCheckNull) Check type of object is IDColumnprotected booleanbooleanisLookup()protected booleanneed override at infoWindow to check isDisplayprotected booleanbooleanloadedOK()Loaded correctlyprotected voidquery ADInfoWindow from ADInfoWindowIDprotected voidHandle user click on new record button.protected voidonCancel()handle cancel eventprotected voidhandle double click on row eventvoidonEvent(org.zkoss.zk.ui.event.Event event) protected voidonOk()handle ok eventvoidonPageAttached(org.zkoss.zk.ui.Page newpage, org.zkoss.zk.ui.Page oldpage) voidonPageDetached(org.zkoss.zk.ui.Page page) voidonQueryCallback(org.zkoss.zk.ui.event.Event event) handle echo from query eventbooleanonRestoreSelectedItemIndexInPage(Object keyViewValue, int rowIndex, Object row) Hook to intercept 'restore selection' actionsvoidCall query when user click to query button enter in parameter fieldprotected voidparse query value from calling input elementprotected voidprepareTable(ColumnInfo[] layout, String from, String where, String orderBy) set up list box and construct sql clauseprotected voidpreRunProcess(Integer processId) Before running of processprotected voidrender list box itemsprotected voidReset parameter to default value or to empty value.protected voidgo through all data record, in case key value is inrecordSelectedData, mark it as selected recordprotected voidrunProcess(Object processIdObj) Run a process.
Before start process, save id of record selected.protected voidsaveResultSelection(int infoColumnId) Save selected rows tom_valuesprotected voidSave Selection - Called by disposeprotected voidSave Selection Details.voidscroll selected row into view (i.e make sure it is visible)voidsetCloseAfterExecutionOfProcess(boolean closeAfterExecutionOfProcess) Set whether dialog should auto close after successful execution of processprotected voidsetContext(String columnName, Object value) Set contextvoidsetFixedQueryTimeout(int timeout) set fixed query timeout value, overwrite the value from sysconfigvoidsetGridfield(GridField m_gridfield) voidsetMultipleSelection(boolean multipleSelection) protected abstract voidsetParameters(PreparedStatement pstmt, boolean forCount) Set Parameters for Query.voidsetStatusDB(String text) Set status text for DBvoidsetStatusLine(String text, boolean error) Set Status LinevoidSet status text for selected rowsprotected voidShow history dialogstatic voidShow panel based on tablename (non modal and not lookup)voidsort(Comparator<Object> cmpr, boolean ascending) protected voidMaintain selected record after re-query (for example after success run of a process).voidtableChanged(WTableModelEvent event) Notify listeners the exact range of cells, rows, or columns that have changed.protected booleanTest Row Countprotected voidupdateContext(boolean checkQueryCriteria) Put values from the selected row into the contextprotected voidGet all selected record of current page and update torecordSelectedData.
Remove unselected record and add new selected record.
We maintain value of key, and extra value append byappendInfoColumnData(ResultSet, List, IInfoColumn[], List)protected voidUpdate row selection orderprotected voidupdateStatusBar(int no) update info window status textprotected voidUpdate related info when selection incontentPanelchange.protected voidupdateSubcontent(int targetRow) Update related info for a specific row.protected voidAfter query from database, validate paging (when paging is dynamic, ie isLoadPageNumber()==false)
If end page include in cache, calculate total record read.protected voidcolumn index of grid isn't fix, it can change by display logic of column each time after loading of dataInfoWindow.prepareTable(ColumnInfo[], String, String, String), so need to validate it by comparing the sql of current sort columnbooleanvalidate parameter before run queryvoidzoom()zoom to recordMethods inherited from class org.adempiere.webui.component.Window
dispose, getMaskComponent, getMaskObj, getModeAttribute, hideMask, isFireWindowCloseEventOnDetach, setFireWindowCloseEventOnDetach, showMaskMethods inherited from class org.zkoss.zul.Window
beforeChildAdded, clone, doEmbedded, doHighlighted, doModal, doOverlapped, doPopup, getBorder, getCaption, getContentSclass, getContentStyle, getMinheight, getMinwidth, getMode, getModeType, getPosition, getTitle, getZclass, inEmbedded, inHighlighted, inModal, inOverlapped, inPopup, insertBefore, isClosable, isCollapsible, isMaximizable, isMaximized, isMinimizable, isMinimized, isShadow, isSizable, onChildRemoved, onClose, onModal, renderProperties, service, setBorder, setBorder, setClosable, setContentSclass, setContentStyle, setDraggable, setMaximizable, setMaximized, setMinheight, setMinimizable, setMinimized, setMinwidth, setMode, setMode, setMode, setPosition, setShadow, setSizable, setTitle, setTopmost, setVisibleMethods inherited from class org.zkoss.zul.impl.XulElement
getContext, getCtrlKeys, getPopup, getPropertyAccess, getTooltip, setContext, setContext, setContextAttributes, setCtrlKeys, setPopup, setPopup, setPopupAttributes, setTooltip, setTooltip, setTooltipAttributesMethods 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, getZindex, getZIndex, removeSclass, removeSclass, setAction, setClass, setClientAction, 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, setZIndexDirectlyMethods 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, 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, invalidate, isChildable, isDisabledHostChanged, isInitialized, isInvalidated, isListenerAvailable, isVisible, onChildAdded, 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, setVisibleDirectly, setWidgetClass, setWidgetListener, setWidgetOverride, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdateWidgetListener, smartUpdateWidgetOverride, toString, updateByClient, updateSubBindingAnnotationCount, willPassivate, willPassivate, willSerialize, willSerializeMethods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface org.zkoss.zk.ui.IdSpace
getFellow, getFellow, getFellowIfAny, getFellowIfAny, getFellows, hasFellow, hasFellowMethods inherited from interface org.zkoss.zk.ui.ext.Scope
addScopeListener, getAttribute, hasAttribute, removeAttribute, removeScopeListener, setAttributeMethods inherited from interface org.zkoss.zul.ext.Sortable
sort
-
Field Details
-
ON_USER_QUERY_ATTR
- See Also:
-
INFO_QUERY_TIME_OUT_ERROR
- See Also:
-
COLUMN_VISIBLE_ORIGINAL
- See Also:
-
ROW_CTX_VARIABLE_PREFIX
- See Also:
-
ROW_ID_CTX_VARIABLE_NAME
- See Also:
-
btProcessList
-
editorMap
Column:WEditor -
PROCESS_ID_KEY
- See Also:
-
ON_RUN_PROCESS
- See Also:
-
ON_SELECT_ALL_RECORDS
- See Also:
-
ATT_INFO_PROCESS_KEY
- See Also:
-
pageSize
protected int pageSize -
m_values
KeyNamePair/ValueNamePair:[Column:Value] -
isIgnoreCacheAll
protected boolean isIgnoreCacheAll -
numPagePreLoad
protected int numPagePreLoad -
extra_max_row
protected int extra_max_row -
keyColumnOfView
MInfoColumn with isKey = true. In case no column has isKey = true, keyColumnOfView will be null and we usep_keyColumn -
indexKeyOfView
protected int indexKeyOfViewindex ofkeyColumnOfViewin data model, set when prepare listbox -
isIDColumnKeyOfView
protected boolean isIDColumnKeyOfView -
hasRightQuickEntry
protected boolean hasRightQuickEntry -
isHasNextPage
protected boolean isHasNextPage -
recordSelectedData
Value of Key Column:Values of Row.
Store selected rows.
If there's no key column of view, use value ofp_keyColumn.
Zk6.x listview deosn't send event when user click header checkbox to select all rows, so we can't manage selectedRecord all the time.
Each time change page, we will update this list with current selected records of current page
by calling functionupdateListSelected(). When move to zk7, enough to just handle onclick only.
Because of the issue above, don't use recordSelectedData directly, callgetSelectedRowInfo()instead. -
isRequeryByRunSuccessProcess
protected boolean isRequeryByRunSuccessProcessWhen re-query but don't want to clear selected record (example after run process), set this flag to true to run sync selected record. See alsosyncSelectedAfterRequery() -
m_lookup
protected boolean m_lookuptrue for lookup mode -
m_infoWindowID
protected int m_infoWindowIDAD_InfoWindow_ID -
confirmPanel
-
p_WindowNo
protected int p_WindowNoLookup mode: parent window number. Non lookup mode: register desktop tab number for this window -
p_tableName
Table Name -
p_keyColumn
Key Column Name -
p_multipleSelection
protected boolean p_multipleSelectionEnable more than one selection -
p_whereClause
Initial WHERE Clause -
statusBar
-
p_layout
Layout ofcontentPanel -
m_sqlMain
Main SQL Statement -
m_sqlCount
Count SQL Statement -
m_sqlOrder
Order By Clause -
indexOrderColumn
protected int indexOrderColumn -
sqlOrderColumn
sql column name of infocolumn (can be alias) -
isColumnSortAscending
-
p_loadedOK
protected boolean p_loadedOKLoading success indicator -
infoWindow
-
log
Logger -
contentPanel
-
paging
protected org.zkoss.zul.Paging paging -
pageNo
protected int pageNo -
m_count
protected int m_count -
m_gridfield
-
isQueryByUser
protected boolean isQueryByUserIf false, use saved where clause. IDEMPIERE-1979 -
isAutoComplete
protected boolean isAutoCompletetrue for auto complete call from lookup field -
queryTimeout
protected int queryTimeout -
useQueryTimeoutFromSysConfig
protected boolean useQueryTimeoutFromSysConfig -
autoCompleteSearchColumn
column name for auto complete call -
queryValue
-
prevWhereClause
saved where clause of previous query -
prevParameterValues
saved value of previous query parameters -
prevQueryOperators
-
prevRefParmeterEditor
-
infoProcessList
Info processes of this infoWindow -
haveProcess
protected boolean haveProcessflag detect exists info process -
infoProcessBtList
Info process with style = button -
infoProcessDropList
Info process with style = drop down list -
infoProcessMenuList
Info process with style = menu -
m_viewIDMap
saved selected id and viewID -
columnDataIndex
AD_InfoColumn_ID:Index Column Sequence
Store index of infoColumn that have been added.Index increase from 0. -
isMustUpdateColumnIndex
protected boolean isMustUpdateColumnIndexAfter loading of first record, set this to false.
When need to updatecolumnDataIndex, set this to true. -
indexColumnCount
protected int indexColumnCountNumber of index column that have been added tocolumnDataIndex. -
lsReadedColumn
Before the start of reading of a row, reset this list.
After reading of each column, store id of infoColumn to this list to prevent duplicate. -
btCbbProcess
IDEMPIERE-1334 button and combobox when layout process button as dropdown list -
cbbProcess
-
btMenuProcess
-
m_rowSelectionOrder
Contains the keys of the selected rows in the order of selection -
m_selectedCount
protected int m_selectedCountNumber of selected rows -
paraCtxValues
Parameter Name:Value Values that will be put into the context on re-query -
VK_ENTER
public static final int VK_ENTER- See Also:
-
VK_ESCAPE
public static final int VK_ESCAPE- See Also:
-
-
Constructor Details
-
InfoPanel
protected InfoPanel(int WindowNo, String tableName, String keyColumn, boolean multipleSelection, String whereClause) - Parameters:
WindowNo- WindowNotableName- tableNamekeyColumn- keyColumnmultipleSelection-whereClause- whereClause
-
InfoPanel
protected InfoPanel(int WindowNo, String tableName, String keyColumn, boolean multipleSelection, String whereClause, boolean lookup) - Parameters:
WindowNo-tableName-keyColumn-multipleSelection-whereClause-lookup-
-
InfoPanel
protected InfoPanel(int WindowNo, String tableName, String keyColumn, boolean multipleSelection, String whereClause, boolean lookup, int ADInfoWindowID) - Parameters:
WindowNo-tableName-keyColumn-multipleSelection-whereClause-lookup-ADInfoWindowID-
-
InfoPanel
protected InfoPanel(int WindowNo, String tableName, String keyColumn, boolean multipleSelection, String whereClause, boolean lookup, int ADInfoWindowID, String queryValue) - Parameters:
WindowNo- WindowNotableName- tableNamekeyColumn- keyColumnmultipleSelection-whereClause- whereClauselookup-ADInfoWindowID-queryValue-
-
-
Method Details
-
create
public static InfoPanel create(int WindowNo, String tableName, String keyColumn, String value, boolean multiSelection, String whereClause) - Parameters:
WindowNo-tableName-keyColumn-value-multiSelection-whereClause-- Returns:
InfoPanel
-
showPanel
Show panel based on tablename (non modal and not lookup)- Parameters:
tableName-
-
parseQueryValue
protected void parseQueryValue()parse query value from calling input element -
setFixedQueryTimeout
public void setFixedQueryTimeout(int timeout) set fixed query timeout value, overwrite the value from sysconfig- Parameters:
timeout-
-
loadedOK
public boolean loadedOK()Loaded correctly- Returns:
- true if loaded OK
-
setStatusLine
Set Status Line- Parameters:
text- texterror- error
-
setStatusDB
Set status text for DB- Parameters:
text- text
-
setStatusSelected
public void setStatusSelected()Set status text for selected rows -
prepareTable
set up list box and construct sql clause- Parameters:
layout-from-where-orderBy-
-
isLoadPageNumber
protected boolean isLoadPageNumber()- Returns:
- true if number of page will be determined through record count.
-
executeQuery
protected void executeQuery()Execute Query -
appendDataForViewID
protected void appendDataForViewID(ResultSet rs, List<Object> data, List<Integer> listReadedColumn) throws SQLException Append viewID column in infoProcessList to data.
When overridereadData(ResultSet), should include call to this method. IDEMPIERE-1970- Parameters:
rs- result set to read datadata- data line to appendlistReadedColumn- list of columns appended- Throws:
SQLException
-
appendDataForParentLink
protected void appendDataForParentLink(ResultSet rs, List<Object> data, List<Integer> listReadedColumn) throws SQLException Append id column in related info list to data.
When overridereadData(ResultSet), should include call to this method. IDEMPIERE-2152- Parameters:
rs-data-listReadedColumn-- Throws:
SQLException
-
appendDataForKeyView
protected void appendDataForKeyView(ResultSet rs, List<Object> data, List<Integer> listReadedColumn) throws SQLException AppendkeyColumnOfViewto data.
When overridereadData(ResultSet), should include call to this method. IDEMPIERE-1970- Parameters:
rs- record set to read datadata- data line to appendlistReadedColumn- list column is appended- Throws:
SQLException
-
appendInfoColumnData
protected void appendInfoColumnData(ResultSet rs, List<Object> data, IInfoColumn[] listModelHasInfoColumn, List<Integer> listReadedColumn) throws SQLException Append value of infoColumn in listModelHaveInfoColumn to data.- Parameters:
rs- record set to read datadata- data line to appendlistModelHasInfoColumn-listReadedColumn- list of columns appended- Throws:
SQLException
-
renderItems
protected void renderItems()render list box items -
autoHideEmptyColumns
protected void autoHideEmptyColumns()auto hide empty columns -
isAutoHideEmptyColumns
protected boolean isAutoHideEmptyColumns()- Returns:
- true if info window should auto hide empty columns
-
updateStatusBar
protected void updateStatusBar(int no) update info window status text- Parameters:
no-
-
validateEndPage
protected void validateEndPage()After query from database, validate paging (when paging is dynamic, ie isLoadPageNumber()==false)
If end page include in cache, calculate total record read.
If current page is out of cache, process query count to detect end page. -
getSubList
fromIndex and toIndex is calculate base on result fromtestCount().
For example after testCount, the calculated number of page is 6 page.
When user navigate to page 4. something change in database and we just get 5 page with current query parameter.
So when user navigate to page 6. user will face with index issue (out of index or start index > end index).
This function include fix for it.- Parameters:
fromIndex-toIndex-line-- Returns:
- sub list from line
-
getOverIntValue
protected int getOverIntValue(long value) When calculating value at bound of integer datatype, sometime value will overflow. This function calculate with higher data type to avoid the overflow issue.- Parameters:
value-- Returns:
- int
-
getOverIntValue
protected int getOverIntValue(long value, int extra) seegetOverIntValue(long). when value >= max_value, set it near or equal to max_value.- Parameters:
value-extra- extra value to minus from max_value- Returns:
- int
-
buildDataSQL
build sql clause with paging- Parameters:
start-end-- Returns:
- sql clause
-
validateOrderIndex
protected void validateOrderIndex()column index of grid isn't fix, it can change by display logic of column each time after loading of dataInfoWindow.prepareTable(ColumnInfo[], String, String, String), so need to validate it by comparing the sql of current sort column -
getUserOrderClause
build order clause of current sort column, and save it to m_sqlUserOrder- Returns:
- order clause
-
getUserOrderClause
Build order clause of given column index.
If call init list will raise NPE.- Parameters:
col-- Returns:
- order clause
-
getAlias
Get alias of the table, or the table name- Returns:
- String alias
-
insertPagingComponent
protected void insertPagingComponent()add paging component for list box -
getColumnHeader
- Parameters:
p_layout-- Returns:
- column headers
-
testCount
protected boolean testCount()Test Row Count- Returns:
- true if display
-
saveSelection
protected void saveSelection()Save Selection - Called by dispose -
getSelectedRowKey
Get the key of currently selected row- Returns:
- selected key
-
getIntSelectedRowKey
Get the integer key of currently selected row- Parameters:
tableId-- Returns:
- selected key
-
getSelectedRowKeys
Get the keys of selected rows- Returns:
- selected IDs or UUIDs
-
getSelectedKeysCollection
Deprecated.use getSaveKeysGet selected Keys as Collection- Returns:
- selected keys (Integers)
-
getSaveKeys
Add view id column (infoColumnId) tom_viewIDMap.- Parameters:
infoColumnId- view id column
-
isNeedAppendKeyViewData
protected boolean isNeedAppendKeyViewData()need override at infoWindow to check isDisplay- Returns:
- true if need to append
keyColumnOfViewtocolumnDataIndex
-
isIDColumn
Check type of object is IDColumn- Parameters:
keyData-isCheckNull- when true, raise exception when data is null- Returns:
- true if keyData is instanceof IDColumn
-
isIDColumn
callisIDColumn(Object, boolean)without null check- Parameters:
keyData-- Returns:
- true if keyData is instanceof IDColumn
-
updateListSelected
protected void updateListSelected()Get all selected record of current page and update torecordSelectedData.
Remove unselected record and add new selected record.
We maintain value of key, and extra value append byappendInfoColumnData(ResultSet, List, IInfoColumn[], List) -
getIndexKeyColumnOfView
protected int getIndexKeyColumnOfView()get column index of keyView- Returns:
- index of key column
-
restoreSelectedInPage
protected void restoreSelectedInPage()go through all data record, in case key value is inrecordSelectedData, mark it as selected record -
onRestoreSelectedItemIndexInPage
Hook to intercept 'restore selection' actions- Parameters:
keyViewValue- row view keyrowIndex- row indexrow- row- Returns:
- false to skip restore selection
-
getKeyNullException
-
getColumnValue
Get keyView value at rowIndex.
Exception is raise if value is null.- Parameters:
rowIndex-- Returns:
- value of key column
-
syncSelectedAfterRequery
protected void syncSelectedAfterRequery()Maintain selected record after re-query (for example after success run of a process).
We must sync selected row, because some selected row maybe missing after re-query (change by process and no longer match with current query). TODO:rewrite, current code just reset isRequeryByRunSuccessProcess flag and didn't do anything else. -
getSelectedRowInfo
UpdaterecordSelectedData- Returns:
recordSelectedDataafter update
-
getSelectedKeys
Get selected Keys- Returns:
- selected keys (Integers)
-
getSelectedKey
Get (first) selected Key- Returns:
- selected key
-
isCancelled
public boolean isCancelled()Is cancelled? - if pressed Cancel = true - if pressed OK or window closed = false- Returns:
- true if cancelled
-
getSelectedSQL
Get where clause for (first) selected key- Returns:
- WHERE Clause
-
loadInfoWindowData
protected void loadInfoWindowData()query ADInfoWindow from ADInfoWindowID -
getTableName
Get Table name Synonym- Returns:
- table name
-
getKeyColumn
Get Key Column Name- Returns:
- column name
-
getEvents
- Returns:
- list of events
-
enableButtons
protected void enableButtons()enable all control button or disable all depends on whether there are selected records. -
enableButtons
protected void enableButtons(boolean enable) enable or disable all control button Enable OK, History, Zoom if row/s selected --- Changes: Changed the logic for accommodating multiple selection author ashley -
getSQLWhere
Get dynamic WHERE part of SQL.
When override this method, please take isQueryByUser and prevWhereClause into consideration.- Returns:
- WHERE clause
-
setParameters
protected abstract void setParameters(PreparedStatement pstmt, boolean forCount) throws SQLException Set Parameters for Query.
When override this method, please take isQueryByUser and prevWhereClause into consideration.- Parameters:
pstmt- statementforCount- for counting records- Throws:
SQLException
-
showHistory
protected void showHistory()Show history dialog -
hasHistory
protected boolean hasHistory()Has History (default false). Override this andshowHistory()method to add history dialog support.- Returns:
- true if it has history (default false)
-
hasProcess
protected boolean hasProcess()- Returns:
- true if support running of process.
-
customize
protected void customize()Show Customize dialog -
hasCustomize
protected boolean hasCustomize()Has Customize dialog (default false). Override this andcustomize()method to add customize dialog support.- Returns:
- true if it has customize (default false)
-
hasZoom
protected boolean hasZoom()Has Zoom support (default false)- Returns:
- true if it has zoom support (default false)
-
hasNew
protected boolean hasNew()Support create new record (default false)- Returns:
- true if support create new record
-
saveSelectionDetail
protected void saveSelectionDetail()Save Selection Details.
This method is call when user close an info window.
By default, infoWindow will set value of all column of current selected record to environment context withEnv.TAB_INFO.
Sub class can override this method to do more. -
getAD_Window_ID
Get Zoom Window- Parameters:
tableName- table nameisSOTrx- sales trx- Returns:
- AD_Window_ID
-
onEvent
public void onEvent(org.zkoss.zk.ui.event.Event event) - Specified by:
onEventin interfaceorg.zkoss.zk.ui.event.EventListener<org.zkoss.zk.ui.event.Event>
-
onCancel
protected void onCancel()handle cancel event -
onUserQuery
public void onUserQuery()Call query when user click to query button enter in parameter field -
validateParameters
public boolean validateParameters()validate parameter before run query- Returns:
- true if parameters pass validation
-
initParameters
protected void initParameters()Call after loading of parameter panel to set initial value. Can call to reset parameters. -
updateSubcontent
protected void updateSubcontent()Update related info when selection incontentPanelchange. -
updateSubcontent
protected void updateSubcontent(int targetRow) Update related info for a specific row. If targetRow < 0, update using selected row.- Parameters:
targetRow-
-
resetParameters
protected void resetParameters()Reset parameter to default value or to empty value. -
preRunProcess
Before running of process- Parameters:
processId-
-
runProcess
Run a process.
Before start process, save id of record selected.
After run of process, show process message report result.- Parameters:
processIdObj-
-
saveResultSelection
protected void saveResultSelection(int infoColumnId) Save selected rows tom_values- Parameters:
infoColumnId- AD_InfoProcess.AD_InfoColumn_ID. Use as key column if > 0
-
createT_Selection_InfoWindow
public void createT_Selection_InfoWindow(int AD_PInstance_ID) Insert selected rows to T_Selection_InfoWindow- Parameters:
AD_PInstance_ID-
-
getInfoColumnIDFromProcess
protected int getInfoColumnIDFromProcess(int processId) Get InfoColumnID of infoProcess- Parameters:
processId-- Returns:
- AD_InfoColumn_ID, -1 if processId not in
infoProcessList
-
correctHeaderOrderIndicator
protected void correctHeaderOrderIndicator()Set sort direction indicator -
onQueryCallback
public void onQueryCallback(org.zkoss.zk.ui.event.Event event) handle echo from query event- Parameters:
event- null to indicate reset instead of echo from query event
-
bindInfoProcess
protected void bindInfoProcess()Evaluate display logic of processes. Implemented by sub class. -
onOk
protected void onOk()handle ok event -
onDoubleClick
protected void onDoubleClick()handle double click on row event -
tableChanged
Description copied from interface:WTableModelListenerNotify listeners the exact range of cells, rows, or columns that have changed.- Specified by:
tableChangedin interfaceWTableModelListener- Parameters:
event- table model event
-
zoom
public void zoom()zoom to record -
newRecordAction
protected void newRecordAction()Handle user click on new record button. -
addValueChangeListener
- Parameters:
listener-
-
fireValueChange
Fire ValueChangeEvent event.- Parameters:
event-
-
dispose
public void dispose(boolean ok) Dispose and save Selection- Parameters:
ok- true if OK pressed
-
sort
- Specified by:
sortin interfaceorg.zkoss.zul.ext.Sortable<Object>- Parameters:
cmpr-WListItemRenderer.ColumnComparatorascending-
-
isLookup
public boolean isLookup()- Returns:
- true if this is a lookup dialog
-
scrollToSelectedRow
public void scrollToSelectedRow()scroll selected row into view (i.e make sure it is visible) -
getSortDirection
- Specified by:
getSortDirectionin interfaceorg.zkoss.zul.ext.Sortable<Object>
-
getWindowNo
public int getWindowNo()- Returns:
- window no
-
getRowCount
public int getRowCount()- Returns:
- row count
-
getFirstRowKey
- Returns:
- first row key/id
-
getRowKeyAt
- Parameters:
row-- Returns:
- row key/id
-
getCacheStart
protected int getCacheStart()- Returns:
- the cacheStart
-
getCacheEnd
protected int getCacheEnd()- Returns:
- the cacheEnd
-
isUseDatabasePaging
protected boolean isUseDatabasePaging()- Returns:
- true if using database paging feature
-
onPageAttached
public void onPageAttached(org.zkoss.zk.ui.Page newpage, org.zkoss.zk.ui.Page oldpage) - Specified by:
onPageAttachedin interfaceorg.zkoss.zk.ui.sys.ComponentCtrl- Overrides:
onPageAttachedin classorg.zkoss.zk.ui.AbstractComponent
-
onPageDetached
public void onPageDetached(org.zkoss.zk.ui.Page page) - Specified by:
onPageDetachedin interfaceorg.zkoss.zk.ui.sys.ComponentCtrl- Overrides:
onPageDetachedin classWindow
-
getGridfield
field call this info panel as search editor null in case info window open in stand-alone window (from menu, fav,...)- Returns:
GridField
-
setGridfield
- Parameters:
m_gridfield-
-
getPageSize
public int getPageSize()- Returns:
- page size (number of rows per page)
-
isCloseAfterExecutionOfProcess
public boolean isCloseAfterExecutionOfProcess()- Returns:
- true if dialog should auto close after successful execution of process
-
setCloseAfterExecutionOfProcess
public void setCloseAfterExecutionOfProcess(boolean closeAfterExecutionOfProcess) Set whether dialog should auto close after successful execution of process- Parameters:
closeAfterExecutionOfProcess-
-
setMultipleSelection
public void setMultipleSelection(boolean multipleSelection) - Parameters:
multipleSelection-
-
getStatusLinesWidget
Widget support Depending on Window/Tab returns widget lines info- Returns:
- info
-
updateRowSelectionOrder
protected void updateRowSelectionOrder()Update row selection order -
updateContext
protected void updateContext(boolean checkQueryCriteria) Put values from the selected row into the context -
setContext
Set context- Parameters:
columnName-value-
-
getSelectedIDsForCtx
Get a comma-separated string of selected IDs- Returns:
- String ctx value
-
getLastSelectedRow
Get last selected row- Returns:
- List
-