Business Components

oracle.jbo.uicli.jui
Class JUButtonBinding

java.lang.Object
  |
  +--oracle.jbo.uicli.binding.JUControlBinding
        |
        +--oracle.jbo.uicli.binding.JUCtrlValueBinding
              |
              +--oracle.jbo.uicli.binding.JUCtrlAttrsBinding
                    |
                    +--oracle.jbo.uicli.binding.JUCtrlListBinding
                          |
                          +--oracle.jbo.uicli.binding.JUCtrlBoolBinding
                                |
                                +--oracle.jbo.uicli.jui.JUButtonBinding
All Implemented Interfaces:
java.awt.event.ActionListener, AttributeList, javax.swing.ButtonModel, java.util.EventListener, java.awt.event.ItemListener, java.awt.ItemSelectable, RowNavigationListener, RowSetListener

public class JUButtonBinding
extends JUCtrlBoolBinding
implements javax.swing.ButtonModel, java.awt.event.ActionListener, java.awt.event.ItemListener

Implements binding a Swing AbstractButton object with a BC4J attribute.

Swing Classes like JCheckBox, JRadioButton, JButton can be bound using this class to display/update boolean values for an attribute. Applications can customize the boolean values to any two desired values that a particular attribute can accept like Y/N for checkbox states of True/False or Checked/Unchecked.

By default the binding sends a java.lang.Boolean.TRUE for checked or selected state of a button, to the BC4J attribute.


Fields inherited from class oracle.jbo.uicli.binding.JUCtrlListBinding
LIST_OPER_NAVIGATE, LIST_OPER_SET_ATTRIBUTE, mListAttrNames, mListDisplayAttrNames, mListIterBinding, mStaticList, mValueList
 
Constructor Summary
JUButtonBinding(javax.swing.AbstractButton control, JUIteratorBinding iterBinding, java.lang.String attrName)
           
JUButtonBinding(javax.swing.AbstractButton control, JUIteratorBinding iterBinding, java.lang.String attrName, java.lang.Object[] valueList, boolean boolVal)
           
 
Method Summary
TypeMethod
 void actionPerformed(java.awt.event.ActionEvent e)
          Binding subclasses can override this method to implement custom action for actionPerformed event without having to add this binding as an ActionListener in the Application.
 void addActionListener(java.awt.event.ActionListener l)
           
 void addChangeListener(javax.swing.event.ChangeListener l)
           
 void addControlToPanel(java.lang.Object panel, java.lang.Object layoutObject, java.lang.Object layoutCons)
          *** For internal framework use only ***
 void addItemListener(java.awt.event.ItemListener l)
           
static javax.swing.ButtonModel createActionBinding(JUPanelBinding formBinding, java.awt.Component control, java.lang.String voInstanceName, java.lang.String voIterName, java.lang.String voIterBindingName, int action)
          Use this method to bind an AbstractButton to a BC4J ViewObject and assign one of the enumerated set of actions to this Button, so that when this button is pressed (on actionPerformed) the desired action(method) is invoked on the associated RowSet.
static javax.swing.ButtonModel createBooleanBinding(JUFormBinding formBinding, javax.swing.AbstractButton control, java.lang.String voInstanceName, java.lang.String voIterName, java.lang.String voIterBindingName, java.lang.String attrName, java.lang.Object[] valueList, boolean boolVal)
          Use this method to bind an AbstractButton to a BC4J Attribute when the Application usage determines the attribute values for true and false states to be used to set the attribute values.
 java.lang.String getActionCommand()
           
static javax.swing.ButtonModel getAttributeBinding(JUFormBinding formBinding, javax.swing.AbstractButton control, java.lang.String voInstanceName, java.lang.String voIterName, java.lang.String voIterBindingName, java.lang.String attrName)
          Use this method to bind an AbstractButton to a BC4J Attribute when the default settings for true and false states are to be used to set the attribute values.
static javax.swing.ButtonModel getInstance(JUFormBinding formBinding, javax.swing.AbstractButton control, java.lang.String voInstanceName, java.lang.String voIterName, java.lang.String voIterBindingName, java.lang.String attrName)
          Deprecated. since 9.0.2 use createAttributeBinding or createBooleanBinding methods instead.
static javax.swing.ButtonModel getInstance(JUFormBinding formBinding, javax.swing.AbstractButton control, java.lang.String voInstanceName, java.lang.String voIterName, java.lang.String voIterBindingName, java.lang.String attrName, java.lang.Object[] valueList, boolean boolVal)
          Deprecated. since 9.0.2 use createAttributeBinding or createBooleanBinding methods instead.
