/* Wotonomy: OpenStep design patterns for pure Java applications. Copyright (C) 2000 Blacksmith, Inc. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, see http://www.gnu.org */ package net.wotonomy.web; import net.wotonomy.foundation.NSDictionary; import net.wotonomy.foundation.NSMutableArray; /** * Implements a submit button with dynamic bindings. * @author michael@mpowers.net * @author $Author: cgruber $ * @version $Revision: 905 $ */ public class WOSubmitButton extends WOInput { public WOSubmitButton() { super(); } public WOSubmitButton(String n, NSDictionary m, WOElement t) { super(n, m, t); } protected String inputType() { return "SUBMIT"; } protected Object value(WOContext c) { Object v = valueForProperty("value", c.component()); if (v == null) { return "Submit"; } return v; } protected NSMutableArray additionalAttributes() { NSMutableArray a = super.additionalAttributes(); a.add("action"); return a; } public WOActionResults invokeAction(WORequest r, WOContext c) { if (disabled(c)) return null; //It's useless to check the senderID here because it's going to be for the form always. //So we check if the formValues contain the button's name (which means it was pressed) if (r.formValueForKey(inputName(c)) != null) { if (associations.objectForKey("action") != null) return (WOActionResults)valueForProperty("action", c.component()); } return null; } }