Oracle Fusion Middleware Java API Reference for Oracle ADF Model
11g Release 1 (11.1.1.4.0)

E10653-05

oracle.jbo.uicli.jui
Class JUTableBinding

java.lang.Object
  extended by java.util.AbstractMap
      extended by oracle.jbo.common.JboAbstractMap
          extended by oracle.adf.model.binding.DCControlBinding
              extended by oracle.jbo.uicli.binding.JUControlBinding
                  extended by oracle.jbo.uicli.binding.JUCtrlValueBinding
                      extended by oracle.jbo.uicli.binding.JUCtrlRangeBinding
                          extended by oracle.jbo.uicli.binding.JUCtrlHierBinding
                              extended by oracle.jbo.uicli.jui.JUTableBinding
All Implemented Interfaces:
java.awt.event.HierarchyListener, java.util.EventListener, java.util.Map, javax.swing.table.TableModel, ControlBinding, RangeBinding, StructureDef, JUCtrlInputValueHandler, JUCtrlValueHandler, JUPanelStopEditingListener
Direct Known Subclasses:
JUTreeTableBinding

public class JUTableBinding
extends JUCtrlHierBinding
implements javax.swing.table.TableModel, JUPanelStopEditingListener, java.awt.event.HierarchyListener

A lightweight TableModel that implements binding a javax.swing.JTable to a RowIterator for a BC4J ViewObject.

Applications should subclass this binding and return a subclass of JUTableModel that can:

This class creates a runtime instance of JUTableModel to interact with a JTable instance. It is responsible for:

See Also:
RowIterator, ViewObject, JTable, TableModel, AbstractTableModel

Nested Class Summary
protected  class JUTableBinding.JUTableModel
          This TableModel is used by JUTableBinding to perform updates of the JTable control to which it is bound.
 
Nested classes/interfaces inherited from class java.util.AbstractMap
java.util.AbstractMap.SimpleEntry<K,V>, java.util.AbstractMap.SimpleImmutableEntry<K,V>
 
Nested classes/interfaces inherited from interface java.util.Map
java.util.Map.Entry<K,V>
 
Field Summary
static int CS_FULL
           
static int CS_NONE
           
static int CS_RANGE
           
 boolean mSortAscending
           
 int mSortColumn
           
static int TBL_SCROLL_ACTIVE
           
static int TBL_SCROLL_PASSIVE
           
 
Fields inherited from class oracle.jbo.uicli.binding.JUCtrlHierBinding
ATTR_CHILDREN, ATTR_ROOTNODE, mRootBinding, mTypeBindings
 
Fields inherited from class oracle.jbo.uicli.binding.JUCtrlValueBinding
ATTR_ATTRIBUTE, ATTR_ATTRIBUTE_DEF, ATTR_ATTRIBUTE_DEFS, ATTR_ATTRIBUTE_VALUE, ATTR_ATTRIBUTE_VALUES, ATTR_ATTRIBUTES, ATTR_AUTOSUBMIT, ATTR_DISPLAY_HEIGHT, ATTR_DISPLAY_HINT, ATTR_DISPLAY_WIDTH, ATTR_FORMAT, ATTR_FORMATS, ATTR_HINTS, ATTR_INPUT_VALUE, ATTR_LABEL, ATTR_LABELS, ATTR_LABELSET, ATTR_MANDATORY, ATTR_PATH, ATTR_TOOLTIP, ATTR_UPDATEABLE, ATTR_VIEWABLE, DATACHANGE_EVENT_POLICY, GET_ALLOWS, mAttrs, mHasInputVal, mInputVal, SEP_LIST_DISPLAY
 
Fields inherited from class oracle.adf.model.binding.DCControlBinding
ATTR_CURRENTROW, ATTR_DEF, ATTR_ERROR, ATTR_ERRORS, ATTR_FULLNAME, ATTR_ITER, ATTR_NAME, DC_BINDING_ERROR, mAttributeListener, mInternalGet_KeyResolved, mPermission, mPermissionInfo, ROW_KEY_STR
 
Fields inherited from class oracle.jbo.common.JboAbstractMap
MAP_NULL_VALUE
 
Constructor Summary
  JUTableBinding(javax.swing.JTable control, JUIteratorBinding iterBinding, java.lang.String[] attrNames)
          Creates an instance of JUTableModel that performs the binding of a BC4J ViewObject with a JTable.
