/* 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 org.apache.wicket.RequestCycle; import org.apache.wicket.ajax.AjaxRequestTarget; import org.apache.wicket.markup.html.IHeaderContributor; import org.apache.wicket.markup.html.IHeaderResponse; import com.servoy.j2db.ui.ISupportScroll; import com.servoy.j2db.util.Utils; /** * Behavior used for updating scroll position of the component * @author gboros * */ public class ScrollBehavior extends ServoyAjaxEventBehavior implements IHeaderContributor { private final ISupportScroll component; public ScrollBehavior(ISupportScroll component) { super("onscroll"); //$NON-NLS-1$ this.component = component; } @Override public void renderHead(final IHeaderResponse response) { response.renderOnDomReadyJavascript("Servoy.Utils.setScrollPosition('" + component.getScrollComponentMarkupId() + "', " + component.getScroll().x + ", " + component.getScroll().y + ")"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ } @Override protected void onEvent(AjaxRequestTarget target) { component.setScroll(Utils.getAsInteger(RequestCycle.get().getRequest().getParameter("locationX")), //$NON-NLS-1$ Utils.getAsInteger(RequestCycle.get().getRequest().getParameter("locationY"))); //$NON-NLS-1$ } @Override protected CharSequence getCallbackScript(boolean onlyTargetActivePage) { return "Servoy.Utils.onScroll('" + component.getScrollComponentMarkupId() + "','" + getCallbackUrl() + "')"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } }