1 package de.webman.documenttype.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 18 import java.sql.*; 19 import java.io.*; 20 21 30 public class DTCopyPresHandler extends DefaultEventHandler implements ParameterTypes, FrameConstants, DatabaseDefaults 31 { 32 private DTCopyPresHandler() 33 {} 34 35 private static DTCopyPresHandler instance = new DTCopyPresHandler(); 36 37 public static DTCopyPresHandler 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.PRESENTATIONS); 47 48 String presIdAlt = evt.getParameter(PARAMETER, "PRESENTATION_ID"); 51 String neuerName = evt.getParameter(PARAMETER, "PRESENTATION_NAME"); 53 String neuerKurzName = evt.getParameter(PARAMETER, "PRESENTATION_SHORTNAME"); 54 String templateID = evt.getParameter(PARAMETER, "TEMPLATE_ID"); 55 56 TKQuery q = TKDBManager.newQuery(TKDBPresInsert.class); 58 q.setQueryParams( "PRESENTATION_NAME", neuerName ); 59 q.setQueryParams( "PRESENTATION_SHORTNAME", neuerKurzName ); 60 q.setQueryParams( "TEMPLATE_ID", new Integer ( templateID ) ); 61 q.execute(); 62 ResultSet rs = q.fetchResultSet(); 63 Integer presId = null; if( rs.next() ) { 65 presId = new Integer ( rs.getInt( "PRESENTATION_ID" ) ); 66 } 67 68 q = TKDBManager.newQuery(TKDBPresCompGet.class); 71 q.setQueryParams("PRESENTATION_ID", new Integer (presIdAlt)); 72 q.execute(); 73 rs = q.fetchResultSet(); 74 while( rs.next() ) { 75 TKQuery insert = TKDBManager.newQuery(TKDBPresContInsert.class); 76 insert.setQueryParams("PRESENTATION_ID", presId); 77 insert.setQueryParams("COMPONENT_TYPE", new Integer (rs.getInt("COMPONENT_TYPE"))); 78 insert.setQueryParams("INTEGRATION_TYPE", new Integer (rs.getInt("INTEGRATION_TYPE"))); 79 String name = rs.getString("INTEGRATION_NAME"); 80 insert.setQueryParams("INTEGRATION_NAME", name); 81 insert.setQueryParams("INTEGRATION_SHORTNAME", rs.getString("INTEGRATION_SHORTNAME")); 82 insert.setQueryParams("FORM_ID", new Integer (rs.getInt("FORM_ID"))); 83 insert.execute(); 84 } 85 q = TKDBManager.newQuery(TKDBPresCompGetRef.class); 88 q.setQueryParams("PRESENTATION_ID", new Integer (presIdAlt)); 89 90 q.execute(); 91 rs = q.fetchResultSet(); 92 Integer insertID = null; 93 Integer markPresCompID = new Integer (-1); while( rs.next() ) { 95 Integer neuCompID = new Integer (rs.getInt("PRESENTATION_COMPONENT_IDX")); 97 98 TKQuery insert; 99 if (neuCompID.intValue() == markPresCompID.intValue()) 100 { 101 insert = TKDBManager.newQuery(TKDBPresRefIns.class); 103 insert.setQueryParams("PRESENTATION_COMPONENT_IDX", insertID); 104 } 105 else 106 { 107 insert = TKDBManager.newQuery(TKDBPresRefInsert.class); 108 insert.setQueryParams("COMPONENT_TYPE", new Integer (rs.getInt("COMPONENT_TYPE"))); 109 insert.setQueryParams("INTEGRATION_TYPE", new Integer (rs.getInt("INTEGRATION_TYPE"))); 110 String name = rs.getString("INTEGRATION_NAME"); 111 insert.setQueryParams("INTEGRATION_NAME", name); 112 insert.setQueryParams("INTEGRATION_SHORTNAME", rs.getString("INTEGRATION_SHORTNAME")); 113 } 114 insert.setQueryParams("PRESENTATION_ID", presId); 115 insert.setQueryParams("SUB_PRESENTATION_ID", new Integer (rs.getInt("SUB_PRESENTATION_ID"))); 116 insert.execute(); 117 if (neuCompID.intValue() != markPresCompID.intValue()) 118 { 119 ResultSet rs2 = insert.fetchResultSet(); 120 if (rs2.next()) 121 insertID = new Integer (rs2.getInt("PRESENTATION_COMPONENT_IDX")); 122 } 123 markPresCompID = neuCompID; } 125 126 q = TKDBManager.newQuery(TKDBPresCompGetFreeRef.class); 128 q.setQueryParams("PRESENTATION_ID", new Integer (presIdAlt)); 129 130 q.execute(); 131 rs = q.fetchResultSet(); 132 while( rs.next() ) { 133 TKQuery insert = TKDBManager.newQuery(TKDBPresCompInsert.class); 134 insert.setQueryParams("COMPONENT_TYPE", new Integer (rs.getInt("COMPONENT_TYPE"))); 135 insert.setQueryParams("INTEGRATION_TYPE", new Integer (rs.getInt("INTEGRATION_TYPE"))); 136 String name = rs.getString("INTEGRATION_NAME"); 137 insert.setQueryParams("INTEGRATION_NAME", name); 138 insert.setQueryParams("INTEGRATION_SHORTNAME", rs.getString("INTEGRATION_SHORTNAME")); 139 insert.setQueryParams("PRESENTATION_ID", presId); 140 insert.execute(); 141 } 142 143 TKHTMLTemplate frame = evt.getPrepHTMLTemplate( "f_pr.tmpl" ); 145 HTMLUtils.fillFrameSet( frame, LEFT_FRAME_WIDTH_SMALL, "PR_SHOWLIST", "PR_EMPTY" ); 146 WebManEvent.fillEventsIntoTemplate(evt.getRemoteUser(), frame, PRESENTATIONS); 147 evt.finishTemplate(frame); 148 } 149 catch (Throwable e) 150 { 151 throw WebmanExceptionHandler.getException(e); 153 } 154 } 155 156 public boolean isHandler(TKEvent evt) 157 { 158 return evt.getName().equalsIgnoreCase("PR_COPY_PRES") ; 159 } 160 } 161 | Popular Tags |