package org.infoglue.cms.applications.common.actions;
import java.util.Collection;
import com.frovi.ss.Tree.INodeSupplier;
import com.frovi.ss.Tree.MakeTree;
/**
* @author Stefan Sik
*
*/
public abstract class TreeViewAbstractAction extends InfoGlueAbstractAction
{
private Collection nodes;
private String exp="";
private String rkey = "";
private String akey = "";
// Implement this method
protected abstract INodeSupplier getNodeSupplier() throws Exception;
protected Collection initialize(String expString) throws Exception
{
INodeSupplier ns = getNodeSupplier();
if(ns != null)
return new MakeTree(ns).makeNodeList(expString);
else
return null;
}
public String doExecute() throws Exception
{
// Fix key
setExp(getExp().replaceAll(getRkey(), "") + getAkey());
// Set nodes
setNodes(this.initialize(getExp()));
getResponse().setBufferSize(0);
getResponse().setHeader("Cache-Control","no-cache");
getResponse().setHeader("Pragma","no-cache");
getResponse().setDateHeader ("Expires", 0);
// return
return "success";
}
public String doV3() throws Exception
{
doExecute();
return "successV3";
}
/**
* Sets the nodes.
* @param nodes The nodes to set
*/
protected void setNodes(Collection nodes)
{
this.nodes = nodes;
}
public Collection getNodes() throws Exception
{
return this.nodes;
}
/**
* Returns the expStr.
* @return String
*/
public String getExp() {
return exp;
}
/**
* Sets the expStr.
* @param expStr The expStr to set
*/
public void setExp(String expStr) {
this.exp = expStr;
}
/**
* Returns the akey.
* @return String
*/
public String getAkey()
{
return akey;
}
/**
* Returns the rkey.
* @return String
*/
public String getRkey()
{
return rkey;
}
/**
* Sets the akey.
* @param akey The akey to set
*/
public void setAkey(String akey)
{
this.akey = akey;
}
/**
* Sets the rkey.
* @param rkey The rkey to set
*/
public void setRkey(String rkey)
{
this.rkey = rkey;
}
}