Oracle ADF Model and Business Components API Reference 10.1.2 B14022-02


oracle.jbo.uicli.jui
Class JUTableBinding

java.lang.Object
  extended byjava.util.AbstractMap
      extended byoracle.jbo.common.JboAbstractMap
          extended byoracle.adf.model.binding.DCControlBinding
              extended byoracle.jbo.uicli.binding.JUControlBinding
                  extended byoracle.jbo.uicli.binding.JUCtrlValueBinding
                      extended byoracle.jbo.uicli.binding.JUCtrlRangeBinding
                          extended byoracle.jbo.uicli.jui.JUTableBinding

All Implemented Interfaces:
java.util.EventListener, java.awt.event.HierarchyListener, JUCtrlInputValueHandler, JUPanelStopEditingListener, java.util.Map, StructureDef, javax.swing.table.TableModel

public class JUTableBinding
extends JUCtrlRangeBinding
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 inherited from class java.util.Map
java.util.Map.Entry

Field Summary

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_DISPLAY_HINT, ATTR_INPUT_VALUE, ATTR_LABEL, ATTR_LABELS, ATTR_LABELSET, ATTR_MANDATORY, ATTR_PATH, ATTR_TOOLTIP, ATTR_UPDATEABLE, 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, mInternalGet_KeyResolved, ROW_KEY_STR

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.

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)
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()
java.lang.Object getValueAt(int rowIndex, int columnIndex)
Returns the value as stored in the control at a given row and column index.
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 removeTableModelListener(javax.swing.event.TableModelListener l)
void setControl(java.lang.Object ctrl)
Bind this binding to a control.
void setLayoutObject(javax.swing.JScrollPane scrollPane)
*** For internal framework use only ***
void setValueAt(java.lang.Object aValue, int rowIndex, int columnIndex)
void stopEditing()
Notification method to this listener to stop editing.
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.JUCtrlRangeBinding
createValueBindingRef, getEstimatedRowCount, getRangeSet, getRangeSize, getRangeStart, internalGet, needsEstimatedRowCount, refreshControl, release, resetInputState, updateValuesFromRow

Methods inherited from class oracle.jbo.uicli.binding.JUCtrlValueBinding
compareAndSetAttribute, displayInShortForm, findAttributeDef, getAttribute, getAttribute, getAttribute, getAttributeCount, getAttributeDef, getAttributeDef, getAttributeDefs, getAttributeFromRow, getAttributeFromRow, getAttributeFromRow, getAttributeFromRow, getAttributeFromRow, getAttributeIndexOf, getAttributeNames, getAttributes, getAttributes, getAttributeUIHelper, getAttributeValidators, getAttributeValidators, getAttributeValue, getAttributeValue, getAttributeValueFromRow, getAttributeValues, getAttributeValues, getControlType, getDisplayHeight, getDisplayHint, getDisplayWidth, getError, getErrors, getHint, getHint, getInputValue, getLabel, getLabel, getLabels, getLabelSet, getLocaleContext, getMergedAttributeValues, getPath, getTooltip, getTooltip, hasFormatInformation, internalGetRow, isArrayIteratorType, isAttributeMandatory, isAttributeUpdateable, isMandatory, isNewInputValue, isUpdateable, lookupAttributeDef, processInputException, processNewInputValue, put, setArrayIteratorType, setAttribute, setAttribute, setAttributeInRow, setAttributeInRow, setAttributeInRow, setAttributeInRow, setAttributeInRow, setAttributeInRow, setAttributeValue, setError, setInputValue, setInputValue, setInputValueHandler

Methods inherited from class oracle.jbo.uicli.binding.JUControlBinding
getFormBinding, getIteratorBinding, reportException, setFormBinding

Methods inherited from class oracle.adf.model.binding.DCControlBinding
addToDCExceptions, executeQuery, executeQueryIfNeeded, get, getAllRowsInRange, getApplicationModule, getBindingContainer, getControl, getCurrentRow, getDCIteratorBinding, getDef, getDefFullName, getDefName, getFullName, getName, getRowAtRangeIndex, getRowIterator, getTransaction, getViewObject, hashCode, internalSetName, removeFromDCExceptions, reportException, resetAttributeExceptionInRow, setBindingContainer, setName, toString

Methods inherited from class oracle.jbo.common.JboAbstractMap
entrySet, equals

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.jbo.StructureDef
getDefFullName, getDefName, getFullName, getName

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:

Method Detail

getControlModel

public java.lang.Object getControlModel(java.lang.Object control)
Gets the associated View's model object.
Overrides:
getControlModel in class DCControlBinding

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

stopEditing

public void stopEditing()
Description copied from interface: JUPanelStopEditingListener
Notification method to this listener 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 JUCtrlRangeBinding

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

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)
Description copied from class: JUCtrlRangeBinding
Returns the value as stored in the control at a given row and column index. This value is used by the binding to update attribute values in BC4J rows.
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

Oracle ADF Model and Business Components API Reference 10.1.2 B14022-02


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