Holger's
Java API

com.antelmann.util.gui
Class FormInternalFrame

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by javax.swing.JInternalFrame
                  extended by com.antelmann.util.gui.FormInternalFrame
All Implemented Interfaces:
Form, ImageObserver, MenuContainer, PropertyChangeListener, Serializable, EventListener, Accessible, RootPaneContainer, WindowConstants

public class FormInternalFrame
extends JInternalFrame
implements Form

a JInternalFrame that takes some form along with a FormValidator to edit some data. The JInternalFrame contains the form and a toolbar with a save and a close button. Upon saving, disposing or in the event of exceptions, events are generated that can be monitored via the Listener interface. Since all components sit on the embedded mainPanel using a BorderLayout, it is relatively easy to add additional components to the sides of the frame.

Since:
24. November 2007, 19:48
Author:
Holger Antelmann
See Also:
FormDialog, Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class javax.swing.JInternalFrame
JInternalFrame.AccessibleJInternalFrame, JInternalFrame.JDesktopIcon
 
Nested classes/interfaces inherited from class javax.swing.JComponent
JComponent.AccessibleJComponent
 
Nested classes/interfaces inherited from class java.awt.Container
Container.AccessibleAWTContainer
 
Nested classes/interfaces inherited from class java.awt.Component
Component.AccessibleAWTComponent, Component.BaselineResizeBehavior, Component.BltBufferStrategy, Component.FlipBufferStrategy
 
Field Summary
protected  JButton closeButton
           
protected  JPanel mainPanel
           
protected  JButton saveButton
           
 
Fields inherited from class javax.swing.JInternalFrame
closable, CONTENT_PANE_PROPERTY, desktopIcon, FRAME_ICON_PROPERTY, frameIcon, GLASS_PANE_PROPERTY, iconable, IS_CLOSED_PROPERTY, IS_ICON_PROPERTY, IS_MAXIMUM_PROPERTY, IS_SELECTED_PROPERTY, isClosed, isIcon, isMaximum, isSelected, LAYERED_PANE_PROPERTY, maximizable, MENU_BAR_PROPERTY, resizable, ROOT_PANE_PROPERTY, rootPane, rootPaneCheckingEnabled, title, TITLE_PROPERTY
 
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 com.antelmann.util.gui.Form
EDIT_PROPERTY_KEY
 
Fields inherited from interface javax.swing.WindowConstants
DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
FormInternalFrame(String title, JComponent form, FormValidator<?> validator)
          calls the next constructor with saveAlwaysEnabled=true
