package de.webman.content;
import java.util.*;
import java.sql.*;
import java.io.*;
import com.teamkonzept.web.*;
import com.teamkonzept.lib.*;
import com.teamkonzept.field.*;
import com.teamkonzept.field.db.*;
import com.teamkonzept.db.*;
import com.teamkonzept.webman.mainint.*;
import com.teamkonzept.publishing.markups.*;
import com.teamkonzept.webman.mainint.events.*;
import com.teamkonzept.webman.*;
import com.teamkonzept.webman.db.*;
import com.teamkonzept.webman.mainint.db.*;
import com.teamkonzept.webman.mainint.db.queries.*;
import de.webman.content.eventhandler.*;
import de.webman.generator.*;
/**
* The distributor for all content tree related events.
*
* @author $Author: uli $
* @version $Revision: 1.41
*/
public class CEEventDistributor
extends CachedEventDistributor
implements ParameterTypes,
DatabaseDefaults,
FrameConstants
{
/**
* Constructs a new event distributor.
*/
public CEEventDistributor ()
{
addEventHandler(CESwitchMutipleContentHandler.getInstance());
addEventHandler(CEArrangeMoveHandler.getInstance());
addEventHandler(CEArrangeOpenDirHandler.getInstance());
addEventHandler(CEArrangeShowHandler.getInstance());
addEventHandler(CEArrangeStartHandler.getInstance());
addEventHandler(CEBrowseHandler.getInstance());
addEventHandler(CECheckHandler.getInstance());
addEventHandler(CECompactHandler.getInstance());
addEventHandler(CEContentAttributesHandler.getInstance());
addEventHandler(CEContentInfoHandler.getInstance());
addEventHandler(CEContentVersionsHandler.getInstance());
addEventHandler(CEDefaultHandler.getInstance());
addEventHandler(CEEditHandler.getInstance());
addEventHandler(CEEditNodeHandler.getInstance());
addEventHandler(CEExportHandler.getInstance());
addEventHandler(CEExtModifyDoneHandler.getInstance());
addEventHandler(CEExtModifyHandler.getInstance());
addEventHandler(CEForwardHandler.getInstance());
addEventHandler(CEFrameHandler.getInstance());
addEventHandler(CEImportHandler.getInstance());
addEventHandler(CEIntershopHandler.getInstance());
addEventHandler(CEMediaGetHandler.getInstance());
addEventHandler(CEModifyHandler.getInstance());
addEventHandler(CENewNodeHandler.getInstance());
addEventHandler(CENodeDeleteHandler.getInstance());
addEventHandler(CENodeListMultHandler.getInstance());
addEventHandler(CEOnlineHandler.getInstance());
addEventHandler(CEOpenMultDirHandler.getInstance());
addEventHandler(CESaveHandler.getInstance());
addEventHandler(CESaveNewNodeHandler.getInstance());
addEventHandler(CESwitchGroupContentHandler.getInstance());
addEventHandler(CEUpdateGroupContentHandler.getInstance());
addEventHandler(CEUpdateNodeHandler.getInstance());
}
/**
* Handles the specified event.
*
* @param event the event to be handled.
* @throws TKException if any error occurred during event handling.
*/
public void handleEvent (TKEvent event)
throws TKException
{
try
{
super.handleEvent(event);
}
catch (TKException tke)
{
// hier die Exception Klasse abfragen !!!
if (tke.getErrorCode() == INVALID_EVENT)
{
try
{
String name = event.getName();
if (name.equalsIgnoreCase("CE_PREV_INDEX"))
{
Preview preview = new Preview(event);
preview.doPreviewIndexPerContent();
return;
}
if (name.equalsIgnoreCase("CE_PREVIEW"))
{
Preview preview = new Preview(event);
preview.doPreview();
return;
}
if (name.equalsIgnoreCase("CE_DISPLAY_TEXT_ATTRIBUTES"))
{
TKWMAttrEdit attrEdit = new TKWMAttrEdit(event);
attrEdit.displayLinks();
return;
}
if (name.equalsIgnoreCase("CE_EMPTY"))
{
event.doEmptyPage();
return;
}
throw tke;
}
catch (FileNotFoundException fnfe)
{
throw new TKUserException("Template not Found",
UserCodes.TEMPLATE_NOT_FOUND,
ErrorCodes.USER_SEVERITY,
false,
new Object[]{fnfe.getMessage()},
fnfe);
}
catch (TKTemplateSyntaxException tktse)
{
throw new TKUserException("Template Syntax Error",
UserCodes.WRONG_TEMPLATE_SYNTAX,
ErrorCodes.USER_SEVERITY,
false,
new Object[]{tktse.getMessage()},
tktse);
}
catch (Throwable t)
{
throw WebmanExceptionHandler.getException(t);
}
}
else
{
throw tke;
}
}
}
/**
* Checks wether this handler is capable to handle the specified event.
*
* @param event the event to be handled.
* @return <CODE>true</CODE> if this handler is capable to handle the
* specified event, otherwise <CODE>false</CODE>.
*/
public boolean isHandler (TKEvent event)
{
return event.getName().startsWith("CE");
}
}
|