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.menu
Class BusinessMenu

    java.lang.Object
      java.awt.Component
          java.awt.Container
              javax.swing.JComponent
                  javax.swing.JMenuBar
                      de.jsystems.framework.controls.FMenuBar
                          de.jsystems.framework.menu.BusinessMenu

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

public class BusinessMenu
extends FMenuBar

Diese Klasse erzeugt ein Menue aufgrund des Inhaltes einer Properties-Datei. Reagiert wird auf die Menuepunkte in entsprechenden Actionklassen, wobei diese Klassen in der Propertiesdatei mit angegeben sind. Als Beispiel fuer den Aufbau der Datei kann die Datei `defaultmenu.properties` benutzt werden. Um sich das erzeugen eines Menues einfacher zu machen, kann mit Microsoft VisualC++ mit dem Resourceneditor ein Menue erzeugt werden. In der Datei `*.rc` befindet sich im Abschnitt
`///////////////////////////////////////////////////////////////////////////// // // Menu // IDR_MENU1 MENU DISCARDABLE BEGIN POPUP "Datei" ...`
der Aufbau des Menues. Hier sind allerdings noch kleine Anpassungen notwendig, damit dieser Abschnitt zum erzeugen eines Menues benutzt werden kann. Zuerst muß der generierte Text ab der Zeile `IDR_MENU1 MENU DISCARDABLE` mit `TITEL` bzw. `ENDTITEL` eingeklammert werden. Die Zeilen mit den Slashes `'/'` und die Zeile `IDR_MENU1 MENU DISCARDABLE` werden entfernt. Der Bezeichner 'POPUP' wird durch 'MENU' ersetzt. Ebenso verschwinden alle Anfuehrungszeichen. Die Eintraege fuer die einzelnen Menuepunkte muessen mit 'ITEM', 'RADIOITEM' oder 'CHECKBOXITEM' beginnen, nicht mit 'MENUITEM'. Was natuerlich auch noch noetig ist, ist das setzen der Actionklassennamen fuer die einzelnen Menuepunkte. Hier wird wieder auf die Datei `defaultmenu.properties` verwiesen. Als letztes muessen die Zeilen nur noch gepipt('|') werden, damit sie so aussehen wie in der Datei `defaultmenu.properties`.

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

Nested Class Summary

Nested classes inherited from class javax.swing.JMenuBar
`JMenuBar.AccessibleJMenuBar`

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 ActionManager` | `am` ActionManager aus dem Controller.
`protected Controller` | `controller` Controller fuer die Menueaktions
`protected Hashtable` | `menuEntrys` Hashtable mit allen Menuepunkten.
`protected String` | `propName` Name der Properties-Datei
`protected MenuParamString` | `zeilen` ParamString-Objekt

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
`BusinessMenu(Controller controller, String propName)` Konstruktor.

Method Summary
`void` | `addMenu(FMenu menu, int index)` Fuegt dem Menue ein weiteres Menue hinzu.
`void` | `addMenuItem(String name, JMenuItem item, int index)` Fuegt dem ueber den Namen spezifizierten Menue einen Menuepunkt hinzu.
`void` | `disableMenuEntry(String name)` Schaltet den durch den uebergebenen Text gekennzeichneten Menuepunkt ab.
`void` | `enableMenuEntry(String name)` Schaltet den durch den uebergebenen Text gekennzeichneten Menuepunkt wieder aktiv.
`boolean` | `existMenuEntry(String name)` Prueft, ob es unter dem uebergebenen Namen einen Menueeintrag gibt.
`JMenuItem` | `getMenuEntry(String name)` Gibt den Menueeintrag zurueck, der dem uebergebenen Namen entspricht.
`void` | `hideMenuEntry(String name)` Schaltet den durch den uebergebenen Text gekennzeichneten Menuepunkt unsichtbar.
`JMenuItem` | `removeMenuEntry(String name)` Loescht den mit dem Namen spezifizierten Menueeintrag aus dem Menue.
`void` | `save(String filename)` Speichert das Menue in einer Properties-Datei.
`void` | `unhideMenuEntry(String name)` Schaltet den durch den uebergebenen Text gekennzeichneten Menuepunkt wieder sichtbar.

Methods inherited from class de.jsystems.framework.controls.FMenuBar
`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.JMenuBar
`add, addNotify, getAccessibleContext, getComponent, getComponentAtIndex, getComponentIndex, getHelpMenu, getMargin, getMenu, getMenuCount, getSelectionModel, getSubElements, getUI, getUIClassID, isBorderPainted, isSelected, menuSelectionChanged, paintBorder, paramString, processKeyBinding, processKeyEvent, processMouseEvent, removeNotify, setBorderPainted, setHelpMenu, setMargin, setSelected, setSelectionModel, setUI, updateUI`

