|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjava.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JMenuBar
de.jsystems.framework.controls.FMenuBar
de.jsystems.framework.menu.BusinessMenu
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
.
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 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 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 |
protected Hashtable menuEntrys
protected Controller controller
protected String propName
protected MenuParamString zeilen
protected ActionManager am
Constructor Detail |
public BusinessMenu(Controller controller, String propName) throws CreateMenueException
controller
- Der Controller, fuer das Menue.propName
- Name der Propertiy-Datei fuer den Menueaufbau.
CreateMenueException
- wenn beim erzeugen des Menues ein Fehler aufgetreten ist.Method Detail |
public void disableMenuEntry(String name)
#setMenuNamen(FMenu, String)
beschriebenen
Aufbau. Der Name entspricht dabei nicht dem angezeigten Text im Menue,
sondern der Hirarchy des Menuepunktes im kompletten Menuebaum.
name
- Der Name des abzuschaltenden Menuepunktes.enableMenuEntry(String)
public void enableMenuEntry(String name)
#setMenuNamen(FMenu, String)
beschriebenen Aufbau. Der Name entspricht dabei nicht dem angezeigten
Text im Menue, sondern der Hirarchy des Menuepunktes im kompletten
Menuebaum.
name
- Der Name des einzuschaltenden Menuepunktes.disableMenuEntry(String)
public void hideMenuEntry(String name)
#setMenuNamen(FMenu, String)
beschriebenen Aufbau. Der Name entspricht nicht dem angezeigten
Text im Menue, sondern der Hirarchy des Menuepunktes im kompletten
Menuebaum.
name
- Der Name des unsichtbarzuschaltenden Menuepunktes.unhideMenuEntry(String)
public void unhideMenuEntry(String name)
#setMenuNamen(FMenu, String)
beschriebenen Aufbau. Der Name
entspricht nicht dem angezeigten Text im Menue, sondern der
Hirarchy des Menuepunktes im kompletten Menuebaum.
name
- Der Name des sichtbarzuschaltenden Menuepunktes.hideMenuEntry(String)
public JMenuItem removeMenuEntry(String name)
#setMenuNamen(FMenu, String)
vergebenen Namen. Dieser spiegelt die Hierarchy im Menuebaum
wieder.
name
- Der Name des aus dem Menue zu entfernenden Menuepunktes.
public void addMenu(FMenu menu, int index)
menu
- Das Menue, das dem BusinessMenu hinzugefuegt werden soll.index
- Der Index, an dem das Menue erscheinen soll.public void addMenuItem(String name, JMenuItem item, int index)
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.
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.public boolean existMenuEntry(String name)
name
- Der Name des gesuchten Menuepunktes.
true
, wenn es unter dem uebergebenen Namen einen
Menueeintrag gibt, ansonsten false
.public JMenuItem getMenuEntry(String name)
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.
name
- Der Name des zurueckzugebenden Menueeintrages.
public void save(String filename) throws IOException
filename
- Der Name der Datei in der das Menue
gespeichert werden soll.
IOException
- wenn beim speichern ein Fehler auftritt.
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |