/* This file belongs to the Servoy development and deployment environment, Copyright (C) 1997-2014 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 java.awt.Point; import org.apache.wicket.Component; import org.apache.wicket.RequestCycle; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.ajax.IAjaxCallDecorator; import org.apache.wicket.ajax.calldecorator.AjaxPostprocessingCallDecorator; import com.servoy.j2db.scripting.JSEvent; import com.servoy.j2db.ui.IEventExecutor; import com.servoy.j2db.util.Utils; /** * @author gboros * */ public class ServoySelectBoxUpdatingBehavior extends ServoyFormComponentUpdatingBehavior { private boolean isFireActionCommand; public ServoySelectBoxUpdatingBehavior(String event, Component component, WebEventExecutor eventExecutor, String sharedName) { super(event, component, eventExecutor, sharedName); } public void setFireActionCommand(boolean isFireActionCommand) { this.isFireActionCommand = isFireActionCommand; } @Override protected void onUpdate(AjaxRequestTarget target) { super.onUpdate(target); if (isFireActionCommand) { eventExecutor.onEvent(JSEvent.EventType.action, target, component, Utils.getAsInteger(RequestCycle.get().getRequest().getParameter(IEventExecutor.MODIFIERS_PARAMETER)), new Point(Utils.getAsInteger(RequestCycle.get().getRequest().getParameter("mx")), //$NON-NLS-1$ Utils.getAsInteger(RequestCycle.get().getRequest().getParameter("my")))); //$NON-NLS-1$ } } @Override protected CharSequence generateCallbackScript(final CharSequence partialCall) { return super.generateCallbackScript(partialCall + "+actionParam"); //$NON-NLS-1$ } @Override protected IAjaxCallDecorator getAjaxCallDecorator() { return new AjaxPostprocessingCallDecorator(null) { private static final long serialVersionUID = 1L; @SuppressWarnings("nls") @Override public CharSequence postDecorateScript(CharSequence script) { return "var actionParam = Servoy.Utils.getActionParams(event,false); " + script; } }; } }