Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## de.jsystems.framework.common
Class BusinessView

    java.lang.Object
      java.awt.Component
          java.awt.Container
              javax.swing.JComponent
                  javax.swing.JPanel
                      de.jsystems.framework.controls.FPanel
                          de.jsystems.framework.common.BusinessView

All Implemented Interfaces:
  Accessible, IActionInterface, IAncestor, IComponent, IContainer, IFocus, IHierarchy, IHierarchyBounds, IInputMethod, IKey, ImageObserver, IMouse, IMouseInput, IMouseMotion, IPropertyChange, IVetoableChange, MenuContainer, Serializable

Direct Known Subclasses:
  BusinessDynamicView, BusinessPaintView

public abstract class BusinessView
extends FPanel

Oberflächenelement für die Fensterklassen BusinessDialog und BusinessFrame. In dieser Klasse wird das Aussehen der einzelnen Oberflächen eingestellt sowie die Grösse. Hier wird auch festgelegt, ob der Dialog oder das Fenster nachher in der Grösse veränderbar sein soll oder nicht sowie der Titel des Dialoges oder Fensters festgelegt. Diese Klasse muss für eine konkrete View überschrieben werden.

Version:
  1.0
  Copyright by Jens Homm 2003
Author:
  Jens Homm JSYSTEMS
See Also:
  Serialized Form

Nested Class Summary

Nested classes inherited from class javax.swing.JPanel
`JPanel.AccessibleJPanel`

Nested classes inherited from class javax.swing.JComponent
`JComponent.AccessibleJComponent`

Nested classes inherited from class java.awt.Container
`Container.AccessibleAWTContainer`

Nested classes inherited from class java.awt.Component
`Component.AccessibleAWTComponent, Component.BltBufferStrategy, Component.FlipBufferStrategy`

Field Summary
`protected Item` | `item` Das von dieser View angezeigt Item
`protected MessageList` | `ml` Messagelist für die Methode `getData(de.jsystems.framework.common.Item)`.
`protected int` | `mode` Modus der View
`protected FPanel` | `printComponent` Druckbare Komponente
`protected ViewItemValidator` | `validator` Das Validierungsobjekt zur Oberflächenprüfung.

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.Container
``

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
`BusinessView()` Erzeugt eine neue View.
`BusinessView(Class itemClass)` Erzeugt eine neue View.