static javax.swing.ButtonModel getInstance(JUPanelBinding formBinding, java.awt.Component control, java.lang.String voInstanceName, java.lang.String voIterName, java.lang.String voIterBindingName, int action)
          Deprecated. since 9.0.2 use createActionBinding method instead.
 int getMnemonic()
           
protected  javax.swing.ButtonModel getModelImpl(javax.swing.AbstractButton control)
          Returns the button model that this binding is bound to.
 java.lang.Object[] getSelectedObjects()
           
 java.lang.Object getValueAt(int attrIndex)
          Returns the current boolean value that the associated button represents.
 boolean isArmed()
           
 boolean isEnabled()
           
 boolean isPressed()
           
 boolean isRollover()
           
 boolean isSelected()
           
 void itemStateChanged(java.awt.event.ItemEvent e)
          Updates the BC4J attribute based on the current setting of the button.
 void removeActionListener(java.awt.event.ActionListener l)
           
 void removeChangeListener(javax.swing.event.ChangeListener l)
           
 void removeItemListener(java.awt.event.ItemListener l)
           
 void setActionCommand(java.lang.String s)
           
 void setArmed(boolean b)
           
 void setDataValueAt(java.lang.Object value, int attrIndex)
          This method is overridden to be a no-op for Button Binding.
 void setEnabled(boolean b)
           
 void setGroup(javax.swing.ButtonGroup group)
           
 void setMnemonic(int key)
           
 void setPressed(boolean b)
           
 void setRollover(boolean b)
           
 void setSelected(boolean b)
           
 void setValueAt(java.lang.Object value, int attrIndex)
          Matches the given value with one of the values given in the constructor or to Boolean.TRUE or FALSE and then sets the associated button to matching boolean state.
 
Methods inherited from class oracle.jbo.uicli.binding.JUCtrlBoolBinding
findValue, getValueFromBoolean
 
Methods inherited from class oracle.jbo.uicli.binding.JUCtrlListBinding
convertValueList, findListIndex, findMatchingListValue, getAttrValuesFromRSI, getListOperMode, getSelectedIndex, getSelectedValue, getValueFromList, getValueList, isSingleAttrList, matchTargetWithLov, navigated, rangeRefreshed, rangeScrolled, rowDeleted, rowInserted, rowUpdated, setAttributeFromValueList, setListOperMode, setSelectedIndex, setSingleAttrList, setTargetAttrsFromLovRow, setupListItems, setValueList, updateValuesFromRow
 
Methods inherited from class oracle.jbo.uicli.binding.JUCtrlAttrsBinding
updateNavigated, updateRangeScrolled, updateValuesFromRows
 
Methods inherited from class oracle.jbo.uicli.binding.JUCtrlValueBinding
findAttributeDef, getAttribute, getAttribute, getAttributeCount, getAttributeDef, getAttributeDefs, getAttributeFromRow, getAttributeFromRow, getAttributeFromRow, getAttributeFromRow, getAttributeFromRow, getAttributeIndexOf, getAttributeNames, isAttributeUpdateable, setAttribute, setAttribute, setAttributeInRow, setAttributeInRow, setAttributeInRow, setAttributeInRow, setAttributeInRow, setAttributeInRow, stopEditing, updateRowDeleted, updateRowInserted
 
Methods inherited from class oracle.jbo.uicli.binding.JUControlBinding
executeQuery, executeQueryIfNeeded, getAllRowsInRange, getApplicationModule, getControl, getCurrentRow, getDef, getFormBinding, getIteratorBinding, getLayoutObject, getName, getRowAtRangeIndex, getRowIterator, getTransaction, getViewObject, isControlQueriable, reportException, setFormBinding, setName
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JUButtonBinding

public JUButtonBinding(javax.swing.AbstractButton control,
                       JUIteratorBinding iterBinding,
                       java.lang.String attrName)

JUButtonBinding

public JUButtonBinding(javax.swing.AbstractButton control,
                       JUIteratorBinding iterBinding,
                       java.lang.String attrName,
                       java.lang.Object[] valueList,
                       boolean boolVal)
Method Detail

getAttributeBinding

public static javax.swing.ButtonModel getAttributeBinding(JUFormBinding formBinding,
                                                          javax.swing.AbstractButton control,
                                                          java.lang.String voInstanceName,
                                                          java.lang.String voIterName,
                                                          java.lang.String voIterBindingName,
                                                          java.lang.String attrName)
Use this method to bind an AbstractButton to a BC4J Attribute when the default settings for true and false states are to be used to set the attribute values.