FormInternalFrame(String title, JComponent form, FormValidator<?> validator, boolean saveAlwaysEnabled)
           
 
Method Summary
 void addListener(FormListener l)
           
 boolean closeAction()
           
 boolean disposeForm(boolean forceWithoutConfirm)
          allows to programmatically close the form.
 JToolBar getButtonContainer()
          provides the container that contains the functional buttons of the Form, so that other additional buttons may be added here
 JComponent getFormComponent()
           
 Container getFormContainer()
          provides access to the overall window, dialog, frame, internal frame or other that holds the form with the formComponent and all the functional buttons that belong to the form
 FormListener[] getFormListeners()
           
 FormValidator<?> getFormValidator()
           
 JPanel getMainPanel()
          returns the panel in the center that has the toolbar and the form on it
 boolean getWarnOnClose()
          determines whether a warning is displayed upon cancel if the form is marked as changed (false by default)
 boolean isDirty()
          determines whether the form is currently considered to be in a 'changed'-mode.
 Object performSaveAction()
          programmatically performs the action that would commonly be performed upon pressing 'save' on the form.
 void propertyChange(PropertyChangeEvent evt)
          marks the form dirty and enables the save button (in case it's not already generally enabled)
 boolean removeListener(FormListener l)
           
 void setWarnOnClose(boolean flag)
          if set to true, a warning is displayed when the form is closed w/o saving if it is marked changed
 
Methods inherited from class javax.swing.JInternalFrame
addImpl, addInternalFrameListener, createRootPane, dispose, doDefaultCloseAction, fireInternalFrameEvent, getAccessibleContext, getContentPane, getDefaultCloseOperation, getDesktopIcon, getDesktopPane, getFocusCycleRootAncestor, getFocusOwner, getFrameIcon, getGlassPane, getInternalFrameListeners, getJMenuBar, getLastCursor, getLayer, getLayeredPane, getMenuBar, getMostRecentFocusOwner, getNormalBounds, getRootPane, getTitle, getUI, getUIClassID, getWarningString, hide, isClosable, isClosed, isFocusCycleRoot, isIcon, isIconifiable, isMaximizable, isMaximum, isResizable, isRootPaneCheckingEnabled, isSelected, moveToBack, moveToFront, pack, paintComponent, paramString, remove, removeInternalFrameListener, reshape, restoreSubcomponentFocus, setClosable, setClosed, setContentPane, setCursor, setDefaultCloseOperation, setDesktopIcon, setFocusCycleRoot, setFrameIcon, setGlassPane, setIcon, setIconifiable, setJMenuBar, setLayer, setLayer, setLayeredPane, setLayout, setMaximizable, setMaximum, setMenuBar, setNormalBounds, setResizable, setRootPane, setRootPaneCheckingEnabled, setSelected, setTitle, setUI, show, toBack, toFront, 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, getBaseline, getBaselineResizeBehavior, 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, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, 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, 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, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, 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, 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, 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, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, size, toString, transferFocus, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

mainPanel

protected final JPanel mainPanel

saveButton

protected JButton saveButton

closeButton

protected JButton closeButton
Constructor Detail

FormInternalFrame

public FormInternalFrame(String title,
                         JComponent form,
                         FormValidator<?> validator)
calls the next constructor with saveAlwaysEnabled=true


FormInternalFrame

public FormInternalFrame(String title,
                         JComponent form,
                         FormValidator<?> validator,
                         boolean saveAlwaysEnabled)
Method Detail

getMainPanel

public JPanel getMainPanel()
returns the panel in the center that has the toolbar and the form on it


getButtonContainer

public JToolBar getButtonContainer()
Description copied from interface: Form
provides the container that contains the functional buttons of the Form, so that other additional buttons may be added here

Specified by:
getButtonContainer in interface Form

getFormComponent

public JComponent getFormComponent()
Specified by:
getFormComponent in interface Form

getFormValidator

public FormValidator<?> getFormValidator()
Specified by:
getFormValidator in interface Form

isDirty

public boolean isDirty()
Description copied from interface: Form
determines whether the form is currently considered to be in a 'changed'-mode. The form is in a changed mode after it received a PropertyChangeEvent until it is saved again.

Specified by:
isDirty in interface Form

addListener

public void addListener(FormListener l)
Specified by:
addListener in interface Form

removeListener

public boolean removeListener(FormListener l)
Specified by:
removeListener in interface Form

getFormListeners

public FormListener[] getFormListeners()
Specified by:
getFormListeners in interface Form

performSaveAction

public Object performSaveAction()
Description copied from interface: Form
programmatically performs the action that would commonly be performed upon pressing 'save' on the form. Commonly, this method would first call FormValidator.validateForm(Component) and then call FormValidator.commitFormAction(Component); also this method resets the Form.isDirty() status if the commit was successful.

Specified by:
performSaveAction in interface Form
Returns:
the object saved or null if that didn't happen

getWarnOnClose

public boolean getWarnOnClose()
Description copied from interface: Form
determines whether a warning is displayed upon cancel if the form is marked as changed (false by default)

Specified by:
getWarnOnClose in interface Form

setWarnOnClose

public void setWarnOnClose(boolean flag)
Description copied from interface: Form
if set to true, a warning is displayed when the form is closed w/o saving if it is marked changed

Specified by:
setWarnOnClose in interface Form

closeAction

public boolean closeAction()

disposeForm

public boolean disposeForm(boolean forceWithoutConfirm)
Description copied from interface: Form
allows to programmatically close the form.

Specified by:
disposeForm in interface Form
Parameters:
forceWithoutConfirm - if true, the form will be disposed no matter what; if false, a confirmation dialog may appear if the form is dirty and warnOnClose is true
Returns:
true only if the form has been closed (and the listeners were informed accordingly)

propertyChange

public void propertyChange(PropertyChangeEvent evt)
marks the form dirty and enables the save button (in case it's not already generally enabled)

Specified by:
propertyChange in interface PropertyChangeListener

getFormContainer

public Container getFormContainer()
Description copied from interface: Form
provides access to the overall window, dialog, frame, internal frame or other that holds the form with the formComponent and all the functional buttons that belong to the form

Specified by:
getFormContainer in interface Form


(c) Holger Antelmann since 2001- all rights reserved (contact: info@antelmann.com)
see www.antelmann.com/developer for further details and available downloads