Method Summary
`protected void` | `bindModels()` Verbindet `ComboBoxen` und `Listen` mit ihren Models fuer die anzuzeigenden Daten, sofern in den Controls eine Klasse für das Model gesetzt wurde.
`protected Object` | `castDynamicItemAttribut(DynamicItem item, Object value, String attributeName)` Diese Methode muss überschrieben werden, wenn ein Item einen Attributtypen enthält, der nicht automatisch umgewadelt werden konnte.
`void` | `clearComponent(String name)` Loescht den Inhalt der Komponente mit dem uebergebenen Namen.
`void` | `clearData()` Löscht den Inhalt von Oberflächenelementen.
`void` | `disableComponent(String name)` Schaltet die Komponente mit dem uebergebenen Namen auf nichteditierbar.
`void` | `enableComponent(String name)` Schaltet die Komponente mit dem uebergenen Namen auf Editierbar.
`void` | `getData(DynamicItem item)` Liest die Felder der Oberfläche aus und speichert die enthaltenen Werte im übergebenem Item.
`void` | `getData(Item item)` Liest die Felder der Oberfläche aus und speichert die enthaltenen Werte im übergebenem Item.
`JComponent` | `getKomponente(String name)` Gibt die Komponente zurück, die den übergebenen Namen hat.
`JComponent[]` | `getKomponenten(JComponent c)` Holt rekursiv alle Komponenten aus der übergebenen JComponent.
`MessageList` | `getMessageList()` Gibt die MessageList dieser View zurück.
`int` | `getMode()` Gibt den aktuellen Modus der View zurück.
`FPanel` | `getPrintComponent()` Gibt die zu druckende Componente zurück.
`Dimension` | `getSize()` Gibt die Grösse zurück, die der Dialog oder das Fenster erhalten soll, wenn diese View angezeigt wird.
`String` | `getTitel()` Setzt den Titel für die Titelzeile eines Dialoges oder eines Fensters.
`protected void` | `getUserData(Item item)` Hier können noch weitere Benutzerabhängige Werte aus der Oberfläche gelesen und im Item geparkt werden.
`abstract String` | `getViewName()` Gibt den Namen der View an.
`protected abstract void` | `initGui()` Erzeugt die Oberfläche.
`protected abstract void` | `initGuiElementNames()` In dieser Methode muss all den Oberflächenelementen ein Name gegeben werden, die mit der Methode `setData(Item)` oder `setData(DynamicItem)` automatisch gefüllt werden sollen.
`protected abstract void` | `initGuiElements()` Erzeugt die Oberfl�chenkomponenten (Panels, Textfelder, ...)
`protected void` | `initPrintComponent()` Wird in abgeleiteten Klassen überschrieben, wenn diese das Drucken unterstützen sollen.
`boolean` | `isModal()` Legt fest, ob ein Dialog Modal ist oder nicht.
`boolean` | `isResizable()` Legt fest, ob die View in der Grösse veränderbar sein soll bei der Anzeige oder nicht.
`protected void` | `labelView()` Füllt all die Oberflächenelemente, die nicht Editierbar sind.
`protected void` | `markMussfelder()` Markiert Eingabefelder für Muss-Attribute des Items.
`void` | `setData(DynamicItem item)` Füllt die Oberfläche mit den Werten aus dem Item.
`void` | `setData(Item item)` Füllt die Oberfläche mit den Werten aus dem Item.
`void` | `setMode(int mode)` Setzt den Ansichtsmodus für diesen Dialog.
`void` | `setTextData(String name, String text)` Setzt den Text in einer Textkomponente.
`protected void` | `setUserData(Item item)` Hier können noch weitere Benutzerabhängige Werte in die Oberfläche geschrieben werden.
`void` | `setViewItemValidator(ViewItemValidator v)` Setzt den ItemValidator fuer diese View.
`void` | `validateView(Item item, MessageList messageList)` Ueberprueft die Eingaben in der Oberflaeche mit Hilfe des uebergebenen Items.
`void` | `validateView(MessageList messageList)` Ueberprueft die Eingaben in der Oberflaeche.

Methods inherited from class de.jsystems.framework.controls.FPanel
`addMouseInputListener, getActionClassForAncestor, getActionClassForComponent, getActionClassForContainer, getActionClassForFocus, getActionClassForHierarchy, getActionClassForHierarchyBounds, getActionClassForInputMethod, getActionClassForKey, getActionClassForMouse, getActionClassForMouseInput, getActionClassForMouseMotion, getActionClassForPropertyChange, getActionClassForVetoableChange, removeMouseInputListener, setActionClassForAncestor, setActionClassForComponent, setActionClassForContainer, setActionClassForFocus, setActionClassForHierarchy, setActionClassForHierarchyBounds, setActionClassForInputMethod, setActionClassForKey, setActionClassForMouse, setActionClassForMouseInput, setActionClassForMouseMotion, setActionClassForPropertyChange, setActionClassForVetoableChange`

Methods inherited from class javax.swing.JPanel
`getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI`

