/* This file belongs to the Servoy development and deployment environment, Copyright (C) 1997-2010 Servoy BV This program is free software; you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program 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 Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program; if not, see http://www.gnu.org/licenses or write to the Free Software Foundation,Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 */ package com.servoy.j2db.server.headlessclient.dataui; import org.apache.wicket.Component; import org.apache.wicket.RequestCycle; import org.apache.wicket.ajax.AjaxRequestTarget; import com.servoy.base.scripting.api.IJSEvent.EventType; import com.servoy.j2db.ui.IEventExecutor; import com.servoy.j2db.util.Utils; /** * This modifier will make sure that, if no event is already registered to "onKeyDown", the event will be consumed when the key is ENTER. This is needed as, in * forms, ENTER in text field that do not block ENTER events will lead to onClick on a button from that form (if there is such a button) - unwanted behavior * (different from SmartClient). * * @author acostescu */ public class ConsumeEnterAttributeModifier extends ServoyActionEventBehavior { public ConsumeEnterAttributeModifier(Component component, WebEventExecutor eventExecutor) { super("onKeyDown", component, eventExecutor, "ConsumeEnter"); //$NON-NLS-2$ } /** * @see wicket.ajax.form.AjaxFormComponentUpdatingBehavior#onUpdate(wicket.ajax.AjaxRequestTarget) */ @Override protected void onUpdate(AjaxRequestTarget target) { eventExecutor.onEvent(EventType.none, target, getComponent(), Utils.getAsInteger(RequestCycle.get().getRequest().getParameter(IEventExecutor.MODIFIERS_PARAMETER))); } }