package com.idega.presentation.event; import com.idega.core.data.ICTreeNode; import com.idega.event.IWPresentationEvent; import com.idega.event.NoSuchEventException; import com.idega.presentation.IWContext; import com.idega.presentation.text.Link; import com.idega.presentation.ui.Parameter; /** * <p>Title: idegaWeb</p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2002</p> * <p>Company: idega Software</p> * @author <a href="gummi@idega.is">Gu�mundur �g�st S�mundsson</a> * @version 1.0 */ public class TreeViewerEvent extends IWPresentationEvent { // protected List _openNodes; protected String _toOpen = null; protected String _toClose = null; protected String _refreshTN = null; private static final String PRM_OPEN_TREENODES = "ic_opn_trnds"; private static final String PRM_TREENODE_TO_CLOSE = "ic_cls_trnd"; private static final String PRM_TREE_CHANGED = "ic_tw_ch"; private static final String PRM_REFRESH_TN = "ic_ref_tn"; private static Parameter prmTreeStateChanged; public TreeViewerEvent() { } public TreeViewerEvent(IWContext iwc) throws NoSuchEventException { super(iwc); } public void initializeVariables(){ // _openNodes = new Vector(); prmTreeStateChanged = new Parameter(PRM_TREE_CHANGED,"t"); } // public List getOpenNodeList(){ // return _openNodes; // } public void setToOpenNode(ICTreeNode node){ this.addParameter(PRM_OPEN_TREENODES,node.getNodeID()); if(!this.containsParameter(prmTreeStateChanged)){ this.addParameter(prmTreeStateChanged); } } public void setToCloseNode(ICTreeNode node){ this.addParameter(PRM_TREENODE_TO_CLOSE,node.getNodeID()); if(!this.containsParameter(prmTreeStateChanged)){ this.addParameter(prmTreeStateChanged); } } public void setToTreeStateChanged(Link l) { l.addParameter(PRM_REFRESH_TN,"refresh"); if(!this.containsParameter(prmTreeStateChanged)) { this.addParameter(prmTreeStateChanged); l.addParameter(prmTreeStateChanged); } } public String getOpenNodeAction(){ return this._toOpen; } public String getCloseNodeAction(){ return this._toClose; } public String getRefreshTNAction() { return this._refreshTN; } // public void setOpenNodes(List openNodes){ // _openNodes = openNodes; // maintainOpenAndClosedNodes(); // } public boolean initializeEvent(IWContext iwc){ // _openNodes.clear(); // // String[] open = iwc.getParameterValues(PRM_OPEN_TREENODES); // if(open != null){ // for (int i = 0; i < open.length; i++) { // _openNodes.add(open[i]); // } // } else if(iwc.getParameter(PRM_TREE_CHANGED) == null){ // set init Open level // return false; // } // // String close = iwc.getParameter(PRM_TREENODE_TO_CLOSE); // if(close != null){ // _openNodes.remove(close); // } // maintainOpenAndClosedNodes(); if(iwc.getParameter(PRM_TREE_CHANGED) != null || iwc.getParameter(PRM_REFRESH_TN) != null){ this._toOpen = iwc.getParameter(PRM_OPEN_TREENODES); this._toClose = iwc.getParameter(PRM_TREENODE_TO_CLOSE); } else { return false; } return true; } // private void maintainOpenAndClosedNodes(){ // int size = _openNodes.size(); // for (int i = 0; i < size; i++) { // this.addParameter(PRM_OPEN_TREENODES,(String)_openNodes.get(i)); // } // } public Object clone(){ TreeViewerEvent model = null; model = (TreeViewerEvent)super.clone(); // if(this._openNodes != null){ // model._openNodes = (List)((Vector)this._openNodes).clone(); // ListIterator iter = this._openNodes.listIterator(); // while (iter.hasNext()) { // int index = iter.nextIndex(); // Object item = iter.next(); // model._openNodes.set(index,item); // } // } else { // model._openNodes = new Vector(); // } return model; } }