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:
016: import java.util.*;
017: import java.sql.*;
018:
019: /**
020: *
021: * Speichern der Aenderungen zu einer Componente einer Presentation
022: *
023: * @author $Author: alex $
024: * @version $Revision: 1.7 $
025: */
026: public class DTUpdatePresCompHandler extends DefaultEventHandler
027: implements ParameterTypes, FrameConstants, DatabaseDefaults {
028: /** Konstruktor private - Singleton */
029: private DTUpdatePresCompHandler() {
030: }
031:
032: /** Singleton Instance */
033: private static DTUpdatePresCompHandler instance = new DTUpdatePresCompHandler();
034:
035: public static DTUpdatePresCompHandler getInstance() {
036: return instance;
037: }
038:
039: public void handleEvent(TKEvent evt) throws TKException {
040: try {
041: WebManEvent.checkEvent(evt.getRemoteUser(), evt.getName(),
042: ContextConstants.PRESENTATIONS);
043: String compType = evt.getParameter(PARAMETER,
044: "COMPONENT_TYPE");
045: String intType = evt.getParameter(PARAMETER,
046: "INTEGRATION_TYPE");
047: String formId = evt.getNotNullParameter(PARAMETER,
048: "THE_FORM_ID");
049: //String subPresId = evt.getNotNullParameter( PARAMETER, "SUB_PRESENTATION_ID" );
050: String update = evt
051: .getNotNullParameter(PARAMETER, "UPDATE");
052: String oldCompType = evt.getNotNullParameter(PARAMETER,
053: "OLD_COMPONENT_TYPE");
054:
055: if (compType.equals(REFERENCE_FREE)) { // freie Ref.: keinen Eintrag in PRESENTATION_REFERENCE, gleich speichern
056: if (!oldCompType.equals("")
057: && !oldCompType.equals(compType)) {
058: DTUtils.removeOldContext(evt, oldCompType);
059: }
060: DTUtils.updatePresComp(evt);
061: } else if (compType.equals(REFERENCE_TYPED)) { // getypte Ref.
062: if (update.equals("NO_SEL")) {
063: if (!oldCompType.equals("")
064: && !oldCompType.equals(compType)) {
065: DTUtils.removeOldContext(evt, oldCompType);
066: DTEditSubPresSelectionHandler.getInstance()
067: .handleEvent(evt); // Auswahl ermoeglichen
068: return;
069: } else {
070: DTUtils.updatePresComp(evt); // sub presentation-auswahl hat sich nicht geaendert, also nur in PRESENTATION_COMPONENT updaten
071: }
072: } else { // sub presentation-auswahl hat sich geaendert, also erst in PRESENTATION_COMPONENT updaten,
073: // dann in PRESENTATION_REFERENCE...
074: if (!oldCompType.equals("")
075: && !oldCompType.equals(compType)) {
076: DTUtils.removeOldContext(evt, oldCompType);
077: }
078: DTUtils.updatePresComp(evt);
079: DTUtils.updatePresRef(evt);
080: }
081: } else if (compType.equals(CONTENT)) { // Content Components
082: if (formId.equals("")) { // Auswahl einer FORM_ID in neuer Maske
083: DTUtils.subSelection(evt, TKDBFormGetAll69.class,
084: false);
085: return;
086: } else { // schon FORM_ID ausgewaehlt: update
087: if (!oldCompType.equals("")
088: && !oldCompType.equals(compType)) {
089: DTUtils.removeOldContext(evt, oldCompType);
090: DTUtils.updatePresComp(evt);
091: DTUtils.insertPresCont(evt, formId);
092: } else {
093: DTUtils.updatePresComp(evt);
094: DTUtils.updatePresCont(evt, formId);
095: }
096: }
097: } else if (compType.equals(STRUCTURE)
098: && intType.equals(SINGLE)) { // Structure Components
099: if (formId.equals("")) { // Auswahl einer FORM_ID in neuer Maske
100: DTUtils.subSelection(evt, TKDBFormGetStruct.class,
101: false);
102: return;
103: } else { // schon FORM_ID ausgewaehlt: update
104: if (!oldCompType.equals("")
105: && !oldCompType.equals(compType)) {
106: DTUtils.removeOldContext(evt, oldCompType);
107: DTUtils.updatePresComp(evt);
108: DTUtils.insertPresCont(evt, formId);
109: } else {
110: DTUtils.updatePresComp(evt);
111: DTUtils.updatePresCont(evt, formId);
112: }
113: }
114: }
115: DTEditHandler.getInstance().handleEvent(evt);
116: } catch (Throwable e) {
117: // TO DO : Analyze Exception !
118: throw WebmanExceptionHandler.getException(e);
119: }
120: }
121:
122: public boolean isHandler(TKEvent evt) {
123: return evt.getName().equalsIgnoreCase("PR_UPDATE_PRES_COMP");
124: }
125: }
|