org.openswing.swing.client
Class ComboBoxVOControl

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.JPanel
                  extended byorg.openswing.swing.client.BaseInputControl
                      extended byorg.openswing.swing.client.ComboBoxVOControl
All Implemented Interfaces:
javax.accessibility.Accessible, java.awt.image.ImageObserver, InputControl, org.openswing.swing.items.client.ItemsParent, java.awt.MenuContainer, SearchControl, java.io.Serializable

public class ComboBoxVOControl
extends BaseInputControl
implements InputControl, org.openswing.swing.items.client.ItemsParent, SearchControl

Title: OpenSwing Framework

Description: Combo box input control: its items are retrieved through the combo box controller, that returns a list of value object; for each value object there exists a row in the combo box: v.o. attributes can be mapped as columns in an item.

Copyright: Copyright (C) 2006 Mauro Carniel

This file is part of OpenSwing Framework. This library is free software; you can redistribute it and/or modify it under the terms of the (LGPL) Lesser General Public License as published by the Free Software Foundation; GNU LESSER GENERAL PUBLIC LICENSE Version 2.1, February 1999 This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. The author may be contacted at: maurocarniel@tin.it

See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class javax.swing.JComponent
javax.swing.JComponent.AccessibleJComponent
 
Field Summary
 
Fields inherited from class javax.swing.JComponent
TOOL_TIP_TEXT_KEY, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
ComboBoxVOControl()
          Contructor.
 
Method Summary
 void addActionListener(java.awt.event.ActionListener l)
          Adds the specified action listener to receive action events from this textfield.
 void addCombo2ParentLink(java.lang.String parentAttributeName)
          Add a link from the whole combo box value object to an equivalent inner v.o. included in the container v.o.
 void addCombo2ParentLink(java.lang.String comboAttributeName, java.lang.String parentAttributeName)
          Add a link from an attribute of the combo box v.o. to an attribute of the combo box container v.o.
 void addFocusListener(java.awt.event.FocusListener l)
          Adds the specified focus listener to receive focus events from this component when this component gains input focus.
 void addItemListener(java.awt.event.ItemListener alistener)
          Adds an ItemListener.
 void addNotify()
          Retrieve items.
 boolean disableListener()
           
 int getAllColumnPreferredWidth()
           
 javax.swing.JComponent getBindingComponent()
           
 javax.swing.JComboBox getComboBox()
           
 org.openswing.swing.items.client.ItemsDataLocator getComboDataLocator()
           
 javax.swing.JComponent getComponent()
           
 java.lang.String getForeignKeyAttributeName()
           
 int getRowCount()
           
 int getSelectedIndex()
           
 java.awt.ComponentOrientation getTextOrientation()
           
 java.lang.Object getValue()
           
 java.lang.String getValueAt(int index)
           
 ValueObject getValueObject()
           
 boolean isAllColumnVisible()
           
 boolean isEnabled()
           
 boolean isNullAsDefaultValue()
           
 boolean isReadOnly()
           
 void reloadItems()
          Method used to reload items in combo-box.
 void removeActionListener(java.awt.event.ActionListener l)
          Removes the specified action listener so that it no longer receives action events from this textfield.
 void removeFocusListener(java.awt.event.FocusListener l)
          Removes the specified focus listener so that it no longer receives focus events from this component.
 void removeItemListener(java.awt.event.ItemListener alistener)
          Removes an ItemListener.
 int search(java.lang.String textToSeach)
          Method invoked by SearchWindowManager when the specified "textToSeach" pattern has not matchings in the current content of binded control.
 void setAllColumnPreferredWidth(int preferredWidth)
          Set columns width for the whole columns of the items grid frame.
 void setAllColumnVisible(boolean visible)
          Set column visibility for the whole columns of the items grid frame.
 void setComboDataLocator(org.openswing.swing.items.client.ItemsDataLocator comboDataLocator)
          Set combo box data locator.
 void setComboValueObjectClassName(java.lang.String comboValueObjectClassName)
          Set value object class name associated to the combo box: this method calls initItemsVO method.
 void setEnabled(boolean enabled)
          Set current input control abilitation.
 void setForeignKeyAttributeName(java.lang.String foreignKeyAttributeName)
          Set the attribute name in the combo-box v.o. that identify the attribute name in the v.o. of the combo-box container.
 void setNullAsDefaultValue(boolean nullAsDefaultValue)
          Define if in insert mode combo box has no item selected.
 void setPreferredWidthColumn(java.lang.String itemsAttributeName, int preferredWidth)
          Set column width in the items grid frame.
 void setSelectedIndex(int index)
          Set the selected index.
 void setTextOrientation(java.awt.ComponentOrientation o)
          Set the component orientation: from left to right or from right to left.
 void setValue(java.lang.Object code)
          Select the combo item related to the specified code.
 void setValue(java.lang.String attributeName, java.lang.Object value)
          Method called by ItemsController to update parent v.o.
 void setVisibleColumn(java.lang.String comboAttributeName, boolean visible)
          Set column visibility in the combo box grid frame.
 
