1 package de.webman.sitetree.eventhandler; 2 3 import java.sql.ResultSet ; 4 import com.teamkonzept.db.TKDBManager; 5 import com.teamkonzept.db.TKQuery; 6 import com.teamkonzept.db.QueryConstants; 7 import com.teamkonzept.lib.TKException; 8 import com.teamkonzept.lib.TKVector; 9 import com.teamkonzept.web.TKEvent; 10 import com.teamkonzept.web.TKHTMLTemplate; 11 import com.teamkonzept.webman.WebManEvent; 12 import com.teamkonzept.webman.mainint.ContextConstants; 13 import com.teamkonzept.webman.mainint.DatabaseDefaults; 14 import com.teamkonzept.webman.mainint.FrameConstants; 15 import com.teamkonzept.webman.mainint.HTMLUtils; 16 import com.teamkonzept.webman.mainint.TKStandardIterator; 17 import com.teamkonzept.webman.mainint.TreeUtils; 18 import com.teamkonzept.webman.mainint.WebmanExceptionHandler; 19 import com.teamkonzept.webman.mainint.db.queries.TKDBSiteTreeIsChild; 20 import com.teamkonzept.webman.mainint.db.queries.sitetree.StSelect; 21 import com.teamkonzept.webman.mainint.events.DefaultEventHandler; 22 import com.teamkonzept.webman.mainint.events.ParameterTypes; 23 24 30 public class STForwardHandler 31 extends DefaultEventHandler 32 implements ParameterTypes, 33 FrameConstants, 34 DatabaseDefaults 35 { 36 37 40 private static final STForwardHandler INSTANCE = new STForwardHandler(); 41 42 45 private STForwardHandler () 46 { 47 } 49 50 55 public static STForwardHandler getInstance () 56 { 57 return INSTANCE; 58 } 59 60 66 public void handleEvent (TKEvent event) 67 throws TKException 68 { 69 try 70 { 71 WebManEvent.checkEvent(event.getRemoteUser(), event.getName(), ContextConstants.SITE_TREE); 72 73 String target = event.getParameter(PARAMETER, "TARGET_EVENT"); 74 Integer id = new Integer (event.getParameter(PARAMETER, "SITE_NODE_ID")); 75 76 TKHTMLTemplate frame = event.getPrepHTMLTemplate("f_st.tmpl"); 77 78 if (target.equals("ST_EDIT")) 79 { 80 prepareFrameSet(frame, target, id); 81 } 82 83 if (target.equals("ST_EDIT_STRUC_DOC")) 84 { 85 prepareFrameSet(frame, target, id); 86 frame.set("FORM_ID", event.getParameter(PARAMETER, "FORM_ID")); 87 } 88 89 WebManEvent.fillEventsIntoTemplate(event.getRemoteUser(), frame, SITE_TREE); 90 event.finishTemplate(frame); 91 } 92 catch (Throwable e) 93 { 94 throw WebmanExceptionHandler.getException(e); 96 } 97 } 98 99 106 public boolean isHandler (TKEvent event) 107 { 108 return event.getName().equalsIgnoreCase("ST_FORWARD"); 109 } 110 111 119 private void prepareFrameSet (TKHTMLTemplate frame, 120 String event, 121 Integer id) 122 throws Throwable 123 { 124 HTMLUtils.fillFrameSet(frame, LEFT_FRAME_WIDTH_SMALL, "ST_SHOWLIST", event); 125 126 frame.set("SITE_NODE_ID", id); 127 128 TKQuery query = TKDBManager.newQuery(StSelect.class); 129 query.setQueryParams(QueryConstants.NEXT_SITE_ID, id); 130 query.execute(); 131 132 ResultSet result = query.fetchResultSet(); 133 134 if (result.next()) 135 { 136 frame.set("SITE_NODE_TYPE", new Integer (result.getInt("SITE_NODE_TYPE"))); 137 frame.set("SITE_NODE_NAME", result.getString("SITE_NODE_NAME")); 138 frame.set("SITE_NODE_SHORTNAME", result.getString("SITE_NODE_SHORTNAME")); 139 } 140 141 TKVector openNodes = new TKVector(); 142 openNodes.put(0, "-1"); 143 openNodes = TreeUtils.updateOpenNodes(openNodes, id.toString(), "-1", id.toString(), TKDBSiteTreeIsChild.class); 144 145 frame.setListIterator(new TKStandardIterator(openNodes, frame.getListIterator(), "OPEN_NODES", "OPEN_NODES")); 146 } 147 148 } 149 | Popular Tags |