package com.idega.idegaweb.presentation; import com.idega.presentation.Block; import com.idega.presentation.Image; import com.idega.presentation.IWContext; import com.idega.presentation.PresentationObject; import com.idega.presentation.text.Link; import com.idega.presentation.ui.SubmitButton; import com.idega.presentation.ui.InterfaceObject; import java.util.AbstractList; import java.util.Iterator; /** * Title: * Description: * Copyright: Copyright (c) 2001 * Company: * @author <br><a href="mailto:aron@idega.is">Aron Birkir</a><br> * @version 1.0 */ public class BusyBar extends Block { private String name = "busy"; private String _url = ""; private AbstractList busyObjects; private AbstractList disabledObjects; private boolean _busyOnChange = false; public BusyBar(String name) { this.name = name; } public void setName(String name){ this.name = name; } private void addInterfaceObject(InterfaceObject obj){ addBusyObject(obj); addDisabledObject(obj); } private void addInterfaceObject(Link obj){ addBusyObject(obj); addDisabledObject(obj); } public void addBusyObject(InterfaceObject obj){ if(this.busyObjects==null) { this.busyObjects = new java.util.Vector(); } this.busyObjects.add(obj); } public void addDisabledObject(InterfaceObject obj){ if(this.disabledObjects==null) { this.disabledObjects = new java.util.Vector(); } this.disabledObjects.add(obj); } public void addBusyObject(Link obj){ if(this.busyObjects==null) { this.busyObjects = new java.util.Vector(); } this.busyObjects.add(obj); } public void addDisabledObject(Link obj){ if(this.disabledObjects==null) { this.disabledObjects = new java.util.Vector(); } this.disabledObjects.add(obj); } public void setInterfaceObject(InterfaceObject obj){ addInterfaceObject(obj); } public void setLinkObject(Link obj){ addInterfaceObject(obj); } public void setBusyBarUrl(String url){ this._url = url; } public void setBusyOnChange(){ this._busyOnChange = true; } public void main(IWContext iwc){ if(this._url == null || "".equals(this._url) ){ this._url = iwc.getIWMainApplication().getCoreBundle().getImage("busy.gif").getURL(); } getParentPage().setOnLoad(Image.getPreloadScript(this._url)); Image busy = iwc.getIWMainApplication().getCoreBundle().getImage("transparentcell.gif"); busy.setName(this.name); setScripts(); add(busy); } private void setScripts(){ if(this.busyObjects!=null){ java.util.Iterator iter = this.busyObjects.iterator(); while(iter.hasNext()){ Object o = iter.next(); if(o instanceof InterfaceObject ){ InterfaceObject obj = (InterfaceObject)o; if(this.disabledObjects != null){ Iterator iter2 = this.disabledObjects.iterator(); while (iter2.hasNext()) { PresentationObject item = (PresentationObject)iter2.next(); if(this._busyOnChange){ obj.setOnChange(getDisabledScript(item)); } else { obj.setOnClick(getDisabledScript(item)); } } } if(this._busyOnChange){ obj.setOnChange("this.form.submit()"); obj.setOnChange(getCallingScript()); obj.setOnChange("return false;"); } else { if(obj instanceof SubmitButton){ obj.setOnClick("this.form.submit()"); } obj.setOnClick(getCallingScript()); } } else if(o instanceof Link){ Link obj = (Link) o; obj.setOnClick(getCallingScript()); if(this.disabledObjects != null){ Iterator iter2 = this.disabledObjects.iterator(); while (iter2.hasNext()) { PresentationObject item = (PresentationObject)iter2.next(); obj.setOnClick(getDisabledScript(item)); } } } } } } private String getDisabledScript(PresentationObject obj){ if(obj instanceof InterfaceObject){ return "document.getElementById('"+obj.getID()+"').disabled = true"; } else { return "document.getElementById('"+obj.getID()+"').disabled = true"; } //return "document.getElementById("+obj.getID()+").disabled = true"; } private String getCallingScript(){ return "document.getElementById('"+this.name+"').src='"+this._url+"'"; } }