<ctrl:tree>
Attribut | Typ | Beschreibung | Pflicht | RTExp |
action | String |
Gibt die Struts Action an, welche bei Kontrollelement Ereignissen
aufgerufen werden soll.
Dieses Attribut muss nicht angegeben werden, wenn das Tag von einem Struts <html:form> Tag umschlossen ist. in diesem Fall wird der Name der Action über die Struts Formular Bean ermittelt. Anmerkung: Die Action muss in einer der struts-config.xml Dateien deklariert sein. |
![]() |
|
ajax![]() | Boolean |
Aktiviert die AJAX Funktion des Kontrollelementes. Alle
Kontrollelement Ereignisse werden dann mit JavaScript asynchron
an den Server gesendet und dort verarbeitet.
Die Verarbeitung auf dem Server unterscheidet sich nicht von einer normalen Request Behandlung. Der Anwendungsentwickler hat jedoch die Möglichkeit über die Methoden des AjaxRequest Interfaces (Basisklasse von ActionContext) die Ergebnis Rückmeldung zu steuern. Im Normalfall (-> AjaxRequest.isAjaxCanceled() == false) wird ein Delta XML Stream zum Web Browser zurückgeschickt. Dieser Stream enthält nur die schmutzigen Kontrollelemente, welche dann mit Hilfe eines JavaScript Handlers vom Web Browser im HTML DOM Tree selektiv ausgetauscht werden. Es wird also keine vollständige HTML Seite vom Server übertragen!
Die meisten Kontrollelemente fügen sich selbst in die Dirty Liste des ActionContext ein. Hierzu wird einfach die Methode AjaxRequest.markDirty() aufgerufen. Der Anwendungsentwickler hat damit die Möglichkeit noch weitere Kontrollelemente - die durch eine Zustandsänderung ebenfalls schmutzig geworden sind - in den Delta Stream aufzunehmen Wenn der Request eine vollständig neue HTML Seite zurückgeben soll, dann besteht auch die Möglichkeit die AJAX Verarbeitung auf dem Server abzubrechen. Hierzu wird die Methode AjaxRequest.cancelAjaxRequest() aufgerufen. Das Framework sendet danach immer eine vollständige HTML Seite zurück an den Web Browser. Das Common-Controls AJAX XML Protokoll hat das folgende Format: <?xml version="1.0" encoding="UTF-8" ?> <ajax-response> <token/> <controls> <control styleId="" class="" name=""> <html> <[CDATA[...]] > </html> </control> </controls> </ajax-response> |
![]() |
|
border | Integer | Gibt die Stärke des Rahmens an, welcher um das Kontrollelement gezeichnet werden soll. |
![]() |
|
buttons | Boolean |
Gibt an ob bei Gruppenknoten Schaltflächen zum auf-
bzw. Zuklappend des Astes angezeigt werden sollen.
Diese Option hat keine Auswirkungen wenn der
expandMode der Baumstruktur auf |
![]() |
|
checkboxes | Boolean |
Gibt an, ob vor den Baumeinträgen eine Checkbox
angezeigt werden soll.
Die Baumeinträge müssen das Checkable Interface implementieren, damit das Kontrollelement die Checkboxen zeichnen kann. Gruppenknoten müssen dieses Interface nicht implementieren, da der Check-Zustand von Gruppen mit Hilfe des Zustandes der Blätter automatisch berechnet werden kann. |
![]() |
|
disabled | Boolean | Über dieses Attribut kann das Kontrollelement deaktiviert werden. Es nimmt dann keine Benutzereingaben entgegen und erzeugt keine Kontrollelement Ereignisse. |
![]() |
|
enableProperty | String |
Gibt den Namen eines Properties an, mit dessen Hilfe
für jeden Knoten die Drilldown Funktion deaktiviert
werden kann.
Die Baum Knoten müssen hierzu einen entsprechenden Property Getter zur Verfügung stellen, welcher einen boolean Datentyp zurückliefert. Anmerkung: Gültiger Java Bezeichner. Die Knoten müssen eine passende Property-Getter Methode implementieren. |
![]() |
|
expandMode | ExpansionMode |
Dieses Attribut gibt an wieviele Knoten der
Baumstruktur gleichzeitig aufgeklappt dargestellt
werden sollen.
|
![]() |
|
filter | boolean | Dieses Flag gibt an ob eine HTML-Konvertierung der Baumelemente durchgeführt werden soll. |
![]() |
|
formElement | Boolean |
Über dieses Attribut wird gesteuert, wie sich das
Kontrollelement im Falle einer Benutzer Aktion verhalten soll.
Anmerkung:
Der Wert |
![]() |
|
groupselect | Boolean | Gibt an, ob für die Gruppenknoten der Baumstruktur ein onClick Eventhandler aufgerufen werden soll. |
![]() |
|
height | String |
Setzt die Höhe des Kontrollelmentes. Die Höhe kann absolut oder
prozentual angegeben werden.
Es hängt von dem jeweiligen Kontrollelement Painter ab, ob dieses Attribut ausgewertet wird. Siehe HTML-Dokumentation |
![]() |
|
id | String |
Weist dem Kontrollelement einen eindeutigen Bezeichner zu.
Im Tag Body wird daraufhin eine Java Variable angelegt, auf
die in Java Scriptlets zugegriffen werden kann.
Diese Variable verweist auf die Kontrollelement Instanz
(abgeleitet von Control).
Dieses Attribut wird meist in Verbindung mit dem type Attribut verwendet Anmerkung: Da zur JSP Compile Zeit eine Java Variable mit diesem Bezeichner angelegt wird, muss hier ein String Literal (und keine Expression!) angegeben werden! Der Bezeichner muss den Regeln für gültiger Java Bezeichner folgen. |
![]() |
|
imagemap | String |
Gibt den Namen einer Imagemap an, welche im Request
abgelegt sein muss. Die Werte welche das ImageProperty
liefert werden auf die Einträge dieser ImageMap abgebildet.
Die Abbildung erfolgt anhand des regulären Ausdrucks
welcher jedem Eintrag der ImageMap zugeordnet ist.
Das Framework hängt bei Gruppenknoten an den Wert des ImageProperty die Zeichenketten .open bzw. .closed an, um zwischen dem geöffneten und geschlossenen Zustand unterscheiden zu können. Das Framework verwendet für Gruppenknoten per default ein Ordnersymbol als Image. Anmerkung: Unter dem Namen muss eine ImageMap im Request abgelegt sein |
![]() |
|
imageProperty | String |
Gibt das Property an über welches jeder Row-Bean ein
Image zugeordnet werden kann.
Die Image Namen bezeichnen keine direkten HTML-Ressourcen, sie werden vielmehr anhand der ImageMap in den tatsächlichen Ressourcen Namen übersetzt. Anmerkung: Gültiger Java Bezeichner für ein Property welches von jeder Row-Bean implementiert werden muss. |
![]() |
|
labelProperty | String |
Gibt das Property an über welches jeder Row-Bean ein
Label zugeordnet werden kann.
Anmerkung: Gültiger Java Bezeichner für ein Property welches von jeder Row-Bean implementiert werden muss. |
![]() |
![]() |
labelWrap![]() | boolean | Dieses Flag gibt an, ob Labels umgebrochen werden dürfen. |
![]() |
|
lines | Boolean | Gibt an ob zwischen den Baumelementen Verbindungslinien gezeichnet werden sollen. |
![]() |
|
linesAtRoot | Boolean | Gibt an, ob Linien zu den Baumelementen der obersten (angezeigten-) Ebene gezeichnet werden sollen. |
![]() |
|
locale | String |
Weist das Kontrollelement an alle angegebenen
Zeichenkettenliterale als Schlüssel für Textressourcen zu
interpretieren.
Die folgenden Werte sind möglich:
Bei aktivierter Lokalisierung werden die angegebenen Schlüssel von dem registrierten FrameworkAdapter (eine Interface Klasse) mit Hilfe der überschreibbaren localizeKey() Methode übersetzt. Der mitgelieferte StrutsFrameworkAdapter verwendet die in der struts-config.xml registrierten Message Resource Bundles für die Übersetzung des Ressourcen Schlüssels. Zeichenketten die mit einem "#"-Zeichen beginnen werden grundsätzlich nicht lokalisiert (Das "#"-Zeichen wird jedoch abgeschnitten). Alle Zeichenketten die von einem DataModel zurückgeliefert werden, sind ebenfalls von dem Lokalisierungsmechanismus ausgeschlossen, da dies in den Aufgabenbereich der Applikation fällt. |
![]() |
|
maxlength | Integer |
Gibt die maximale Zeichenzahl für die Anzeige
der Baumelemente an. Weitere
Zeichen werden durch "..." angedeutet.
Diese Funktionalität ist unwirksam, wenn das Attribut filter auf false gesetzt ist, da in diesem Fall die tatsächlich sichtbare Zeichenzahl nicht ermittelt werden kann |
![]() |
|
name | String |
Gibt den Namen der Java-Bean - eine Instanz der Klasse
Control.
Die Java-Bean muss im angegebenen Scope abgelegt sein.
Wenn das Tag von einem Struts <html:form> Tag umschlossen ist, dann muss kein Bean Name angegeben werden. In diesem Fall wird die Java-Bean über ein Property der Struts Formular Bean gezogen. Anmerkung: Es muss ein gültiger Java Bezeichner angegeben werden. |
![]() |
|
onblur | String |
Fires when the object loses the input focus.
Anmerkung: JavaScript Code |
![]() |
|
onchange | String |
Fires when the contents of the object or selection have changed.
Anmerkung: JavaScript Code |
![]() |
|
oncheck | String |
Fires when a checkbox is checked
Anmerkung: JavaScript Code |
![]() |
|
onclick | String |
Fires when the user clicks the left mouse button on the object.
Anmerkung: JavaScript Code |
![]() |
|
oncollapse | String |
Fires when a tree node is collapsed
Anmerkung: JavaScript Code |
![]() |
|
oncontextmenu | String |
Fires when the user clicks the right mouse button in the client
area, opening the context menu.
Anmerkung: JavaScript Code |
![]() |
|
ondblclick | String |
Fires when the user double-clicks the object.
Anmerkung: JavaScript Code |
![]() |
|
onexpand | String |
Fires when a tree node is expanded
Anmerkung: JavaScript Code |
![]() |
|
onexpandex | String |
Fires when a tree node with unknown child count is expanded
Anmerkung: JavaScript Code |
![]() |
|
onfocus | String |
Fires when the object receives focus.
Anmerkung: JavaScript Code |
![]() |
|
onkeydown | String |
Fires when the user presses a key.
Anmerkung: JavaScript Code |
![]() |
|
onkeypress | String |
Fires when the user presses an alphanumeric key.
Anmerkung: JavaScript Code |
![]() |
|
onkeyup | String |
Fires when the user releases a key.
Anmerkung: JavaScript Code |
![]() |
|
onmousedown | String |
Fires when the user clicks the object with either mouse button.
Anmerkung: JavaScript Code |
![]() |
|
onmousemove | String |
Fires when the user moves the mouse over the object.
Anmerkung: JavaScript Code |
![]() |
|
onmouseout | String |
Fires when the user moves the mouse pointer outside the boundaries
of the object.
Anmerkung: JavaScript Code |
![]() |
|
onmouseover | String |
Fires when the user moves the mouse pointer into the object.
Anmerkung: JavaScript Code |
![]() |
|
onmouseup | String |
Fires when the user releases a mouse button while the mouse is
over the object.
Anmerkung: JavaScript Code |
![]() |
|
onuncheck | String |
Fires when a checkbox is unchecked
Anmerkung: JavaScript Code |
![]() |
|
permission | ACL |
Mit diesem Attribut kann der Zugriff auf das Element
beschränkt werden.
Berechtigungen werden über das Principal Objekt in der Benutzer Session geprüft. Das Principal Objekt wird mit der Methode SecurityUtil.registerPrincipal() in der Session registriert. Es wird vom Anwendungsentwickler durch Implementierung des Principal Interfaces zur Verfügung gestellt. Somit lassen sich sehr einfach beliebige Berechtigungssysteme mit dem Framework verbinden. Berechtigungen werden immer in Form einer Access Control List (ACL) angegeben. Dabei handelt es sich um einen Ausdruck dessen Elemente Einzelberechtigungen sind. Das Framweork unterstützt die folgenden Berechtigungstypen, welche jedoch vom Anwendungsentwickler beliebig erweitert werden können:
Zur Formulierung der Ausdrücke kann die folgende Syntax verwendet werden: PERMISSION_PREFIX : '#' | '$' AND_OP : 'and' | '&' | '*' XOR_OP : 'xor' | '^' OR_OP : 'or' | '|' | '+' UNARY_OP : '~' | '!' permission : PERMISSION_PREFIX IDENTIFIER primary_expr : permission | '(' expr_list ')' unary_expr : primary_expr | UNARY_OP primary_expr logical_and_expr : unary_expr | logical_and_expr AND_OP unary_expr logical_xor_expr : logical_and_expr | logical_or_expr XOR_OP logical_and_expr logical_or_expr : logical_xor_expr | logical_or_expr OR_OP logical_xor_expr expr_list : logical_or_expr | expr_list ';' logical_or_expr | expr_list ',' logical_or_expr Access Control Listen werden mit der statischen Methode AccessControlList.parse() eingelesen. Der Parser verwendet wiederum die statische Methode PermissionFactory.parse() um die einzelnen Permissions zu lesen. Der Anwendungsentwickler kann über die PermissionFactory eigene von Permission abgeleitete Klassen registrieren und so den Sprachumfang der ACL erweitern. |
![]() |
|
property | String |
Gibt den Namen des Properties an, über welchen auf
die Java-Bean zugegriffen werden soll. Dies ist in
der Regel nur dann notwendig, wenn die Java-Bean
mit einer Struts Formular Bean assoziiert ist.
Anmerkung: Es muss ein gültiger Java Bezeichner angegeben werden. |
![]() |
|
root | Boolean |
Gibt an, ob der Wurzelknoten der Baumstruktur (Ebene 0) angezeigt
werden soll oder ob die Anzeige erst auf der ersten Baumebene
(Ebene 1) beginnt.
Definition: Ein Baum hat immer genau eine Wurzel! |
![]() |
|
runat | RunAt |
Dieses Attribut gibt an, ob für das Kontrollelement
JavaScript verwendet werden soll, oder ob das Kontrollelement
ausschließlich mit Server Roundtrips arbeiten soll.
|
![]() |
|
scope | HttpScope |
Dieses Attribut gibt den Scope an, in welchem die Java-Bean
mit den eigentlichen Anzeigedaten zu finden ist.
|
![]() |
|
scrollHeight![]() | String |
Gibt die Höhe des scrollbaren Bereiches des Kontrollelementes an.
Wenn das Element mehr Platz benötigt, dann werden vertikale Scroll
Leisten angezeigt.
Hinweis: Wenn das scrollHeight-Attribut angegeben wird, muss zudem für jedes column- und columngroup-Tag die Breite angegeben werden! Anmerkung: Es ist ein HTML Größenangabe gefordert (in Pixeln, Punk etc.) |
![]() |
|
shadow | Boolean |
Gibt an ob das Kontrollelement mit einem Schatten hinterlegt
werden soll.
Diese Funktion ist nur bei bestimmten Painterfactories verfügbar |
![]() |
|
style | String |
Über dieses Attribut kann direkt ein HTML-style
Attribut angegeben werden.
Anmerkung: Siehe HTML Dokumentation für das Attribut style. |
![]() |
|
styleClass | String |
Über dieses Attribut kann direkt ein HTML-class
Attribut angegeben werden.
Anmerkung: Siehe HTML Dokumentation für das Attribut class. |
![]() |
|
styleId | String |
Über dieses Attribut kann direkt ein HTML-id
Attribut angegeben werden.
Anmerkung: Siehe HTML Dokumentation für das Attribut id. |
![]() |
|
summary | String | Gibt einen nicht sichtbaren Summary zu dem Kontrollelement auf der HTML Seite aus. Diese Information kann von speziellen Anzeigegeräten dargestellt werden - zum Beispiel als Sprachausgabe oder Braille Schrift. |
![]() |
|
tabindex | Integer | Legt den Tabulator Index für dieses Element fest. |
![]() |
|
target | String |
Über dieses Attribut kann direkt ein HTML-target Attribut
für die Zellen der Spalte angegeben werden.
Anmerkung: Siehe HTML Dokumentation für das Attribut target. |
![]() |
|
targetProperty | String |
Gibt den Namen eines Properties an, welches als HTML-Target
Attribut für die jeweilige Zelle verwendet wird.
Anmerkung: Gültiger Java Bezeichner. Die Zeilenobjekte müssen eine passende Property-Getter Methode implementieren. |
![]() |
|
tooltipProperty | String |
Gibt den Namen eines Properties an, mit dessen Hilfe
die jeweilige Zelle mit einem HTML-Text Attribut
versehen werden kann.
Anmerkung: Gültiger Java Bezeichner. Die Zeilenobjekte müssen eine passende Property-Getter Methode implementieren. |
![]() |
|
transaction | Boolean |
Mit diesem Flag wird angegeben ob ein Transaction Token
(siehe Struts Token Dokumentation) an alle
Hyperlinks des Kontrollelementes angehängt werden soll.
Mit dem Transaction Token können Form Re-submissions (mehrfaches Absenden eines HTML Formulars) erkannt werden.
Funktionsweise: Das Transaction Token is ein "Stempel"
mit welchem die Applikation jede generierte HTML Seite stempelt
(es wird ein hidden Field bzw. zusätzliche URL Parameter
für alle Hyperlinks erzeugt).
Bei einem Server Request kann der vom Browser zurückgeliefert
Stempel mit dem in der Session gespeicherten Wert verglichen
werden. Wenn der Wert übereinstimmt, dann passt die Seite zum
aktuellen Applikations Zustand. |
![]() |
|
width | String |
Setzt die Breite des Kontrollelmentes. Die Breite kann
absolut oder prozentual angegeben werden.
Siehe HTML-Dokumentation |
![]() |
Ereignis | Beschreibung |
Check |
public void control_onCheck( ControlActionContext ctx, String key, SelectMode mode, boolean checked) throws Exception |
Dieses Event wird ausgelößt, wenn der Anwender eine Checkbox in einer Check-Spalte betätigt. | |
Liegt in der Verantwortung der Applikation. Wenn die selektierte Row Bean das Checkable Interface implementiert, dann wird automatisch die Checkable.setCheckState() Methode aufgerufen. |
|
Collapse |
public void control_onCollapse( ControlActionContext ctx, String key) throws Exception |
Expand |
public void control_onExpand( ControlActionContext ctx, String key) throws Exception |
ExpandEx |
public void control_onExpandEx( ControlActionContext ctx, String key) throws Exception |
Dieses Event wird ausgelößt, wenn ein Knoten mit unbekannter
Kinderzahl vom Anwender aufgeklappt wird.
Die TreeGroupDataModel.size() Methode des TreeGroupDataModel muß den Wert -1 zurückliefern damit der Event ausgelößt werden kann. |
|
Der Eventhandler sollte alle Kind Knoten des im Parameter key übergebenen
Knoten nachladen.
Mit der TreeHelp Klasse kann der in key übergeben Schlüssel übersetzt werden: ProductGroupDsp root = (ProductGroupDsp) ctx.control().getDataModel(); ProductGroupDsp node = (ProductGroupDsp) TreeHelp.getNodeByKey(root, key);Anschliessend sollte das Ereignis an das Kontrollelement weitergereicht werden, damit dieses seinen internen Zustand aktualisieren Kann (aufklappen des Knotens): ctx.control().execute(ctx, key); |