|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
org.jdesktop.jdnc.form.JForm
public class JForm
Form component class for enabling display, editing, and actions on a collection of data fields, each of which corresponds to an identifiable element within an application data model. For example, a form field may map to a named column on a RowSet, a property on a JavaBean, or a keyed element in a map, etc. A single form can be used to display/edit data fields from multiple data models.
For each data field in the form, a user-interface component is
created to display and edit (if field is writable) values
for that field in the data model. Each user-interface component
is "bound" to the data model field using a Binding
instance, which handles the following tasks:
DefaultTableModelExt data = new DefaultTableModelExt("http://foo.bar/appdata");
JForm form = new JForm();
try {
form.bind(data); // creates components/bindings for all columns
} catch (BindException e) {
}
Once the form is created and bound, as in the example above, the form
handles execution of the binding operations as the user interacts with the
user-interface components in the form.
The following is an example which shows how a form is bound to multiple data models:
Customer customer = new Customer();
Cart cart = new Cart();
JForm form = new JForm();
try {
form.bind(customer, "firstName"); // binds to "firstName" property
form.bind(customer, "lastName"); // binds to "lastName" property
form.bind(customer, "address"); // binds to "address" property (nested bean)
form.bind(cart, "items"); // binds to "items" property
} catch (BindException e) {
}
Nested Class Summary |
---|
Nested classes/interfaces inherited from class javax.swing.JPanel |
---|
javax.swing.JPanel.AccessibleJPanel |
Nested classes/interfaces inherited from class javax.swing.JComponent |
---|
javax.swing.JComponent.AccessibleJComponent |
Nested classes/interfaces inherited from class java.awt.Container |
---|
java.awt.Container.AccessibleAWTContainer |
Nested classes/interfaces inherited from class java.awt.Component |
---|
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy |
Field Summary |
---|
Fields inherited from class javax.swing.JComponent |
---|
accessibleContext, listenerList, TOOL_TIP_TEXT_KEY, ui, 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 | |
---|---|
JForm()
Creates a new form component. |
|
JForm(DataModel model)
Creates a new form component and binds it to the specified data model. |
Method Summary | |
---|---|
protected void |
addBinding(Binding binding)
Added to ease subclassing without actually exposing the private bindings-list. |
Binding |
bind(Binding binding,
javax.swing.JComponent component)
Adds the specified binding to this form. |
Binding[] |
bind(DataModel model)
Binds the form to each visual field in the specified DataModel object. |
Binding |
bind(DataModel model,
java.lang.String fieldName)
Binds the form to the specified field in the DataModel object. |
Binding |
bind(DataModel model,
java.lang.String fieldName,
javax.swing.JComponent component)
Binds the specified component to the field in the DataModel object. |
Binding[] |
bind(DefaultTableModelExt tabularData)
Binds the form to each column in the specified DefaultTableModelExt object. |
Binding |
bind(DefaultTableModelExt tabularData,
java.lang.String columnName)
Binds the form to the specified column in the DefaultTableModelExt object. |
Binding[] |
bind(java.lang.Object bean)
Binds the form to each property in the specified JavaBean object. |
Binding |
bind(java.lang.Object bean,
java.lang.String propertyName)
Binds the form to the specified property in the JavaBean object. |
void |
clearBindings()
Removes all the bindings from the form. |
void |
doReset()
Public callback for reset action. |
void |
doSubmit()
Public callback for submit action. |
protected void |
executeSubmit()
Invoked from the submit action if and only if all form component values were successfully pushed to the form's data model. |
boolean |
getAutoLayout()
|
BindingHandler |
getBindingHandler()
quickshot to get hold of handler... |
Binding[] |
getBindings()
|
FormFactory |
getFormFactory()
If the form factory was never explicitly set, this method will return the default FormFactory instance obtained from FormFactory:getDefaultFormFactory() . |
protected void |
initActions()
|
boolean |
isFormValid()
|
boolean |
isModified()
|
boolean |
pull()
For each binding defined in this form, pull the value from the data model and load it into the user-interface component. |
boolean |
push()
If all form fields are in a valid state, push each value contained in a user-interface component its associated data model. |
void |
setAutoLayout(boolean autoLayout)
Sets the "autoLayout" property. |
void |
setFormFactory(FormFactory factory)
Sets the form factory for this form. |
void |
unbind(Binding binding)
Removes the specified binding from this form. |
Methods inherited from class javax.swing.JPanel |
---|
getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI |
Methods inherited from class javax.swing.JComponent |
---|
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update |
Methods inherited from class java.awt.Container |
---|
add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusBackward, transferFocusDownCycle, validate, validateTree |
Methods inherited from class java.awt.Component |
---|
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, 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 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public JForm()
public JForm(DataModel model) throws BindException
model
- data model whose fields should be bound in this form
BindException
- if there were errors when binding to the data modelMethod Detail |
---|
protected void initActions()
public void setAutoLayout(boolean autoLayout)
true
.
If set to false
, then the application must take responsibility
for adding the bound user-interface components to the form.
autoLayout
- boolean value indicating whether or
not the components created and bound in this form are
automatically added to and layed out in the formgetAutoLayout()
public boolean getAutoLayout()
setAutoLayout(boolean)
public void setFormFactory(FormFactory factory)
factory
- FormFactory instance used to create the components and
bindings for data model fields bound to the formpublic FormFactory getFormFactory()
FormFactory:getDefaultFormFactory()
.
public Binding[] bind(DefaultTableModelExt tabularData) throws BindException
MetaData
object. It will also create the bindings from those user-interface components
to the data model. And finally, if "autoLayout" is true
,
it will also add and layout those components within the form according
to the mechanism defined by the form factory.
tabularData
- DefaultTableModelExt being bound to the form
BindException
- if there were errors when binding to the data modelMetaData
public Binding bind(DefaultTableModelExt tabularData, java.lang.String columnName) throws BindException
MetaData
object. It will also create the binding from the user-interface component
to the data model. And finally, if "autoLayout" is true
,
it will also add and layout the component within the form according
to the mechanism defined by the form factory.
tabularData
- DefaultTableModelExt being bound to the formcolumnName
- String containing the name of the column
BindException
- if there were errors when binding to the data modelpublic Binding[] bind(java.lang.Object bean) throws BindException
true
,
it will also add and layout those components within the form according
to the mechanism defined by the form factory.
bean
- JavaBean object being bound to the form
BindException
- if there were errors when binding to the data modelpublic Binding bind(java.lang.Object bean, java.lang.String propertyName) throws BindException
true
,
it will also add and layout the component within the form according
to the mechanism defined by the form factory.
bean
- JavaBean object being bound to the formpropertyName
- String containing the name of the property
BindException
- if there were errors when binding to the data modelpublic Binding[] bind(DataModel model) throws BindException
MetaData
object. It will also create the bindings from those user-interface components
to the data model. And finally, if "autoLayout" is true
,
it will also add and layout those components within the form according
to the mechanism defined by the form factory.
model
- DataModel object being bound to the form
BindException
- if there were errors when binding to the data modelpublic Binding bind(DataModel model, java.lang.String fieldName) throws BindException
MetaData
object. It will also create the binding from the user-interface component
to the data model. And finally, if "autoLayout" is true
,
it will also add and layout the component within the form according
to the mechanism defined by the form factory.
model
- DataModel object being bound to the formfieldName
- String containing the name of the field
BindException
- if there were errors when binding to the data modelpublic Binding bind(DataModel model, java.lang.String fieldName, javax.swing.JComponent component) throws BindException
model
- DataModel object being bound to the formfieldName
- String containing the name of the fieldcomponent
- user-interface component being bound to the data model
BindException
- if there were errors when binding to the data modelpublic Binding bind(Binding binding, javax.swing.JComponent component) throws BindException
true
. Note that this component may be different
from the component which is contained in the Binding instance.
This method is invoked by the other bind
methods and is
typically not invoked directly by applications unless they require the
ability to create their own Binding objects.
binding
- Binding instance being added to this formcomponent
- user-interface component which should be added to the form
BindException
- if there were errors when binding to the data modelprotected void addBinding(Binding binding)
binding
- public void unbind(Binding binding)
binding
- Binding instance being removedpublic BindingHandler getBindingHandler()
public void clearBindings()
public Binding[] getBindings()
public boolean pull()
public boolean isFormValid()
public boolean isModified()
public void doSubmit()
public void doReset()
public boolean push()
isFormValid()
protected void executeSubmit()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |