package com.idega.presentation;
import java.util.ArrayList;
import java.util.List;
/**
* A class that constructs a <code>MenuElement</code> of the <code>DynamicJSMenu</code>
* @author birna
*
*/
public class MenuElement extends PresentationObject {
private String menuName = "";
private String name = "";
private String parent = "";
private String text = "";
private String link = "";
private String target = "";
private String width = "";
private String height = "";
private String regImg = "";
private String overImg = "";
private String regClass = "";
private String overClass = "";
private String align = "";
private int rows = 0;
private String noLink = "";
private String onClick = "";
private String onMouseOver = "";
private String onMouseOut = "";
private boolean isRoot = false;
private ArrayList children = new ArrayList();
/**
* The default constructor
*
*/
public MenuElement() {
this("untitled");
}
/**
*
* @param name
*/
public MenuElement(String name){
setMenuName(this.menuName);
setName(name); //name is used as an id for the MenuElement
setParent(this.parent);
setText(this.text);
setLink(this.link);
setTarget(this.target);
setWidth(this.width);
setHeight(this.height);
setRegImg(this.regImg);
setOverImg(this.overImg);
setAlign(this.align);
setRows(this.rows);
setNoLink(this.noLink);
setOnClick(this.onClick);
setOnMouseOver(this.onMouseOver);
setOnMouseOut(this.onMouseOut);
}
/**
* can be used to create a rootNode
* the rootNode's name is set and a boolean variable <code>isRoot</code> is set to true
* @param rootNode
* @param rootName
*/
public void createRootNode(MenuElement rootNode, String rootName){
this.isRoot = true;
rootNode.setName(rootName);
}
/**
* adds a child to the ArrayList containing the children of the
* specific root node
* @param childNode
* @param childName
*/
public void addChild(String childName, String parentName){
MenuElement child = new MenuElement();
child.setParent(parentName);
child.setName(childName);
this.children.add(child);
}
/**
* adds a child to the ArrayList containing the children of the
* specific root node
* @param childName
* @param parentName
* @param tx
* @param url
*/
public void addChild(String childName, String parentName, String tx, String url){
MenuElement child = new MenuElement();
child.setName(childName);
child.setParent(parentName);
child.setText(tx);
child.setLink(url);
this.children.add(child);
}
/**
*
* @return Arraylist which contains the children of a node
*/
public List getChildren(){
return this.children;
}
/**
*
* @param mn
*/
public void setMenuName(String mn){
this.menuName = mn;
}
/**
* @param n - sets the name of the MenuElement
*/
public void setName(String n){
this.name = n;
}
/**
*
* @param par - sets the parent of a MenuElement
*/
public void setParent(String par){
this.parent = par;
}
/**
*
* @param txt
*/
public void setText(String txt){
this.text = txt;
}
/**
*
* @param lnk
*/
public void setLink(String lnk){
this.link = lnk;
}
/**
*
* @param targ
*/
public void setTarget(String targ){
this.target = targ;
}
/**
* @param w
*/
public void setWidth(String w){
this.width = w;
}
/**
* @param h
*/
public void setHeight(String h){
this.height = h;
}
/**
*
* @param rImg
*/
public void setRegImg(String rImg){
this.regImg = rImg;
}
/**
*
* @param oImg
*/
public void setOverImg(String oImg){
this.overImg = oImg;
}
/**
*
* @param rClass
*/
public void setRegClass (String rClass){
this.regClass = rClass;
}
/**
*
* @param oClass
*/
public void setOverClass(String oClass){
this.overClass = oClass;
}
/**
*
* @param aln
*/
public void setAlign(String aln){
this.align = aln;
}
/**
*
* @param r
*/
public void setRows(int r){
this.rows = r;
}
/**
*
* @param nLink
*/
public void setNoLink(String nLink){
this.noLink = nLink;
}
/**
*
* @param onCl
*/
public void setOnClick(String onCl){
this.onClick = onCl;
}
/**
*
* @param onMOver
*/
public void setOnMouseOver(String onMOver){
this.onMouseOver = onMOver;
}
/**
*
* @param onMOut
*/
public void setOnMouseOut(String onMOut){
this.onMouseOut = onMOut;
}
/**
*
* @return
*/
public String getMenuName(){
return this.menuName;
}
/**
*
*/
public String getName(){
return this.name;
}
/**
*
* @return
*/
public String getParentString(){
return this.parent;
}
/**
*
* @return
*/
public String getText(){
return this.text;
}
/**
*
* @return
*/
public String getLink(){
return this.link;
}
/**
*
* @return
*/
public String getTarget(){
return this.target;
}
/**
* @return
*/
public String getWidth(){
return this.width;
}
/**
* @return
*/
public String getHeight(){
return this.height;
}
/**
*
* @return
*/
public String getRegImg(){
return this.regImg;
}
/**
*
* @return
*/
public String getOverImg(){
return this.overImg;
}
/**
*
* @return
*/
public String getRegClass(){
return this.regClass;
}
/**
*
* @return
*/
public String getOverClass(){
return this.overClass;
}
/**
*
* @return
*/
public String getAlign(){
return this.align;
}
/**
*
* @return
*/
public int getRows(){
return this.rows;
}
/**
*
* @return
*/
public String getNoLink(){
return this.noLink;
}
/**
*
* @return
*/
public String getOnClick(){
return this.onClick;
}
/**
*
* @return
*/
public String getOnMouseOver(){
return this.onMouseOver;
}
/**
*
* @return
*/
public String getOnMouseOut(){
return this.onMouseOut;
}
/**
*
* @return - a string of the form:
* menuName.makeMenu('name', 'parent_name', 'text', 'link', 'target', 'width', 'height', 'regImage', 'overImage', 'regClass', 'overClass' , 'align', 'rows', 'nolink', 'onclick', 'onmouseover', 'onmouseout')
*
*/
public String output(){
StringBuffer buffer = new StringBuffer();
buffer.append(this.getMenuName());
buffer.append(".makeMenu(");
buffer.append("'" + this.getName() + "',");
buffer.append("'" + this.getParentString() + "',");
buffer.append("'" + this.getText() + "',");
buffer.append("'" + this.getLink() + "',");
buffer.append("'" + this.getTarget() + "',");
buffer.append("'" + this.getWidth() + "',");
buffer.append("'" + this.getHeight() + "',");
buffer.append("'" + this.getRegImg() + "',");
buffer.append("'" + this.getOverImg() + "',");
buffer.append("'" + this.getRegClass() + "',");
buffer.append("'" + this.getOverClass() + "',");
buffer.append("'" + this.getAlign() + "',");
buffer.append("'" + this.getRows() + "',");
buffer.append("'" + this.getNoLink() + "',");
buffer.append("'" + this.getOnClick() + "',");
buffer.append("'" + this.getOnMouseOver() + "',");
buffer.append("'" + this.getOnMouseOut() + "'");
buffer.append(")");
return buffer.toString();
}
}