Download ContentManager-Programmierhandbuch
Transcript
8.1.1_contentManagerProgrammersManual_de.book Page 251 Wednesday, November 13, 2002 5:32 PM
Anwendungsbeispiele
11.4 Veto gegen Metadatenänderung
Dieser Agent demonstriert die Registrierung und Verarbeitung von Vorbereitungsereignissen (PrepareEvents). Der Agent verbietet es, den Titel
von VIP-Objekten zu ändern oder eine andere als die konfigurierte
Vorlage zu verwenden. Wurde der Titel geändert oder eine Vorlage
ausgewählt, die nicht der konfigurierten Vorlage des Agenten entspricht,
wird vom Agenten eine VetoException geworfen. Dadurch wird die
Aktion unterbunden. Die verwendete lokalisierte Nachricht wird dann z.B.
im CMS-Client des Benutzers angezeigt.
In diesem Beispiel wird eine innere Klasse verwendet, um das
PrepareEventListener-Interface zu implementieren.
package com.company.vip.api.example;
import java.util.Properties;
import
import
import
import
import
import
import
import
import
import
de.gauss.vip.api.VipRuntime;
de.gauss.vip.api.UserMessage;
de.gauss.vip.api.event.PrepareEventListener;
de.gauss.vip.api.event.EventDispatcher;
de.gauss.vip.api.event.PrepareEvent;
de.gauss.vip.api.event.Event;
de.gauss.vip.api.event.VetoException;
de.gauss.vip.api.lang.ObjectId;
de.gauss.vip.api.object.FieldNames;
de.gauss.vip.repository.RepositoryEntry;
// This agent registers an inner class instance for
// PrepareEvent.PREPARE_OBJECT_CHANGE_METADATA events for a
// configurable website and prevents title changes and template
// assignments via veto exceptions.
public class Example3
extends ExampleAgent
{
// These keys will be localized via
// "UserMessage_<langcode>.properties" file
private final static String templateVetoKeyM
= "VETO_TEMPLATE_FOR_{0}_SHOULD_BE_{1}";
private final static String titleVetoKeyM
= "VETO_TITLE_FOR_{0}_NOT_CHANGEABLE";
VIP ContentManager – Programmierhandbuch
251