portals-jetspeed-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dlest...@apache.org
Subject cvs commit: jakarta-jetspeed-2/applications/jsf-demo/src/java/guessNumber MessageFactory.java UserNumberBean.java
Date Tue, 17 Aug 2004 19:57:44 GMT
dlestrat    2004/08/17 12:57:44

  Added:       applications/jsf-demo/src/java/guessNumber
                        MessageFactory.java UserNumberBean.java
  Log:
  MyFaces Bridge
  See http://nagoya.apache.org/jira/browse/JS2-107.
  
  Revision  Changes    Path
  1.1                  jakarta-jetspeed-2/applications/jsf-demo/src/java/guessNumber/MessageFactory.java
  
  Index: MessageFactory.java
  ===================================================================
  /*
   * $Id: MessageFactory.java,v 1.1 2004/08/17 19:57:44 dlestrat Exp $
   */
  
  /*
   * Copyright 2004 Sun Microsystems, Inc. All Rights Reserved.
   * 
   * Redistribution and use in source and binary forms, with or
   * without modification, are permitted provided that the following
   * conditions are met:
   * 
   * - Redistributions of source code must retain the above copyright
   *   notice, this list of conditions and the following disclaimer.
   * 
   * - Redistribution in binary form must reproduce the above
   *   copyright notice, this list of conditions and the following
   *   disclaimer in the documentation and/or other materials
   *   provided with the distribution.
   *    
   * Neither the name of Sun Microsystems, Inc. or the names of
   * contributors may be used to endorse or promote products derived
   * from this software without specific prior written permission.
   *  
   * This software is provided "AS IS," without a warranty of any
   * kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND
   * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY
   * EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY
   * DAMAGES OR LIABILITIES SUFFERED BY LICENSEE AS A RESULT OF OR
   * RELATING TO USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE OR
   * ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE
   * FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT,
   * SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER
   * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF
   * THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS
   * BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
   *  
   * You acknowledge that this software is not designed, licensed or
   * intended for use in the design, construction, operation or
   * maintenance of any nuclear facility.
   */
  
  package guessNumber;
  
  import java.io.FileInputStream;
  import java.io.InputStream;
  import java.io.IOException;
  
  import java.util.Locale;
  import java.util.HashMap;
  import java.util.Iterator;
  import java.util.Properties;
  import java.util.ResourceBundle;
  import java.util.MissingResourceException;
  import javax.faces.FacesException;
  import javax.faces.application.Application;
  import javax.faces.application.FacesMessage;
  import javax.faces.context.FacesContext;
  import java.text.MessageFormat;
  import java.io.IOException;
  
  /**
   * 
   * <p>supported filters: <code>package</code> and
   * <code>protection</code>.</p>
   */
  
  public class MessageFactory extends Object
  {
      //
      // Protected Constants
      //
  
      //
      // Class Variables
      //
  
      //
      // Instance Variables
      //
  
      // Attribute Instance Variables
  
      // Relationship Instance Variables
  
      //
      // Constructors and Initializers    
      //
  
      private MessageFactory() {
      }
  
      //
      // Class methods
      //
  
      //
      // General Methods
      //
      
      public static String substituteParams(Locale locale, String msgtext, Object params[])
{
          String localizedStr = null;
          
          if (params == null || msgtext == null ) {
              return msgtext;
          }    
          StringBuffer b = new StringBuffer(100);
          MessageFormat mf = new MessageFormat(msgtext);
          if (locale != null) {
              mf.setLocale(locale);
              b.append(mf.format(params));
              localizedStr = b.toString();
          }    
          return localizedStr;
      }
  
      /**
  
      * This version of getMessage() is used in the RI for localizing RI
      * specific messages.
  
      */
  
      public static FacesMessage getMessage(String messageId, Object params[]) {
          Locale locale = null;
          FacesContext context = FacesContext.getCurrentInstance();
          // context.getViewRoot() may not have been initialized at this point.
          if (context != null && context.getViewRoot() != null) {
              locale = context.getViewRoot().getLocale();
              if (locale == null) {
                  locale = Locale.getDefault();
              }
          } else {
              locale = Locale.getDefault();
          }
          
  	return getMessage(locale, messageId, params);
      }
  
      public static FacesMessage getMessage(Locale locale, String messageId, 
  					   Object params[]) {
  	FacesMessage result = null;
  	String 
  	    summary = null,
  	    detail = null,
  	    bundleName = null;
  	ResourceBundle bundle = null;
  
  	// see if we have a user-provided bundle
  	if (null != (bundleName = getApplication().getMessageBundle())) {
  	    if (null != 
  		(bundle = 
  		 ResourceBundle.getBundle(bundleName, locale,
  					  getCurrentLoader(bundleName)))) {
  		// see if we have a hit
  		try {
  		    summary = bundle.getString(messageId);
  		}
  		catch (MissingResourceException e) {
  		}
  	    }
  	}
  	
  	// we couldn't find a summary in the user-provided bundle
  	if (null == summary) {
  	    // see if we have a summary in the app provided bundle
  	    bundle = ResourceBundle.getBundle(FacesMessage.FACES_MESSAGES, 
  					      locale,
  					      getCurrentLoader(bundleName));
  	    if (null == bundle) {
  		throw new NullPointerException();
  	    }
  	    // see if we have a hit
  	    try {
  		summary = bundle.getString(messageId);
  	    }
  	    catch (MissingResourceException e) {
  	    }
  	}
  	
  	// we couldn't find a summary anywhere!  Return null
  	if (null == summary) {
  	    return null;
  	}
  
  	// At this point, we have a summary and a bundle.
  	if (null == summary || null == bundle) {
  	    throw new NullPointerException();
  	}
  	summary = substituteParams(locale, summary, params);
  
  	try {
  	    detail = substituteParams(locale,
  				      bundle.getString(messageId + "_detail"), 
  				      params);
  	}
  	catch (MissingResourceException e) {
  	}
  
          return (new FacesMessage(summary, detail));
      }
  
  
      //
      // Methods from MessageFactory
      // 
      public static FacesMessage getMessage(FacesContext context, String messageId) {
          return getMessage(context, messageId, null);
      }    
      
      public static FacesMessage getMessage(FacesContext context, String messageId,
  					   Object params[]) {
          if (context == null || messageId == null ) {
              throw new NullPointerException("One or more parameters could be null");
          }
          Locale locale = null;
          // viewRoot may not have been initialized at this point.
          if (context != null && context.getViewRoot() != null) {
              locale = context.getViewRoot().getLocale();
          } else {
              locale = Locale.getDefault();
          }
  	if (null == locale) {
  	    throw new NullPointerException();
  	}
          FacesMessage message = getMessage(locale, messageId, params);
          if (message != null) {
              return message;
          }
          locale = Locale.getDefault();
          return (getMessage(locale, messageId, params));
      }  
      
      public static FacesMessage getMessage(FacesContext context, String messageId,
                                         Object param0) {
          return getMessage(context, messageId, new Object[]{param0});                   
                   
      }                                       
      
      public static FacesMessage getMessage(FacesContext context, String messageId,
                                         Object param0, Object param1) {
           return getMessage(context, messageId, new Object[]{param0, param1});          
                             
      }                                       
  
      public static FacesMessage getMessage(FacesContext context, String messageId,
                                         Object param0, Object param1,
                                         Object param2) {
           return getMessage(context, messageId, 
               new Object[]{param0, param1, param2});                                    
   
      }                                       
  
      public static FacesMessage getMessage(FacesContext context, String messageId,
                                         Object param0, Object param1,
                                         Object param2, Object param3) {
           return getMessage(context, messageId, 
                   new Object[]{param0, param1, param2, param3});                        
               
      }                                       
  
      protected static Application getApplication() {
          return (FacesContext.getCurrentInstance().getApplication());
      }
  
      protected static ClassLoader getCurrentLoader(Object fallbackClass) {
          ClassLoader loader =
  	    Thread.currentThread().getContextClassLoader();
  	if (loader == null) {
  	    loader = fallbackClass.getClass().getClassLoader();
  	}
  	return loader;
      }
  
  
  } // end of class MessageFactory
  
  
  
  1.1                  jakarta-jetspeed-2/applications/jsf-demo/src/java/guessNumber/UserNumberBean.java
  
  Index: UserNumberBean.java
  ===================================================================
  /*
   * Copyright 2004 Sun Microsystems, Inc. All Rights Reserved.
   * 
   * Redistribution and use in source and binary forms, with or
   * without modification, are permitted provided that the following
   * conditions are met:
   * 
   * - Redistributions of source code must retain the above copyright
   *   notice, this list of conditions and the following disclaimer.
   * 
   * - Redistribution in binary form must reproduce the above
   *   copyright notice, this list of conditions and the following
   *   disclaimer in the documentation and/or other materials
   *   provided with the distribution.
   *    
   * Neither the name of Sun Microsystems, Inc. or the names of
   * contributors may be used to endorse or promote products derived
   * from this software without specific prior written permission.
   *  
   * This software is provided "AS IS," without a warranty of any
   * kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND
   * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,
   * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY
   * EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY
   * DAMAGES OR LIABILITIES SUFFERED BY LICENSEE AS A RESULT OF OR
   * RELATING TO USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE OR
   * ITS DERIVATIVES. IN NO EVENT WILL SUN OR ITS LICENSORS BE LIABLE
   * FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR DIRECT, INDIRECT,
   * SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE DAMAGES, HOWEVER
   * CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, ARISING OUT OF
   * THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF SUN HAS
   * BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
   *  
   * You acknowledge that this software is not designed, licensed or
   * intended for use in the design, construction, operation or
   * maintenance of any nuclear facility.
   */
   
  package guessNumber;
  
  import java.util.Random;
  
  import javax.faces.component.UIComponent;
  import javax.faces.context.FacesContext;
  import javax.faces.validator.Validator;
  import javax.faces.validator.ValidatorException;
  import javax.faces.validator.LongRangeValidator;
  
  
  public class UserNumberBean {
  
      Integer userNumber = null;
      Integer randomInt = null;
      String response = null;
      
  
      public UserNumberBean () {
  	Random randomGR = new Random();
  	randomInt = new Integer(randomGR.nextInt(10));
          System.out.println("Duke's number: "+randomInt);
      }
    
      public void setUserNumber(Integer user_number) {
          userNumber = user_number;
          System.out.println("Set userNumber " + userNumber);
      }
  
      public Integer getUserNumber() {
          System.out.println("get userNumber " + userNumber);
          return userNumber;
      }
  
      public String getResponse() {
      	if(userNumber != null && userNumber.compareTo(randomInt) == 0) {
              return "Yay! You got it!"; 
          }
  	else {
              return "Sorry, "+userNumber+" is incorrect.";
          }
      }
  
      protected String [] status = null;
      public String [] getStatus() {
      	return status;
      }
  
      public void setStatus(String [] newStatus) {
  	status = newStatus;
      }
  
      private int maximum = 0;
      private boolean maximumSet = false;
  
      public int getMaximum() {
          return (this.maximum);
      }
  
      public void setMaximum(int maximum) {
          this.maximum = maximum;
          this.maximumSet = true;
      }
  
      private int minimum = 0;
      private boolean minimumSet = false;
  
      public int getMinimum() {
          return (this.minimum);
      }
  
  
      public void setMinimum(int minimum) {
          this.minimum = minimum;
          this.minimumSet = true;
      }
  
      public void validate(FacesContext context,
                           UIComponent  component,
                           Object       value) throws ValidatorException {
  
          if ((context == null) || (component == null)) {
              throw new NullPointerException();
          }
          if (value != null) {
              try {
                  int converted = intValue(value);
                  if (maximumSet &&
                      (converted > maximum)) {
  		    if (minimumSet) {
                          throw new ValidatorException(MessageFactory.getMessage
  					   (context,
  					    Validator.NOT_IN_RANGE_MESSAGE_ID,
  					    new Object[] {
  						new Integer(minimum),
  						new Integer(maximum) }));
  			
  		    }
  		    else {
                          throw new ValidatorException(MessageFactory.getMessage
  					   (context,
  					    LongRangeValidator.MAXIMUM_MESSAGE_ID,
  					    new Object[] {
  						new Integer(maximum) }));
  		    }
                  }
                  if (minimumSet &&
                      (converted < minimum)) {
  		    if (maximumSet) {
                          throw new ValidatorException(MessageFactory.getMessage
  					   (context,
  					    Validator.NOT_IN_RANGE_MESSAGE_ID,
  					    new Object[] {
  						new Double(minimum),
  						new Double(maximum) }));
  			
  		    }
  		    else {
                          throw new ValidatorException(MessageFactory.getMessage
  					   (context,
  					    LongRangeValidator.MINIMUM_MESSAGE_ID,
  					    new Object[] {
  						new Integer(minimum) }));
  		    }
                  }
              } catch (NumberFormatException e) {
                  throw new ValidatorException(MessageFactory.getMessage
                                       (context, LongRangeValidator.TYPE_MESSAGE_ID));
              }
          }
  
      }
  
      private int intValue(Object attributeValue)
          throws NumberFormatException {
  
          if (attributeValue instanceof Number) {
              return ( ((Number) attributeValue).intValue() );
          } else {
              return (Integer.parseInt(attributeValue.toString()));
          }
  
      }
  
  
  
  
  }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org


Mime
View raw message