KickJava   Java API By Example, From Geeks To Geeks.

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


1 package de.webman.sitetree.eventhandler;
2
3
4 import com.teamkonzept.web.*;
5 import com.teamkonzept.webman.*;
6 import com.teamkonzept.webman.db.TKWebmanDBManager;
7 import com.teamkonzept.webman.mainint.*;
8 import com.teamkonzept.webman.mainint.db.*;
9
10
11 import com.teamkonzept.webman.mainint.db.queries.*;
12 import com.teamkonzept.webman.mainint.events.*;
13 import com.teamkonzept.lib.*;
14 import com.teamkonzept.field.*;
15 import com.teamkonzept.field.db.*;
16 import com.teamkonzept.db.*;
17 import com.teamkonzept.publishing.markups.*;
18
19 import java.sql.*;
20 import java.io.*;
21 import java.util.*;
22
23 /************************************************************************
24 /**
25 * neue Seite mit einer Referenz-Presentations-Komponente eines Documents und einer
26 * Auswahlliste (radio buttons) mit allen moeglichen zuzuordnenden Docs zu einem
27 * Node aus dem SiteTree
28 *
29 */

30 public class STSelectRefDocHandler extends DefaultEventHandler implements ParameterTypes, FrameConstants, DatabaseDefaults
31 {
32     private STSelectRefDocHandler()
33     {}
34     
35     private static STSelectRefDocHandler instance = new STSelectRefDocHandler();
36     
37     public static STSelectRefDocHandler 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             int theSiteNodeId = Integer.parseInt( evt.getParameter( PARAMETER, "THE_SITE_NODE_ID" ) );
48             String JavaDoc selType = evt.getParameter( PARAMETER, "THE_SELECTION_TYPE" );
49             TKHTMLTemplate t = evt.getPrepHTMLTemplate( "st_selRefDoc.tmpl" );
50
51             boolean isFree = true;
52
53             if( !selType.equals( "" ) ) {
54                 if( !TKWMReferenceSelectorReg.check( selType ) ) {
55                     TKDBResult oneRes = TKWMReferenceSelectorReg.getValues( selType, theSiteNodeId );
56                     isFree = SiteTreeUtils.isNotInRs( oneRes, evt.getParameter( PARAMETER, "DEST_SITE_NODE_DOC_SHORTNAME" ) );
57                     TKDBTemplate.prepareListTemplate( oneRes, t, "ST_ALL_DOCS" );
58                     t.set( "ST_ONE_LIST", "1" );
59                 }
60                 else {
61                     // sollte jetzt noch nicht auftauchen, spaeter dann Maske von Philipp mit spezieller Auswahl Verfeinerung
62
//log.println( "---> Sorry, refine reference selection not available yet");
63
return;
64                 }
65             }
66             else {
67                 TKQuery q = TKDBManager.newQuery(TKDBSiteDocGetHeretable.class);
68                 q.setQueryParams( "SITE_NODE_ID", new Integer JavaDoc(theSiteNodeId) );
69                 q.execute();
70                 TKDBResult rsHer = new TKDBResult( q.fetchResultSet() );
71                 isFree = SiteTreeUtils.isNotInRs( rsHer, evt.getParameter( PARAMETER, "DEST_SITE_NODE_DOC_SHORTNAME" ) );
72                 TKDBTemplate.prepareListTemplate( rsHer, t, "ST_HERETED_DOCS" );
73
74                 q = TKDBManager.newQuery(TKDBSiteDocGet.class);
75                 q.setQueryParams( "SITE_NODE_ID", new Integer JavaDoc(theSiteNodeId) );
76                 q.execute();
77                 TKDBResult rs = new TKDBResult( q.fetchResultSet() );
78                 if (isFree)
79                     isFree = SiteTreeUtils.isNotInRs( rs, evt.getParameter( PARAMETER, "DEST_SITE_NODE_DOC_SHORTNAME" ) );
80                     
81                 //(wegen JTest rausgenohmen : sebastian@webman-ag.de)isFree = isFree==false?false:SiteTreeUtils.isNotInRs( rs, evt.getParameter( PARAMETER, "DEST_SITE_NODE_DOC_SHORTNAME" ) );
82
TKDBTemplate.prepareListTemplate( rs, t, "ST_DOCS" );
83             }
84
85             if( isFree ) {
86                 t.set( "DOC_SEL", "FREE" );
87                 t.set( "FREE_DOCUMENT_SHORTNAME", evt.getParameter( PARAMETER, "DEST_SITE_NODE_DOC_SHORTNAME" ) );
88             }
89             t.set( evt.getParams().getClass( PARAMETER ) );
90             WebManEvent.fillEventsIntoTemplate(evt.getRemoteUser(), t, SITE_TREE);
91             evt.finishTemplate(t);
92         }
93         catch (Throwable JavaDoc e)
94         {
95             // TO DO : Analyze Exception !
96
throw WebmanExceptionHandler.getException(e);
97         }
98     }
99     
100     public boolean isHandler(TKEvent evt)
101     {
102         return evt.getName().equalsIgnoreCase("ST_SEL_REF_DOC");
103     }
104 }
105
Popular Tags