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 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 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 return; 64 } 65 } 66 else { 67 TKQuery q = TKDBManager.newQuery(TKDBSiteDocGetHeretable.class); 68 q.setQueryParams( "SITE_NODE_ID", new Integer (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 (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 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 e) 94 { 95 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 |