<t:DataTable>

AWTDataTable provides an Ariba branded, paginated, sortable, user-configurable table.

The content of the table is processed unconventionally, somewhat like TabSet. E.g.:

<t:DataTable list="$myList" displayGroup="$displayGroup"
            multiSelect="$true" batchSize="10">
    <t:Column key="Department" label="Big D!" action="$goto.Home"/>
    <t:Column label="Category">
        $displayGroup.currentItem.Category
    </t:Column>
    <t:Column key="Amount" formatter="$formatters.money" align="right"/>
    <t:Column key="Year" formatter="$formatters.shortDate" align="right"/>
    <t:Column label="Actions">
        <w:TextButton action="$null">Inspect</w:TextButton>
    </t:Column>
    <t:ButtonArea>
        <w:TextButton action="$null">Delete</w:TextButton>
        <w:TextButton action="$null">Edit</w:TextButton>
    </t:ButtonArea>
</t:DataTable>

AWTColumn, AWTButtonArea, and AWTRowDetail are special "column types" that can appear in the body of the table tag. Other tags (e.g. AWConditional, ...) appearing in the top level of the content are not supported (although they may appear in the body of a Column, ButtonArea, etc.

See Also: AWTDisplayGroup, AWXOutlineControl, AWTOptionsMenuButton, AWTScrollTableWrapper

Scrolling / Pagination:

Scrolling is used if all the following are true:

When scrolling is enabled:

When scrolling is not enabled (Netscape, Accessibility, etc):

Bindings
list

The list (Vector, Java Array, ...) to be rendered in the table. This can change after initialization (in response to a deletion, etc) and the table will attempt to detect it and setObjectArray() on the display group.

Not necessary if a initialized display group is already bound.

AWOrderedList
(get)
displayGroup

AWTDisplayGroup is the controller that maintains much of the state associated with the DataTable, including sorting, batching (pagination), selection, ...

If displayGroup is null or not bound upon initialization, one will be created (and pushed).

AWTDisplayGroup
(either)
showOptionsMenu

Whether the table should provide an "Options" popup menu to support show/hide of columns, grouping, and Excel export.

boolean
(get)
showBatchNavigation

Whether the table should display the batch navigation control. Should only be set to false if the container of the AWTDataTable is going to provide a batch navigation bar in an alternate location.

boolean
(get)
singleSelect

Indicates whether the table should have a radio button selection row (which is bound to displayGroup.selectedObject).

boolean
(get)
multiSelect

Indicates whether the table should have a checkbox selection row (which is bound to displayGroup.selection).

boolean
(get)
showSelectionColumn

Indicates whether the table should display the radio button column or the checkbox selection column enabled via the singleSelect/multiSelect binding. If showSelectionColumn is $false, singleSelect/multiSelect behavior will continue to handle user selection (row click), row highlighting, and updating of displayGroup.selectedObject / displayGroup.selection but the actual radio button / checkbox column will be hidden.

boolean
(get)
showSelectionControl

Determines whether the current row should have a selection control. This differs from disableRowSelection in that the control is not rendered at all (as opposed to being rendered but disabled).

boolean
(get)
disableRowSelection

Indicates whether the table should allow row selection through row click which is enabled via singleSelect/multiSelect binding. If disableRowSection is $true, singleSelect/multiSelect behavior will continue to handle row highlighting, show selection column via displayGroup.selectedObject / displayGroup.selection but row click will be disabled. To hide the radio button/checkbox column, use binding showSelectionColumn

boolean
(get)
submitOnSelectionChange

Indicates whether a change in the selection (i.e. the user clicking on a checkbox) should force immediate submission of the form. The default value for this binding is $false for multiSelect and $true for singleSelect (for backward compatibility). ie, if this binding does not exist, multiSelect does not auto-submit and singleSelect does auto-submit.

boolean
(get)
initialSortKey

Key for the initial item sort (done by AWTDisplayGroup). If omitted, and the display group does not already have a sort, then the first data column is used. Note: you can bind this to "" (empty string, not null) to force no sorting.

String
(get)
initialSortDirection

Direction for the initial sort. Default is "ascending".

String
(get)
groupByColumn

Key for an initial groupBy.

String
(get)
showGroupCounts

Determines whether the total number of items within a group is displayed next to the group heading. E.g.: "Sales (12)".

boolean
(get)
showColumnLabelWhenGrouping

Determines whether column label is rendered as prefix in group by section heading.

boolean
(get)
batchSize

Number of row per page to display in table. Default is 20. This batch size is only used if scrolling is disabled. If scrolling is enabled, then "scroll faulting" is used instead (with a fixed batch size). See also scrollBatchSize.

int
(get)
scrollBatchSize

Number of rows to set to client when using scrolling. One must be careful to set this large enough to be at least one screenful of data so that the user doesn't see fault rows upon initial display. If rows are min-height, 40 is a safe number. If, however, the app has "tall rows" (wrapping content, detail rows, sub-tables) then this can be set to significantly lower number to reduce html page size. See also batchSize.

int
(get)
item

The current item in the repetition. $displayGroup.currentItem works just as well.

Object
(set)
disableChildrenBinding

Indicates if the children binding should be used. The existence of the children binding is used as an indicator of hierarchical table display. If the component using the AWTDataTable needs to conditionalize the hierarchical display, then the disableChildrenBinding binding should be used.

boolean
(get)
children

Should return the array of child objects for the current item ($displayGroup.currentItem). If bound, the table will use AWXOutlineRepetition to render its rows -- i.e. the table will behave like a tree view. This should be used in combination with AWXOutlineControl in one of the columns.

Bind 'hasChildren' to avoid unnecessary calls to this binding.

AWOrderedList
(get)
hasChildren

Should indicate whether the current item has children (i.e. is "expandable"). If not implemented, $^children.count will be used instead. Implementing hasChildren will cause 'children' to be evaluated only if a node is actually expanded.

boolean
(get)
expandAll

See AWXOutlineRepetition -- used only in tree mode.

boolean
(get)
maxLevels

See AWXOutlineRepetition -- used only in tree mode.

int
(get)
selectionPath

See OutlineRepetition -- used only in tree mode.

AWOrderedList
(both)
expandCurrentItem

See OutlineRepetition -- used only in tree mode.

boolean
(get)
showExpansionControl

See OutlineRepetition -- used only in tree mode.

boolean
(get)
showTotalItems

Whether the batch navigation bar should show the number of items.

String
(get)
isItemSelectable

Should return whether the current item should be selectable.

boolean
(get)
csvPath

Demo feature -- path to a CSV file that will be used to initialize the item list of the table.

String
(get)
dataSource

DataSource to bind to the displayGroup

AWTDataSource
(get)
width

Passed on to the <table > width property.

String
(get)
valign

Default valign setting for all columns (i.e. 'td' tags).

String
(get)
showColumnHeader

Whether the table should display the column headers.

boolean
(get)
showVerticalTableBorder

Whether the table should display a vertical border before the first row of data and after the last row of data. If showColumnHeader == false, then this value defaults to true.

boolean
(get)
class

Override the CSS style used for the data table (default is "scrollTableWrapper"). CSS supports multiple class names on a single class binding, so you can override styles for inner elements of the table by putting you override wrapper class before the main class and then defining override styles for the inner classes in that scope.

Inner classes that could be overriden/augmented (see ariba.css for a complete list): th.tableHead, tr.tableBody, td.tableBody td.tableHeader td.tableFooter tr.tableGroupBy td.tableGroupBy

For instance, "noBox scrollTableWrapper" will remove the box around the table, and remove the crome around the tableHeader.

A more sophisticated example: if you want to remove the background color on the grouping rows in the table, try something like this:

<style>
    .oTableWrapper tr.tableGroupBy {
        background-color:#FFFFFF;
    }
</style>

<t:DataTable class="oTableWrapper scrollTableWrapper"/>
    ...
String
(get)
rowClass

The CSS class to use for table TRs.

String
(get)
detailRowClass

The CSS class to use for table TRs for details rows. Default is to use rowClass.

String
(get)
tdClass

The default class for all TDs in the table.

String
(get)
submitForm

Determines whether the batch navigation control should submit the form upon navigation. Default is $true if there is a current form.

boolean
(get)
tableConfig

Push pull a hashtable format externalization of and customizations that the user made to the table (e.g. hidden columns, group-by, etc). tableConfig and tableConfigName cannot co-exist.

Hashtable
(both)
tableConfigName

Name used to load/save from the AWComponentConfigurationSource a hashtable format externalization of and customizations that the user made to the table (e.g. hidden columns, group-by, etc). tableConfig and tableConfigName cannot co-exist.

String
(get)
indentDetailRow

Indicates whether or not the detail row should be indented by one column. By default, this is false and the left edge of the detail row is flush with the left edge of the table.

boolean
(get)
forceColumnUpdate

This binding is an indicator to the AWTDataTable that an update has been made to its cached column information. The AWTDataTable will read this value during the renderResponse phase and if it evaluates to true, then all cached column information will be flushed and reread. In addition, the AWTDataTable will automatically reset this value to false.

NOTE: This binding is read / reset during the appendToResponse phase. This means

  1. the value passed in must be set appropriately at the beginning of renderResponse and

  2. the value passed in should not be used for any other purpose since it WILL be modified in the midst of the renderResponse phase

Using this value for any other purpose (such as an AWConditional) will cause undefined (and most likely invalid) behavior.

boolean
(both)
forceRenderRows

If true, the current rows will always be rendered regardless of whether or not the contents have changed since the last rendering.

boolean
(get)
useRefresh

Determines whether the table and each of its rows are RefreshRegions (allowing incremental refresh when items are added/removed/edited). This is not necessary for tables that are read-only (e.g. search results).

boolean
(get)
enableScrolling

Determines whether the table adds scrollbars for content that won't fit within browser window.

boolean
(get)
useParentLayout

If $true, the table will supress output of table tag, and headings. For this to make sense, this table should be in the body of an (AWTDetailRow nestedTableLayout="$true") tag, and should have a column list that aligns with its parent (i.e. same number of TDs).

boolean
(get)
title

If provided, this will go in the heading area of the table. Note: AWTHeadingArea takes precedence (i.e. an AWTHeadingArea is provided, then the title is not shown).

String
(get)
dragAction

Method to be invoked when a row in the AWTDataTable is dragged and dropped on a valid AWDropContainer (may be a row in an AWTDataTable). The dragAction is a pseudo-action, which should be used to setup any state required by the drop action.

For example when a row A is dropped on a drop container B, the dragAction for row A is invoked. At this point, the dragAction for A should store some state which will be accessible to the dropAction of B (for example, the requestContext.dict() or in some cross component data structure -- parent component, global data, etc.)

NOTE: This action is guaranteed to be invoked before the drop action is invoked on a AWDropContainer. This pseudo-action is invoked prior to the real action (drop action) so it should not change any object state which will affect the invokeActionForRequest() phase.

General AWTDataTable drag/drop usage:

If a dragType is available, then is used. If no dragType is defined, but a reorderAction exists, then the id of the AWTDataTable is used as the dragType (allowing drap/drop only within the current AWTDataTable).

If a dropType(s) binding is defined, then these values are used as the valid dropTypes for the AWTDataTable. If no dropType(s) are defined and a reorderAction exists, then the dragType is used as the dropType.

If dropType(s) is defined in conjunction with a reorderAction binding, then the dragType should be explicitly defined in order to allow drag/drop within the AWTDataTable.

void
(get)
dropAction

(see dragAction above for usage scenarios)

AWResponseGenerating
(get)
reorderAction

Convenience binding to enable reordering of rows in an AWTDataTable. If a dropAction is bound, then this binding not invoked. Should only be used on a non-hierarchichal, non-sorted table. (see dragAction above for usage scenarios)

AWResponseGenerating
(get)
dragType

Drag/Drop type of objects contained in the AWTDataTable. This value is used to determine which drop containers are valid drop locations for when a drag gesture is initiated on a row of the AWTDataTable. (see dragAction above for usage scenarios)

String
(get)
dropType

Drag/Drop type of objects allowed to be dropped in the AWTDataTable. This value is used to determine whether or not a draggable element can be dropped on the AWTDataTable. (see dragAction above for usage scenarios)

String
(get)
dropTypes

This binding allows a list of valid Drag/Drop types to be defined for an AWTDataTable allowing multiple types of draggable objects to be dropped on the AWTDataTable.

The type is either a List or a comma delimited String. (see dragAction above for usage scenarios)

List or String
(get)
isDragDropEnabled

Conditionalizes drag/drop behavior of this table. If this binding is set to $false, then drag/drop is disabled for this AWTDataTable.

boolean
(get)
minHeight

Minimum size of a scrolling table. Default is 100 (px).

int
(get)
maxHeight

Maxnimum size of a scrolling table in pixels.

int
(get)
scrollFaultAction AWResponseGenerating
(get)
showSelectAll

The flag to hide the select all checkbox when there is a multi-selection column.

boolean
(get)
groupId

Obsolete. Vertical table stacks are grouped based on appearing under a common div with class="flexContainer" and a parent TD. This structure is already applied by default in the page wrapper for the TOC and Body.

String
(get)
awname

The semantic key to use for UI testing tools.

String
(get)
emptyTableMessage

If provided, this will go in the body area of the table when there are no items. If this value is not provided the default "No items" string is used.

String
(get)
pivotLayout

Pivot mode? Must trip forceColumnUpdate to trigger update if this value is changed.

boolean
(get)
columnFields

List of keys for Columns to group on the column edge

List
(get)
rowFields

List of keys for "Columns" to render values as detail on the leaf of the row edge

List
(get)
columnAttributes

List of keys for Columns to use to render values on the leaf of the column edge.

List
(get)
overrideAttribute

Column to use for current item in place of this all other columnAttribute columns for this item. E.g. if you had Price & Quantity fields on the columns, but for this object wanted to show "Answer" then this column would be used in place of both Price and Quantity (the others would be considered blank).

String
(get)
filteredColumnAttributes

List of subset of attributeColumns to render for currentItem's set of columnField values. (Example: table should display ExtendedPrice only for "My Bid" and not for other suppliers' bids). Implementor should get AWTDataTable.currentInstance(this).pivotState().columnAttributes() and filter the list based on displayGroup.currentItem().

