Die Common-Controls Tag Bibliothek

<ctrl:swapselect>

Das Tag erzeugt ein HTML Select Element mit zwei Fenstern zwichen denen der Anwender die Einträge hin und her schieben kann. Die Menge der verfügbaren Elemente wird mit Hilfe des <base:options>-Tag im Tag Body angegeben. Die DataBean des Kontrollelementes (das Datenmodell) liefert die Schlüssel der selektierten Elemente in einem Array.
../images/images/ctrlswapselect_small.gif

Body content: JSP
Tag class: SwapSelectTag
 

[ Syntax ]

Standard Syntax
<ctrl:swapselect
[ disabled = "Boolean" ]
[ filter = "Boolean" ]
[ hideButtons = "Stringliste" ]
[ id = "String" ]
[ labelLeft = "String" ]
[ labelRight = "String" ]
[ moveButton = "Boolean" ]
[ multiple = "Boolean" ]
[ name = "String" ]
[ onblur = "String" ]
[ onchange = "String" ]
[ onclick = "String" ]
[ oncontextmenu = "String" ]
[ ondblclick = "String" ]
[ onfocus = "String" ]
[ onkeydown = "String" ]
[ onkeypress = "String" ]
[ onkeyup = "String" ]
[ onmousedown = "String" ]
[ onmousemove = "String" ]
[ onmouseout = "String" ]
[ onmouseover = "String" ]
[ onmouseup = "String" ]
[ orientation = "{horizontal | vertical}" ]
[ property = "String" ]
[ retainOrder = "Boolean" ]
[ runat = "{server | client | auto}" ]
[ scope = "{any | page | request | session | application}" ]
[ size = "Integer" ]
[ sortOrder = "{none | asc | desc}" ]
[ style = "String" ]
[ styleId = "String" ]
[ summary = "String" ]
[ tabindex = "Integer" ]
[ tooltip = "String" ]
[ transaction = "Boolean" ]
[ value = "String" ]
>
...Body Content...

</ctrl:swapselect>
 

[ Attribute ]

AttributTypBeschreibungPflichtRTExp
disabledBoolean Über dieses Attribut kann das Kontrollelement deaktiviert werden. Es nimmt dann keine Benutzereingaben entgegen und erzeugt keine Kontrollelement Ereignisse.  
filterBoolean Mit dem filter-Attribut kann die automatische HTML-Konvertierung des Elementes aktiviert bzw. deaktiviert werden.
  • true = Die HTML Konvertierung ist aktiv. So wird beispielsweise das "<" Zeichen als "&lt;" codiert. HTML Code wird damit nicht ausgeführt.
  • false = Die HTML Konvertierung ist abgeschaltet. HTML Code wird demzufolge direkt in die Seite eingesetzt und somit ausgeführt.
 
hideButtonsStringliste Mit diesem Attribut kann eine Liste von Schaltflächen ausgeblendet werden. Die auszublendenden Schaltflächen werden in einer Semikolon getrennten Liste angegeben.

Anmerkung: Mit Semikolon getrennte Liste von Schaltflächen Namen. Die Namen müssen dabei einer der ControlButton.getName() Konstanten entsprechen!

 
idString 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.

 
labelLeftString Gibt das label über dem linken (bzw. oberen) Teilfenster an.  
labelRightString Gibt das label über dem rechten (bzw. unteren) Teilfenster an.  
moveButtonBoolean Legt fest ob die Schaltflächen zum Verschieben von Zeilen angeboten werden sollen.  
multipleBoolean Mit diesem Attribut wird das SwapSelect Control angewiesen mehrere verschiebungsziele (= rechte Seite bei horizontaler Ausrichtung) zu verwenden. Wird dieses Attribut auf true gesetzt, dann muss folgendes berücksichtigt werden:
  • Als Datenmodell muss nun eine Array von Arrays zurückgeliefert werden. Dabei gibt die Anzahl der Dimensionen in der ersten Array Ebene (= n) die Anzahl der darzustellenden Verschiebungsziele an
  • Im Attribut labelRight muss eine Semikolon getrennte String Liste mit den Überschriften für die n Verschiebungsziele angegeben werden. Je nach aktiver Lokalisierung können das Ressourcen Schlüssel oder einfache String Literale sein
 
nameString 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.

 
onblurString Fires when the object loses the input focus.

Anmerkung: JavaScript Code

 
onchangeString Fires when the contents of the object or selection have changed.

Anmerkung: JavaScript Code

 
onclickString Fires when the user clicks the left mouse button on the object.

Anmerkung: JavaScript Code

 
oncontextmenuString Fires when the user clicks the right mouse button in the client area, opening the context menu.

Anmerkung: JavaScript Code

 
ondblclickString Fires when the user double-clicks the object.

Anmerkung: JavaScript Code

 
onfocusString Fires when the object receives focus.

Anmerkung: JavaScript Code

 
onkeydownString Fires when the user presses a key.