Methods inherited from class org.openswing.swing.client.BaseInputControl
addValueChangedListener, getAttributeName, getFont, getLinkLabel, getTextAlignment, getToolTipText, getValueChangeListeners, isCanCopy, isChanged, isEnabledOnEdit, isEnabledOnInsert, isRequired, removeValueChangedListener, requestFocus, setAttributeName, setCanCopy, setChanged, setEnabledOnEdit, setEnabledOnInsert, setFont, setLinkLabel, setRequired, setTextAlignment, setToolTipText
 
Methods inherited from class javax.swing.JPanel
getAccessibleContext, getUI, getUIClassID, setUI, updateUI
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintImmediately, paintImmediately, print, printAll, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setForeground, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setTransferHandler, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
 
Methods inherited from class java.awt.Container
add, add, add, add, add, addContainerListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, setLayout, transferFocusBackward, transferFocusDownCycle, validate
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, contains, createImage, createImage, createVolatileImage, createVolatileImage, dispatchEvent, enable, enableInputMethods, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, remove, removeComponentListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.openswing.swing.client.InputControl
addValueChangedListener, getAttributeName, getLinkLabel, getValueChangeListeners, isCanCopy, isChanged, isEnabledOnEdit, isEnabledOnInsert, isRequired, removeValueChangedListener, setAttributeName, setCanCopy, setChanged, setEnabledOnEdit, setEnabledOnInsert, setLinkLabel
 

Constructor Detail

ComboBoxVOControl

public ComboBoxVOControl()
Contructor.

Method Detail

addNotify

public final void addNotify()
Retrieve items.


reloadItems

public final void reloadItems()
Method used to reload items in combo-box.


setVisibleColumn

public final void setVisibleColumn(java.lang.String comboAttributeName,
                                   boolean visible)
Set column visibility in the combo box grid frame.

Parameters:
comboAttributeName - attribute name that identifies the item column
visible - column visibility state

addCombo2ParentLink

public final void addCombo2ParentLink(java.lang.String comboAttributeName,
                                      java.lang.String parentAttributeName)
Add a link from an attribute of the combo box v.o. to an attribute of the combo box container v.o.

Parameters:
comboAttributeName - attribute of the combo box v.o.
parentAttributeName - attribute of the combo box container v.o.

addCombo2ParentLink

public final void addCombo2ParentLink(java.lang.String parentAttributeName)
Add a link from the whole combo box value object to an equivalent inner v.o. included in the container v.o.

Parameters:
parentAttributeName - attribute of the combo box container v.o., related to an inner v.o. having the same type of the combo box v.o.

getComboDataLocator

public final org.openswing.swing.items.client.ItemsDataLocator getComboDataLocator()
Returns:
combo box data locator

setComboDataLocator

public final void setComboDataLocator(org.openswing.swing.items.client.ItemsDataLocator comboDataLocator)
Set combo box data locator.

Parameters:
comboDataLocator - combo box data locator

setComboValueObjectClassName

public final void setComboValueObjectClassName(java.lang.String comboValueObjectClassName)
Set value object class name associated to the combo box: this method calls initItemsVO method.


isAllColumnVisible

public final boolean isAllColumnVisible()
Returns:
columns visibility

setAllColumnVisible

public final void setAllColumnVisible(boolean visible)
Set column visibility for the whole columns of the items grid frame.

Parameters:
visible - columns visibility

getAllColumnPreferredWidth

public final int getAllColumnPreferredWidth()
Returns:
columns width

setAllColumnPreferredWidth

public final void setAllColumnPreferredWidth(int preferredWidth)
Set columns width for the whole columns of the items grid frame.

Parameters:
preferredWidth - columns width

setPreferredWidthColumn

public final void setPreferredWidthColumn(java.lang.String itemsAttributeName,
                                          int preferredWidth)
Set column width in the items grid frame.

Parameters:
itemsAttributeName - attribute name that identifies the grid column
preferredWidth - column width

setValue

public final void setValue(java.lang.Object code)
Select the combo item related to the specified code.

Specified by:
setValue in interface InputControl
Overrides:
setValue in class BaseInputControl
Parameters:
code - used to retrieve the corresponding item and to select that item in the combo

getValue

public final java.lang.Object getValue()
Specified by:
getValue in interface InputControl
Overrides:
getValue in class BaseInputControl
Returns:
code related to the selected combo item; it return null if no item is selected

getComboBox

public final javax.swing.JComboBox getComboBox()
Returns:
combo box

setEnabled

public void setEnabled(boolean enabled)
Description copied from interface: InputControl
Set current input control abilitation.

Specified by:
setEnabled in interface InputControl
Overrides:
setEnabled in class BaseInputControl

isEnabled

public final boolean isEnabled()
Specified by:
isEnabled in interface InputControl
Overrides:
isEnabled in class BaseInputControl
Returns:
current input control abilitation

getBindingComponent

