Window (Objekt)

Aus SiteparkWiki
Zur Navigation springen Zur Suche springen

Name

Window - Aktuelles Fenster des Nutzers

Beschreibung

Das Window-Objekt repränsentiert das aktuelle Fenster des Nutzers. Das Fenster ist ein Unter-Objekt der HTTP-Session und kapselt Objekte die zu einer HTTP-Session gehören, die aber nur für ein Browserfenster gültig sind.

Attribute

Attribut Type Beschreibung ab IES Version
id Number Identifierer für dieses Window-Objekt 1

Methoden

Methode Rückgabewert Beschreibung ab IES Version
tree(String name, ID node, Boolean hide) Collection <RepositoryTreeNode> Liefert eine Liste von RepositoryTreeNode-Objekten, mit denen ein Pool-Baum dargestellt werden kann. 1
tree(String name, ID node, Boolean hide, ID root) Collection <RepositoryTreeNode> Liefert eine Liste von RepositoryTreeNode-Objekten, mit denen ein Pool-Baum dargestellt werden kann, ab einem bestimmten Pool. 1
tree(String name, ID node, Boolean hide, ID root, ID user) Collection <RepositoryTreeNode> Liefert eine Liste von RepositoryTreeNode-Objekten, mit denen ein Pool-Baum dargestellt werden kann, ab einem bestimmten Pool. 1
Collection <RepositoryTreeNode> tree(String name, ID node, Boolean hide)
Liefert eine Liste von RepositoryTreeNode-Objekten, mit denen ein Pool-Baum dargestellt werden kann. Die Pools des Baums können auf- und zugeklappt werden. Der Zustand des Baums wird in der Session für jedes Window einzeln gespeichert.
Parameter
String name
Name für den Baum. Der Name wird verwendet um den Zustand des Baums (welche Pools sind aufgeklappt) in dem Window-Scope zu speichen. Der Name des Baumes muss mit folgenden Parametern beginnen, um anzugeben, welcher Pool-Baum verwendet werden soll.
  • article.<name>
  • user.<name>
  • template.<name>
  • role.<name>
ID node
Mit Hilfe des Nodes wird der Baum automatisch bis zu dem Pool aufgeklappt, in dem sich der Node befinden. Dabei muss der Node kein Pool sein, sondern ganz allgemein ein Element.
Boolean hide
Bei der Rechtevergabe von Nutzern kann angegeben werden, ob bestimmte Pools versteckt werden sollen. Mit diesem Flag wird angegeben, ob dieser Wert ausgewertet werden soll. Mit hide gleich false, werden auch die eigentlich zu versteckenden Pools angezeigt.
Rückgabewert
Collection <RepositoryTreeNode>
Liste von RepositoryTreeNode-Objekten, mit denen ein Pool-Baum dargestellt werden kann.
Collection <RepositoryTreeNode> tree(String name, ID node, Boolean hide)
Liefert eine Liste von RepositoryTreeNode-Objekten, mit denen ein Pool-Baum dargestellt werden kann, ab einem bestimmten Pool. Die Pools des Baums können auf- und zugeklappt werden. Der Zustand des Baums wird in der Session für jedes Window einzeln gespeichert.
Parameter
String name
Name für den Baum. Der Name wird verwendet um den Zustand des Baums (welche Pools sind aufgeklappt) in dem Window-Scope zu speichen. Der Name des Baumes muss mit folgenden Parametern beginnen, um anzugeben welcher Pool-Baum verwendet werden soll.
  • article.<name>
  • user.<name>
  • template.<name>
  • role.<name>