Methods inherited from class javax.swing.JComponent
`addAncestorListener, 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, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, 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, getSize, 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

### menuEntrys

    protected Hashtable menuEntrys

  Hashtable mit allen Menuepunkten. Wird benoetigt, um Menuepunkte ein- und auszuschalten.

### controller

    protected Controller controller

  Controller fuer die Menueaktions

### propName

    protected String propName

  Name der Properties-Datei

### zeilen

    protected MenuParamString zeilen

  ParamString-Objekt

### am

    protected ActionManager am

  ActionManager aus dem Controller.

Constructor Detail

### BusinessMenu

    public BusinessMenu(Controller controller,
                        String propName)
                 throws CreateMenueException

  Konstruktor. Erzeugt das Menue mit den Daten in der angegebenen Datei. Im ActionManager des uebergebenen Controllers werden die einzelnen Menuepunkte registriert.

Parameters:
  `controller` - Der Controller, fuer das Menue.
  `propName` - Name der Propertiy-Datei fuer den Menueaufbau.
Throws:
  `CreateMenueException` - wenn beim erzeugen des Menues ein Fehler aufgetreten ist.

Method Detail

### disableMenuEntry

    public void disableMenuEntry(String name)

  Schaltet den durch den uebergebenen Text gekennzeichneten Menuepunkt ab. Damit wird der Text des Menuepunktes dann grau dargestellt und das Menue kann nicht mehr angeklickt werden. Der Name entspricht dabei dem in der Methode `#setMenuNamen(FMenu, String)` beschriebenen Aufbau. Der Name entspricht dabei nicht dem angezeigten Text im Menue, sondern der Hirarchy des Menuepunktes im kompletten Menuebaum.

  Parameters:
    `name` - Der Name des abzuschaltenden Menuepunktes.
  See Also:
    `enableMenuEntry(String)`

### enableMenuEntry

    public void enableMenuEntry(String name)

  Schaltet den durch den uebergebenen Text gekennzeichneten Menuepunkt wieder aktiv. Damit wird der Text des Menuepunktes nicht mehr grau dargestellt und das Menue kann wieder angeklickt werden. Der Name entspricht dabei dem in der Methode `#setMenuNamen(FMenu, String)` beschriebenen Aufbau. Der Name entspricht dabei nicht dem angezeigten Text im Menue, sondern der Hirarchy des Menuepunktes im kompletten Menuebaum.

  Parameters:
    `name` - Der Name des einzuschaltenden Menuepunktes.
  See Also:
    `disableMenuEntry(String)`

### hideMenuEntry

    public void hideMenuEntry(String name)

  Schaltet den durch den uebergebenen Text gekennzeichneten Menuepunkt unsichtbar. Damit verschwindet der Menuepunkt nur fuer die Anzeige aus dem Menue. Er ist aber immer noch im Menue vorhanden. Der Name entspricht dabei dem in der Methode `#setMenuNamen(FMenu, String)` beschriebenen Aufbau. Der Name entspricht nicht dem angezeigten Text im Menue, sondern der Hirarchy des Menuepunktes im kompletten Menuebaum.

  Parameters:
    `name` - Der Name des unsichtbarzuschaltenden Menuepunktes.
  See Also:
    `unhideMenuEntry(String)`

### unhideMenuEntry

    public void unhideMenuEntry(String name)

  Schaltet den durch den uebergebenen Text gekennzeichneten Menuepunkt wieder sichtbar. Damit erscheint der Menuepunkt wieder in der Anzeige des Menues. Der Name entspricht dabei dem in der Methode `#setMenuNamen(FMenu, String)` beschriebenen Aufbau. Der Name entspricht nicht dem angezeigten Text im Menue, sondern der Hirarchy des Menuepunktes im kompletten Menuebaum.

  Parameters:
    `name` - Der Name des sichtbarzuschaltenden Menuepunktes.
  See Also:
    `hideMenuEntry(String)`

