CVS: TapestryBook/examples/src/java/examples/dates Dates2.java,NONE,1.1 DatesConfirm.java,NONE,1.1 Dates.java,NONE,1.1

Howard Lewis Ship <[email protected]> Fri, 11 Jul 2003 21:16:46 -0700
Newsgroups gmane.comp.java.tapestry.cvs
Message-ID <[email protected]>
Update of /cvsroot/tapestry/TapestryBook/examples/src/java/examples/dates
In directory sc8-pr-cvs1:/tmp/cvs-serv6871/examples/src/java/examples/dates

Added Files:
	Dates2.java DatesConfirm.java Dates.java 
Log Message:
Reorganize examples application to reflect standard organization

--- NEW FILE: Dates2.java ---
package examples.dates;

import java.util.Date;

import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.form.IFormComponent;
import org.apache.tapestry.html.BasePage;
import org.apache.tapestry.valid.IValidationDelegate;
import org.apache.tapestry.valid.ValidationConstraint;

public abstract class Dates2 extends BasePage
{
    public abstract Date getStartDate();
    public abstract Date getEndDate();

    protected void error(
        IValidationDelegate delegate,
        String componentId,
        String message,
        ValidationConstraint constraint)
    {
        IFormComponent component = (IFormComponent) getComponent(componentId);

        delegate.setFormComponent(component);
        delegate.record(message, constraint);
    }

    public void formSubmit(IRequestCycle cycle)
    {
        IValidationDelegate delegate = (IValidationDelegate) getBeans().getBean("delegate");

        Date startDate = getStartDate();
        Date endDate = getEndDate();

        if (startDate == null)
            error(delegate, "inputStart", "Start Date is required.", ValidationConstraint.REQUIRED);

        if (endDate == null)
            error(delegate, "inputEnd", "End Date is required.", ValidationConstraint.REQUIRED);

        if (delegate.getHasErrors())
            return;

        if (startDate.after(endDate))
        {
            error(
                delegate,
                "inputEnd",
                "End Date must be after Start Date.",
                ValidationConstraint.CONSISTENCY);
            return;
        }

        DatesConfirm next = (DatesConfirm) cycle.getPage("DatesConfirm");
        next.setStartDate(startDate);
        next.setEndDate(endDate);
        cycle.activate(next);
    }

}
--- NEW FILE: DatesConfirm.java ---
package examples.dates;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.tapestry.html.BasePage;

public abstract class DatesConfirm extends BasePage
{
	public abstract void setEndDate(Date endDate);
	public abstract void setStartDate(Date startDate);
	
	public DateFormat getDateFormat()
	{
		return SimpleDateFormat.getDateInstance(SimpleDateFormat.MEDIUM, getLocale());
	}
}

--- NEW FILE: Dates.java ---
package examples.dates;

import java.util.Date;

import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.form.IFormComponent;
import org.apache.tapestry.html.BasePage;
import org.apache.tapestry.valid.IValidationDelegate;
import org.apache.tapestry.valid.ValidationConstraint;

public abstract class Dates extends BasePage
{
    public abstract Date getStartDate();
    public abstract Date getEndDate();

    public void formSubmit(IRequestCycle cycle)
    {
        IValidationDelegate delegate = (IValidationDelegate) getBeans().getBean("delegate");

        if (delegate.getHasErrors())
            return;

        Date startDate = getStartDate();
        Date endDate = getEndDate();

        if (startDate.after(endDate))
        {
            IFormComponent inputEnd = (IFormComponent) getComponent("inputEnd");
            delegate.setFormComponent(inputEnd);
            delegate.record("End Date must be after Start Date.", ValidationConstraint.CONSISTENCY);
            return;
        }
        
        DatesConfirm next = (DatesConfirm)cycle.getPage("DatesConfirm");
        next.setStartDate(startDate);
        next.setEndDate(endDate);
        cycle.activate(next);
    }
}



-------------------------------------------------------
This SF.Net email sponsored by: Parasoft
Error proof Web apps, automate testing & more.
Download & eval WebKing and get a free book.
www.parasoft.com/bulletproofapps1