Anmerkung: JavaScript Code

 
onkeypressString Fires when the user presses an alphanumeric key.

Anmerkung: JavaScript Code

 
onkeyupString Fires when the user releases a key.

Anmerkung: JavaScript Code

 
onmousedownString Fires when the user clicks the object with either mouse button.

Anmerkung: JavaScript Code

 
onmousemoveString Fires when the user moves the mouse over the object.

Anmerkung: JavaScript Code

 
onmouseoutString Fires when the user moves the mouse pointer outside the boundaries of the object.

Anmerkung: JavaScript Code

 
onmouseoverString Fires when the user moves the mouse pointer into the object.

Anmerkung: JavaScript Code

 
onmouseupString Fires when the user releases a mouse button while the mouse is over the object.

Anmerkung: JavaScript Code

 
orientationOrientationType Gibt die Ausrichtung der beiden Teilfenster an.
  • horizontal = Horizontale Ausrichtung (von links nach rechts)
  • vertical = Vertikale Ausrichtung (von oben nach unten)
 
propertyString 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.

 
retainOrderBoolean Mit diesem Attribut wird festgelegt ob die Reihenfolge der Items in den Auswahl Listen bei Links/Rechts Verschiebungen beibehalten werden soll.

Bei langen Optionslisten kann das Beibehalten der Reihenfolge zu Performance Problemen führen

 
runatRunAt Dieses Attribut gibt an, ob für das Kontrollelement JavaScript verwendet werden soll, oder ob das Kontrollelement ausschließlich mit Server Roundtrips arbeiten soll.
  • server = Alle Kontrollelement Aktionen führen zu einem Server Roundtrip und werden auf dem Server bearbeitet.
  • client = Kontrollelement Aktionen werden direkt im Browser des Benutzers durchgeführt. Es hängt von der verwendeten Painter Factory und dem konkreten Kontrollelement Painter ab, wie weit die Unterstützung für Clientside Scripting geht.
  • auto = Das Framework wählt basierend auf der JavaScript Aktivierung des Anwender Browsers den Modus "client" bei aktiviertem JavaScript und "server" bei deaktiviertem JavaScript (siehe BrowserInfo).
 
scopeHttpScope Dieses Attribut gibt den Scope an, in welchem die Java-Bean mit den eigentlichen Anzeigedaten zu finden ist.
  • any = Nach der Bean wird in jedem Scope gesucht.
  • page = Die Bean liegt im PageContext der JSP Seite.
  • request = Die Bean liegt im HTTP Servlet Request
  • session = Die Bean liegt in der HTTP Session
  • application = Die Bean liegt applikationsweit im Servlet Kontext
 
sizeInteger Gibt die Anzahl der sichtbaren Optionen an.  
sortOrderSortOrder Gibt die Sortierreihenfolge des Elementes an
  • none = Es soll keine Sortierung verwendet werden.
  • asc = Aufsteigende Sortierung
  • desc = Absteigende Sortierung
 
styleString Über dieses Attribut kann direkt ein HTML-style Attribut angegeben werden.

Anmerkung: Siehe HTML Dokumentation für das Attribut style.

 
styleIdString Über dieses Attribut kann direkt ein HTML-id Attribut angegeben werden.

Anmerkung: Siehe HTML Dokumentation für das Attribut id.

 
summaryString 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.  
tabindexInteger Legt den Tabulator Index für dieses Element fest.  
tooltipString Tooltip Text welcher in einem Popup Fenster angezeigt wird, wenn der Benutzer die Maus über das Kontrollelement bewegt.

Die Zeichenkette wird vor der Ausgabe HTML-codiert

 
transactionBoolean 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.
Stimmt der Stempel nicht überein, dann sind Applikationszustand und Browser Inhalt asynchron und die Applikation kann auf diesen Fehler - wie auch immer - reagieren. Eine Abweichung entsteht immer dann, wenn der Anwender eine ältere Seite aus der Browser Historie absendet.

 
valueString Der Wert des Kontrollelementes kann mit diesem Attribut auch direkt als Litteral angegeben werden.  

[ Beispiel ]

Verwendung des Swap-Kontrollelements innerhalb einer Liste.


<%@ taglib uri="http://struts.apache.org/tags-html"             prefix="html" %>
<%@ taglib uri="http://www.common-controls.com/cc/tags-ctrl"    prefix="ctrl" %>

<html:form action="sample153/listBrowse" method="post">
    <ctrl:list
        name="orders"
        title="orders"
        rows="5"
        refreshButton="true"
        formElement="true">


        <ctrl:columnhtml    title="detail"  id="detail"  editable="true"  width="250">
            <ctrl:swapselect
                property="selOptions"
                orientation="horizontal"
                labelLeft="form.label.books.left"
                labelRight="form.label.books.right"
                size="7"
                filter="false"
                runat="client"
                style="width: 100%"/>

        </ctrl:columnhtml>

    </ctrl:list>
</html:form>