Be careful only to elide columns that you understand (e.g. don't filter out the selection column unless you really want to).

List
(get)
shouldCollapseColumnLevel

Called when a columnField (or ColumnAttribute list) has only zero or one members and therefore could potentially be suppressed from rendering, thereby saving vertical space.

Implementor should get AWTDataTable.currentInstance(this).pivotState().collapseCheckColumnKey() and AWTDataTable.currentInstance(this).pivotState().collapseCheckMemberCount() to get context for determing whether to collapse.

Default is: For ColumnAttribute do collapse single attribute For ColumnField level, collapse if 0 but not if one

boolean
(get)
showRowAttributes

Whether to display remaining non-Column attributes (visible columns) as detail rows

boolean
(get)
useRowDetailExpansionControl

If showRowAttributes (above) is true, setting useRowDetailExpansionControl to true will initially hide detail rows and will render an expand / collapse control to conditionally display them.

This setting is evaluated on a per (parent) row basis, so the app may, for example, set this to false and always display details for "questions" while setting it to true and initially hiding detail for "items"

boolean
(get)
rowDetailInitialExpansion

Should pre-expand? 0: no, 1: first, 2:last

int
(get)
rowDetailAutoCollapse

Should auto collapse last when opening next?

boolean
(get)
showColumnAttributeLabelOnRow

Whether to display a label to the right of the value columns (after the row field columns) identifying the column attribute being rendered to its right. This can be useful if the column attribute is being varied dynamically per row (via overrideAttribute), for instance displaying "Price" on some rows and "Discount" on others.

boolean
(get)
scopeSubcomponentsByColumn

Whether stateful subcomponents in table cells should be scoped based on column identity (instead of position). In the AW default behavior (positional), the addition or removal of a column will cause a shift in the position of objects relative to the stateful components which will cause a different (and possibly incorrect) subcomponent to be used for the object.

boolean
(get)
scopeSubcomponentsByItem

Whether stateful subcomponents in table cells should be scoped based on item (in the row) object identity (instead of position). In the AW default behavior (positional), the addition or removal of a row will cause a shift in the position of objects relative to the stateful components which will cause a different (and possibly incorrect) subcomponent to be used for the object.

WARNING: Because, when enabled, item object identity is used to key subcomponent state, this mode may be a poor choice if you have a table that is constantly refreshing with new object instances (e.g. Sourcing swapping in new ItemValueProxies for the same items upon a new bid) -- the result is that the old items are retained (as keys) as well as their subcomponents, and new subcomponents are allocated. (You both lose your relevant subcomponent state -- invalidating the whole value of this feature -- and baloon your page memory usage)

boolean
(get)
tableBodyCollapsible

Whether the table body can be collapsed.

boolean
(get)
initialTableBodyExpanded

Whether the table body is initially expanded. This is ignore if rowsCollapsible="$false"

boolean
(get)

Named Content
optionsMenu

Enable override of optionsMenu without needing to build entire header area. For example, the following has an options menu with only the excel export menu items.

<t:DataTable list="$data" showOptionsMenu="$true">
   <t:Column key="key1"/>
   <t:Column key="key2"/>
   <a:Content name="optionsMenu">
       <t:OptionsMenuButton showHideColumns="$false"
                             showGroupBy="$false"
                             showOutlineExpansion="$false"
                             showExcelExport="$true"/></a:Content>
</t:DataTable>

ariba.ui.table
Class AWTDataTable

java.lang.Object
  extended by ariba.ui.aribaweb.util.AWBaseObject
      extended by ariba.ui.aribaweb.core.AWComponent
          extended by ariba.ui.table.AWTDataTable
All Implemented Interfaces:
AWCycleable, AWCycleableReference, AWResponseGenerating, AWResponseGenerating.ResponseSubstitution, AWObject

public final class AWTDataTable
extends AWComponent

DataTable widget See the AWApi section of .awl file for usage information. Important Concepts: Scroll Faulting / Pagination Grouping Filtering Sorting Display Group Details Nested Tables


Nested Class Summary
static class AWTDataTable.Column
           
static class AWTDataTable.ColumnRenderer
           
static interface AWTDataTable.CSVSourceFactory
          Silly interface to decouple us from demoshell
 class AWTDataTable.DataTableNavigationHandler
          data table assist in navigating to display item (row) with error
static interface AWTDataTable.DetailColumn
           
static class AWTDataTable.ProxyColumn
           
static class AWTDataTable.SemanticKeyProvider_Column
           
 
Nested classes/interfaces inherited from class ariba.ui.aribaweb.core.AWComponent
AWComponent.RenderingFilter, AWComponent.RenderingListener
 
Nested classes/interfaces inherited from interface ariba.ui.aribaweb.core.AWResponseGenerating
AWResponseGenerating.ResponseSubstitution
 
Constructor Summary
AWTDataTable()
           
 
Method Summary
 boolean activateDetailColumn(boolean isTop)
           
 boolean activateDetailColumnBottom()
           
 boolean activateDetailColumnTop()
           
 boolean activateSecondDetailColumn()
           
 void applyValues(AWRequestContext requestContext, AWComponent component)
          The receiver should take any form values (or query string parameters) that it owns from the AWRequestContext.request().
 java.lang.String awname()
           
 int batchEndIndex()
           
 int batchStartIndex()
           
 void beginSelectableObjectAccumulation()
           
static void clearOutlineExpansionDefault(java.util.Map tableConfig)
          Modify the tableConfig to clear the table expansion defaults -- use this method to clear the table expansion default on table configs returned by the data table.
 int colsAfterFirstDataColumn()
           
 int colsBeforeData()
           
 int colspanMinusOne()
           
 java.util.List columns()
          Lazily inits the Columns.
 java.lang.String cornerImage()
           
 AWTSortOrdering createSortOrderingForColumnKey(java.lang.String key)
           
 java.lang.String curColMinWidthStyle()
           
 int currentColumnIndex()
           
static AWTDataTable currentInstance(AWComponent component)
           
 java.lang.Object currentItem()
           
 java.lang.Object currentItemChildren()
           
 java.lang.Object currentItemElementId()
           
 boolean currentItemHasChildren()
           
 int currentRowIndex()
          Bindings (some)
 java.util.List dataColumns()
           
 AWTDataSource dataSource()
           
 void didRenderDetail()
           
 void didRenderRow()
           
 boolean disableRefresh()
           
 boolean disableRowSelection()
           
 boolean disableSelectAll()
           
 java.util.List displayedColumns()
           
 java.util.List displayedObjects()
           
 AWTDisplayGroup displayGroup()
           
 AWComponent downloadToExcelAll()
          Excel Export Support
 AWComponent downloadToExcelCurrent()
           
 void dragAction()
           
 AWResponseGenerating dropAction()
           
 java.lang.Integer dynamicColspan()
           
 java.lang.String emitColumnStyle(java.lang.String moreStyle)
           
 boolean enableScrolling()
           
 void endSelectableObjectAccumulation()
           
 boolean expandAll()
           
 boolean forceRenderRows()
          End Selection Support
 boolean getIsColumnSelected()
           
 AWTDataTable getTopLevelParentTable()
           
 AWTDataTable.Column globalButtonArea()
           
 java.lang.String globalVAlignment()
           
 AWTDataTable.Column groupByColumn()
           
 void groupByColumnClicked()
           
 java.lang.String groupByTDClass()
           
 boolean groupingByCurrentColumn()
           
 java.lang.String groupingRowIndicator()
           
 boolean hasButtons()
           
 boolean hasInvisibleSelectionColumn()
           
 boolean hasMinWidths()
           
 boolean hasOptionsMenuTemplate()
           
 boolean hasPivotHeadingRows()
           
 AWTDataTable.Column headingAreaColumn()
           
 void indentNextColumn()
           
 void invalidateColumns()
           
 AWResponseGenerating invokeAction(AWRequestContext requestContext, AWComponent component)
          The receiver should determine if it is the intended recipient of the current action (by checking the AWRequestContext.request() AWRequest.senderId()) and, if so, handle the action and return the result.
 boolean isCurrentColumnDisplayed()
          Visibility Support
 boolean isDragDropEnabled()
          End Excel Export Support
 boolean isEmpty()
           
 boolean isExportMode()
           
 boolean isGroupByAllowed()
           
 boolean isGroupingByEnabled()
          Grouping Support
 boolean isItemSelectable()
           
 boolean isSingleOrMultiSelect()
           
 boolean isStateless()
          Overridden by AWComponent subclasses to indicate whether component instances should be preserved with the page/session (i.e.
 void makeGroupingRowCurrent()
           
 void makeHeadingAreaColumnCurrent()
           
 boolean multiSelectOrSubmitForm()
           
 void noteOutlineColumnIndex()
           
 java.util.List optionalColumns()
           
static FieldPath[] pathsForColumns(AWTDataTable.Column[] columns)
           
 AWTPivotState pivotState()
           
 java.lang.String primaryDataRowIndicator()
          Okay, this topic is a doozy...
 AWTDataTable.Column purgatoryMatch(java.lang.Object key)
           
 void pushTableConfig()
           
 void registerColumn(AWTDataTable.Column c)
           
 void registerColumnManager(AWTColumnManager mgr)
          Tell the table about a column manager.
This column manager will get callbacks in the various phase methods.
 java.lang.Object renderCurrentRow()
           
 void renderResponse(AWRequestContext requestContext, AWComponent component)
          The receiver should render its content to the AWRequestContext.response()
 boolean renderToExcel()
           
 AWTDataTable.Column rightButtonArea()
           
 java.lang.String rowClass()
           
 AWResponseGenerating scrollFaultAction()
          Scroll Faulting Support
 int scrollTopIndex()
           
 AWTDataTable.Column selectionButtonArea()
           
 void setColumnVisibilities(java.util.List columnsToMakeVisible)
           
 void setColumnVisibility(AWTDataTable.Column c, boolean makeVisible)
           
static void setCSVSourceFactory(AWTDataTable.CSVSourceFactory factory)
           
 void setCurrentColumn(AWTDataTable.Column c)
           
 void setCurrentColumnIndex(int index)
           
 void setCurrentItem(java.lang.Object currentItem)
           
 void setCurrentItemElementId(java.lang.Object elementId)
           
 void setCurrentRowIndex(int index)
           
 void setDataSource(AWTDataSource dataSource)
          called by AWTCSVData tag, and the csvPath binding
 void setDetailColumn(AWTDataTable.Column c)
           
 void setExpandAll(boolean yn)
           
 void setGlobalButtonArea(AWTButtonArea c)
           
 void setHeadingAreaColumn(AWTDataTable.Column c)
           
 void setIsColumnSelected(boolean ignore)
           
 void setIteratorForTDContentCheck(AWPagedVector.AWPagedVectorIterator elements)
           
 void setOutlineAllObjects(java.util.List list)
           
 void setRightButtonArea(AWTButtonArea c)
           
 void setScrollTopIndex(int index)
           
 void setSelectionButtonArea(AWTButtonArea c)
           
static void setVisibleColumn(java.util.Map tableConfig, java.lang.String columnKey)
          Deprecated.  
 void setWrapperColumn(AWTDataTable.Column c)
           
 boolean showBatchNavRow()
           
 boolean showButtonColumns()
           
 boolean showColumnHeader()
           
 boolean showColumnLabelWhenGrouping()
           
 boolean showGlobalButtonArea()
           
 boolean showHeadingArea()
           
 boolean showNavigationBar()
           
 boolean showNavigationRowBottom()
           
 boolean showNavigationRowTop()
           
 boolean showOptionsMenu()
           
 boolean showRightButtonArea()
           
 boolean showSelectAll()
           
 boolean showSelectionButtonArea()
           
 boolean showSelectionColumn()
           
 boolean showSelectionControl()
           
 boolean showTitle()
           
 boolean skippingColumn()
           
 void skipTopLine()
           
 java.lang.String style()
           
 boolean submitOnSelectionChange()
           
 boolean submitOnSelectionChangeBindingExists()
          Begin Selection Support
 java.lang.String tableClass()
           
 int tableColumnCount()
           
 java.lang.String tdClass()
           
 java.lang.String tdClass(boolean isFirstRow)
           
 AWComponent toggleColumn()
          Toggle Select All / Select None
 AWComponent toggleCurrentColumnVisibility()
           
 void toggleNewLook()
           
 void toggleScrolling()
           
 AWComponent updateSelectAllAction()
          Gets call when all rows in the current batch are selected.
 boolean useNewLook()
           
 boolean useScrollFaulting()
           
 AWTDataTable.Column wrapperColumn()
           
 java.lang.String wrapperColumnComponentName()
           
 
Methods inherited from class ariba.ui.aribaweb.core.AWComponent
_topLevelApplyValues, _topLevelInvokeAction, _topLevelRenderResponse, allowEmbeddedKeyPaths, allowsWhitespaceCompression, application, awcyclePageAndLog, bindingForName, bindingForName, bindings, booleanValueForBinding, booleanValueForBinding, booleanValueForBinding, booleanValueForBinding, browserMaxWidth, browserMinWidth, characterEncoding, clearValidationError, clientTimeZone, componentConfiguration, componentDefinition, componentPath, componentReference, createPageWithName, defaultTemplateParser, determineInstance, determineInstance, dict, dict, dict, doubleValueForBinding, doubleValueForBinding, doubleValueForBinding, encodedStringValueForBinding, encodedStringValueForBinding, ensureAwake, ensureFieldValuesClear, env, errorManager, escapeAttribute, escapeString, escapeUnsafeString, extendedFields, formValueManager, generateResponse, generateResponse, generateResponse, generateStringContents, getAWParameter, getDrivingBusinessObject, getFoldInSituOnWindowSizeParam, getPageRenderVersion, getThis, hasBinding, hasBinding, hasContentForTagName, hasContentNamed, hasMultipleTemplates, hasSubTemplateNamed, httpSession, init, init, initTemplateResourceManager, intValueForBinding, intValueForBinding, intValueForBinding, isBidirectional, isBrowserMicrosoft, isClientPanel, isMacintosh, isRenderAW5, isStrictTagNaming, isUserCommunityEnabled, isValidationEnabled, languageDirection, languageLeft, languageRight, loadTemplate, localizedJavaString, markBacktrackState, name, namePath, notifyChange, otherBindings, otherBindingsValues, page, pageComponent, pageWithClass, pageWithClass, pageWithName, pageWithName, parent, postTakeValueActions, preferredLocale, recordBacktrackState, recordBacktrackState, recordValidationError, recordValidationError, recordValidationError, recordValidationErrors, recordValidationWarning, redirectToPage, registerRenderingListener, registerXmlNodeWithName, removeBacktrackState, replacementResponse, request, requestContext, requiresPreGlidCompatibility, resourceClassName, resourceManager, response, restoreFromBacktrackState, session, session, setCharacterEncoding, setClientPanel, setClientTimeZone, setComponentConfiguration, setDefaultTemplateParser, setEnv, setPerfDestinationInfo, setPreferredLocale, setResourceManager, setTemplateParser, setupForNextCycle, setValueForBinding, setValueForBinding, setValueForBinding, setValueForBinding, setValueForBinding, setValueForBinding, shouldCachePage, shouldCloseElements, strings, stringValueForBinding, stringValueForBinding, stringValueForBinding, supportedBindingNames, template, templateName, templateParser, templateResource, templateResourceManager, truncateBacktrackState, truncateBacktrackState, urlForResourceNamed, urlForResourceNamed, urlForResourceNamed, useXmlEscaping, valueForBinding, valueForBinding, valueForBinding, xml
 
Methods inherited from class ariba.ui.aribaweb.util.AWBaseObject
debugString, getFieldValue, isKindOfClass, localizedJavaString, logString, logWarning, setFieldValue
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface ariba.ui.aribaweb.util.AWObject
getFieldValue, isKindOfClass, setFieldValue
 

Field Detail

TotalRowsKey

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

_tableId

public AWEncodedString _tableId

IsGroupHeadingBinding

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

ColumnLabelMenuMaxSize

public static final int ColumnLabelMenuMaxSize
Maximum number of characters being displayed in the menus for the column names

See Also:
Constant Field Values

NeverEqualValue

public static final java.lang.Object NeverEqualValue

EnvKey

public static java.lang.String EnvKey

_scrollLeftPos

public int _scrollLeftPos
Only used to retain horizontal scroll across requests. Binding.


_useParentLayout

public boolean _useParentLayout

_isOutline

public boolean _isOutline

_elementIdForVisibleRow

public java.lang.Object _elementIdForVisibleRow

_currentColumn

public AWTDataTable.Column _currentColumn

_originalCurrentColumn

public AWTDataTable.Column _originalCurrentColumn

_currentRowIndex

public int _currentRowIndex

_currentColumnIndex

public int _currentColumnIndex

_isTopBar

public boolean _isTopBar

_useRefresh

public boolean _useRefresh

_isMaximized

public boolean _isMaximized

_tableBodyCollapsible

public boolean _tableBodyCollapsible

_tableBodyExpanded

public boolean _tableBodyExpanded

_headerColumnResetLatch

public boolean _headerColumnResetLatch

_bodyColumnResetLatch

public boolean _bodyColumnResetLatch

_renderingHeader

public boolean _renderingHeader

_pivotState

public AWTPivotState _pivotState
Constructor Detail

AWTDataTable

public AWTDataTable()
Method Detail

currentInstance

public static AWTDataTable currentInstance(AWComponent component)

currentRowIndex

public int currentRowIndex()
Bindings (some)


setCurrentRowIndex

public void setCurrentRowIndex(int index)

scrollTopIndex

public int scrollTopIndex()

setScrollTopIndex

public void setScrollTopIndex(int index)

isStateless

public boolean isStateless()
Description copied from class: AWComponent
Overridden by AWComponent subclasses to indicate whether component instances should be preserved with the page/session (i.e. are "stateful") or can be pooled and reused for each phase of request processing (i.e. are stateless) Default is to be stateless unless the component is used as the top-level (page) component.

Overrides:
isStateless in class AWComponent

renderResponse

public void renderResponse(AWRequestContext requestContext,
                           AWComponent component)
Description copied from interface: AWCycleable
The receiver should render its content to the AWRequestContext.response()

Specified by:
renderResponse in interface AWCycleable
Overrides:
renderResponse in class AWComponent
Parameters:
requestContext - the context for the current request.
component - the current parent component

scrollFaultAction

public AWResponseGenerating scrollFaultAction()
Scroll Faulting Support


setOutlineAllObjects

public void setOutlineAllObjects(java.util.List list)

useScrollFaulting

public boolean useScrollFaulting()

invokeAction

public AWResponseGenerating invokeAction(AWRequestContext requestContext,
                                         AWComponent component)
Description copied from interface: AWCycleable
The receiver should determine if it is the intended recipient of the current action (by checking the AWRequestContext.request() AWRequest.senderId()) and, if so, handle the action and return the result.

Specified by:
invokeAction in interface AWCycleable
Overrides:
invokeAction in class AWComponent
Parameters:
requestContext - the context for the current request.
component - the current parent component
Returns:
the response for the action

downloadToExcelAll

public AWComponent downloadToExcelAll()
Excel Export Support


downloadToExcelCurrent

public AWComponent downloadToExcelCurrent()

renderToExcel

public boolean renderToExcel()

isExportMode

public boolean isExportMode()

isDragDropEnabled

public boolean isDragDropEnabled()
End Excel Export Support


applyValues

public void applyValues(AWRequestContext requestContext,
                        AWComponent component)
Description copied from interface: AWCycleable
The receiver should take any form values (or query string parameters) that it owns from the AWRequestContext.request().

Specified by:
applyValues in interface AWCycleable
Overrides:
applyValues in class AWComponent
Parameters:
requestContext - the context for the current request.
component - the current parent component

columns

public java.util.List columns()
Lazily inits the Columns.

Returns:
a reference to a List

getTopLevelParentTable

public AWTDataTable getTopLevelParentTable()

invalidateColumns

public void invalidateColumns()

purgatoryMatch

public AWTDataTable.Column purgatoryMatch(java.lang.Object key)

setDataSource

public void setDataSource(AWTDataSource dataSource)
called by AWTCSVData tag, and the csvPath binding


dataSource

public AWTDataSource dataSource()

registerColumn

public void registerColumn(AWTDataTable.Column c)

setCurrentColumn

public void setCurrentColumn(AWTDataTable.Column c)

groupByColumn

public AWTDataTable.Column groupByColumn()

selectionButtonArea

public AWTDataTable.Column selectionButtonArea()

setSelectionButtonArea

public void setSelectionButtonArea(AWTButtonArea c)

globalButtonArea

public AWTDataTable.Column globalButtonArea()

setGlobalButtonArea

public void setGlobalButtonArea(AWTButtonArea c)

rightButtonArea

public AWTDataTable.Column rightButtonArea()

setRightButtonArea

public void setRightButtonArea(AWTButtonArea c)

headingAreaColumn

public AWTDataTable.Column headingAreaColumn()

setHeadingAreaColumn

public void setHeadingAreaColumn(AWTDataTable.Column c)

registerColumnManager

public void registerColumnManager(AWTColumnManager mgr)
Tell the table about a column manager.
This column manager will get callbacks in the various phase methods.

Parameters:
mgr - The new manager, may be null.

wrapperColumn

public AWTDataTable.Column wrapperColumn()

setWrapperColumn

public void setWrapperColumn(AWTDataTable.Column c)

wrapperColumnComponentName

public java.lang.String wrapperColumnComponentName()

activateDetailColumn

public boolean activateDetailColumn(boolean isTop)

didRenderDetail

public void didRenderDetail()

activateDetailColumnTop

public boolean activateDetailColumnTop()

activateDetailColumnBottom

public boolean activateDetailColumnBottom()

activateSecondDetailColumn

public boolean activateSecondDetailColumn()

setDetailColumn

public void setDetailColumn(AWTDataTable.Column c)

currentItem

public java.lang.Object currentItem()

setCurrentColumnIndex

public void setCurrentColumnIndex(int index)

currentColumnIndex

public int currentColumnIndex()

skippingColumn

public boolean skippingColumn()

dynamicColspan

public java.lang.Integer dynamicColspan()

noteOutlineColumnIndex

public void noteOutlineColumnIndex()

indentNextColumn

public void indentNextColumn()

emitColumnStyle

public java.lang.String emitColumnStyle(java.lang.String moreStyle)

makeHeadingAreaColumnCurrent

public void makeHeadingAreaColumnCurrent()

makeGroupingRowCurrent

public void makeGroupingRowCurrent()

setCurrentItem

public void setCurrentItem(java.lang.Object currentItem)

currentItemChildren

public java.lang.Object currentItemChildren()

currentItemHasChildren

public boolean currentItemHasChildren()

beginSelectableObjectAccumulation

public void beginSelectableObjectAccumulation()

endSelectableObjectAccumulation

public void endSelectableObjectAccumulation()

displayGroup

public AWTDisplayGroup displayGroup()

batchStartIndex

public int batchStartIndex()

batchEndIndex

public int batchEndIndex()

displayedObjects

public java.util.List displayedObjects()

isEmpty

public boolean isEmpty()

showNavigationBar

public boolean showNavigationBar()

showSelectionButtonArea

public boolean showSelectionButtonArea()

showGlobalButtonArea

public boolean showGlobalButtonArea()

showRightButtonArea

public boolean showRightButtonArea()

hasButtons

public boolean hasButtons()

showButtonColumns

public boolean showButtonColumns()

showHeadingArea

public boolean showHeadingArea()

showOptionsMenu

public boolean showOptionsMenu()

hasOptionsMenuTemplate

public boolean hasOptionsMenuTemplate()

showTitle

public boolean showTitle()

showNavigationRowTop

public boolean showNavigationRowTop()

showNavigationRowBottom

public boolean showNavigationRowBottom()

showColumnLabelWhenGrouping

public boolean showColumnLabelWhenGrouping()

showBatchNavRow

public boolean showBatchNavRow()

displayedColumns

public java.util.List displayedColumns()

dataColumns

public java.util.List dataColumns()

optionalColumns

public java.util.List optionalColumns()

isCurrentColumnDisplayed

public boolean isCurrentColumnDisplayed()
Visibility Support


toggleCurrentColumnVisibility

public AWComponent toggleCurrentColumnVisibility()

setColumnVisibilities

public void setColumnVisibilities(java.util.List columnsToMakeVisible)

setColumnVisibility

public void setColumnVisibility(AWTDataTable.Column c,
                                boolean makeVisible)

colsBeforeData

public int colsBeforeData()

colsAfterFirstDataColumn

public int colsAfterFirstDataColumn()

colspanMinusOne

public int colspanMinusOne()

globalVAlignment

public java.lang.String globalVAlignment()

tableColumnCount

public int tableColumnCount()

isSingleOrMultiSelect

public boolean isSingleOrMultiSelect()

multiSelectOrSubmitForm

public boolean multiSelectOrSubmitForm()

submitOnSelectionChangeBindingExists

public boolean submitOnSelectionChangeBindingExists()
Begin Selection Support


submitOnSelectionChange

public boolean submitOnSelectionChange()

showSelectAll

public boolean showSelectAll()

showSelectionColumn

public boolean showSelectionColumn()

hasInvisibleSelectionColumn

public boolean hasInvisibleSelectionColumn()

disableRowSelection

public boolean disableRowSelection()

showSelectionControl

public boolean showSelectionControl()

toggleColumn

public AWComponent toggleColumn()
Toggle Select All / Select None


setIsColumnSelected

public void setIsColumnSelected(boolean ignore)

getIsColumnSelected

public boolean getIsColumnSelected()

disableSelectAll

public boolean disableSelectAll()

updateSelectAllAction

public AWComponent updateSelectAllAction()
Gets call when all rows in the current batch are selected. Need to force render the select column.


forceRenderRows

public boolean forceRenderRows()
End Selection Support


isItemSelectable

public boolean isItemSelectable()

setExpandAll

public void setExpandAll(boolean yn)

expandAll

public boolean expandAll()

showColumnHeader

public boolean showColumnHeader()

enableScrolling

public boolean enableScrolling()

style

public java.lang.String style()

tableClass

public java.lang.String tableClass()

cornerImage

public java.lang.String cornerImage()

toggleScrolling

public void toggleScrolling()

useNewLook

public boolean useNewLook()

toggleNewLook

public void toggleNewLook()

disableRefresh

public boolean disableRefresh()

dragAction

public void dragAction()

dropAction

public AWResponseGenerating dropAction()

rowClass

public java.lang.String rowClass()

skipTopLine

public void skipTopLine()

tdClass

public java.lang.String tdClass()

setIteratorForTDContentCheck

public void setIteratorForTDContentCheck(AWPagedVector.AWPagedVectorIterator elements)

tdClass

public java.lang.String tdClass(boolean isFirstRow)

groupByTDClass

public java.lang.String groupByTDClass()

didRenderRow

public void didRenderRow()

hasMinWidths

public boolean hasMinWidths()

curColMinWidthStyle

public java.lang.String curColMinWidthStyle()

primaryDataRowIndicator

public java.lang.String primaryDataRowIndicator()
Okay, this topic is a doozy... When doing "scroll faulting" (bringing in contents of large scrollable tables "on demand") the client needs to identify the row index of the row that was scrolled to. In this calculation it should count only real *data rows* from the *primary* (outermost, not nested) table, so that this index maps to the one in the displayGroup (i.e. the one being batched). We mark these data rows with the ' dr="1" ' attribute on the TR tag in the HTML. For inner table rows, detail rows, group heading rows, etc, this attribute is omitted, and thus these rows are excluded from the count on the client.


groupingRowIndicator

public java.lang.String groupingRowIndicator()

setCurrentItemElementId

public void setCurrentItemElementId(java.lang.Object elementId)

currentItemElementId

public java.lang.Object currentItemElementId()

isGroupingByEnabled

public boolean isGroupingByEnabled()
Grouping Support


isGroupByAllowed

public boolean isGroupByAllowed()

groupingByCurrentColumn

public boolean groupingByCurrentColumn()

groupByColumnClicked

public void groupByColumnClicked()

pushTableConfig

public void pushTableConfig()

setVisibleColumn

public static void setVisibleColumn(java.util.Map tableConfig,
                                    java.lang.String columnKey)
Deprecated. 

todo: remove this method and provide mechanism to diff/merge external tableConfig with newly added columns in the table. (ie, allow dynamic insertion of new columns with the use of the forceColumnUpdate binding without losing state on existing columns).

Parameters:
tableConfig -
columnKey -

clearOutlineExpansionDefault

public static void clearOutlineExpansionDefault(java.util.Map tableConfig)
Modify the tableConfig to clear the table expansion defaults -- use this method to clear the table expansion default on table configs returned by the data table.

Parameters:
tableConfig -

awname

public java.lang.String awname()

setCSVSourceFactory

public static void setCSVSourceFactory(AWTDataTable.CSVSourceFactory factory)

createSortOrderingForColumnKey

public AWTSortOrdering createSortOrderingForColumnKey(java.lang.String key)

pathsForColumns

public static FieldPath[] pathsForColumns(AWTDataTable.Column[] columns)

renderCurrentRow

public java.lang.Object renderCurrentRow()

pivotState

public AWTPivotState pivotState()

hasPivotHeadingRows

public boolean hasPivotHeadingRows()


AribaWeb User Interface Development Framework
Copyright © 2000-2014 Ariba, Inc. All Rights Reserved.