protected JUTableBinding(javax.swing.JTable control, JUIteratorBinding iterBinding, java.lang.String[] attrNames, JUCtrlHierTypeBinding[] typeBindings)
           
 
Method Summary
 void addControlToPanel(java.lang.Object panel, java.lang.Object layoutObject, java.lang.Object layoutCons)
          *** For internal framework use only ***
 void addTableModelListener(javax.swing.event.TableModelListener l)
           
static javax.swing.table.TableModel createAttributeListBinding(JUPanelBinding formBinding, javax.swing.JTable control, java.lang.String voInstanceName, java.lang.String voIterName, java.lang.String voIterBindingName, java.lang.String[] attrNames)
          Creates an instance of JUTableBinding to return.
static javax.swing.table.TableModel createAttributeListBinding(JUPanelBinding formBinding, javax.swing.JTable control, java.lang.String voInstanceName, java.lang.String voIterName, java.lang.String voIterBindingName, java.lang.String[] attrNames, boolean columnSort, JUTableSortModel sorter)
          Creates an instance of JUTableBinding to return.
 java.lang.Class getColumnClass(int columnIndex)
           
 int getColumnCount()
           
 java.lang.String getColumnName(int columnIndex)
           
protected  int getColumnSortMode()
           
 java.lang.Object getControlModel(java.lang.Object control)
          Gets the associated View's model object.
protected  int getDefaultVisibleRowCount()
          Subclasses may override this to provide a default visible row count for a table binding where the table is not in a scrollpane or the table has not been appropriately sized yet and table needs to know the visible row count.
static javax.swing.table.TableModel getInstance(JUPanelBinding formBinding, javax.swing.JTable control, java.lang.String voInstanceName, java.lang.String voIterName, java.lang.String voIterBindingName, java.lang.String[] attrNames)
          Deprecated. since 9.0.2
 java.lang.Object getLayoutObject()
          *** For internal framework use only ***
 JUTableBinding.JUTableModel getModel()
           
protected  JUTableBinding.JUTableModel getModelImpl(javax.swing.JTable control)
          Returns an instance of JUTableModel that this binding works with and is applied as the JTableModel to the given JTable control.
 int getRowCount()
           
 int getScrolMode()
           
 java.lang.Object getValueAt(int rowIndex, int columnIndex)
           
 void hierarchyChanged(java.awt.event.HierarchyEvent e)
           
 boolean isCellEditable(int rowIndex, int columnIndex)
           
protected  boolean isControlQueriable()
          Returns true by default to imply that this binding supports Find mode.
 void release(int flags)
           
 void removeTableModelListener(javax.swing.event.TableModelListener l)
           
 int rowIndexToRangeIndex(int rowIndex)
           
 void setColumnProperties(java.util.HashMap columnProperties)
           
 void setControl(java.lang.Object ctrl)
          Bind this binding to a control.
 void setLayoutObject(javax.swing.JScrollPane scrollPane)
          *** For internal framework use only ***
 void setScrollMode(int x)
           
 void setValueAt(java.lang.Object aValue, int rowIndex, int columnIndex)
           
 void stopEditing()
          Notified by NavigationBar to stop any edits on the current control.
protected  void updateColumnModel(javax.swing.JTable control)
           
 void updateNavigated(NavigationEvent event)
          Adjusts the display to move the current row selection to the new current row.
 void updateRangeScrolled(ScrollEvent event)
          Adjusts the scrollbar of the associated JTable and also refreshes the display with the current set of rows in range in the associated RowIterator.
 void updateRowDeleted(DeleteEvent event)
          When a row is deleted in the associated iterator, this method gets invoked by the framework, so that this binding can update the displayed rows in the JTable after stopping the edit function on the current cell (if a cell was being edited).
 void updateRowInserted(InsertEvent event)
          When a new row is inserted into the associated Iterator, this method gets invoked by the framework.
 void updateValuesFromRows(Row[] rows, boolean clear)
          Updates the JTable's display with the given set of rows after optionally clearing out the current rows (if clear is true).
 
Methods inherited from class oracle.jbo.uicli.binding.JUCtrlHierBinding
bringNodeToRangeKeyPath, clearAttrDefs, clearRootBinding, createNodeBinding, createRootBinding, findNodeByDCEPath, findNodeByKeyPath, getChildren, getFormats, getHintMap, getHints, getLabels, getMasterNodeForDCE, getRootNodeBinding, getTypeBindings, internalGet, internalGetRootNodeBinding, restoreTreeAndExpand, setAttributeNames, setAttributes, setDef, setTypeBindings, updateValuesFromRow
 
