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]