Holger's Java API

## com.antelmann.util.gui
Class FormInternalFrame

    java.lang.Object
      java.awt.Component
          java.awt.Container
              javax.swing.JComponent
                  javax.swing.JInternalFrame
                      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