Methods inherited from class javax.swing.JComponent
`addAncestorListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBorder, getBounds, getClientProperty, getComponentGraphics, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getGraphics, getHeight, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isOptimizedDrawingEnabled, isPaintingTile, isPreferredSizeSet, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFont, setForeground, 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, 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, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setFocusCycleRoot, setFocusTraversalKeys, setFocusTraversalPolicy, 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, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMouseWheelListeners, getName, getParent, getPeer, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, 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, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, 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
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface de.jsystems.framework.common.action.IActionInterface
`isEnabled, setEnabled`

Methods inherited from interface de.jsystems.framework.common.action.swing.IAncestor
`addAncestorListener, removeAncestorListener`

Methods inherited from interface de.jsystems.framework.common.action.beans.IPropertyChange
`addPropertyChangeListener, removePropertyChangeListener`

Methods inherited from interface de.jsystems.framework.common.action.beans.IVetoableChange
`addVetoableChangeListener, removeVetoableChangeListener`

Methods inherited from interface de.jsystems.framework.common.action.awt.IContainer
`addContainerListener, removeContainerListener`

Methods inherited from interface de.jsystems.framework.common.action.awt.IComponent
`addComponentListener, removeComponentListener`

Methods inherited from interface de.jsystems.framework.common.action.awt.IFocus
`addFocusListener, removeFocusListener`

Methods inherited from interface de.jsystems.framework.common.action.awt.IHierarchy
`addHierarchyListener, removeHierarchyListener`

Methods inherited from interface de.jsystems.framework.common.action.awt.IHierarchyBounds
`addHierarchyBoundsListener, removeHierarchyBoundsListener`

Methods inherited from interface de.jsystems.framework.common.action.awt.IInputMethod
`addInputMethodListener, removeInputMethodListener`

Methods inherited from interface de.jsystems.framework.common.action.awt.IKey
`addKeyListener, removeKeyListener`

Methods inherited from interface de.jsystems.framework.common.action.awt.IMouse
`addMouseListener, removeMouseListener`

Methods inherited from interface de.jsystems.framework.common.action.awt.IMouseMotion
`addMouseMotionListener, removeMouseMotionListener`

Field Detail

### printComponent

    protected FPanel printComponent

  Druckbare Komponente

### item

    protected Item item

  Das von dieser View angezeigt Item

### mode

    protected int mode

  Modus der View

### ml

    protected MessageList ml

  Messagelist für die Methode `getData(de.jsystems.framework.common.Item)`.

### validator

    protected ViewItemValidator validator

  Das Validierungsobjekt zur Oberflächenprüfung.

Constructor Detail

### BusinessView

    public BusinessView(Class itemClass)
                 throws ItemInstantiateException

  Erzeugt eine neue View. Dabei werden zum Initialisieren die folgenden Methoden aufgerufen(in der angegebenen Reihenfolge):
  - `initGuiElements()`
  - `initGuiElementNames()`
  - `initGui()`
  - `labelView()`
  - `markMussfelder()`
    Als Parameter wird die Klasse des Items übergeben, das von dieser View angezeigt wird. Das Item wird zum prüfen und makieren der Mussfelder benötigt.

Parameters:
  `itemClass` - Der Typ des Items dessen Felder mit der Oberflaeche verbunden werden.
Throws:
  `ItemInstantiateException` - wenn die übergebene Klasse nicht instanziiert werden konnte.

### BusinessView

    public BusinessView()

  Erzeugt eine neue View. Dabei werden zum Initialisieren die folgenden Methoden aufgerufen(in der angegebenen Reihenfolge):
  - `initGuiElements()`
  - `initGuiElementNames()`
  - `initGui()`
  - `labelView()`
    Beim Initialisieren mit dieser Methode kann keine automatische Prüfung der Mussfelder stattfinden, da das Item nicht bekannt ist. Deshalb werden in der Oberfläche die Eingabefelder auch nicht markiert.

Method Detail

### initGuiElements

    protected abstract void initGuiElements()

  Erzeugt die Oberfl�chenkomponenten (Panels, Textfelder, ...) die angezeigt werden sollen. Muss in abgeleiteten Klassen überschrieben werden.

### initGuiElementNames

    protected abstract void initGuiElementNames()

  In dieser Methode muss all den Oberflächenelementen ein Name gegeben werden, die mit der Methode `setData(Item)` oder `setData(DynamicItem)` automatisch gefüllt werden sollen. Falls die Oberfläche auch `ComboBoxen` oder `Listen` enthält, die automatisch mit ihren Models verbunden werden sollen, so kann hier auch in den entsprechenden Controls der Klassenname für die Models gesetzt werden. Muss in abgeleiteten Klassen überschrieben werden.

### initGui

    protected abstract void initGui()

  Erzeugt die Oberfläche. In dieser Methode geschieht die Anordnung der einzelnen Oberflächenelemente. Die Methode muss in abgeleiteten Klassen überschrieben werden. Das Layout fur diese View muss auch in dieser Methode gesetzt werden. Das darf nicht in einer anderen Methode(z.B. dem Konstruktor) geschehen, da diese Methode vor dem Konstruktor der View aufgerufen wird.

### labelView

    protected void labelView()

  Füllt all die Oberflächenelemente, die nicht Editierbar sind. Mit nicht Editierbar ist hier gemeint: FLabel, TitledBorder, etc. Also alle Elemente, die zwar Schrift darstellen, aber nicht aus dem Model gefüllt werden.

### bindModels

    protected void bindModels()

  Verbindet `ComboBoxen` und `Listen` mit ihren Models fuer die anzuzeigenden Daten, sofern in den Controls eine Klasse für das Model gesetzt wurde. Diese Models werden hier via Reflection erzeugt. Voraussetzung hierzu ist, das die Klassen vorhanden sind und einen parameterlosen Konstruktor haben. Falls beim Erzeugen oder Setzen der Models ein Fehler auftritt, so wird hier keine Exception ausgelöst, sondern lediglich ein Eintrag in der MessageList der View vorgenommen. Das entsprechende Control hat dann natürlich keinen Inhalt.

### markMussfelder

    protected void markMussfelder()

  Markiert Eingabefelder für Muss-Attribute des Items. Standardmässig wird für diese Felder hier eine rote Hintergrundfarbe gesetzt. Ausgelesen wird das Item der View ueber die enthaltenen get-Methoden. Allerdings werden die get-Methoden der folgenden Klassen dabei nicht berueckschtigt:
  - `Object`
  - `Item`
  - `TableItem`
  - `TreeItem`
    Das liegt daran, das es sich bei diesen Klassen um Basisklassen handelt, die durchaus get-Methoden haben, diese aber keine eigentlichen Datenattribute der Items sind.
    Falls beim auslesen der Methoden im Item ein Fehler auftritt, wird die Methode abgebrochen. In diesem Fall wird eine `MarkMussFelderException` ausgeloest.

  Throws:
    `MarkMussFelderException` - wenn ein Fehler beim Auslesen der Itemfelder auftritt.

### getMessageList

    public MessageList getMessageList()

  Gibt die MessageList dieser View zurück. Diese enthaelt alle Nachrichten, die bei der automatischen Feldueberwachung gefuellt wurden. Das Objekt ist immer vorhanden, aber ggf. leer.

  Returns:
    Die MessageList der View.

### getViewName

    public abstract String getViewName()

  Gibt den Namen der View an. Diese Methode muss überschrieben werden in abgeleiteten Klassen. Dieser Name wird beim registrieren der View als Schlüssel benutzt, damit die View auch wiedergefunden werden kann. Der Name muss eindeutig sein.

  Returns:
    Der Name der View.

### isResizable

    public boolean isResizable()

  Legt fest, ob die View in der Grösse veränderbar sein soll bei der Anzeige oder nicht. Standardmässig gibt die Methode `true` zurück. Falls ein anderes Verhalten gewünscht ist muss die Methode überschrieben werden.

  Returns:
    true oder false, je nach gewünschter Eigenschaft. Standardmässig true.

### getTitel

    public String getTitel()

  Setzt den Titel für die Titelzeile eines Dialoges oder eines Fensters. Diese Methode sollte von abgeleiteten Klassen ueberschrieben werden, da sonst ueberall der Titel `"Titel für die View muss gesetzt werden"` erscheint.

  Returns:
    Der Titel des Dialoges oder Frames.

### isModal

    public boolean isModal()

  Legt fest, ob ein Dialog Modal ist oder nicht. Falls diese Komponente in einem Frame angezeigt wird hat der Inhalt dieser Methode keine Auswirkung, da ein Fenster nicht modal sein kann. Die Methode gibt standardmässig false zurück und muss für ein anderes Verhalten überschrieben werden.

  Returns:
    true oder false, je nach gewünschter Eigenschaft. Standardmässig false.

### getSize

    public Dimension getSize()

  Gibt die Grösse zurück, die der Dialog oder das Fenster erhalten soll, wenn diese View angezeigt wird. Standardmässig wird die Grösse der View zurückgegeben. Falls ein anderer Wert gewünscht wird, muss diese Methode überschrieben werden.

  Returns:
    Die Grösse der View als Dimension-Objekt.

### getData

    public void getData(Item item)
                 throws GetItemMethodNotAllowedException,
                        ItemInvokeException

  Liest die Felder der Oberfläche aus und speichert die enthaltenen Werte im übergebenem Item. Braucht von abgeleiteten Klassen nicht überschrieben werden, ausser es wird ein anderes Verhalten gewünscht. Bei Componenten, die mehr als eine Selektierte Zeile haben k�nnen (JList, JComboBox), wird nur der erste selektierte Eintrag ausgewählt. Folgende Componenten werden berücksichtigt:
  - `JToggleButton` (auch `JCheckBox`, `JRadioButton`)
  - `JComboBox`
  - `JPasswordField`
  - `JTextComponent` (auch `JEditorPane`, `JTextArea`, `JTextField`)
  - `JList`
  - `JLabel`

    Im Anschluss an diese Methode wird die Methode `getUserData(Item)` aufgerufen. Hier koennen nun Werte aud der Oberflaeche im Item gespeichert werden, die sich aus welchem Grund auch immer nicht automatisch uebernehmen lassen.

  Parameters:
    `item` - Das zu füllende Item.
  Throws:
    `GetItemMethodNotAllowedException` - wenn ein Fehler Auftritt beim holen der set-Methoden des Items.
    `ItemInvokeException` - wenn beim Aufruf einer Methode ein Fehler aufgetreten ist.

### getData

    public void getData(DynamicItem item)
                 throws WrongValueTypeException

  Liest die Felder der Oberfläche aus und speichert die enthaltenen Werte im übergebenem Item. Braucht von abgeleiteten Klassen nicht überschrieben werden, ausser es wird ein anderes Verhalten gewünscht. Bei Componenten, die mehr als eine selektierte Zeile haben können (JList, JComboBox), wird nur der erste selektierte Eintrag ausgewählt. Folgende Componenten werden berücksichtigt:
  - `JToggleButton` (auch `JCheckBox`, `JRadioButton`)
  - `JComboBox`
  - `JPasswordField`
  - `JTextComponent` (auch `JEditorPane`, `JTextArea`, `JTextField`)
  - `JList`
  - `JLabel`

    Wenn das Attribut im DynamicItem ein Typ der Wrapperklassen(Byte, Short, Integer,...) ist, wird automatisch versucht zu casten. Tritt dabei ein Fehler auf, so wird dieser in der MessageList der View geloggt.
    Eine `WrongValueTypeException` wird ausgeloesst, wenn beim setzen des Wertes im DynamicItem der Typ nicht uebereinstimmt.
    Die MessageList wird bei Aufruf dieser Methode geloescht!!. Nach dem Aufruf befinden sich nur die Fehlereintraege aus dieser Methode in der MessageList, sofern beim lesen der Daten Fehler aufgetreten sind.

    Im Anschluss an diese Methode wird die Methode `getUserData(Item)` aufgerufen. Hier koennen nun Werte aus der Oberflaeche im Item gespeichert werden, die sich aus welchem Grund auch immer nicht automatisch uebernehmen lassen.

  Parameters:
    `item` - Das zu füllende Item.
  Throws:
    `WrongValueTypeException` - Wenn sich die Eingabe der Oberflaeche nicht in den Typ des zugehoerigen Attributess umwandeln laest.
  See Also:
    `getMessageList()`

### castDynamicItemAttribut

    protected Object castDynamicItemAttribut(DynamicItem item,
                                             Object value,
                                             String attributeName)

  Diese Methode muss überschrieben werden, wenn ein Item einen Attributtypen enthält, der nicht automatisch umgewadelt werden konnte. Defaultmässig wird hier `value` unverändert zurückgegeben.

  Parameters:
    `item` - Das Item dessen Attribut gesetzt werden soll.
    `value` - Der zu castende Wert.
    `attributeName` - Der Name des Attributes dessen Wert gesetzt werden soll.
  Returns:
    Der umgewandelte Wert, diesmal aber vom richtigen Typ.

### getUserData

    protected void getUserData(Item item)

  Hier können noch weitere Benutzerabhängige Werte aus der Oberfläche gelesen und im Item geparkt werden. Diese Methode wird von den Methoden
  `getData(Item)`
  `getData(DynamicItem)`
  jeweils am Ende dieser Methoden aufgerufen. Sie kann überschrieben werden, wenn Oberflächenelemente, die keinen Namen haben, Werte in das Item schreiben sollen. Oder die Werte aus welchem Grund auch immer nicht automatisch uebernommen werden koennen.

  Parameters:
    `item` - Das Item, das aus der Oberflaeche gefuellt werden soll.

### setData

    public void setData(Item item)
                 throws GetItemMethodNotAllowedException,
                        ItemInvokeException

  Füllt die Oberfläche mit den Werten aus dem Item. Braucht von abgeleiteten Klassen nicht überschrieben werden, ausser es wird ein anderes Verhalten gewünscht. Bei Componenten, die mehr als eine Selektierte Zeile haben können (JList, JComboBox), wird nur der erste Eintrag selektiert. Folgende Componenten werden berücksichtigt:
  - `JToggleButton` (auch `JCheckBox`, `JRadioButton`)
  - `JComboBox`
  - `JPasswordField`
  - `JTextComponent` (auch `JEditorPane`, `JTextArea`, `JTextField`)
  - `JList`
  - `JLabel`

    Subklassen der oben angegebenen Klassen werden automatisch unterstützt.

    Im Anschluss an diese Methode wird die Methode `setUserData(Item)` aufgerufen.

  Parameters:
    `item` - Das Item dessen Werte in die Oberflaeche geschrieben werden sollen.
  Throws:
    `GetItemMethodNotAllowedException` - wenn beim auslesen der Methoden im Item ein Fehler auftritt.
    `ItemInvokeException` - Wenn beim aufruf einer get-Methode im Item ein Fehler auftritt.
  See Also:
    `#setCompData(JComponent, Object)`

