001: package de.webman.documenttype.eventhandler;
002:
003: import com.teamkonzept.web.*;
004: import com.teamkonzept.webman.*;
005: import com.teamkonzept.webman.db.TKWebmanDBManager;
006: import com.teamkonzept.webman.mainint.*;
007: import com.teamkonzept.webman.mainint.db.*;
008:
009: import com.teamkonzept.webman.mainint.db.queries.*;
010: import com.teamkonzept.webman.mainint.events.*;
011: import com.teamkonzept.lib.*;
012: import com.teamkonzept.field.*;
013: import com.teamkonzept.field.db.*;
014: import com.teamkonzept.db.*;
015: import java.util.*;
016: import java.sql.*;
017:
018: /**
019: * doPRNewPresComp
020: *
021: * Hinzufuegen einer neuen Componente zu einer Presentation
022: * @author $Author: alex $
023: * @version $Revision: 1.9 $
024: *
025: */
026: public class DTNewPresCompHandler extends DefaultEventHandler implements
027: ParameterTypes, FrameConstants, DatabaseDefaults {
028: /** Konstruktor private - Singleton */
029: private DTNewPresCompHandler() {
030: }
031:
032: /** Singleton Instanz */
033: private static DTNewPresCompHandler instance = new DTNewPresCompHandler();
034:
035: /**
036: * @return Singleton Instanz
037: */
038: public static DTNewPresCompHandler getInstance() {
039: return instance;
040: }
041:
042: public void handleEvent(TKEvent evt) throws TKException {
043: try {
044: WebManEvent.checkEvent(evt.getRemoteUser(), evt.getName(),
045: ContextConstants.PRESENTATIONS);
046: String compType = evt.getParameter(PARAMETER,
047: "COMPONENT_TYPE");
048: String intType = evt.getParameter(PARAMETER,
049: "INTEGRATION_TYPE");
050: String formId = evt.getNotNullParameter(PARAMETER,
051: "THE_FORM_ID");
052: String neu = evt.getNotNullParameter(PARAMETER, "NEU");
053: if (compType.equals(REFERENCE_FREE)) {
054: // freie Ref.: keinen Eintrag in PRESENTATION_REFERENCE, gleich speichern
055: DTUtils.savePresComp(evt.getParameter(PARAMETER,
056: "PRESENTATION_ID"), compType, intType, evt
057: .getNotNullParameter(PARAMETER,
058: "INTEGRATION_NAME").trim(), evt
059: .getNotNullParameter(PARAMETER,
060: "INTEGRATION_SHORTNAME"));
061: } else if (compType.equals(REFERENCE_TYPED)) { // getypte Ref.
062: if (neu.equals("NO_SEL")) { // Auswahl einer Sub Presentation in neuer Maske
063: DTUtils.subSelection(evt,
064: TKDBPresentationGet.class, false);
065: return;
066: } else { // schon Sub Presentation ausgewaehlt: speichern
067: DTUtils.savePresRef(evt);
068: }
069: } else if (compType.equals(CONTENT)) { // Content Components
070: if (formId.equals("")) { // Auswahl einer FORM_ID in neuer Maske
071: DTUtils.subSelection(evt, TKDBFormGetAll69.class,
072: false);
073: return;
074: } else { // schon FORM_ID ausgewaehlt: speichern
075: DTUtils.savePresComp(TKDBPresContInsert.class,
076: evt.getParameter(PARAMETER,
077: "PRESENTATION_ID"), formId,
078: "FORM_ID", compType, intType, evt
079: .getParameter(PARAMETER,
080: "INTEGRATION_NAME"), evt
081: .getParameter(PARAMETER,
082: "INTEGRATION_SHORTNAME"));
083: }
084: } else if (compType.equals(STRUCTURE)) { // Structure Components (nur integration_type single moeglich!)
085: boolean hint = !intType.equals(SINGLE);
086: intType = SINGLE; // auf Single zwang !
087: evt.getParams().put(PARAMETER, "INTEGRATION_TYPE",
088: SINGLE);
089: if (formId.equals("")) { // Auswahl einer FORM_ID in neuer Maske
090: DTUtils.subSelection(evt, TKDBFormGetStruct.class,
091: hint);
092: return;
093: } else { // schon FORM_ID ausgewaehlt: speichern
094: DTUtils.savePresComp(TKDBPresContInsert.class,
095: evt.getParameter(PARAMETER,
096: "PRESENTATION_ID"), formId,
097: "FORM_ID", compType, intType, evt
098: .getParameter(PARAMETER,
099: "INTEGRATION_NAME"), evt
100: .getParameter(PARAMETER,
101: "INTEGRATION_SHORTNAME"));
102: }
103: }
104: DTEditHandler.getInstance().handleEvent(evt);
105: } catch (Throwable e) {
106: // TO DO : Analyze Exception !
107: throw WebmanExceptionHandler.getException(e);
108: }
109: }
110:
111: public boolean isHandler(TKEvent evt) {
112: return evt.getName().equalsIgnoreCase("PR_NEW_PRES_COMP");
113: }
114: }
|