de.jsystems.framework.common
Class BusinessView

java.lang.Object
  extended byjava.awt.Component
      extended byjava.awt.Container
          extended byjavax.swing.JComponent
              extended byjavax.swing.JPanel
                  extended byde.jsystems.framework.controls.FPanel
                      extended byde.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.