1 package de.webman.content.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 import com.teamkonzept.webman.mainint.db.queries.*; 9 import com.teamkonzept.webman.mainint.events.*; 10 import com.teamkonzept.lib.*; 11 import com.teamkonzept.db.*; 12 13 import java.sql.*; 14 import org.apache.log4j.Category; 15 16 30 public class CENodeDeleteHandler extends DefaultEventHandler implements ParameterTypes, FrameConstants, DatabaseDefaults 31 { 32 33 private static Category cat = Category.getInstance(CENodeDeleteHandler.class); 34 35 private CENodeDeleteHandler() 36 {} 37 38 private static CENodeDeleteHandler instance = new CENodeDeleteHandler(); 39 40 public static CENodeDeleteHandler getInstance() 41 { 42 return instance; 43 } 44 45 public void handleEvent(TKEvent evt) throws TKException 46 { 47 try 48 { 49 CEUtils.checkEvent(evt); 50 String nodeParent = evt.getParameter( PARAMETER, "CONTENT_NODE_PARENT" ); 51 String sNodeId = evt.getParameter( PARAMETER, "CONTENT_NODE_ID" ); 52 String sType = evt.getParameter(PARAMETER, "CONTENT_NODE_TYPE"); 53 boolean checked = evt.getParameter(PARAMETER, "CHECKED") != null; 55 TKVector depends = new TKVector(); 56 boolean isDependent = CEUtils.checkDependencies(new Integer (sNodeId), depends, true); 57 if (isDependent && !checked) 58 { 59 TKHTMLTemplate t = evt.getPrepHTMLTemplate("warning_message.tmpl"); 61 if (nodeParent != null) 62 t.set("CONTENT_NODE_PARENT", nodeParent); 63 t.set("CONTENT_NODE_ID", sNodeId); 64 t.set("CONTENT_NODE_TYPE", sType); 65 TKVector openNodes = new TKVector(); 66 if( evt.getParams().hasMultiple( PARAMETER, "OPEN_NODES" ) ) { 67 openNodes = evt.getParams().getVector( PARAMETER, "OPEN_NODES" ); 68 } 69 else { 70 openNodes.put( 0, evt.getParameter( PARAMETER, "OPEN_NODES" ) ); 71 } 72 TKStandardIterator iterator1 = new TKStandardIterator( openNodes, t.getListIterator(), "OPEN_NODES", "OPEN_NODES" ); 74 t.setListIterator( iterator1 ); 75 t.setListIterator( new TKStandardPluginIterator("REFERENCES", null, depends, false, t.getListIterator())); 76 77 String navContext = evt.getParameter(PARAMETER, "NAVIGATION_CONTEXT"); 78 ContentContext ce; 79 if (navContext != null) 80 ce = new ContentContext(navContext); 81 else 82 ce = new ContentContext(evt.getParams()); 83 t.set("NAVIGATION_CONTEXT", ce.calculateNavContext()); 84 evt.finishTemplate(t); 85 return; 86 } 87 if( isDependent ) { 88 TKQuery q = TKDBManager.newQuery(TKDBContentTreeDependentST.class); 89 q.setQueryParams( "CONTENT_NODE_ID", new Integer ( sNodeId ) ); 90 q.execute(); 91 TKDBResult dbrs = new TKDBResult( q.fetchResultSet() ); 92 TKDBResultRow row; 93 int curr = 0; 94 while( (row = (TKDBResultRow) dbrs.get( curr++ ))!=null ) 95 { 96 String delSiteNode = (String ) row.getColumn( "SITE_NODE_ID" ); 97 cat.debug(".....so I DELETE site tree node "+delSiteNode); 98 q = TKDBManager.newQuery(TKDBSiteTreeDeleteNode.class); 99 q.setQueryParams( "SITE_NODE_ID", new Integer ( delSiteNode ) ); 100 q.execute(); 101 } 102 cat.debug(".....AND I DELETE all in DOCUMENT_CONTENT with content tree node "+sNodeId); 103 q = TKDBManager.newQuery(TKDBContentTreeDeleteDependentDC.class); 104 q.setQueryParams( "CONTENT_NODE_ID", new Integer ( sNodeId ) ); 105 q.execute(); 106 } 107 TKQuery q = TKDBManager.newQuery(TKDBContentTreeDeleteNode.class); 108 q.setQueryParams( "CONTENT_NODE_ID", new Integer ( sNodeId ) ); 109 q.execute(); 110 if (sType.equals(GROUP) || sType.equals(DIRECTORY_NODE)) 111 { 112 TKVector openNodes = new TKVector(); 113 if( evt.getParams().hasMultiple( PARAMETER, "OPEN_NODES" ) ) 114 { 115 openNodes = evt.getParams().getVector( PARAMETER, "OPEN_NODES" ); 116 } 117 else 118 { 119 String openNode = evt.getParameter( PARAMETER, "OPEN_NODES" ); 120 if (openNode != null) 121 openNodes.put( 0, openNode); 122 } 123 if (openNodes.size() > 0) 124 openNodes = TreeUtils.updateOpenNodes( openNodes, nodeParent, "1", sNodeId, TKDBContentTreeIsChild.class ); 125 TKHTMLTemplate frame = evt.getPrepHTMLTemplate( "f_ce.tmpl" ); 126 CEUtils.keepSortParameter(evt, frame); 128 129 HTMLUtils.fillFrameSet( frame, LEFT_FRAME_WIDTH, "CE_SHOWLIST", "CE_EMPTY" ); 130 TKStandardIterator iterator1 = new TKStandardIterator( openNodes, frame.getListIterator(), "OPEN_NODES", "OPEN_NODES" ); 131 frame.setListIterator( iterator1 ); 132 evt.finishTemplate(frame); 133 } 134 else 135 { 136 evt.getParams().put(PARAMETER, "RECALCULATE", "a"); 138 CEBrowseHandler.getInstance().handleEvent(evt); 139 } 140 } 141 catch (Throwable e) 142 { 143 throw WebmanExceptionHandler.getException(e); 145 } 146 } 147 148 public boolean isHandler(TKEvent evt) 149 { 150 return evt.getName().equalsIgnoreCase("CE_NODE_DELETE"); 151 } 152 } 153 | Popular Tags |