Package er.extensions.components.javascript

Source Code of er.extensions.components.javascript.ERXJSInputValidator$Action

package er.extensions.components.javascript;

import org.apache.log4j.Logger;

import com.webobjects.appserver.WOActionResults;
import com.webobjects.appserver.WOComponent;
import com.webobjects.appserver.WOContext;
import com.webobjects.appserver.WODirectAction;
import com.webobjects.appserver.WORequest;
import com.webobjects.appserver.WOResponse;
import com.webobjects.appserver._private.WOText;
import com.webobjects.appserver._private.WOTextField;
import com.webobjects.foundation.NSArray;
import com.webobjects.foundation.NSDictionary;
import com.webobjects.foundation.NSMutableArray;

import er.extensions.appserver.ERXWOContext;
import er.extensions.components._private.ERXWOTextField;
import er.extensions.foundation.ERXPatcher.DynamicElementsPatches.Text;

/**
* Client side part of the JavaScript validation.
* Simply wrap your text-based input component with this component and whenever the user leaves the field,
* the value is validated via a RPC call on the server side and an error message is displayed if it does not validate.
*
* @binding keyName the key to validate against
* @binding entityName the entity to validate against
* @binding disabled disable the validation
*
* @author ak on Fri May 02 2003
*/
public class ERXJSInputValidator extends WOComponent {
  /**
   * Do I need to update serialVersionUID?
   * See section 5.6 <cite>Type Changes Affecting Serialization</cite> on page 51 of the
   * <a href="http://java.sun.com/j2se/1.4/pdf/serial-spec.pdf">Java Object Serialization Spec</a>
   */
  private static final long serialVersionUID = 1L;

    public static class Action extends WODirectAction {
        public Action(WORequest r) { super(r); }
        /**
        * This action is used to validate attributes of eos.
         *
         * @return the error page containing localized error messages if there where any errors.
         */
        public WOActionResults validateValueForKeyInEntityAction() {
            return pageWithName("ERXJSValidationErrors");
        }
    }
   
    /** logging support */
    private static final Logger log = Logger.getLogger(ERXJSInputValidator.class);
    public String _errorSpanID;
    public NSDictionary currentItem;
    /**
     * Public constructor
     * @param context the context
     */
    public ERXJSInputValidator(WOContext context) {
        super(context);
    }

    /** component does not synchronize it's variables */
    @Override
    public boolean synchronizesVariablesWithBindings() { return false; }

    @Override
    public void appendToResponse(WOResponse woresponse, WOContext wocontext) {
        super.appendToResponse(woresponse, wocontext);
        NSMutableArray array = (NSMutableArray)ERXWOContext.contextDictionary().objectForKey("elementArray");
        if(array != null)
            array.removeAllObjects();
    }

    public String errorSpanID() {
        if(_errorSpanID == null) {
            _errorSpanID = context().elementID();
        }

        return _errorSpanID;
    }

    public NSArray elementArray() {
      return (NSArray) ERXWOContext.contextDictionary().objectForKey("elementArray");
    }
   
    public String formName() {
      return (String) ERXWOContext.contextDictionary().objectForKey("formName");
    }
   
    public Class classForCurrentItem() {
        String className = (String)currentItem.objectForKey("type");
        Class clazz = null;
        try {
            clazz = Class.forName(className);
            return clazz;
        } catch(Exception ex) {
        }
        return String.class;
    }

    public boolean currentItemCanBlur() {
        Class clazz = classForCurrentItem();
        boolean canBlur = WOText.class.isAssignableFrom(clazz);
        canBlur |= WOTextField.class.isAssignableFrom(clazz);
        canBlur |= Text.class.isAssignableFrom(clazz);
        canBlur |= ERXWOTextField.class.isAssignableFrom(clazz);
        return canBlur;
    }
}
TOP

Related Classes of er.extensions.components.javascript.ERXJSInputValidator$Action

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.