ID node
Mit Hilfe des Nodes wird der Baum automatisch bis zu dem Pool aufgeklappt in dem sich der Node befinden. Dabei muss der Node kein Pool sein, sondern ganz allgemein ein Element.
Boolean hide
Bei der Rechtevergabe von Nutzern kann angegeben werden, ob bestimmte Pools versteckt werden sollen. Mit diesem Flag wird angegeben, ob dieser Wert ausgewertet werden soll. Mit hide gleich false, werden auch die eigentlich zu versteckenden Pools angezeigt.
ID root
Dieser Parameter gibt an, ab welchem Pool der Baum dargestellt werden soll.
Rückgabewert
Collection <RepositoryTreeNode>
Liste von RepositoryTreeNode-Objekten, mit denen ein Pool-Baum dargestellt werden kann.


Collection <RepositoryTreeNode> tree(String name, ID node, Boolean hide, ID root, ID user)
Liefert eine Liste von RepositoryTreeNode-Objekten, mit denen ein Pool-Baum dargestellt werden kann, ab einem bestimmten Pool. Die Pools des Baums können auf- und zugeklappt werden. Der Zustand des Baums wird in der Session für jedes Window einzeln gespeichert. Für den Pool des Baums existiert ein permission-Attribut, das die Rechte des aktuellen Nutzers auf den Pool angibt. Duch die Angabe eines users enthält das permission-Attribut nicht die Rechte des aktuellen Nutzers, sondern die des user.
Parameter
String name
Name für den Baum. Der Name wird verwendet um den Zustand des Baums (welche Pools sind aufgeklappt) in dem Window-Scope zu speichen. Der Name des Baumes muss mit folgenden Parametern beginnen, um anzugeben, welcher Pool-Baum verwendet werden soll.
  • article.<name>
  • user.<name>
  • template.<name>
  • role.<name>
ID node
Mit Hilfe des Nodes wird der Baum automatisch bis zu dem Pool aufgeklappt in dem sich der Node befinden. Dabei muss der Node kein Pool sein, sondern ganz allgemein ein Element.
Boolean hide
Bei der Rechtevergabe von Nutzern kann angegeben werden, ob bestimmte Pools versteckt werden sollen. Mit diesem Flag wird angegeben, ob dieser Wert ausgewertet werden soll. Mit hide gleich false, werden auch die eigentlich zu versteckenden Pools angezeigt.
ID root
Dieser Parameter gibt an, ab welchem Pool der Baum dargestellt werden soll.
Rückgabewert
Collection <RepositoryTreeNode>
Liste von RepositoryTreeNode-Objekten, mit denen ein Pool-Baum dargestellt werden kann.

Beispiele

Einfaches Beispiel für die Erzeugung und Verwendung eines Trees:

  Template-Pool-Tree mit dem allen Elementen:<br>
  <sp:set name="_tree" object="system.window.tree('template.mytree', ${!{system.root.pool.template}}, true)"/>
  <table border="1">
  <tr>
     <th>name</th>
     <th>level</th>
     <th>isFirst</th>
     <th>isLast</th>
     <th>isOpen</th>
     <th>hasChildren</th>
  </tr>
  <sp:loop collection="_tree" item="line">
  <tr>
     <td align="left"><sp:print name="line.reference.name"/></td>
     <td align="center"><sp:print name="line.level"/></td>
     <td align="center"><sp:print name="line.isFirst"/></td>
     <td align="center"><sp:print name="line.isLast"/></td>
     <td align="center"><sp:print name="line.isOpen"/></td>
     <td align="center"><sp:print name="line.hasChildren"/></td>
  </tr>
  </sp:loop>
  </table>

Komplexes Beispiel für einen Tree, der interaktiv geöffnet und geschlossen werden kann:

(Bei diesem Beispiel sollten die Code-Zeilen um die Links und Listenelemente inline gesetzt werden)

<%--
Übergabe-Parameter:
${_rootpool}: ID des Pools, ab dem der Baum erzeugt werden soll
${_element}:  ID des Elements, ab dem der Baum aufgeklappt werden soll

${_pool}:     Wird durch den Klick auf einen Pool auf die entsprechende ID gesetzt
--%>