### setData

    public void setData(DynamicItem item)

  Füllt die Oberfläche mit den Werten aus dem Item. Braucht von abgeleiteten Klassen nicht überschrieben werden, ausser es wird ein anderes Verhalten gewünscht. Bei Componenten, die mehr als eine Selektierte Zeile haben können (JList, JComboBox), wird nur der erste Eintrag selektiert. Folgende Componenten werden berücksichtigt:
  - `JToggleButton` (auch `JCheckBox`, `JRadioButton`)
  - `JComboBox`
  - `JPasswordField`
  - `JTextComponent` (auch `JEditorPane`, `JTextArea`, `JTextField`)
  - `JList`
  - `JLabel`

    Subklassen der oben angegebenen Klassen werden automatisch unterstützt.

    Im Anschluss an diese Methode wird die Methode `setUserData(Item)` aufgerufen.

  Parameters:
    `item` - Das Item dessen Werte mit der Oberflaeche verbunden werden sollen.

### setUserData

    protected void setUserData(Item item)

  Hier können noch weitere Benutzerabhängige Werte in die Oberfläche geschrieben werden. Diese Methode wird von den Methoden `setData(Item)` `setData(DynamicItem)`
  aufgerufen. Sie kann überschrieben werden, wenn Oberflächenelemente, die keinen Namen haben, mit Werten aus dem Item gefüllt werden sollen. Oder aus welchem Grund auch immer die Oberflaeche nicht automatisch mit den Werten aus dem Item gefuellt werden kann.

  Parameters:
    `item` - Das Item dessen Werte in der Oberflaeche angezeigt werden sollen.

