jon         01/06/17 18:29:05

  Modified:    src/java/org/apache/turbine/util DateSelector.java
  Log:
  Below is a patch for Date Selector that allows easy control of the years
  that YearSelector and ecsOutput return.
  Charles Benett <[EMAIL PROTECTED]>
  
  Revision  Changes    Path
  1.6       +65 -10    
jakarta-turbine/src/java/org/apache/turbine/util/DateSelector.java
  
  Index: DateSelector.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine/src/java/org/apache/turbine/util/DateSelector.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DateSelector.java 2001/05/05 03:19:09     1.5
  +++ DateSelector.java 2001/06/18 01:29:05     1.6
  @@ -93,7 +93,7 @@
    * @author <a href="mailto:[EMAIL PROTECTED]";>Jeffrey D. Brekke</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Jon S. Stevens</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Leon Atkinson</a>
  - * @version $Id: DateSelector.java,v 1.5 2001/05/05 03:19:09 jvanzyl Exp $
  + * @version $Id: DateSelector.java,v 1.6 2001/06/18 01:29:05 jon Exp $
    */
   public class DateSelector
   {
  @@ -111,14 +111,17 @@
   
       private Calendar useDate = null;
       private String selName = null;
  -    private static final String[] monthName =
  +    private static final String[] monthName = 
           new DateFormatSymbols().getMonths();
       private String onChange = null;
       private boolean onChangeSet = false;
       private boolean showDays = true;
       private int setDay = 0;
  +    private boolean useYears = false;
  +    private int firstYear = 0;
  +    private int lastYear = 0;
  +    private int selectedYear = 0;
   
  -
       /**
        * Constructor defaults to current date and uses the default
        * prefix: <pre>DateSelector.DEFAULT</pre>
  @@ -332,17 +335,34 @@
       public static Select getYearSelector(String name,
                                            Calendar now)
       {
  +        int startYear = now.get(Calendar.YEAR);
  +        return(getYearSelector(name, startYear-5, startYear+5, startYear));
  +    }
  +
  +    /**
  +     * Return a year selector.
  +     *
  +     * @param name The name to use for the selected year.
  +     * @param firstYear the first (earliest) year in the selector.
  +     * @param lastYear the last (latest) year in the selector.
  +     * @param selectedYear the year initially selected in the Select html.
  +     * @return A select object with all the years from firstyear
  +     * to lastyear..
  +     */
  +    public static Select getYearSelector(String name,
  +                                         int firstYear, int lastYear,
  +                                         int selectedYear )
  +    {
           Select yearSelect = new Select().setName(name);
   
  -        int startYear = now.get(Calendar.YEAR);
  -        for(int currentYear = startYear-5;
  -            currentYear <= startYear+5;
  +        for(int currentYear = firstYear;
  +            currentYear <= lastYear;
               currentYear++)
           {
               Option o = new Option();
               o.addElement(Integer.toString(currentYear));
               o.setValue(currentYear);
  -            if (startYear == currentYear)
  +            if (currentYear == selectedYear)
               {
                   o.setSelected(true);
               }
  @@ -351,6 +371,32 @@
           return(yearSelect);
       }
   
  +
  +    /**
  +     * Select the day to be selected if the showDays(false) behavior
  +     * is used.  Individual getMonth, getDay, getYear static methods
  +     * will not use this setting.
  +     *
  +     * @param day The day.
  +     * @return A DateSelector (self).
  +     */
  +    public boolean setYear( int firstYear, int lastYear, int selectedYear )
  +    {
  +        if (firstYear <= lastYear && firstYear <= selectedYear
  +            && selectedYear <= lastYear)
  +        {
  +            this.useYears = true;
  +            this.firstYear = firstYear;
  +            this.lastYear = lastYear;
  +            this.selectedYear = selectedYear;
  +            return true;
  +        }
  +        else
  +        {
  +            return false;
  +        }
  +    }
  +
       /**
        * Used to build the popupmenu in HTML.  The properties set in the
        * object are used to generate the correct HTML.  The selName
  @@ -423,19 +469,28 @@
               if (onChangeSet)
                   tmp.setOnChange(onChange);
               daySelect = tmp;
  +        }
  +        Select yearSelect = null;
  +        if (useYears)
  +        {
  +            yearSelect = getYearSelector(selName + YEAR_SUFFIX, 
  +                            firstYear, lastYear, selectedYear);
  +        }
  +        else
  +        {
  +            yearSelect = getYearSelector(selName + YEAR_SUFFIX, useDate);
           }
  -        Select yearSelect = getYearSelector(selName + YEAR_SUFFIX, useDate);
           if (onChangeSet)
           {
               monthSelect.setOnChange(onChange);
               yearSelect.setOnChange(onChange);
           }
           ElementContainer ec = new ElementContainer();
  -        ec.addElement(new Comment("== BEGIN 
org.apache.turbine.util.DateSelector.ecsOutput() =="));
  +        // ec.addElement(new Comment("== BEGIN 
org.apache.turbine.util.DateSelector.ecsOutput() =="));
           ec.addElement(monthSelect);
           ec.addElement(daySelect);
           ec.addElement(yearSelect);
  -        ec.addElement(new Comment("== END 
org.apache.turbine.util.DateSelector.ecsOutput() =="));
  +        // ec.addElement(new Comment("== END 
org.apache.turbine.util.DateSelector.ecsOutput() =="));
           return (ec);
       }
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to