<sp:set name="_rootpool" value="${!{system.root.pool.template}}"/>

<style type="text/css">
.tree {
  width: 98%;
  margin : 0;
  padding : 0;
  float: left;
}
.tree li {
  margin : 0;
  padding: 1px 0 1px 0;
  list-style: none;
  background: none;
}
.tree ul {
  list-style: none;
  margin: 0;
  padding: 0;
  background: url(/img/tree_line_vert.gif) repeat-y 6px 0;
}
.tree ul.lastItem  {
  background-image: none;
}
.tree ul li {
  clear: both;
  padding-left: 14px;
}
.tree li.NoChild {
  padding-left: 30px;
  background: url(/img/tree_line_t.gif) no-repeat 14px;
}
.tree li.lastItemNoChild {
  padding-left: 16px;
}
.tree ul li.lastItemNoChild {
  padding-left: 30px;
  background: url(/img/tree_line_l.gif) no-repeat 14px;
}
.tree a {
  display: block;
  padding: 1px 0 1px 0;
  margin-left: 16px;
}
.tree a:link, .tree a:visited, .tree a:hover, .tree a:active {
  text-decoration: none;
}
.tree li.NoChild a {
  margin-left: 0;
}
.tree li.lastItemNoChild a {
  margin-left: 0;
}
.tree a.treeChanger {
  float: left;
  width: 13px;
  text-align: center;
  margin-left: 0;
}
.tree .selected {
  background: #ff9966;
}
.tree .selected_secondary {
  background: #aeb1bc;
}
.tree a.active {
  background-color: #FF9A5C;
}

</style>

<ul class="tree">
  <sp:set name="_treename" value="article.popup.${_rootpool}"/>
  <sp:loop collection="system.window.tree(${_treename}, ${_element}, false, ${_rootpool})" item="line">
    <sp:if name="lastLevel" gt="${line.level}">
      <sp:set name="k" expression="${lastLevel} - ${line.level}"/>
      <sp:for index="j" from="1" to="${k}">
        </ul></li>
      </sp:for>
    </sp:if>
    <sp:set name="lastLevel" value="${line.level}"/>
    <li class="<sp:if name="line.isLast" eq="true">lastItem</sp:if><sp:if name="line.hasChildren" eq="false">NoChild</sp:if>">
    <sp:if name="line.hasChildren" eq="true">
      <a onClick="reloadPage=1;" href="<sp:url template="${system.template}" handler="com.sitepark.ies.control.jsp.handler.TreeHandler"/>;_rootpool=<sp:print name="_rootpool"/>;_element=<sp:print name="_element"/>;_pool=<sp:print name="line.reference.id"/>;SYS_TREE_action=flip;SYS_TREE_name=<sp:print name="_treename"/>;SYS_TREE_id=<sp:print name="line.reference.id"/>" class="treeChanger">
        <sp:condition><sp:if name="line.isOpen" eq="true">&ndash;</sp:if><sp:else>+</sp:else></sp:condition>
      </a>
    </sp:if>
    <a<sp:if name="line.reference.id" eq="${_pool}"> class="selected"</sp:if> onClick="reloadPage=1;" href="<sp:url command="/forward"/>forward=<sp:print name="system.template"/>;_rootpool=<sp:print name="_rootpool"/>;_element=<sp:print name="_element"/>_pool=<sp:print name="line.reference.id"/>">
      <sp:print name="line.reference.name"/>
    </a>
    <sp:if condition="${line.isOpen} == false || ${line.hasChildren} == false"></li></sp:if>
    <sp:if condition="${line.isOpen} == true && ${line.hasChildren} == true">
      <ul<sp:if name="line.isLast" eq="true"> class="lastItem"</sp:if>>
    </sp:if>
  </sp:loop>
  <sp:for index="j" from="0" condition="${lastLevel} > 0 && ${j} < ${lastLevel}">
    </ul></li>
  </sp:for>
</ul>