Methods inherited from class oracle.jbo.uicli.binding.JUCtrlRangeBinding
createValueBindingRef, findOrCreateSelectionAttributeDef, getCurrentRowIndex, getDeferredEstimatedRowCount, getEstimatedRowCount, getInputErrorsForRowKey, getInputValueInRow, getRangeSet, getRangeSize, getRangeStart, isSelectionEnabled, needsEstimatedRowCount, refreshControl, setCurrentRowAtIndex, setInputValueInRow, setRangeStart, useRowSpecificHints
 
Methods inherited from class oracle.jbo.uicli.binding.JUCtrlValueBinding
addBindingContainerChangeListenerForCtxEvent, addDataChangeListener, clearEventsCache, compareAndSetAttribute, createAndNotifyDCE, createEventProducer, displayInShortForm, ensureVariableManager, fetchAttrDefs, findAttributeDef, generateDCE, getAttribute, getAttribute, getAttribute, getAttributeCount, getAttributeDef, getAttributeDef, getAttributeDefs, getAttributeDefsForRow, getAttributeFromRow, getAttributeFromRow, getAttributeFromRow, getAttributeFromRow, getAttributeFromRow, getAttributeIndexOf, getAttributeNames, getAttributes, getAttributes, getAttributeUIHelper, getAttributeValidators, getAttributeValidators, getAttributeValue, getAttributeValue, getAttributeValueFromRow, getAttributeValues, getAttributeValues, getAttrViewExpressions, getBindingHint, getCachedEvents, getChangeEventPolicy, getColumnNameForQuery, getControlType, getDataChangeEventPolicy, getDataChangeListener, getDisplayHeight, getDisplayHint, getDisplayWidth, getError, getErrors, getEventProducer, getFormat, getFormattedAttributeValue, getHint, getHint, getInputValue, getInputValue, getInputValueHandler, getInputValueOnError, getIteratorBindingForDCE, getIteratorRenderHint, getLabel, getLabel, getLabelSet, getLastEventId, getLocaleContext, getMasterKeyPathForDCE, getMergedAttributeValues, getNullValueString, getPath, getPermissionDef, getPermissionHolder, getPermissionInfo, getSelectionDef, getState, getTooltip, getTooltip, hasEventProducer, hasFormatInformation, hasServerBindingChanged, hasVariables, initResources, internalGetRow, internalHasPermission, internalHasPermission, isArrayIteratorType, isAttributeMandatory, isAttributeUpdateable, isAttributeUpdateable, isAttributeUpdateable, isAttributeUpdateable, isAutoSubmit, isEventsCachingEnabled, isMandatory, isNewInputValue, isNullInsertKeyPathForDCE, isPushDataChangeEvents, isPushOrPollDataChangeEvents, isUpdateable, isViewable, lookupAttributeDef, notifyDataChangeEvent, notifyDataExceptionEvent, notifyDCE, pinDataControl, processInputException, processNewInputValue, put, removeAttrName, removeDataChangeListener, removeFromDCExceptions, resetAttributeDefs, resetInputState, resolvePath, restoreFromState, setArrayIteratorType, setAttribute, setAttribute, setAttributeInRow, setAttributeInRow, setAttributeInRow, setAttributeInRow, setAttributeInRow, setAttributeInRow, setAttributeValue, setAttributeValuesInRow, setAttrViewExpressions, setError, setEventProducer, setEventsCaching, setInputValue, setInputValue, setInputValueHandler, setIteratorBinding, setListener, setNullValueString, startEvents, stopEvents, updateRow, validateInputValue
 
Methods inherited from class oracle.jbo.uicli.binding.JUControlBinding
getCurrentRow, getFormBinding, getIteratorBinding, reportException, setFormBinding
 
Methods inherited from class oracle.adf.model.binding.DCControlBinding
addToDCExceptions, evaluateBooleanExpression, executeQuery, executeQueryIfNeeded, get, getAllRowsInRange, getApplicationModule, getAttributeListener, getBindingContainer, getControl, getDCIteratorBinding, getDef, getDefFullName, getDefName, getFullName, getName, getPermission, getPermissionTargetName, getRowAtRangeIndex, getRowIterator, getTransaction, getViewableExpr, getViewObject, hashCode, internalSetName, isControlViewable, isReleased, release, reportException, resetAttributeExceptionInRow, setBindingContainer, setDataControlPinned, setListener, setName, setViewableExpr, toString
 
Methods inherited from class oracle.jbo.common.JboAbstractMap
entrySet, equals, internalPut, setThrowIfPropertyNotFoundOnGet
 
Methods inherited from class java.util.AbstractMap
clear, clone, containsKey, containsValue, isEmpty, keySet, putAll, remove, size, values
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface oracle.adf.model.RangeBinding
getLabelSet
 
