Version: GSB 7Konfigurationsmöglichkeiten
Die klassifizierten Links können über die Editor-Konfiguration konfiguriert werden.
Editoren
Die Klasse
de.bundonline.basis.editor.propety.ConfigurableClassifiedLinkListEditor
ermöglicht es, einer ClassifiedLinkList feste Werte zuzuweisen. Die einzelnen Attribute einer ClassifiedLinkList (TextClassifier, LinkClassifier, LinkList) können nun wie gewöhnliche CoreMedia-Properties mit Property-Editoren versehen werden.
Beispiel
<Document type="ConfigCl2LinkList">
<Propertyvalue "editorClass="de.bundonline.basis.editor.property.ConfigurableClassifiedLinkListEditor">
<ClassifiedLinkListEntry typeLabelKey="TestTypeLabelKey" classifierLabelKey="TestClassifierLabelKey" linkListLabelKey="TestLinkListLabelKey">
<ClassifierTextEditor editorClass="ComboBoxStringEditor">
<HistoryItem value="eins"/>
<HistoryItem value="zwei"/>
</ClassifierTextEditor >
</ClassifiedLinkListEntry>
<ClassifiedLinkListEntry>
<ClassifierTextEditor editorClass="ComboBoxStringEditor">
<HistoryItem value="drei"/>
<HistoryItem value="vier"/>
</ClassifierTextEditor >
<LinkListEditor editorClass="ComboBoxLinkListEditor" path="/standardlsg "/>
</ClassifiedLinkListEntry>
</Property>
</Document>
Abbildung 4: Auszug aus der editor.xml: ConfigurableClassifiedLinkList
Man muss die entsprechende Editor-Klasse
de.bundonline.basis.editor.property.ConfigurableClassifiedLinkListEditor
in der cl2LinkList-Property registrieren und kann dann die Properties einer cl2LinkList mit den üblichen CoreMedia Property-Editoren versehen. Im oben stehendenden Beispiel wurden zwei ClassifiedLinkLists in der Property "value" des Dokumenttyps "ConfigCl2LinkList" vorkonfiguriert. Beide haben eine SelectBox/DropDown-Box in ihrem TextClassifier-Feld. In der zweiten ClassifiedLinkList ist außerdem noch ein ComboBoxLinkList Editor für die eigentlichen LinkList-Einträge konfiguriert.
Felder ausblenden
Es ist möglich, einzelne Eingabefelder eines cl2LinkLists zu verstecken. Das folgende Beispiel hat einen cl2LinkList mit einem versteckten ClassifierLink (<ClassifierLinkEditor visible="false"/>).
Beispiel
<Document type="Basepage">
<Property name="cl2RespTargets" visible="true" editorClass="de.bundonline.basis.editor.property.ConfigurableClassifiedLinkListEditor">
<ClassifiedLinkListEntry>
<ClassifierTextEditor editorClass="ComboBoxStringEditor">
<HistoryItem value="Behoerde"/>
<HistoryItem value="Ansprechpartner"/>
</ClassifierTextEditor>
<ClassifierLinkEditor visible="false"/>
</ClassifiedLinkListEntry>
</Property>
</Document>
Abbildung 5: Auszug aus der editor.xml: Ausblenden von Feldern
Reihenfolge der Felder
Die Spezifikation ClassifierLinkEditor, ClassifierTextEditor und LinkListEditor in der editor.xml werden in der Reihenfolge der gemachten Einträge übernommen, sowohl beim normalen ClassifiedLinkListEditor als auch beim ConfigurableClassifiedLinkListEditor (dort für jeden Eintrag einzelnd wirksam).
Will man einfach nur die Reihenfolge bestimmen und keine andere Editorklasse benutzen, reicht die Angabe eines Tags ohne weitere Attribute (bspw. beim LinklistEditor durch <LinkListEditor/>).
Beispiel
<Document type="ConfigCl2LinkList">
<Property name="value" editorClass="de.bundonline.basis.editor.property.ClassifiedLinkListEditor">
<ClassifierLinkEditor/>
<LinkListEditor/>
<ClassifierTextEditor/>
</Property>
</Document>
Abbildung 6: Auszug aus der editor.xml: Reihenfolge der Felder
ReadOnly LinkListEditor
Für Classifier-Einträge braucht man einen ReadOnly LinkListEditor, der es nicht zulässt, dass Dokumente hinzugefügt werden. Dieser Editor hat lediglich die Commands "kopieren" und "öffnen" im Kontext-Menü.
Beispiel
<Document type="ConfigCl2LinkList">
<Property editorClass="de.bundonline.basis.editor.property.ClassifiedLinkListEditor" name="value" visible="true">
<ClassifierLinkEditor editorClass="de.bundonline.basis.editor.property.ReadOnlyLinkListEditor" />
</Property></Document>
Abbildung 7: Auszug aus der editor.xml: ReadOnly- Felder
Initializer
Um einzelne Felder der ClassifiedLinkList mit spezifischen Werten vorzubelegen, existiert ein spezieller Initializer. Das nachfolgende kurze Beispiel zeigt den Standardeinsatz
Beispiel
<DocumentType name="ConfigCl2LinkList">
<PropertyType name="value">
<Initializer class="de.bundonline.basis.editor.initialization.ClassifiedLinkListInitializer">
<ClassifiedLinkListEntry>
<TextClassifierInitializer initialValue="eins"/>
<LinkClassifierInitializer path="/EuroTest" />
<LinkListInitializer path="/EuroTest"/>
</ClassifiedLinkListEntry>
<ClassifiedLinkListEntry>
<TextClassifierInitializer initialValue="zwei"/>
<LinkClassifierInitializer path="/EuroTest" />
<LinkListInitializer path="/EuroTest">
<PathEntry path="/EuroTest"/>
<PathEntry path="/EurTest"/>
</LinkListInitializer>
</ClassifiedLinkListEntry>
</Initializer>
</PropertyType>
</DocumentType>
Abbildung 8: Auszug aus der editor.xml: Initializer für ClassifiedLinkList
Validatoren
Zur Validierung der Einträge in ClassifiedLinkList gibt es einen speziellen ClassifiedLinkListValidator. Für die String und LinkListen innerhalb der Einträge können die normalen Validatoren benutzt werden, die auch in normalen String bzw. LinkList Properties benutzt werden können.
Anzahl der verlinkten Dokumente
Die Anzahl der verlinkten Dokumenten-Links kann mit minLength bzw. maxLength festgelegt werden.
Beispiel
<DocumentType name="ConfigCl2LinkList">
<PropertyType name="value">
<Validator class="de.bundonline.basis.editor.validation.ClassifiedLinkListValidator">
<ClassifiedLinkListEntry>
<TextClassifierValidator class="NotEmpty" />
<LinkClassifierValidator class="NotEmpty" />
<LinkListValidator class="LinkListValidator" minLength="2" maxLength="3" />
</ClassifiedLinkListEntry>
</Validator>
</PropertyType>
</DocumentType>
Abbildung 9: Auszug aus der editor.xml – Validator für ClassifiedLinkList: min/max
Dokumenttyp
Auf den TextClassifierValidator und LinkListValidator Elementen kann ein Attribut "docType" gesetzt werden. Gegen diesen Dokumenttyp werden beim Zurückgeben alle enthaltenen Dokumente validiert - zwar unabhängig vom eigentlich konfigurierten Validator.
Der so konfigurierte Dokumenttyp wird automatisch auch von dem ClassifiedLinkListEditor berücksichtigt und die LinkListEditoren lassen nur diesen Typ (und seine Untertypen) zu.
Beispiel
<DocumentType name="ConfigCl2LinkList">
<PropertyType name="value">
<Validator class="de.bundonline.basis.editor.validation.ClassifiedLinkLis</tt>tValidator">
<ClassifiedLinkListEntry>
<TextClassifierValidator class="NotEmpty" />
<LinkClassifierValidator docType="Classifier" class="NotEmpty" />
<LinkListValidator class="LinkListValidator" docType="Video" minLength="2" maxLength="3" />
</ClassifiedLinkListEntry>
</Validator>
</PropertyType>
</DocumentType>
Abbildung 10: Auszug aus der editor.xml – Validator für <tt>ClassifiedLinkList:Einschränkungen auf Dokumenttypen
Pfad-Einschränkungen
Um in einem LinkListValidator die Auswahl der möglichen Dokumente einzugrenzen, auf die man verlinken darf, gibt es normalerweise die Möglichkeit, in einem Validator das Attribute "path" anzugeben. Dieses wird dann automatisch von einem LinkListEditor (der von AbstractLinkListEditor erbt) berücksichtigt, und es wird im ResourceChooser nur dieser Ordner angezeigt (mit seinen Dokumenten und seinen Unterordnern).
Bei den ClassifiedLinkList Properties ist dies nicht ganz so einfach möglich. Um dennoch diese wichtige Funktionalität verfügbar zu machen, gibt es eine spezielle PropertyEditor Klasse für LinkListen
de.bundonline.basis.editor.property.PathAwareLinkListEditor
die ein Attribut "path" akzeptiert und diesen Pfad zur Einschränkung benutzt.
Beispiel
<Document type="ConfigCl2LinkList">
<Property editorClass="de.bundonline.basis.editor.property.ClassifiedLinkListEditor" name="value">
<LinkListEditor edito</tt>rClass="de.bundonline.basis.editor.property.PathAwareLinkListEditor" path="/WMS/SiteGlobals/_config"/>
</Property>
</Document>
Abbildung 11: Auszug aus der editor.xml: <tt>ClassifiedLinkList - Pfad-Einschränkungen
Es ist aber dennoch zu empfehlen, diesen Pfad zusätzlich beim Validator einzubauen. Dadurch lassen sich auch Verschiebungen und Importe beim nächsten Editiervorgang erkennen und validieren.
Beispiel
<DocumentType name="ConfigCl2LinkList">
<PropertyType name="value">
<Validator class="de.bundonline.basis.editor.validation.ClassifiedLinkListValidator">
<ClassifiedLinkListEntry>
<LinkListValidator class="LinkListValidator" path="/WMS/SiteGlobals/_config" />
</ClassifiedLinkListEntry>
</Validator>
</PropertyType>
</DocumentType>
Abbildung 12: Auszug aus der editor.xml – Validator für ClassifiedLinkList: Pfad-Einschränkungen
Labels
Um die Texte vor den Einträgen einer ClassifiedLinkList zu „lokalisieren“, d.h. mit mandantenspezifischen Namen zu versehen, gibt es mehrere Möglichkeiten.
Generelle Einstellung
Die Default-Einstellung für alle nicht weiter konfigurierten cl2-Properties befinden sich in dem Bundle der Editor-Properties (bspw. editor_de.properties) des Mandanten. Hier kann man kann man drei Key/Value Paare angeben, welche die Default-Einstellung festlegen:
Beispiel:
classifiedlinklist-classifierText=Typ/Text
classifiedlinklist-classifierLinks=Klassifizierungslink
classifiedlinklist-linklist=Dokumenten-Links
Abbildung 13: Auszug aus editor_de.properties: Default Labels für ClassifiedLinkList
Fest definierte Labels für eine Dokumenttyps-Property
Im Allgemeinen können für eine spezielle Property eines Dokumenttyps die Default-Einstellungen in dem Bundle der Editor-Properties des Mandanten überschrieben werden.
Die Einträge in dem Bundle setzen sich dabei wie folgt zusammen:
[DOCTYPENAME]/[PROPERTYNAME]-[CL2BESTANDTEIL]
Für eine cl2 Property "cl2Test" im DocType "Test" würde die
Konfiguration wie folgt aussehen:
Test/cl2Test-classifierText=MyLabel
Test/cl2Test-classifierLinks=MyLabel
Test/cl2Test-linklist=MyLabel
Abbildung 14: Auszug aus editor_de.properties: Labels für eine Standard-cl2Property
Fest definierte Labels für spezielle ClassifiedLinkListEntries
Bei fest definierten (ConfigurableClassifiedLinkListEditor) LinkListen kann man jede einzelne Liste mit einem anderen Label versehen. Dazu muss man in der editor.xml diese Labels direkt zu den jeweiligen ClassifiedLinkListEntry Elementen angeben
Beispiel:
<Document type="ConfigCl2LinkList">
<Propertyvalue editorClass= "de.bundonline.basis.editor.property.ConfigurableClassifiedLinkListEditor">
<ClassifiedLinkListEntry typeLabelKey= "TestTypeLabelKey" classifierLabelKey= "TestClassifierLabelKey" linkListLabelKey="TestLinkListLabelKey">
</ClassifiedLinkListEntry>
<ClassifiedLinkListEntry typeLabelKey= "TestTypeLabelKey2" classifierLabelKey= "TestClassifierLabelKey2" linkListLabelKey="TestLinkListLabelKey2">
</ClassifiedLinkListEntry>
</Property>
</Document>
Abbildung 15: Auszug aus editor_de.properties: – Spezielle Labels für ClassifiedLinkList