/* 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.ajax.AbstractDefaultAjaxBehavior; import com.servoy.j2db.server.headlessclient.IDesignModeListener; import com.servoy.j2db.server.headlessclient.WebClientSession; /** * A base {@link AbstractDefaultAjaxBehavior} that calls onAjaxError() in the browser when a failure happens. * It is only enabled when the webclient is in ajax mode and the design mode boolean is false. * * @author jcompagner * */ public abstract class AbstractServoyDefaultAjaxBehavior extends AbstractDefaultAjaxBehavior implements IDesignModeListener { private boolean designMode; public AbstractServoyDefaultAjaxBehavior() { super(); } /** * @see org.apache.wicket.ajax.AbstractDefaultAjaxBehavior#getFailureScript() */ @Override protected CharSequence getFailureScript() { return "onAjaxError();"; //$NON-NLS-1$ } /** * @see org.apache.wicket.ajax.AbstractDefaultAjaxBehavior#getPreconditionScript() */ @Override protected CharSequence getPreconditionScript() { return "onAjaxCall();" + super.getPreconditionScript(); //$NON-NLS-1$ } /** * @see org.apache.wicket.behavior.AbstractBehavior#isEnabled(org.apache.wicket.Component) */ @Override public boolean isEnabled(Component component) { return WebClientSession.get().useAjax() && super.isEnabled(component) && !designMode; } /** * @see com.servoy.j2db.server.headlessclient.IDesignModeListener#setDesignMode(boolean) */ public void setDesignMode(boolean designMode) { this.designMode = designMode; } }