Methods inherited from interface oracle.adf.model.ControlBinding
setListener
 
Methods inherited from interface oracle.binding.ControlBinding
getName, getPath, release, resolvePath, setListener
 
Methods inherited from interface oracle.jbo.StructureDef
getDefFullName, getDefName, getFullName, getName
 

Field Detail

TBL_SCROLL_ACTIVE

public static final int TBL_SCROLL_ACTIVE
See Also:
Constant Field Values

TBL_SCROLL_PASSIVE

public static final int TBL_SCROLL_PASSIVE
See Also:
Constant Field Values

CS_FULL

public static final int CS_FULL
See Also:
Constant Field Values

CS_NONE

public static final int CS_NONE
See Also:
Constant Field Values

CS_RANGE

public static final int CS_RANGE
See Also:
Constant Field Values

mSortAscending

public boolean mSortAscending

mSortColumn

public int mSortColumn
Constructor Detail

JUTableBinding

public JUTableBinding(javax.swing.JTable control,
                      JUIteratorBinding iterBinding,
                      java.lang.String[] attrNames)
Creates an instance of JUTableModel that performs the binding of a BC4J ViewObject with a JTable. This binding class performs the role of an intermediary between the JUTableModel which implements a TableModel to work with the JTable object and the BC4J framework.

This class is responsible for:


JUTableBinding

protected JUTableBinding(javax.swing.JTable control,
                         JUIteratorBinding iterBinding,
                         java.lang.String[] attrNames,
                         JUCtrlHierTypeBinding[] typeBindings)
Method Detail

getControlModel

public java.lang.Object getControlModel(java.lang.Object control)
Gets the associated View's model object.

Overrides:
getControlModel in class DCControlBinding

getColumnSortMode

protected int getColumnSortMode()

createAttributeListBinding

public static javax.swing.table.TableModel createAttributeListBinding(JUPanelBinding formBinding,
                                                                      javax.swing.JTable control,
                                                                      java.lang.String voInstanceName,
                                                                      java.lang.String voIterName,
                                                                      java.lang.String voIterBindingName,
                                                                      java.lang.String[] attrNames)
Creates an instance of JUTableBinding to return. Registers this binding as a binding that has its own cell-editor that needs to be notified for stopping/cancelling edits when the panel needs to invoke a panel-level operation like changing find/data mode and so forth.


createAttributeListBinding

public static javax.swing.table.TableModel createAttributeListBinding(JUPanelBinding formBinding,
                                                                      javax.swing.JTable control,
                                                                      java.lang.String voInstanceName,
                                                                      java.lang.String voIterName,
                                                                      java.lang.String voIterBindingName,
                                                                      java.lang.String[] attrNames,
                                                                      boolean columnSort,
                                                                      JUTableSortModel sorter)
Creates an instance of JUTableBinding to return. Registers this binding as a binding that has it's own cell-editor that needs to be notified for stopping/cancelling edits when the panel needs to invoke a panel-level operation like change find/datamode etc.


getInstance

public static javax.swing.table.TableModel getInstance(JUPanelBinding formBinding,
                                                       javax.swing.JTable control,
                                                       java.lang.String voInstanceName,
                                                       java.lang.String voIterName,
                                                       java.lang.String voIterBindingName,
                                                       java.lang.String[] attrNames)
Deprecated. since 9.0.2


setControl

public void setControl(java.lang.Object ctrl)
Bind this binding to a control.

Overrides:
setControl in class DCControlBinding

setColumnProperties

public void setColumnProperties(java.util.HashMap columnProperties)

updateColumnModel

protected void updateColumnModel(javax.swing.JTable control)

stopEditing

public void stopEditing()
Description copied from class: JUCtrlValueBinding
Notified by NavigationBar to stop any edits on the current control. Primarily for grid and tree to notify their cell editors to stop editing.

Specified by:
stopEditing in interface JUPanelStopEditingListener
Overrides:
stopEditing in class JUCtrlValueBinding

getModel

public JUTableBinding.JUTableModel getModel()

getModelImpl

protected JUTableBinding.JUTableModel getModelImpl(javax.swing.JTable control)
Returns an instance of JUTableModel that this binding works with and is applied as the JTableModel to the given JTable control.

Override this method to return a subclass of JUTableModel to perform customizations on the table model like:


isControlQueriable

protected boolean isControlQueriable()
Returns true by default to imply that this binding supports Find mode. Subclasses can override this method to return false if this binding should not display ViewCriteria rows in Find mode.

