Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2004-2005 Revolution Systems Inc.
   * 
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   * 
   *      http://www.apache.org/licenses/LICENSE-2.0
   * 
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 package com.revolsys.ui.html.fields;
 
 import java.sql.Date;
 import java.util.List;
 
 
 
 
 public class SqlDateSelectField extends Field {
 
   private static final String YEAR_KEY = "Year";
 
   private static final String DAY_KEY = "Day";
 
   private static final String MONTH_KEY = "Month";
 
   private final Logger log = Logger.getLogger(SqlDateSelectField.class);
 
   private static final List DAY_OPTIONS;
 
   private static final List MONTH_OPTIONS;
 
   private static final String[] MONTHS = {
     "Jan""Feb""Mar""Apr""May""Jun""Jul""Aug""Sep""Oct",
     "Nov""Dec"
   };
 
   static {
     List dayOptions = new ArrayList();
     for (byte i = 1; i <= 31; i++) {
       String val = String.valueOf(i);
       dayOptions.add(new FieldValue(new Byte(i), valval));
     }
      = Collections.unmodifiableList(dayOptions);
     List monthOptions = new ArrayList();
     for (byte i = 0; i < .i++) {
       String val = String.valueOf(i);
       monthOptions.add(new FieldValue(new Byte(i), val[i]));
     }
      = Collections.unmodifiableList(monthOptions);
   }
 
   private List yearOptions = new ArrayList();
 
   private String dayStringValue;
 
   private String monthStringValue;
 
   private String yearStringValue;
 
   private int startYear;
 
   private int endYear;
 
   public static int getYear(final int offset) {
     Calendar date = new GregorianCalendar();
     date.add(.offset);
     return date.get(.);
   }

  

Parameters:
name
required
 
   public SqlDateSelectField(final String namefinal boolean required) {
     this(namerequiredgetYear(-10), getYear(0));
   }

  

Parameters:
name
required
 
   public SqlDateSelectField(final String namefinal boolean required,
     final int startYearfinal int endYear) {
    super(namerequired);
    for (int i = startYeari <= endYeari++) {
      String val = String.valueOf(i);
      .add(new FieldValue(new Integer(i), valval));
    }
    this. = startYear;
    this. = endYear;
  }
  public void serializeElement(final XmlWriter out) {
    out.entityRef("nbsp");
    out.entityRef("nbsp");
  }
  private void serializeSelect(final XmlWriter outfinal String part,
    final List options) {
    String name = getName() + part;
    out.attribute(.name);
    out.attribute(.name);
    serializeOptions(outpartoptions);
    out.endTag(.);
  }
  private void serializeOptions(final XmlWriter outfinal String part,
    final List options) {
    String stringValue = "";
    if (part.equals()) {
      stringValue = ;
    } else if (part.equals()) {
      stringValue = ;
    } else if (part.equals()) {
      stringValue = ;
    }
    if (!isRequired()) {
      out.startTag(.);
      out.attribute(."");
      out.text("-");
      out.endTag();
    }
    for (Iterator optionIter = options.iterator(); optionIter.hasNext();) {
      FieldValue option = (FieldValue)optionIter.next();
      out.startTag(.);
      if (option.getStringValue().equals(stringValue)) {
        out.attribute(."true");
      }
      if (!option.getStringValue().equals(option.getLabel())) {
        out.attribute(.option.getStringValue());
      }
      out.text(option.getLabel());
      out.endTag(.);
    }
  }
  public void initialize(final Form formfinal HttpServletRequest request) {
     = request.getParameter(getName() + );
     = request.getParameter(getName() + );
    Date date = (Date)getInitialValue(request);
    Calendar calendar = Calendar.getInstance();
    if (date != null) {
      calendar.setTime(date);
    }
    if ( == null) {
       = String.valueOf(calendar.get(.));
    }
    if ( == null) {
       = String.valueOf(calendar.get(.));
    }
    if ( == null) {
       = String.valueOf(calendar.get(.));
    }
  }
  public boolean hasValue() {
    return  != null && !.equals("")
      &&  != null && !.equals("")
      &&  != null && !.equals("");
  }
  public boolean isValid() {
    boolean valid = true;
    if (!super.isValid()) {
      valid = false;
    } else if (hasValue()) {
      int day = 1;
      int month = 1;
      int year = 1900;
      try {
        day = Integer.parseInt();
      } catch (NumberFormatException e) {
        addValidationError("Invalid Day");
        valid = false;
      }
      try {
        month = Integer.parseInt();
      } catch (NumberFormatException e) {
        addValidationError("Invalid Month");
        valid = false;
      }
      try {
        year = Integer.parseInt();
        if (year <  || year > ) {
          addValidationError("Year must be between " +  + " and "
            + );
          valid = false;
        }
      } catch (NumberFormatException e) {
        addValidationError("Invalid Year");
        valid = false;
      }
      if (valid) {
        try {
          Calendar date = Calendar.getInstance();
          date.clear();
          date.setLenient(false);
          date.set(yearmonthday);
          setValue(new Date(date.getTimeInMillis()));
        } catch (Throwable e) {
          .debug(e.getMessage(), e);
          addValidationError("Invalid Date");
          valid = false;
        }
      }
    }
    return valid;
  }
New to GrepCode? Check out our FAQ X