### clearData

    public void clearData()

  Löscht den Inhalt von Oberflächenelementen.
  Dabei werden nur die folgenden Elemente berücksichtigt:
  - `JToggleButton` (auch `JCheckBox`, `JRadioButton`)
  - `JComboBox`
  - `JPasswordField`
  - `JTextComponent` (auch `JEditorPane`, `JTextArea`, `JTextField`)
  - `JList`
  - `JLabel`
    Voraussetzung zum löschen des Feldinhaltes ist allerdings, das die Komponente einen Namen hat. Dann wird sie normalerweise auch durch das Item gefüllt. So wird verhindert, das Feldbeschriftungen gelöscht werden die nicht aus dem Model gefuellt wurden. Subklassen der oben angegebenen Klassen werden automatisch unterstützt.

### setMode

    public void setMode(int mode)

  Setzt den Ansichtsmodus für diesen Dialog. Mögliche Modi:
  - `EDITMODE`
  - `SHOWMODE`
    Dabei gilt folgende Festlegung:
    EDITMODE: alle Felder, die eine Eingabe entgegennehmen können, werden auf editierbar gesetzt.
    SHOWMODE: alle Felder, die editiert werden können, werden auf nicht Editierbar gesetzt.
    Berücksichtigt werden folgende Komponenten:
  - `JToggleButton` (auch `JCheckBox`, `JRadioButton`)
  - `JComboBox`
  - `JPasswordField`
  - `JTextComponent` (auch `JEditorPane`, `JTextArea`, `JTextField`)
  - `JList`
  - `JLabel`
    Subklassen der oben angegebenen Klassen werden automatisch unterstützt. Für ein differenzierteres Handling muss diese Methode überschrieben werden.

  Parameters:
    `mode` - Der Modus fuer diese View.

