Das Menü und die Werkzeugleiste definieren

Das Menü und die Werkzeugleiste des Content Navigators werden in den Dateien menuBar.xml bzw. toolBar.xml aus einzelnen Menüeinträgen (beans) zusammengesetzt. Die verfügbaren Einträge sind in der Datei itemRegistry.xml aufgeführt. Weitere, contentspezifische Menüeinträge und Buttons auf der Werkzeugleiste können in der Datei contentMenu.xml definiert werden (siehe Zusätzliche Menübefehle konfigurieren). Ein Beispiel aus menuBar.xml:

<menu name="file">
  <title lang="en">File</title>
  <title lang="de">Datei</title>
  <group name="object" contexts="object, select.object">
    <group name="new">
      <title lang="en">New</title>
      <title lang="de">Neu</title>
      <title lang="fr">Nouveau</title>
      <item>create_object_document</item>
      <item>create_object_publication</item>
      <item>create_object_image</item>
      <item>create_object_generic</item>
      <item roles="admin">create_object_template</item>
    </group>
    <item separated="true">import_file</item>
  </group>
  <item contexts="bookmark">create_bookmark_folder</item>
  <group separated="true" name="search" contexts="*.object">
    <item contexts="object, select.object">search_objects</item>
    <!-- insert saved searches here-->
  </group>
  <item contexts="object" separated="true">logout</item>
</menu>

Die Definitionen der Einträge auf der Werkzeugleiste ist ähnlich aufgebaut. Es gibt darin jedoch keine Hierarchie (submenu), weil die Werkzeugleiste keine Untereinträge hat:

<toolBar>
  <group name="object" contexts="object">
    <item>create_object_document</item>
    <item>create_object_publication</item>
    <item roles="admin">import_file</item>
    <item separated="true">finish_tasks</item>
    <item separated="true">search_panel</item>
  </group>
  <group name="edit" separated="true">
    <item>cut_into_clipboard</item>
    <item>copy_into_clipboard</item>
    <item contexts="object">paste_objects</item>
    <item contexts="bookmark">paste_bookmarks</item>
    <item contexts="object">delete_object</item>
    <item contexts="bookmark">delete_bookmarks</item>
  </group>
  <group name="view" separated="true" roles="admin">
    <item contexts="object">browser_preview</item>
    <item>browser_tree</item>
    <item>browser_columns</item>
    <item>browser_list</item>
    <item contexts="object">browser_icons</item>
    <separator/>
    <item contexts="object">preview</item>
    <item>view_mode</item>
    <item>refresh</item>
  </group>
  <separator/>
  <item>online_help</item>
  <item>logout</item>
</toolBar>

Jedes item in einem Menü oder in der Werkzeugleiste bezieht sich auf ein bean im beans-Element von itemRegistry.xml. So bindet beispielsweise

<item>about_nps</item>

den folgenden Eintrag in itemRegistry.xml ins Menü oder in die Werkzeugleiste ein:

<bean id="about_nps"
    class="com.infopark.cm.htmlgui.browse.menuaction.OpenSubpage">
  <property name="titles"><map>
    <entry key="de"><value>Über CMS Fiona</value></entry>
    <entry key="en"><value>About CMS Fiona</value></entry></map>
  </property>
  <property name="subpage"><value>AboutNPS</value></property>
  <property name="selectionType"><value>none</value></property>
  <property name="dialogSize"><value>large</value></property>
</bean>

Das group-Element fasst Einträge zusammen, ohne dass diese Gruppierung im Menü oder in Werkzeugleiste sichtbar wäre. Enthält die Gruppe eine Trennlinie (separator) und ist aufgrund von Restriktionen keiner der Menüeinträge (siehe unten) anwendbar, so wird die Gruppe komplett (also auch die Trennlinie) ausgeblendet. Dadurch wird vermieden, dass ein Menü zwei oder mehrere Trennlinien hintereinander (ohne dazwischen liegende Menüeinträge) enthält.

Mit dem group-Element kann darüber hinaus die Sichtbarkeit aller darin enthaltenen Elemente auf bestimmte Navigator-Seiten eingeschränkt werden. Dies geschieht mit Hilfe des Attributs contexts, das folgende Werte haben kann:

  • object: die Elemente in der Gruppe sind sichtbar, wenn im Hauptfenster des Content Navigators eine Datei ausgewählt wurde.
  • bookmark: die Elemente in der Gruppe sind sichtbar, wenn im Content Navigator Lesezeichen bearbeitet werden.
  • select.object: die Elemente in der Gruppe sind sichtbar, wenn in einem Dateiauswahldialog im Content Navigator eine Datei ausgewählt wird.
  • search.object: die Elemente in der Gruppe sind sichtbar, wenn auf der Suchseite nach einer Datei gesucht wird.

Mit dem Attribut roles können Gruppen von Menübefehlen (group) sowie einzelne Menübefehle auf bestimmte (von den Benutzern auswählbare) Oberflächen eingeschränkt werden. Siehe auch den Systemkonfigurationseintrag gui.roles in der Datei gui.xml.

Die Eigenschaften von Beans der Klasse com.infopark.cm.htmlgui.browse.menuaction.OpenSubpage haben die folgende Bedeutung:

  • titles legt die mehrsprachigen Titel von Dialogseiten fest.
  • subpage legt den Namen einer Dialogseite fest.
  • selectionType legt fest, auf welche Auswahl von Dateien, ein Menüeintrag anwendbar ist: none = global (keine Datei), single = eine Datei, extended = Liste von Dateien.
  • dialogSize bestimmt die Größe des Dialogfensters. Erlaubte Werte sind small (klein), medium (mittel) und large (groß).