package de.webman.duplication.eventhandler;
import com.teamkonzept.web.*;
import com.teamkonzept.webman.*;
import com.teamkonzept.webman.db.TKWebmanDBManager;
import com.teamkonzept.webman.mainint.*;
import com.teamkonzept.webman.mainint.db.*;
import com.teamkonzept.webman.mainint.db.queries.*;
import com.teamkonzept.webman.mainint.events.*;
import com.teamkonzept.lib.*;
import com.teamkonzept.db.*;
import java.sql.*;
import java.io.*;
import com.teamkonzept.webman.mainint.*;
/**
* Anzeigen der Maske zum Neuordnen des Contenttree
*
*
* @author $Author: mischa $
* @version $Revision: 1.4 $
*/
public class DUChooseStartHandler extends DefaultEventHandler implements ParameterTypes, FrameConstants, DatabaseDefaults
{
private DUChooseStartHandler()
{}
private static DUChooseStartHandler instance = new DUChooseStartHandler();
public static DUChooseStartHandler getInstance()
{
return instance;
}
public void handleEvent(TKEvent evt) throws TKException
{
try{
TKParams params = evt.getParams();
TKHTMLTemplate t = evt.getPrepHTMLTemplate( "du_choose.tmpl" );
if(params.getClass("PAR") != null){
t.set(params.getClass("PAR"));
}
String siteTreeFlag = (params.get("PAR", "SITE_TREE_FLAG")) == null? "OFF":params.get("PAR", "SITE_TREE_FLAG") ;
String contentTreeFlag = (params.get( "PAR", "CONTENT_FLAG" ))==null?"OFF":params.get( "PAR", "CONTENT_FLAG" );
if(!contentTreeFlag.equals("ON") && !siteTreeFlag.equals("ON"))
{
Utils.doErrorSide(evt);
return;
}
t.set("SITE_TREE_FLAG", siteTreeFlag);
t.set("CONTENT_FLAG", contentTreeFlag);
TKVector openCTNodes = new TKVector();
openCTNodes.put( 0, "-1" ); // initial bei Root den Baum oeffnen
TKStandardIterator iteratorCT1 = new TKStandardIterator( openCTNodes, t.getListIterator(), "CT_OPEN_NODES", "CT_OPEN_NODES" );
t.setListIterator( iteratorCT1 );
TKStandardIterator iteratorSC1 = new TKStandardIterator( openCTNodes, t.getListIterator(), "SC_OPEN_NODES", "SC_OPEN_NODES" );
t.setListIterator( iteratorSC1 );
TKQuery qCT = TKDBManager.newQuery( TKDBContentTreeGetOpen.class );
qCT.setQueryParams( "NODE_ID", TKNull.NULL );
qCT.execute();
TKDBResult CTtree = new TKDBResult( qCT.fetchResultSet() );
int maxDepth = TreeUtils.getMaxDepth( CTtree, "CONTENT" );
TKOpenContentTreeIterator iterator = new TKOpenContentTreeIterator( CTtree, t.getListIterator(), "CE_NODE_LIST", maxDepth );
t.set( "CT_IS_TOP", "1" );
t.setListIterator( iterator );
//Site Tree aufbauen:
doSTChooseStart(t);
t.set( "CT_MAXDEPTH_PLUS_TWO", Integer.toString(maxDepth+2));
//Optionsliste fuer Anzahl der Kopien
Integer number;
TKVector aVector = new TKVector(Utils.MAX_DUPLICATION);
for (int i = 1; i<= Utils.MAX_DUPLICATION; i++){
number = new Integer(i);
aVector.addElement(number);
}
TKStandardIterator iteratorNum = new TKStandardIterator( aVector, t.getListIterator(), "NUMBERS_LIST", "NUMBER" );
t.setListIterator( iteratorNum );
evt.finishTemplate(t);
}
catch (Throwable e)
{
// TO DO : Analyze Exception !
throw WebmanExceptionHandler.getException(e);
}
}
public boolean isHandler(TKEvent evt)
{
return evt.getName().equalsIgnoreCase("DU_SECOND");
}
/************************************************************************
/**
* Startevent: Anzeigen der Maske zum Neuordnen des Sitetree
*
*
* @param
*/
public void doSTChooseStart(TKHTMLTemplate t ) throws Throwable
{
TKVector openNodes = new TKVector();
openNodes.put( 0, "-1" ); // initial bei Root den Baum oeffnen
TKStandardIterator iterator1 = new TKStandardIterator( openNodes, t.getListIterator(), "ST_OPEN_NODES", "ST_OPEN_NODES" );
t.setListIterator( iterator1 );
TKVector openCSNodes = new TKVector();
openCSNodes.put( 0, "-1" );
// die Liste der jetzt offenen SiteTree nodes kommt in die ContentTree links
TKStandardIterator iteratorSC1 = new TKStandardIterator( openCSNodes, t.getListIterator(), "CS_OPEN_NODES", "CS_OPEN_NODES" );
t.setListIterator( iteratorSC1 );
TKQuery q = TKDBManager.newQuery( TKDBSiteTreeGetOpen.class );
q.setQueryParams( "NODE_ID", TKNull.NULL );
q.execute();
TKDBResult tree = new TKDBResult( q.fetchResultSet() );
int maxDepth = TreeUtils.getMaxDepth( tree, "SITE" );
TKOpenSiteTreeIterator iterator = new TKOpenSiteTreeIterator( tree, t.getListIterator(), "ST_NODE_LIST", maxDepth );
t.setListIterator( iterator );
t.set( "ST_MAXDEPTH_PLUS_TWO", Integer.toString(maxDepth+2));
}
}
|