package com.tirsen.angkor.widget;
import com.tirsen.angkor.RenderContext;
import com.tirsen.angkor.Component;
import com.tirsen.angkor.event.Action;
import com.tirsen.angkor.event.ActionListener;
import com.tirsen.angkor.event.ActionSource;
import com.tirsen.angkor.event.ActionSourceHelper;
import java.io.IOException;
/**
* @author $Author: tirsen $
* @version $Revision: 1.6 $
* <BR>
* $Id: Button.java,v 1.6 2002/10/13 19:59:22 tirsen Exp $
*/
public class Button extends Component implements ActionSource
{
private ActionSourceHelper actionSourceHelper = new ActionSourceHelper(this);
private String label;
public Button(String id)
super(id);
}
public Button()
public Button(Action action)
actionSourceHelper.setAction(action);
public void setAction(Action action)
public Action getAction()
return actionSourceHelper.getAction();
public void addActionListener(ActionListener listener)
actionSourceHelper.addActionListener(listener);
public void removeActionListener(ActionListener listener)
actionSourceHelper.removeActionListener(listener);
public void signalActionEvent()
actionSourceHelper.signalActionEvent();
public void setLabel(String label)
this.label = label;
public boolean isParsing()
return true;
public void parse(RenderContext context)
super.parse(context);
if (context.getRequestParameter(getId()) != null)
actionSourceHelper.signalActionEvent(context);
public String getLabel()
String actualLabel = null;
if (label != null)
actualLabel = label;
else
if (getAction() != null) actualLabel = (String) getAction().getValue(Action.NAME);
return actualLabel;
public void render(RenderContext context) throws IOException
if (isVisible())
context.startTag("INPUT name=\"" + uniqueId(context) + "\" type=\"submit\" value=\"" + getLabel() + "\"");
context.getApplication().registerParsingComponent(this);
public String toString()
return getClass().getName() + "[" + label + "]";