001: package de.webman.sitetree.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.sql.*;
017: import java.io.*;
018: import java.util.*;
019:
020: /**
021: * Edit eines node (klick auf link): alle Documents zum node auflisten + New-Button
022: *
023: * @author $Author: alex $
024: * @version $Revision: 1.7 $
025: */
026: public class STEditHandler extends DefaultEventHandler implements
027: ParameterTypes, FrameConstants, DatabaseDefaults {
028: /** Konstruktor private - Singleton !*/
029: private STEditHandler() {
030: }
031:
032: /** Singleton Instanz */
033: private static STEditHandler instance = new STEditHandler();
034:
035: public static STEditHandler 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.SITE_TREE);
043: String sNodeId = evt
044: .getParameter(PARAMETER, "SITE_NODE_ID");
045: TKHTMLTemplate t = evt
046: .getPrepHTMLTemplate("st_docList.tmpl");
047:
048: TKQuery q = TKDBManager.newQuery(TKDBStructContGet.class);
049: q.setQueryParams("SITE_NODE_ID", new Integer(sNodeId));
050: q.execute();
051: ResultSet rs = q.fetchResultSet();
052: TKDBTemplate.prepareListTemplate(rs, t,
053: "STRUCTURE_DOCUMENTS_PER_NODE");
054:
055: q = TKDBManager.newQuery(TKDBStructContGetFreeForm.class);
056: q.setQueryParams("SITE_NODE_ID", new Integer(sNodeId));
057: q.execute();
058: TKDBResult dbrs = new TKDBResult(q.fetchResultSet());
059: if (dbrs.size() >= 1) {
060: TKDBTemplate.prepareListTemplate(dbrs, t,
061: "ST_FREE_STRUCFORM_LIST");
062: t.set("ST_FREEFORMS", "1");
063: }
064:
065: q = TKDBManager.newQuery(TKDBPresentationGet.class);
066: q.execute();
067: rs = q.fetchResultSet();
068: TKDBTemplate.prepareListTemplate(rs, t,
069: "ST_PRESENTATION_LIST");
070:
071: q = TKDBManager.newQuery(TKDBSiteDocGetHeretable.class);
072: q.setQueryParams("SITE_NODE_ID", new Integer(sNodeId));
073: q.execute();
074: dbrs = new TKDBResult(q.fetchResultSet());
075: if (dbrs.size() >= 1) {
076: TKDBTemplate.prepareListTemplate(dbrs, t,
077: "HERETED_DOCUMENTS_PER_NODE");
078: t.set("ST_HER_DOCS", "1");
079: }
080:
081: q = TKDBManager.newQuery(TKDBSiteDocGet.class);
082: q.setQueryParams("SITE_NODE_ID", new Integer(sNodeId));
083: q.execute();
084: dbrs = new TKDBResult(q.fetchResultSet());
085: if (dbrs.size() >= 1) {
086: TKDBTemplate.prepareListTemplate(dbrs, t,
087: "DOCUMENTS_PER_NODE");
088: t.set("ST_OWN_DOCS", "1");
089: }
090:
091: t.set(evt.getParams().getClass(PARAMETER));
092: t.set("NEW_SITE_NODE_ID", sNodeId);
093: WebManEvent.fillEventsIntoTemplate(evt.getRemoteUser(), t,
094: SITE_TREE);
095: evt.finishTemplate(t);
096: } catch (Throwable e) {
097: // TO DO : Analyze Exception !
098: throw WebmanExceptionHandler.getException(e);
099: }
100: }
101:
102: public boolean isHandler(TKEvent evt) {
103: return evt.getName().equalsIgnoreCase("ST_EDIT");
104: }
105: }
|