Overrides:
isControlQueriable in class DCControlBinding

addControlToPanel

public void addControlToPanel(java.lang.Object panel,
                              java.lang.Object layoutObject,
                              java.lang.Object layoutCons)
*** For internal framework use only ***

Overrides:
addControlToPanel in class JUCtrlRangeBinding

getLayoutObject

public java.lang.Object getLayoutObject()
*** For internal framework use only ***

Returns the scrollpane object in which the JTable control is displayed. If JTable is not displayed in a scrollpane, then this method returns the JTable control instance.

Overrides:
getLayoutObject in class DCControlBinding

setLayoutObject

public void setLayoutObject(javax.swing.JScrollPane scrollPane)
*** For internal framework use only ***


getDefaultVisibleRowCount

protected int getDefaultVisibleRowCount()
Subclasses may override this to provide a default visible row count for a table binding where the table is not in a scrollpane or the table has not been appropriately sized yet and table needs to know the visible row count.


updateValuesFromRows

public void updateValuesFromRows(Row[] rows,
                                 boolean clear)
Updates the JTable's display with the given set of rows after optionally clearing out the current rows (if clear is true).

Overrides:
updateValuesFromRows in class JUCtrlHierBinding

updateRangeScrolled

public void updateRangeScrolled(ScrollEvent event)
Adjusts the scrollbar of the associated JTable and also refreshes the display with the current set of rows in range in the associated RowIterator. This method does not change the currency of the iterator.

Overrides:
updateRangeScrolled in class JUCtrlRangeBinding
See Also:
ScrollEvent

updateRowInserted

public void updateRowInserted(InsertEvent event)
When a new row is inserted into the associated Iterator, this method gets invoked by the framework. This binding stops the current cell editing (if there is a current cell being edited) and then refreshes the JTable's display to accommodate the new row.

Overrides:
updateRowInserted in class JUCtrlValueBinding

updateRowDeleted

public void updateRowDeleted(DeleteEvent event)
When a row is deleted in the associated iterator, this method gets invoked by the framework, so that this binding can update the displayed rows in the JTable after stopping the edit function on the current cell (if a cell was being edited).

Overrides:
updateRowDeleted in class JUCtrlValueBinding

updateNavigated

public void updateNavigated(NavigationEvent event)
Adjusts the display to move the current row selection to the new current row. This method removes/cancels the current cell being edited (if any) before moving the row selection to the new current row.

Overrides:
updateNavigated in class JUCtrlRangeBinding

hierarchyChanged

public void hierarchyChanged(java.awt.event.HierarchyEvent e)
Specified by:
hierarchyChanged in interface java.awt.event.HierarchyListener

getRowCount

public int getRowCount()
Specified by:
getRowCount in interface javax.swing.table.TableModel

getColumnCount

public int getColumnCount()
Specified by:
getColumnCount in interface javax.swing.table.TableModel

getColumnName

public java.lang.String getColumnName(int columnIndex)
Specified by:
getColumnName in interface javax.swing.table.TableModel

getColumnClass

public java.lang.Class getColumnClass(int columnIndex)
Specified by:
getColumnClass in interface javax.swing.table.TableModel

isCellEditable

public boolean isCellEditable(int rowIndex,
                              int columnIndex)
Specified by:
isCellEditable in interface javax.swing.table.TableModel

getValueAt

public java.lang.Object getValueAt(int rowIndex,
                                   int columnIndex)
Specified by:
getValueAt in interface javax.swing.table.TableModel
Overrides:
getValueAt in class JUCtrlRangeBinding

setValueAt

public void setValueAt(java.lang.Object aValue,
                       int rowIndex,
                       int columnIndex)
Specified by:
setValueAt in interface javax.swing.table.TableModel
Overrides:
setValueAt in class JUCtrlRangeBinding

addTableModelListener

public void addTableModelListener(javax.swing.event.TableModelListener l)
Specified by:
addTableModelListener in interface javax.swing.table.TableModel

removeTableModelListener

public void removeTableModelListener(javax.swing.event.TableModelListener l)
Specified by:
removeTableModelListener in interface javax.swing.table.TableModel

release

public void release(int flags)
Overrides:
release in class JUCtrlHierBinding

rowIndexToRangeIndex

public int rowIndexToRangeIndex(int rowIndex)

getScrolMode

public int getScrolMode()

setScrollMode

public void setScrollMode(int x)

Oracle Fusion Middleware Java API Reference for Oracle ADF Model
11g Release 1 (11.1.1.4.0)

E10653-05

Copyright © 1997, 2011, Oracle. All rights reserved.