public javax.swing.JComponent getBindingComponent()
Overrides:
getBindingComponent in class BaseInputControl
Returns:
component inside this whose contains the value

addFocusListener

public final void addFocusListener(java.awt.event.FocusListener l)
Adds the specified focus listener to receive focus events from this component when this component gains input focus. If listener l is null, no exception is thrown and no action is performed.

Specified by:
addFocusListener in interface InputControl
Parameters:
l - the focus listener
Since:
JDK1.1
See Also:
FocusEvent, FocusListener, removeFocusListener(java.awt.event.FocusListener), Component.getFocusListeners()

removeFocusListener

public final void removeFocusListener(java.awt.event.FocusListener l)
Removes the specified focus listener so that it no longer receives focus events from this component. This method performs no function, nor does it throw an exception, if the listener specified by the argument was not previously added to this component. If listener l is null, no exception is thrown and no action is performed.

Specified by:
removeFocusListener in interface InputControl
Parameters:
l - the focus listener
Since:
JDK1.1
See Also:
FocusEvent, FocusListener, addFocusListener(java.awt.event.FocusListener), Component.getFocusListeners()

addActionListener

public final void addActionListener(java.awt.event.ActionListener l)
Adds the specified action listener to receive action events from this textfield.

Parameters:
l - the action listener to be added

removeActionListener

public final void removeActionListener(java.awt.event.ActionListener l)
Removes the specified action listener so that it no longer receives action events from this textfield.

Parameters:
l - the action listener to be removed

addItemListener

public final void addItemListener(java.awt.event.ItemListener alistener)
Adds an ItemListener.

aListener will receive one or two ItemEvents when the selected item changes.

See Also:
#setSelectedItem

removeItemListener

public final void removeItemListener(java.awt.event.ItemListener alistener)
Removes an ItemListener.


isNullAsDefaultValue

public final boolean isNullAsDefaultValue()
Returns:
define if in insert mode combo box has no item selected

setNullAsDefaultValue

public final void setNullAsDefaultValue(boolean nullAsDefaultValue)
Define if in insert mode combo box has no item selected.

Parameters:
nullAsDefaultValue - define if in insert mode combo box has no item selected

setValue

public void setValue(java.lang.String attributeName,
                     java.lang.Object value)
Method called by ItemsController to update parent v.o.

Specified by:
setValue in interface org.openswing.swing.items.client.ItemsParent
Parameters:
attributeName - attribute name in the parent v.o. that must be updated
value - updated value

getValueObject

public ValueObject getValueObject()
Specified by:
getValueObject in interface org.openswing.swing.items.client.ItemsParent
Returns:
parent value object

getSelectedIndex

public final int getSelectedIndex()
Specified by:
getSelectedIndex in interface SearchControl
Returns:
the selected index in the input control

setSelectedIndex

public final void setSelectedIndex(int index)
Set the selected index.

Specified by:
setSelectedIndex in interface SearchControl

getRowCount

public final int getRowCount()
Specified by:
getRowCount in interface SearchControl
Returns:
total rows count in the input control

getValueAt

public final java.lang.String getValueAt(int index)
Specified by:
getValueAt in interface SearchControl
Returns:
the element at the specified index, converted in String format

getComponent

public final javax.swing.JComponent getComponent()
Specified by:
getComponent in interface SearchControl
Returns:
combo control

isReadOnly

public final boolean isReadOnly()
Specified by:
isReadOnly in interface SearchControl
Returns:
true if the input control is in read only mode (so search is enabled), false otherwise

getForeignKeyAttributeName

public final java.lang.String getForeignKeyAttributeName()
Returns:
attribute name in the combo-box v.o. that identify the attribute name in the v.o. of the combo-box container

setForeignKeyAttributeName

public final void setForeignKeyAttributeName(java.lang.String foreignKeyAttributeName)
Set the attribute name in the combo-box v.o. that identify the attribute name in the v.o. of the combo-box container. As default value this attribute is null. Null means that "attributeName" property will be used to identify the v.o. in the combo-box, i.e. the attribute names in the combo-box v.o. and in the container v.o. must have the same name.

Parameters:
foreignKeyAttributeName - String

disableListener

public final boolean disableListener()
Specified by:
disableListener in interface SearchControl
Returns:
true to disable key listening on input control (for instance, in case of nested grids), false to listen for key events

search

public final int search(java.lang.String textToSeach)
Method invoked by SearchWindowManager when the specified "textToSeach" pattern has not matchings in the current content of binded control. This callback can be used to retrieve additional data into control and to search inside new data.

Specified by:
search in interface SearchControl
Parameters:
textToSeach - patten of text to search
Returns:
-1 if no additional data is available, otherwise the row index of data just added that satify the pattern

setTextOrientation

public final void setTextOrientation(java.awt.ComponentOrientation o)
Set the component orientation: from left to right or from right to left.

Parameters:
o - component orientation

getTextOrientation

public final java.awt.ComponentOrientation getTextOrientation()
Returns:
component orientation