Parameters:
formBinding - The containing JUPanelBinding in which the given iterator binding would be found/created.
control - The control instance to bind to a ViewObject's attribute.
voInstanceName - Name of the instance of the ViewObject in a BC4J ApplicationModule
voIterName - Runtime instance name of the iterator in the ViewObject (optional)
voIterBindingName - Instance name of the iterator binding that uniquely identifies an iterator binding object in this given JUPanelBinding instance.
attrName - The name of the attribute of this ViewObject rows that contains data to display/edit in the associated button.
Returns:
Model object bound to the given button. This method simply returns the existing model object in the button and does not create a new one. This method simply wires up the Button's model object with a new JClient button binding object and then returns the button's model object.

getInstance

public static javax.swing.ButtonModel getInstance(JUFormBinding formBinding,
                                                  javax.swing.AbstractButton control,
                                                  java.lang.String voInstanceName,
                                                  java.lang.String voIterName,
                                                  java.lang.String voIterBindingName,
                                                  java.lang.String attrName)
Deprecated. since 9.0.2 use createAttributeBinding or createBooleanBinding methods instead.


createBooleanBinding

public static javax.swing.ButtonModel createBooleanBinding(JUFormBinding formBinding,
                                                           javax.swing.AbstractButton control,
                                                           java.lang.String voInstanceName,
                                                           java.lang.String voIterName,
                                                           java.lang.String voIterBindingName,
                                                           java.lang.String attrName,
                                                           java.lang.Object[] valueList,
                                                           boolean boolVal)
Use this method to bind an AbstractButton to a BC4J Attribute when the Application usage determines the attribute values for true and false states to be used to set the attribute values. The two values for true and false states are passed in valueList object array and the next argument 'boolVal' detmerines whether the first value in the list means true or false.

Parameters:
formBinding - The containing JUPanelBinding in which the given iterator binding would be found/created.
control - The control instance to bind to a ViewObject's attribute.
voInstanceName - Name of the instance of the ViewObject in a BC4J ApplicationModule
voIterName - Runtime instance name of the iterator in the ViewObject (optional)
voIterBindingName - Instance name of the iterator binding that uniquely identifies an iterator binding object in this given JUPanelBinding instance.
attrName - The name of the attribute of this ViewObject rows that contains data to display/edit in the associated button.
valueList - A list of two values that are used by this binding to set into the BC4J attribute when this button updates an attribute.
boolVal - If true means, the first value in the above list valueList means 'true'
Returns:
Model object bound to the given button. This method simply returns the existing model object in the button and does not create a new one. This method simply wires up the Button's model object with a new JClient button binding object and then returns the button's model object.

getInstance

public static javax.swing.ButtonModel getInstance(JUFormBinding formBinding,
                                                  javax.swing.AbstractButton control,
                                                  java.lang.String voInstanceName,
                                                  java.lang.String voIterName,
                                                  java.lang.String voIterBindingName,
                                                  java.lang.String attrName,
                                                  java.lang.Object[] valueList,
                                                  boolean boolVal)
Deprecated. since 9.0.2 use createAttributeBinding or createBooleanBinding methods instead.


createActionBinding

public static javax.swing.ButtonModel createActionBinding(JUPanelBinding formBinding,
                                                          java.awt.Component control,
                                                          java.lang.String voInstanceName,
                                                          java.lang.String voIterName,
                                                          java.lang.String voIterBindingName,
                                                          int action)
Use this method to bind an AbstractButton to a BC4J ViewObject and assign one of the enumerated set of actions to this Button, so that when this button is pressed (on actionPerformed) the desired action(method) is invoked on the associated RowSet. See JUCtrlActionBinding for details on the list of valid actions.

Parameters:
formBinding - The containing JUPanelBinding in which the given iterator binding would be found/created.
control - The control instance to bind to a ViewObject's attribute.
voInstanceName - Name of the instance of the ViewObject in a BC4J ApplicationModule
voIterName - Runtime instance name of the iterator in the ViewObject (optional)
voIterBindingName - Instance name of the iterator binding that uniquely identifies an iterator binding object in this given JUPanelBinding instance.
action - An enumerated action-id which determines which method to invoke on the associated RowSet when this button is pressed.
Returns:
Model object bound to the given button. This method simply returns the existing model object in the button and does not create a new one. This method simply wires up the Button's model object with a new JClient button binding object and then returns the button's model object.

getInstance

public static javax.swing.ButtonModel getInstance(JUPanelBinding formBinding,
                                                  java.awt.Component control,
                                                  java.lang.String voInstanceName,
                                                  java.lang.String voIterName,
                                                  java.lang.String voIterBindingName,
                                                  int action)
Deprecated. since 9.0.2 use createActionBinding method instead.


getModelImpl

protected javax.swing.ButtonModel getModelImpl(javax.swing.AbstractButton control)
Returns the button model that this binding is bound to. The first time this method gets called (from the constructor), this method gets the ButtonModel from the given control, and if it is null, creates a DefaultButtonModel and returns that. Also this method adds this binding object as ActionListener and ItemListener on the button so that it can react to change in button states and set the BC4J attribute value appropriately.

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 JUControlBinding

