Class GridTab

java.lang.Object
org.compiere.model.GridTab
All Implemented Interfaces:
Serializable, EventListener, DataStatusListener, Evaluatee

public class GridTab extends Object implements DataStatusListener, Evaluatee, Serializable
Tab Model. - a combination of AD_Tab (the display attributes) and AD_Table information.

The Tab owns also it's Table model and listens to data changes to update the Field values.

The Tab maintains the bound property: CurrentRow

  Event Hierarchies:
      - dataChanged (from GridTable)
          - setCurrentRow
              - Update all Field Values

      - setValue
          - Update Field Value
          - Callout
  
Version:
$Id: GridTab.java,v 1.10 2006/10/02 05:18:39 jjanke Exp $
Author:
Jorg Janke, Teo Sarca, SC ARHIPAC SERVICE SRL
  • BF [ 1742159 ] Editable number field for inactive record
  • BF [ 1968598 ] Callout is not called if tab is processed
  • BF [ 2104022 ] GridTab.processCallout: throws NPE if callout returns null
  • FR [ 2846871 ] Add method org.compiere.model.GridTab.getIncludedTabs https://sourceforge.net/p/adempiere/feature-requests/805/, Teo Sarca, teo.sarca@gmail.com
  • BF [ 2873323 ] ABP: Do not concatenate strings in SQL queries https://sourceforge.net/p/adempiere/feature-requests/845/
  • BF [ 2874109 ] Tab ORDER BY clause is not supporting context variables https://sourceforge.net/p/adempiere/bugs/2162/
  • BF [ 2905287 ] GridTab query is not build correctly https://sourceforge.net/p/adempiere/bugs/2242/
  • BF [ 3007342 ] Included tab context conflict issue https://sourceforge.net/p/adempiere/bugs/2409/, Victor Perez , e-Evolution.SC
  • FR [1877902] Implement JSR 223 Scripting APIs to Callout
  • BF [ 2910358 ] Error in context when a field is found in different tabs. https://sourceforge.net/p/adempiere/bugs/2255/
  • BF [ 2910368 ] Error in context when IsActive field is found in different https://sourceforge.net/p/adempiere/bugs/2256/, Carlos Ruiz, qss FR [1877902], Cristina Ghita, www.arhipac.ro FR [2870645] Set null value for an ID, Paul Bowden, phib BF 2900767 Zoom to child tab - inefficient queries
  • See Also:
    • Field Details

    • Constructor Details

      • GridTab

        public GridTab(GridTabVO vo, GridWindow w)
        Create Tab (Model) from Value Object.

        MTab provides a property listener for changed rows and a DataStatusListener for communicating changes of the underlying data

        Parameters:
        vo - Value Object
        w -
      • GridTab

        public GridTab(GridTabVO vo, GridWindow w, boolean virtual)
        Create Tab Model from Value Object.

        GridTab provides a property listener for changed rows and a DataStatusListener for communicating changes of the underlying data.

        Parameters:
        vo - Value Object
        w -
        virtual -
    • Method Details

      • isLoadComplete

        public boolean isLoadComplete()
        Returns:
        true if GridTab loaded.
      • initTab

        public boolean initTab(boolean async)
        Initialize Tab with data from AD_Tab_v
        Parameters:
        async - asynchronous
        Returns:
        true, if correctly initialized (ignored)
      • loadTab

        protected boolean loadTab()
        Returns:
        true if loaded
      • dispose

        protected void dispose()
        Dispose - clean up resources
      • getDependentOn

        public ArrayList<String> getDependentOn()
        Get a list of variables that this tab is dependent on:
        - for display logic
        Returns:
        ArrayList
      • getDisplayLogic

        public String getDisplayLogic()
        Get Display Logic
        Returns:
        display logic
      • getTableModel

        public GridTable getTableModel()
        Get TableModel. Do not directly communicate with the table model, but through the methods of this class.
        Returns:
        Table Model
      • getIcon

        public Icon getIcon()
        Get Tab Icon
        Returns:
        Icon
      • hasDependants

        public boolean hasDependants(String columnName)
        Has this field dependents ?
        Parameters:
        columnName - column name
        Returns:
        true if column has dependent
      • getDependantFields

        public ArrayList<GridField> getDependantFields(String columnName)
        Get dependents fields of columnName
        Parameters:
        columnName - column name
        Returns:
        ArrayList with GridFields dependent on columnName
      • setQuery

        public void setQuery(MQuery query)
        Set Query
        Parameters:
        query - query
      • getQuery

        public MQuery getQuery()
        Get Query
        Returns:
        query
      • isQueryActive

        public boolean isQueryActive()
        Is Query Active
        Returns:
        true if query active
      • isQueryNewRecord

        public boolean isQueryNewRecord()
        Is Query New Record
        Returns:
        true if query is to create new record
      • enableEvents

        public void enableEvents()
        Enable Events - listen to events from GridTable.
      • getTabType

        public String getTabType()
        get Tab Type
        Returns:
        String
      • query

        public void query(boolean onlyCurrentRows)
        Assemble whereClause and query GridTable and position to row 0.
                        Scenarios:
                        - Never opened                  (full query)
                        - query changed                 (full query)
                        - Detail link value changed     (full query)
                        - otherwise                     (refreshAll)
          
        Parameters:
        onlyCurrentRows - only current rows (1 day)
      • query

        public void query(boolean onlyCurrentRows, int onlyCurrentDays, int maxRows)
        Assemble whereClause and query GridTable and position to row 0.
                        Scenarios:
                        - Never opened                  (full query)
                        - query changed                 (full query)
                        - Detail link value changed     (full query)
                        - otherwise                     (refreshAll)
          
        Parameters:
        onlyCurrentRows - only current rows
        onlyCurrentDays - if only current row, how many days back
        maxRows - maximum rows or 0 for all
      • resetDetailForNewParentRecord

        public void resetDetailForNewParentRecord()
        Reset detail GridTab when parent tab current record is new and not saved yet
      • dataRefreshAll

        public void dataRefreshAll()
        Refresh all data
      • dataRefreshAll

        public void dataRefreshAll(boolean fireEvent)
        Refresh all data
        Parameters:
        fireEvent -
      • dataRefreshAll

        public void dataRefreshAll(boolean fireEvent, boolean retainedCurrentRow)
        Refresh all data
        Parameters:
        fireEvent -
        retainedCurrentRow -
      • dataRefresh

        public void dataRefresh()
        Refresh current row data
      • dataRefresh

        public void dataRefresh(boolean fireEvent)
        Refresh current row data
        Parameters:
        fireEvent -
      • dataRefresh

        public void dataRefresh(int row)
        Refresh row data
        Parameters:
        row - index
      • dataRefresh

        public void dataRefresh(int row, boolean fireEvent)
        Refresh row data
        Parameters:
        row - index
        fireEvent -
      • dataSave

        public boolean dataSave(boolean manualCmd)
        Save data
        Parameters:
        manualCmd - if true, no vetoable PropertyChange event will be fired for save confirmation from GridTable
        Returns:
        true if save complete (or not required)
      • isNeedSaveAndMandatoryFill

        public boolean isNeedSaveAndMandatoryFill()
        Returns:
        true if need save and all mandatory field has value
      • hasChangedCurrentTabAndParents

        public boolean hasChangedCurrentTabAndParents()
        Validate if current tab or parent tab record has changed in database
        Returns:
        true if if there are changes
      • refreshParentTabs

        public void refreshParentTabs()
        refresh current row of parent tabs
      • refreshParentTabs

        public void refreshParentTabs(boolean fireParentEvent)
        refresh current row of parent tabs
        Parameters:
        fireParentEvent -
      • needSave

        public boolean needSave(boolean rowChange, boolean onlyRealChange)
        Do we need to Save?
        Parameters:
        rowChange - row change
        onlyRealChange - if true the value of a field was actually changed (e.g. for new records, which have not been changed) - default false
        Returns:
        true it needs to be saved
      • dataIgnore

        public void dataIgnore()
        Ignore/undo data changes
      • dataNew

        public boolean dataNew(boolean copy)
        Create (copy) new Row and process Callouts.
        Parameters:
        copy - copy
        Returns:
        true if copied/new
      • dataDelete

        public boolean dataDelete()
        Delete current Row
        Returns:
        true if deleted
      • getName

        public String getName()
        Get Name of Tab
        Returns:
        name
      • getDescription

        public String getDescription()
        Get Description of Tab
        Returns:
        description
      • getHelp

        public String getHelp()
        Get Help of Tab
        Returns:
        help
      • getTabLevel

        public int getTabLevel()
        Get Tab Level
        Returns:
        tab level
      • getCommitWarning

        public String getCommitWarning()
        Get commit/save Warning
        Returns:
        commit/save warning
      • getMTable

        protected GridTable getMTable()
        Return Table Model
        Returns:
        GridTable
      • getKeyColumnName

        public String getKeyColumnName()
        Return the name of the key column - may be ""
        Returns:
        key column name
      • getKeyColumnIndex

        public int getKeyColumnIndex()
        Returns:
        key column index
      • getLinkColumnName

        public String getLinkColumnName()
        Returns:
        link column name
      • setLinkColumnName

        public void setLinkColumnName(String linkColumnName)
        Set Name of link column. Set from GridWindow.loadTabData.
        Parameters:
        linkColumnName - name of column - or sets name to AD_Column_ID, if exists
      • isCurrent

        public boolean isCurrent()
        Is the tab current?
                Yes     - Table must be open
                        - Query String is the same
                        - Not Detail Tab
                        - Old link column value is same as current one
          
        Returns:
        true if current
      • isOpen

        public boolean isOpen()
        Is the tab/table currently open
        Returns:
        true if open
      • isIncluded

        @Deprecated public boolean isIncluded()
        Deprecated.
        Is Tab Included in other Tab
        Returns:
        true if included
      • setIncluded

        @Deprecated public void setIncluded(boolean isIncluded)
        Deprecated.
        The method getIncluded now validate against the structure, this method is called nowhere
        Is Tab Included in other Tab
        Parameters:
        isIncluded - true if included
      • isOnlyCurrentRows

        public boolean isOnlyCurrentRows()
        Are Only Current Rows displayed
        Returns:
        true if no history
      • getParentColumnNames

        public ArrayList<String> getParentColumnNames()
        Return Parent ArrayList
        Returns:
        parent column names
      • isDetail

        public boolean isDetail()
        Returns true if this is a detail tab
        Returns:
        true if not parent tab
      • isPrinted

        public boolean isPrinted()
        Is Printed (Document can be printed)
        Returns:
        true if printing
      • getWindowNo

        public int getWindowNo()
        Get WindowNo
        Returns:
        window no
      • getTabNo

        public int getTabNo()
        Get TabNo
        Returns:
        tab no
      • getAD_Process_ID

        public int getAD_Process_ID()
        Get Process ID
        Returns:
        AD_Process_ID
      • isHighVolume

        public boolean isHighVolume()
        Is High Volume?
        Returns:
        true if high volume table
      • IsLookupOnlySelection

        public boolean IsLookupOnlySelection()
        Is Lookup Only By Selection Fields?
        Returns:
        true if only selection
      • IsAllowAdvancedLookup

        public boolean IsAllowAdvancedLookup()
        Is Allow Advanced Lookup panel?
        Returns:
        true if allow the use
      • isReadOnly

        public boolean isReadOnly()
        Is Read Only?
        Returns:
        true if read only
      • isAlwaysUpdateField

        public boolean isAlwaysUpdateField()
        Tab contains Always Update Field
        Returns:
        true if has field that is always updatable
      • isInsertRecord

        public boolean isInsertRecord()
        Can we Insert Records?
        Returns:
        true if can insert new record
      • isDeleteRecord

        public boolean isDeleteRecord()
        Can we Delete Records?
        Returns:
        true if can delete existing record
      • isDisplayed

        public boolean isDisplayed()
        Is the Tab Visible.
        Returns:
        true, if displayed
      • get_ValueAsString

        public String get_ValueAsString(String variableName)
        Get Variable Value (Evaluatee) as string
        Specified by:
        get_ValueAsString in interface Evaluatee
        Parameters:
        variableName - name
        Returns:
        value as string
      • get_ValueAsString

        public String get_ValueAsString(Properties ctx, String variableName)
        Get Variable Value (Evaluatee) as string
        Parameters:
        ctx - context
        variableName - name
        Returns:
        value as string
      • isSingleRow

        public boolean isSingleRow()
        Is Single Row
        Returns:
        true if default to single row (i.e form presentation)
      • setSingleRow

        public void setSingleRow(boolean isSingleRow)
        Set Single Row (form presentation) Temporary store of current value
        Parameters:
        isSingleRow - toggle
      • isTreeTab

        public boolean isTreeTab()
        Has Tree
        Returns:
        true if tree exists
      • getTreeDisplayedOn

        public String getTreeDisplayedOn()
        Where the tree should be shown
        Returns:
        master, detail or both
      • getAD_Tab_ID

        public int getAD_Tab_ID()
        Get Tab ID
        Returns:
        AD_Tab_ID
      • getAD_Table_ID

        public int getAD_Table_ID()
        Get Table ID
        Returns:
        AD_Table_ID
      • getAD_Window_ID

        public int getAD_Window_ID()
        Get Window ID
        Returns:
        AD_Window_ID
      • getIncluded_Tab_ID

        @Deprecated public int getIncluded_Tab_ID()
        Deprecated.
        the functionality related to AD_Tab.Included_Tab_ID is deprecated
        Get Included Tab ID
        Returns:
        Included_Tab_ID
      • getTableName

        public String getTableName()
        Get TableName
        Returns:
        Table Name
      • getWhereClause

        public String getWhereClause()
        Get Tab Where Clause
        Returns:
        where clause
      • isSortTab

        public boolean isSortTab()
        Is Sort Tab
        Returns:
        true if this is sort tab
      • getAD_ColumnSortOrder_ID

        public int getAD_ColumnSortOrder_ID()
        Get Order column for sort tab
        Returns:
        AD_Column_ID for sorting
      • getAD_ColumnSortYesNo_ID

        public int getAD_ColumnSortYesNo_ID()
        Get Yes/No column for sort tab
        Returns:
        AD_Column_ID for yes/no flag
      • getWhereExtended

        public String getWhereExtended()
        Get extended Where Clause (parent link)
        Returns:
        parent link
      • getTrxInfo

        public String getTrxInfo()
        Deprecated.
        use getStatusLine and configure Status Line instead
        Transaction support. Depending on Table returns transaction info
        Returns:
        info
      • getStatusLine

        public String getStatusLine()
        Returns:
        status line text
      • getStatusLinesWidget

        public String getStatusLinesWidget()
        Get status line for this tab
        Returns:
        status line text
      • canHaveAttachment

        public boolean canHaveAttachment()
        Can this tab have Attachments?.

        A tab can have attachment if it has single key column ending with _ID or _UU.

        Returns:
        true if record can have attachment
      • hasAttachment

        public boolean hasAttachment()
        Returns true, if current row has an Attachment
        Returns:
        true if record has attachment
      • getAD_AttachmentID

        public int getAD_AttachmentID()
        Get Attachment_ID for current record.
        Returns:
        AD_AttachmentID or 0 if no attachment.
      • hasChat

        public boolean hasChat()
        Returns true, if current row has chat records.
        Returns:
        true if current row has chat records.
      • getCM_ChatID

        public int getCM_ChatID()
        Get Chat_ID for this record.
        Returns:
        CM_Chat_ID or 0 if no chat records
      • hasPostIt

        public boolean hasPostIt()
        Returns:
        true if current row has post it note records.
      • getAD_PostIt_ID

        public int getAD_PostIt_ID()
        Get PostItID for this record.
        Returns:
        AD_PostIt_ID or 0 if no post it note records.
      • hasLabel

        public boolean hasLabel()
        Returns:
        true if current row has Label records.
      • hasTemplate

        public boolean hasTemplate()
        Returns:
        true if this has import templates
      • loadLocks

        public void loadLocks()
        Load Record Locks for Table and User
      • isLocked

        public boolean isLocked()
        Returns:
        true if record is locked
      • lock

        public void lock(Properties ctx, int Record_ID, boolean lock)
        Lock or unlock Record
        Parameters:
        ctx - context
        Record_ID - id
        lock - true to lock, false to unlock
      • dataStatusChanged

        public void dataStatusChanged(DataStatusEvent e)
          Data Status event from GridTable.
          - get raw info and add current row information
          - update current row
          - redistribute (fire) Data Status event
          
        Specified by:
        dataStatusChanged in interface DataStatusListener
        Parameters:
        e - event
      • updateDataStatusEventProperties

        public void updateDataStatusEventProperties(DataStatusEvent e)
        Update DataStatusEvent properties from gridTab
        Parameters:
        e -
      • fireDataStatusEEvent

        public void fireDataStatusEEvent(String AD_Message, String info, boolean isError)
        Create and fire Data Status Error Event
        Parameters:
        AD_Message - message
        info - info
        isError - true for Error, false for Warning
      • fireDataStatusEEvent

        public void fireDataStatusEEvent(ValueNamePair errorLog)
        Create and fire Data Status Error Event (from Error Log)
        Parameters:
        errorLog - log
      • getCurrentRow

        public int getCurrentRow()
        Get Current Row
        Returns:
        current row index
      • getRecord_ID

        public int getRecord_ID()
        Returns:
        Key id of current row (for e.g C_Order_ID value)
      • getRecord_UU

        public String getRecord_UU()
        Get Current Table UUID
        Returns:
        UUID value of current row (for e.g C_Order_UU value)
      • getKeyID

        public int getKeyID(int row)
        Get Key ID of row
        Parameters:
        row - row number
        Returns:
        The Key ID of the row or -1 if not found
      • getKeyUUID

        public String getKeyUUID(int row)
        Get Key UUID of row
        Parameters:
        row - row number
        Returns:
        The Key UUID of the row or -1 if not found
      • setCurrentRow

        public int setCurrentRow(int newCurrentRow, boolean fireEvents)
        Set current row and load data into fields. If there is no row - load nulls.
        Parameters:
        newCurrentRow - new current row
        fireEvents - fire events
        Returns:
        current row index
      • setCurrentRow

        public void setCurrentRow(int row)
        Set current row - used for deleteSelection
        Parameters:
        row -
      • getRowCount

        public int getRowCount()
        Get RowCount
        Returns:
        row count
      • getFieldCount

        public int getFieldCount()
        Get Column/Field Count
        Returns:
        field count
      • getField

        public GridField getField(int index)
        Get Field by index
        Parameters:
        index - field index
        Returns:
        GridField
      • getField

        public GridField getField(String columnName)
        Get Field by DB column name
        Parameters:
        columnName - column name
        Returns:
        GridField
      • getFields

        public GridField[] getFields()
        Get all Fields
        Returns:
        GridFields
      • setValue

        public String setValue(String columnName, Object value)
        Set New Value and call Callout
        Parameters:
        columnName - database column name
        value - value
        Returns:
        error message or ""
      • setValue

        public String setValue(GridField field, Object value)
        Set New Value and call Callout
        Parameters:
        field - field
        value - value
        Returns:
        error message or ""
      • isProcessed

        public boolean isProcessed()
        Is Processed
        Returns:
        true if current record is processed
      • isActive

        public boolean isActive()
        Is the current record active
        Returns:
        true if current record is active author Teo Sarca - BF [ 1742159 ]
      • processFieldChange

        public String processFieldChange(GridField changedField)
        Process Field Change - evaluate Dependencies and process Callouts.

        Usually called from UI side data status change listener.

        Parameters:
        changedField - changed field
        Returns:
        error message or ""
      • getActiveCallouts

        public String[] getActiveCallouts()
        Returns:
        list of active call out for this tab
      • getActiveCalloutInstance

        public Callout[] getActiveCalloutInstance()
        Returns:
        list of active call out instance for this tab
      • processCallout

        public String processCallout(GridField field)
        Process Callout(s).

        The traditional column callout is in the format of "class.method;class.method;".
        The class needs to comply with the Interface Callout.

        Newer callout implement the IColumnCallout interface and discover via IColumnCalloutFactory service.

        Parameters:
        field - field
        Returns:
        error message or ""
        See Also:
      • getValue

        public Object getValue(String columnName)
        Get Value of Field with columnName
        Parameters:
        columnName - column name
        Returns:
        value
      • getValueAsBoolean

        public boolean getValueAsBoolean(String columnName)
        Get Boolean Value of Field with columnName.
        If there is no column with the given name, the context for current window will be checked.
        Parameters:
        columnName - column name
        Returns:
        boolean value or false if the field was not found author Teo Sarca
      • getValue

        public Object getValue(GridField field)
        Get Value of Field
        Parameters:
        field - field
        Returns:
        value
      • getValue

        public Object getValue(int row, String columnName)
        Get Value of Field for a row.
        Parameters:
        row - row index
        columnName - column name
        Returns:
        value
      • toString

        public String toString()
        toString
        Overrides:
        toString in class Object
        Returns:
        String representation
      • removePropertyChangeListener

        public void removePropertyChangeListener(PropertyChangeListener l)
        Parameters:
        l - listener
      • addPropertyChangeListener

        public void addPropertyChangeListener(PropertyChangeListener l)
        Parameters:
        l - listener
      • removeDataStatusListener

        public void removeDataStatusListener(DataStatusListener l)
        Parameters:
        l - listener
      • addDataStatusListener

        public void addDataStatusListener(DataStatusListener l)
        Parameters:
        l - listener
      • addStateChangeListener

        public void addStateChangeListener(StateChangeListener l)
        Parameters:
        l -
      • removeStateChangeListener

        public void removeStateChangeListener(StateChangeListener l)
        Parameters:
        l -
      • setFieldVFormat

        public void setFieldVFormat(String identifier, String strNewFormat)
        Feature Request [1707462] Enable runtime change of VFormat
        Parameters:
        identifier - column name
        strNewFormat - new input mask author fer_luck
      • switchRows

        public void switchRows(int from, int to, int sortColumn, boolean ascending)
        Switches the line/seqNo of the two rows
        Parameters:
        from - row index
        to - row index
        sortColumn - column index of sort column
        ascending - sorting modus
      • getIncludedTabs

        public List<GridTab> getIncludedTabs()
        Returns:
        list of all tabs included in this tab
      • getParentTab

        public GridTab getParentTab()
        Returns:
        parent GridTab
      • getNumColumns

        public int getNumColumns()
        Returns:
        number of columns in form presentation
      • isNew

        public boolean isNew()
        Returns:
        true if current row is a new record row
      • getAD_Tab_UU

        public String getAD_Tab_UU()
        Returns:
        AD_Tab_UU
      • getAD_Process_UU

        public String getAD_Process_UU()
        Returns:
        AD_Process_UU
      • isUpdateWindowContext

        public boolean isUpdateWindowContext()
        Returns:
        true if tab will update window context
      • setUpdateWindowContext

        public void setUpdateWindowContext(boolean updateWindowContext)
        Parameters:
        updateWindowContext -
      • addToSelection

        public void addToSelection(int rowIndex)
        Add row index to selection
        Parameters:
        rowIndex -
      • removeFromSelection

        public boolean removeFromSelection(int rowIndex)
        Remove row index from selection
        Parameters:
        rowIndex -
        Returns:
        true if rowIndex is found and remove
      • getSelection

        public int[] getSelection()
        Returns:
        selected indexes
      • isSelected

        public boolean isSelected(int rowIndex)
        Parameters:
        rowIndex -
        Returns:
        true if rowIndex is in current selection
      • clearSelection

        public void clearSelection()
        clear row selection
      • isQuickForm

        public boolean isQuickForm()
        Returns:
        true if tab is in quick form
      • setQuickForm

        public void setQuickForm(boolean isQuickForm)
        Parameters:
        isQuickForm -
      • getGridWindow

        public GridWindow getGridWindow()
        Returns:
        GridWindow
      • getVO

        public GridTabVO getVO()
        Returns:
        GridTabVO
      • getCalloutUI

        public ICalloutUI getCalloutUI()
        Returns:
        ICalloutUI
      • setCalloutUI

        public void setCalloutUI(ICalloutUI calloutUI)
        Parameters:
        calloutUI -
      • getDeleteConfirmationLogic

        public String getDeleteConfirmationLogic()
        Get Delete Confirmation Logic
        Returns:
        Delete Confirmation Logic
      • setDeleteConfirmationLogic

        public void setDeleteConfirmationLogic(String deleteConfirmationLogic)
        Set Delete Confirmation Logic
        Parameters:
        deleteConfirmationLogic -
      • getMaxQueryRecords

        public int getMaxQueryRecords()
        Get Max Query Records.
        If defined, you cannot query more records as defined - the query criteria needs to be changed to query less records.
        Returns:
        Max Query Records
      • isQueryRequire

        public boolean isQueryRequire(int noRecords)
        Require Query
        Parameters:
        noRecords - records
        Returns:
        true if query is required
      • isQueryMax

        public boolean isQueryMax(int noRecords)
        Over max Query
        Parameters:
        noRecords - records
        Returns:
        true if over max query records
      • reset

        public void reset()
        reset to empty