### getMode

    public int getMode()

  Gibt den aktuellen Modus der View zurück.

  Returns:
    der Modus der View.

### initPrintComponent

    protected void initPrintComponent()

  Wird in abgeleiteten Klassen überschrieben, wenn diese das Drucken unterstützen sollen. Abgeleitete Klassen sollten am Anfang der Methode einen super()-Aufruf stehen haben, damit die Componente initialisiert wird falls nicht die BusinessView selbst gedruckt werden soll. Dann muss an die Variable printComponent nur this zugewiesen werden. Dann kann entweder die abgeleitete Klasse an printComponent übergeben werden
  `printComponent = this;`
  oder aber es soll Text gedruckt werden. Dieser wird dann einfach Zeilenweise der PrintComponent hinzugefügt.
  `printComponent.addText("foo");`
  Dabei muss der übergebene String schon formatiert sein. Es dürfen keine Escape-Sequenzen im String vorkommen.

  See Also:
    `getPrintComponent()`

### getPrintComponent

    public final FPanel getPrintComponent()

  Gibt die zu druckende Componente zurück. Standardmässig ist das ein Objekt vom Typ `PrintComponent`. Hier wird aber ein JPanel zurückgegeben. Damit Methoden der PrintComponent benutzt werden können, muss erst ein Cast statfinden. Kann in abgeleiteten Klassen nicht überschrieben werden.

  Returns:
    Die PrintComponent fuer diese View.

