/* * $Id: AbstractMenuBlock.java,v 1.3.6.1 2007/01/12 19:31:33 idegaweb Exp $ * * Copyright (C) 2001 Idega hf. All Rights Reserved. * * This software is the proprietary information of Idega hf. * Use is subject to license terms. * */ package com.idega.presentation; import java.util.List; import java.util.Vector; import com.idega.idegaweb.block.presentation.Builderaware; import com.idega.presentation.ui.Parameter; /** * Title: * Description: * Copyright: Copyright (c) 2001 * Company: idega.is * @author 2000 - idega team - <br><a href="mailto:aron@idega.is">Aron Birkir</a><br> * @version 1.0 */ public abstract class AbstractMenuBlock extends Block implements MenuBlock{ private static String prmClass = "mbl_clss"; private Class defaultClass = null; private List objects = null; private boolean showLinks = true; private PresentationObject links = null; private BlockMenu menu; public void _main(IWContext iwc) throws Exception{ this.menu = new BlockMenu(); this.menu.setClassParameterName(getMenuClassParameterName()); addStandardObjects(); this.menu.addAll(this.objects); this.menu.setDefaultBlock(getDefaultBlockClass()); this.links = this.menu.getLinkTable(iwc,""); //menu.setShowLinks(showLinks); add(this.menu); super._main(iwc); } public abstract void addStandardObjects(); public abstract Class getDefaultBlockClass(); public void addBlockObject(Builderaware obj){ if(this.objects == null) { this.objects = new Vector(); } this.objects.add(obj); } public void addBlockObjectAll(java.util.Collection coll){ if(this.objects == null) { this.objects = new Vector(); } this.objects.addAll(coll); } public String getMenuClassParameterName(){ return prmClass; } public void setShowLinks(boolean show){ this.showLinks = show; } public PresentationObject getLinks(){ return this.links; } public synchronized Object clone() { AbstractMenuBlock obj = null; try { obj = (AbstractMenuBlock)super.clone(); obj.objects = this.objects; obj.menu = this.menu; } catch(Exception ex) { ex.printStackTrace(System.err); } return obj; } public void addParameterToMaintain(Parameter prm){ this.menu.addParameterToMaintain(prm); } public Parameter getMenuLinkParameter(Class classToOpen){ return new Parameter(getMenuClassParameterName(),classToOpen.getName()); } }