KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > de > webman > sitetree > eventhandler > STNewDocumentHandler


1 package de.webman.sitetree.eventhandler;
2
3 import com.teamkonzept.web.*;
4 import com.teamkonzept.webman.*;
5 import com.teamkonzept.webman.db.TKWebmanDBManager;
6 import com.teamkonzept.webman.mainint.*;
7 import com.teamkonzept.webman.mainint.db.*;
8
9
10 import com.teamkonzept.webman.mainint.db.queries.*;
11 import com.teamkonzept.webman.mainint.events.*;
12 import com.teamkonzept.lib.*;
13 import com.teamkonzept.field.*;
14 import com.teamkonzept.field.db.*;
15 import com.teamkonzept.db.*;
16 import com.teamkonzept.publishing.markups.*;
17 import com.teamkonzept.webman.mainint.events.*;
18
19 import java.sql.*;
20 import java.io.*;
21 import java.util.*;
22
23 /**
24 * Anlegen (Speichern) eines neuen Document zu einem node
25 *
26 * @author $Author: alex $
27 * @version $Revision: 1.6 $
28 */

29 public class STNewDocumentHandler extends DefaultEventHandler implements ParameterTypes, FrameConstants, DatabaseDefaults
30 {
31
32     private STNewDocumentHandler()
33     {}
34     
35     private static STNewDocumentHandler instance = new STNewDocumentHandler();
36     
37     public static STNewDocumentHandler getInstance()
38     {
39         return instance;
40     }
41     
42     public void handleEvent(TKEvent evt) throws TKException
43     {
44         try
45         {
46             WebManEvent.checkEvent(evt.getRemoteUser(), evt.getName(), ContextConstants.SITE_TREE);
47             String JavaDoc sDocType = evt.getParameter( PARAMETER, "DOCUMENT_TYPE" );
48             String JavaDoc sExtUrl = "";
49             String JavaDoc sPresId;
50             if( sDocType.equals( "2" ) )
51             {
52                 TKQuery q = TKDBManager.newQuery(TKDBPresentationGet.class);
53                 q.execute();
54                 ResultSet rs = q.fetchResultSet();
55
56                 TKHTMLTemplate t = evt.getPrepHTMLTemplate( "st_newExtDoc.tmpl" );
57                 TKDBTemplate.prepareListTemplate( rs, t, "ST_PRESENTATION_LIST" );
58                 sPresId = evt.getParameter( PARAMETER, "PRESENTATION_ID" );
59                 t.set( evt.getParams().getClass( PARAMETER ) );
60                 // there is no presentation specified
61
if(sPresId == null || sPresId.equals("")){
62                     throw new TKUserException("No presentation specified", NO_PRESENTATION, USER_SEVERITY, true, null);
63                 }
64                 
65                 t.set( "THE_PRESENTATION_ID", sPresId);
66                 evt.finishTemplate(t);
67                 return;
68             }
69             else if( sDocType.equals( "Fake" ) ){ // jetzt auch die externe URL speichern!!
70
sExtUrl = evt.getParameter( PARAMETER, "EXTERNAL_URL" );
71                 sDocType = "2"; // ist eigentlich ein externes doc
72
sPresId = evt.getParameter( PARAMETER, "THE_PRESENTATION_ID" );
73             }
74             else {
75                 sPresId = evt.getParameter( PARAMETER, "PRESENTATION_ID" );
76             }
77             // there is no presentation specified
78
if(sPresId == null || sPresId.equals("")){
79                 throw new TKUserException("No presentation specified", NO_PRESENTATION, USER_SEVERITY, false, null);
80             }
81             String JavaDoc sNodeId = evt.getParameter( PARAMETER, "SITE_NODE_ID" );
82             String JavaDoc sDocName = evt.getParameter( PARAMETER, "NEW_DOC_NAME" );
83             if (sDocName == null || sDocName.equals(""))
84                 throw new TKUserException("No name specified", INPUT_CANNOT_BE_EMPTY, USER_SEVERITY, false, null);
85             
86             String JavaDoc sDocShortName = evt.getParameter( PARAMETER, "NEW_DOC_SHORTNAME" );
87             if (sDocShortName == null || sDocShortName.equals(""))
88                 throw new TKUserException("No shortname specified", INPUT_CANNOT_BE_EMPTY, USER_SEVERITY, false, null);
89
90             String JavaDoc sHeretable = evt.getNotNullParameter( PARAMETER, "INHERITABLE" );
91             String JavaDoc sInheritBeginLevel = evt.getParameter( PARAMETER, "INHERIT_BEGIN_LEVEL" );
92             String JavaDoc sInheritEndLevel = evt.getParameter( PARAMETER, "INHERIT_END_LEVEL" );
93             int heretable = sHeretable.equals( "" ) ? 0 : Integer.parseInt( sHeretable );
94             Integer JavaDoc inheritBeginLevel = sInheritBeginLevel.equals("") ? null : new Integer JavaDoc(sInheritBeginLevel);
95             Integer JavaDoc inheritEndLevel = sInheritEndLevel.equals("") ? null : new Integer JavaDoc(sInheritEndLevel);
96             
97             TKQuery q = TKDBManager.newQuery(TKDBSiteDocNew.class);
98             q.setQueryParams( "SITE_NODE_ID", new Integer JavaDoc(sNodeId) );
99             q.setQueryParams( "PRESENTATION_ID", new Integer JavaDoc(sPresId) );
100             q.setQueryParams( "DOCUMENT_NAME", sDocName );
101             q.setQueryParams( "DOCUMENT_SHORTNAME", sDocShortName );
102             q.setQueryParams( "DOCUMENT_TYPE", new Integer JavaDoc(sDocType) );
103             q.setQueryParams( "EXTERNAL_URL", sExtUrl.equals( "" )?null:sExtUrl );
104             q.setQueryParams( "INHERITABLE", new Integer JavaDoc(heretable) );
105             q.setQueryParams( "INHERIT_BEGIN_LEVEL", inheritBeginLevel );
106             q.setQueryParams( "INHERIT_END_LEVEL", inheritEndLevel );
107             
108             q.execute();
109             ResultSet rs = q.fetchResultSet();
110             rs.next();
111             String JavaDoc siteNodeIdx = rs.getString("SITE_NODE_DOC_IDX");
112             evt.getParams().put(PARAMETER, "SITE_NODE_DOC_IDX", siteNodeIdx);
113             evt.getParams().put(PARAMETER, "DOCUMENT_NAME", sDocName);
114             evt.getParams().put(PARAMETER, "DOCUMENT_SHORTNAME", sDocShortName);
115             
116             STEditDocumentHandler.getInstance().handleEvent(evt);
117         }
118         catch(TKUserException e){
119             throw e;
120         }
121         catch (Throwable JavaDoc e)
122         {
123             // TO DO : Analyze Exception !
124
throw WebmanExceptionHandler.getException(e);
125         }
126     }
127     
128     public boolean isHandler(TKEvent evt)
129     {
130         return evt.getName().equalsIgnoreCase("ST_NEW_DOC");
131     }
132 }
133
Popular Tags