### setViewItemValidator

    public void setViewItemValidator(ViewItemValidator v)

  Setzt den ItemValidator fuer diese View. Mit diesem Validator kann ueber die Methoden `validateView(Item, MessageList)` bzw. `validateView(MessageList)` die Eingabe in der Oberflaeche geprueft werden. Bei dieser Pruefung wird noch nichts in der fachlichen Welt gespeichert.

  Parameters:
    `v` - Der ViewItemValidator zum pruefen der Eingaben.
  See Also:
    `validateView(Item, MessageList)`, `validateView(MessageList)`

### validateView

    public void validateView(MessageList messageList)
                      throws ValidateNotSupportedException,
                             ValidateException

  Ueberprueft die Eingaben in der Oberflaeche. Dabei wird das Item benutzt, das im Konstruktor der View uebergeben wurde. Allerdings wird nicht das uebergebene Item benutzt, sondern eine Kopie des Items. Somit stehen die Eingaben nach der Validierung noch nicht in einem Item der fachlichen Welt, Dazu muss anschliessend die Methode `getData(Item)` bzw. `getData(DynamicItem)` aufgerufen werden, da erst diese die Eingaben in das Item uebernehmen.
  Bei der Pruefung auftretende Fehlermeldungen werden in der uebergebenen MessageList gespeichert. Falls hier NULL uebergeben wurde wird die MessageList der View benutzt.

  Parameters:
    `messageList` - Die MessageList in der alle aufgetretenen Validierungsfehler eingetragen werden sollen.
  Throws:
    `ValidateNotSupportedException` - Wenn kein Validator in der View gesetzt ist.
    `ValidateException` - Wenn beim kopieren des Items ein Fehler auftritt.