### removeMenuEntry

    public JMenuItem removeMenuEntry(String name)

  Loescht den mit dem Namen spezifizierten Menueeintrag aus dem Menue. Der uebergebene Name entspricht dabei allerdings nicht dem im Menue angezeigten Text, sondern dem durch die Methode `#setMenuNamen(FMenu, String)` vergebenen Namen. Dieser spiegelt die Hierarchy im Menuebaum wieder.

  Parameters:
    `name` - Der Name des aus dem Menue zu entfernenden Menuepunktes.
  Returns:
    Der geloeschte Menuepunkt.

### addMenu

    public void addMenu(FMenu menu,
                        int index)

  Fuegt dem Menue ein weiteres Menue hinzu. Der Index gibt an, wo das Menue angezeigt werden soll. Wenn der Index 0 oder negativ ist, wird das Menue ganz links eingefuegt, wenn er groeßer als die Anzahl bisher vorhandener Eintraege ist, wird er ganz rechts eingefuegt. Die Namen fuer die einzelnen Menuekomponenten werden wieder automatisch vergeben. Das sind nicht die angeziegten Namen, sondern Namen fuer die Komponenten selbst. Darueber koennen die Komponenten dann auch abgeschaltet ode runsichtbar geschaltet werden. Im Menue und allen enthaltenen Menuepunkten muss die 'ActionClassForAction' gesetzt sein, da sonst nicht auf den Menuepunkt reagiert werden kann. Die Menuepunkte werden hier mit dem ActionManager des Controllers des Menues verbunden.

  Parameters:
    `menu` - Das Menue, das dem BusinessMenu hinzugefuegt werden soll.
    `index` - Der Index, an dem das Menue erscheinen soll.

### addMenuItem

    public void addMenuItem(String name,
                            JMenuItem item,
                            int index)

  Fuegt dem ueber den Namen spezifizierten Menue einen Menuepunkt hinzu. Dieser wird am spezifizierten Index eigefuegt. Falls es unter dem Namen kein Menue gibt passiert nichts. Das uebergebene Item muss vom Typ `FMenu` oder vom Typ `FMenuItem` sein. Andernfalls wird eine `IllegalArgumentException` ausgeloest. Im uebergebenen Menu und allen evtl. enthaltenen Menuepunkten muss die 'ActionClassForAction' gesetzt sein, da andernfalls der Menuepunkt nicht mit einer Action verbunden werden.

  Parameters:
    `name` - Der Name des Menues, dem ein neuer Eintrag hinzugefuegt werden soll.
    `item` - Das dem Menue hinzuzufuegende Menueitem.
    `index` - Der Index an dem das Menuitem im Menue erscheinen soll.

### existMenuEntry

    public boolean existMenuEntry(String name)

  Prueft, ob es unter dem uebergebenen Namen einen Menueeintrag gibt.

  Parameters:
    `name` - Der Name des gesuchten Menuepunktes.
  Returns:
    `true`, wenn es unter dem uebergebenen Namen einen Menueeintrag gibt, ansonsten `false`.

### getMenuEntry

    public JMenuItem getMenuEntry(String name)

  Gibt den Menueeintrag zurueck, der dem uebergebenen Namen entspricht. Wenn unter diesem Namen kein Menueeintrag registriert ist gibt die Methode NULL zurueck. Das MenueItem ist entweder vom Typ `FMenu` oder vom Typ `FMenu`. Deshalb wird hier auch der Typ {javax.swing.JMenuItem} zurueckgegeben, da es sich dabei um die Basisklasse beider Controls handelt.

  Parameters:
    `name` - Der Name des zurueckzugebenden Menueeintrages.
  Returns:
    Der zum Namen gehoerende Menueeintrag oder NULL, wenn es unter diesem Namen keinen Menueeintrag gibt.

### save

    public void save(String filename)
              throws IOException

  Speichert das Menue in einer Properties-Datei. Mit dieser Datei kann das Menue auch wieder aufgebaut werden.

  Parameters:
    `filename` - Der Name der Datei in der das Menue gespeichert werden soll.
  Throws:
    `IOException` - wenn beim speichern ein Fehler auftritt.

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