getValueAt

public java.lang.Object getValueAt(int attrIndex)
Returns the current boolean value that the associated button represents. This value is used by the framework to get the appropriate attribute value to set into a BC4J attribute.
Overrides:
getValueAt in class JUCtrlListBinding
Parameters:
attrIndex - This argument is ignored for this binding.

setValueAt

public void setValueAt(java.lang.Object value,
                       int attrIndex)
Matches the given value with one of the values given in the constructor or to Boolean.TRUE or FALSE and then sets the associated button to matching boolean state. This method is used by the framework to set the button state based on attribute value.
Overrides:
setValueAt in class JUCtrlAttrsBinding
Parameters:
value - Should either be Boolean.TRUE or Boolean.FALSE or one of the two values provided in the constructor or create binding method. If the values do not match, this method sets the button state to false.
attrIndex - This argument is ignored for this binding.

setDataValueAt

public void setDataValueAt(java.lang.Object value,
                           int attrIndex)
This method is overridden to be a no-op for Button Binding.
Overrides:
setDataValueAt in class JUCtrlAttrsBinding

isArmed

public boolean isArmed()
Specified by:
isArmed in interface javax.swing.ButtonModel

isSelected

public boolean isSelected()
Specified by:
isSelected in interface javax.swing.ButtonModel

isEnabled

public boolean isEnabled()
Specified by:
isEnabled in interface javax.swing.ButtonModel

isPressed

public boolean isPressed()
Specified by:
isPressed in interface javax.swing.ButtonModel

isRollover

public boolean isRollover()
Specified by:
isRollover in interface javax.swing.ButtonModel

setArmed

public void setArmed(boolean b)
Specified by:
setArmed in interface javax.swing.ButtonModel

setSelected

public void setSelected(boolean b)
Specified by:
setSelected in interface javax.swing.ButtonModel

setEnabled

public void setEnabled(boolean b)
Specified by:
setEnabled in interface javax.swing.ButtonModel

setPressed

public void setPressed(boolean b)
Specified by:
setPressed in interface javax.swing.ButtonModel

setRollover

public void setRollover(boolean b)
Specified by:
setRollover in interface javax.swing.ButtonModel

setMnemonic

public void setMnemonic(int key)
Specified by:
setMnemonic in interface javax.swing.ButtonModel

getMnemonic

public int getMnemonic()
Specified by:
getMnemonic in interface javax.swing.ButtonModel

setActionCommand

public void setActionCommand(java.lang.String s)
Specified by:
setActionCommand in interface javax.swing.ButtonModel

getActionCommand

public java.lang.String getActionCommand()
Specified by:
getActionCommand in interface javax.swing.ButtonModel

setGroup

public void setGroup(javax.swing.ButtonGroup group)
Specified by:
setGroup in interface javax.swing.ButtonModel

addActionListener

public void addActionListener(java.awt.event.ActionListener l)
Specified by:
addActionListener in interface javax.swing.ButtonModel

removeActionListener

public void removeActionListener(java.awt.event.ActionListener l)
Specified by:
removeActionListener in interface javax.swing.ButtonModel

addItemListener

public void addItemListener(java.awt.event.ItemListener l)
Specified by:
addItemListener in interface javax.swing.ButtonModel

removeItemListener

public void removeItemListener(java.awt.event.ItemListener l)
Specified by:
removeItemListener in interface javax.swing.ButtonModel

addChangeListener

public void addChangeListener(javax.swing.event.ChangeListener l)
Specified by:
addChangeListener in interface javax.swing.ButtonModel

removeChangeListener

public void removeChangeListener(javax.swing.event.ChangeListener l)
Specified by:
removeChangeListener in interface javax.swing.ButtonModel

getSelectedObjects

public java.lang.Object[] getSelectedObjects()
Specified by:
getSelectedObjects in interface java.awt.ItemSelectable

actionPerformed

public void actionPerformed(java.awt.event.ActionEvent e)
Binding subclasses can override this method to implement custom action for actionPerformed event without having to add this binding as an ActionListener in the Application. Framework adds this object as an ActionListener by default.
Specified by:
actionPerformed in interface java.awt.event.ActionListener

itemStateChanged

public void itemStateChanged(java.awt.event.ItemEvent e)
Updates the BC4J attribute based on the current setting of the button. If the button state is checked/selected/true, this method sets the equivalent TRUE value into the attribute (as derived from the valueList and boolVal combination).
Specified by:
itemStateChanged in interface java.awt.event.ItemListener

Business Components