### validateView

    public void validateView(Item item,
                             MessageList messageList)
                      throws ValidateNotSupportedException,
                             ValidateException

  Ueberprueft die Eingaben in der Oberflaeche mit Hilfe des uebergebenen Items. Dabei werden alle gefundenen Fehler in der uebergebenen MessageList gespeichert. Falls hier NULL uebergeben wurde, wird die MessageList der View genommen. Automatisch geprueft werden hier die logischen Fehlermoeglichkeiten, wie zum Beispiel nicht gefuellte Mussfelder oder Texteingaben, wenn nur Zahlen erlaubt sind. Fuer die fachliche Pruefung muss der ueber die Methode `setViewItemValidator(ViewItemValidator)` gesetzte Validator entsprechend implementiert sein. Hier wird im Validator die Methode `ViewItemValidator.validate(BusinessView, MessageList)` aufgerufen, in der die fachliche Pruefung stattfinden kann. Die Pruefung findet nicht direkt mit dem uebergebenen Item statt, sondern mit einer Kopie des Items.
  Falls kein Validator gesetzt wurde wird eine `ValidateNotSupportedException` ausgeloest.
  Falls beim kopieren des Items ein Fehler auftritt wird eine `ValidateException` ausgeloest.
  Das Item darf nicht NULL sein, da sonst eine `IllegalArgumentException` ausgeloest wird.

  Parameters:
    `item` - Das Item mit dem die Eingaben in der Oberflaeche geprueft werden sollen.
    `messageList` - Die MessageList in der alle aufgetretenen Validierungsfehler eingetragen werden sollen.
  Throws:
    `ValidateNotSupportedException` - Wenn kein Validator in der View gesetzt ist.
    `ValidateException` - Wenn beim kopieren des Items oder bei der Validierung an sich ein Fehler auftritt.

### getKomponenten

    public JComponent[] getKomponenten(JComponent c)

  Holt rekursiv alle Komponenten aus der übergebenen JComponent. Dabei werden nur SWING-Componenten berücksichtigt. Das wird daran festgemacht, das die Controls auf der uebergebenen JComponent selbst wiederum vom Typ `JComponent` sind.

  Parameters:
    `c` - Die Komponente deren enthaltenen Komponenten geholt werden sollen.
  Returns:
    Ein Array mit allen Komponenten die sich auf der uebergebenen Komponente befinden.

### getKomponente

    public JComponent getKomponente(String name)

  Gibt die Komponente zurück, die den übergebenen Namen hat. Wenn es unter diesem Namen keine Komponente nicht gibt, wird `NULL` zurückgegeben.

  Parameters:
    `name` - Der Name der gesuchten Komponente.
  Returns:
    Die Komponente mit dem übergebenen Namen oder `NULL`.

### enableComponent

    public void enableComponent(String name)

  Schaltet die Komponente mit dem uebergenen Namen auf Editierbar. Falls es unter dem uebergebenen Namen keine Komponente gibt passiert hier nichts weiter. Der Name muss der gleiche Name sein, mit den die Komponente auch mit einem Attribut im Item verbunden wird.

  Parameters:
    `name` - Der Name der Komponente.

### disableComponent

    public void disableComponent(String name)

  Schaltet die Komponente mit dem uebergebenen Namen auf nichteditierbar. Falls es unter dem uebergebenen Namen keine Komponente gibt passiert hier nichts weiter. Der Name muss der gleiche Name sein, mit dem die Komponente auch mit einem Attribut im Item verbunden wird.

  Parameters:
    `name` - Der Name der Komponente.

### clearComponent

    public void clearComponent(String name)

  Loescht den Inhalt der Komponente mit dem uebergebenen Namen. Falls es unter dem Namen keine Komponente gibt, so passiert hier nichts weiter. Als Name muss hier der gleiche Name uebergeben werden mit dem auch ein Item mit dem Control verbunden ist. Dabei werden nur die folgenden Elemente berücksichtigt:
  - `JToggleButton` (auch `JCheckBox`, `JRadioButton`)
  - `JComboBox`
  - `JPasswordField`
  - `JTextComponent` (auch `JEditorPane`, `JTextArea`, `JTextField`)
  - `JList`
  - `JLabel`
    Abgeleitete Typen werden automatisch unterstützt.

  Parameters:
    `name` - Der Name der zu loeschenden Komponenten.

### setTextData

    public void setTextData(String name,
                            String text)

  Setzt den Text in einer Textkomponente. Die Textkomponente wird ueber den Namen gesucht. Falls unter diesem Namen keine Komponente existiert, so passiert hier nichts weiter. Die angesprochene Komponente muss vom Typ `JTextComponent` (auch `JEditorPane`, `JTextArea`, `JTextField`) sein. Abgeleitete Typen werden automatisch unterstützt. Falls die Komponente von einem anderen Typ ist passiert nichts. Als Name muss hier der gleiche Name uebergeben werden mit dem auch ein Item mit dem Control verbunden ist.

  Parameters:
    `name` - Der Name der Komponente.
    `text` - Der Text, der in der Komponente angezeigt werden soll.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD