CVS: TapestryBook/examples/src/java/examples DirectArea.java,NONE,1.1 JSPForm.java,NONE,1.1 DatePickerResult.java,NONE,1.1 Login.java,NONE,1.1 Toppings.java,NONE,1.1 ToppingsResult.java,NONE,1.1 DatePicker.java,NONE,1.1 JSP.java,NONE,1.1
Howard Lewis Ship <[email protected]> Fri, 11 Jul 2003 21:16:45 -0700
| Newsgroups | gmane.comp.java.tapestry.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/tapestry/TapestryBook/examples/src/java/examples
In directory sc8-pr-cvs1:/tmp/cvs-serv6871/examples/src/java/examples
Added Files:
DirectArea.java JSPForm.java DatePickerResult.java Login.java
Toppings.java ToppingsResult.java DatePicker.java JSP.java
Log Message:
Reorganize examples application to reflect standard organization
--- NEW FILE: DirectArea.java ---
package examples;
import org.apache.tapestry.AbstractComponent;
import org.apache.tapestry.IActionListener;
import org.apache.tapestry.IDirect;
import org.apache.tapestry.IMarkupWriter;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.Tapestry;
import org.apache.tapestry.engine.IEngineService;
import org.apache.tapestry.engine.ILink;
import org.apache.tapestry.link.DirectLink;
public abstract class DirectArea extends AbstractComponent implements IDirect
{
public abstract IActionListener getListener();
public abstract Object getParameters();
protected void renderComponent(IMarkupWriter writer, IRequestCycle cycle)
{
if (cycle.isRewinding())
return;
Object[] parameters = DirectLink.constructServiceParameters(getParameters());
IEngineService service = cycle.getEngine().getService(Tapestry.DIRECT_SERVICE);
ILink link = service.getLink(cycle, this, parameters);
writer.beginEmpty("area");
writer.attribute("href", link.getURL());
renderInformalParameters(writer, cycle);
}
public void trigger(IRequestCycle cycle)
{
IActionListener listener = getListener();
if (listener == null)
throw Tapestry.createRequiredParameterException(this, "listener");
listener.actionTriggered(this, cycle);
}
public boolean isStateful()
{
return false;
}
}
--- NEW FILE: JSPForm.java ---
package examples;
import org.apache.tapestry.IExternalPage;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.html.BasePage;
public abstract class JSPForm extends BasePage implements IExternalPage
{
protected abstract void setUserName(String userName);
public void activateExternalPage(Object[] parameters, IRequestCycle cycle)
{
String userName = cycle.getRequestContext().getParameter("userName");
setUserName(userName);
}
}
--- NEW FILE: DatePickerResult.java ---
package examples;
import java.text.DateFormat;
import java.util.Date;
import org.apache.tapestry.html.BasePage;
public abstract class DatePickerResult extends BasePage
{
public abstract void setDate(Date date);
public DateFormat getDateFormat()
{
return DateFormat.getDateInstance(DateFormat.MEDIUM, getLocale());
}
}
--- NEW FILE: Login.java ---
package examples;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.html.BasePage;
/**
* Demonstration of very simple form support.
*
* @author Howard Lewis Ship
* @version $Id: Login.java,v 1.1 2003/07/12 04:16:43 hship Exp $
*
**/
public abstract class Login extends BasePage
{
// Abstract accessors provided by Tapestry in enhanced
// subclass. We only declare the accessors we need in code,
// but the properties are always read/write.
public abstract String getUserName();
public abstract String getPassword();
public abstract void setMessage(String message);
public void login(IRequestCycle cycle)
{
if (isValidLogin(getUserName(), getPassword()))
{
cycle.activate("Main");
return;
}
setMessage("Invalid user name or password.");
}
private boolean isValidLogin(String userName, String password)
{
return "tapestry".equalsIgnoreCase(userName);
}
}
--- NEW FILE: Toppings.java ---
package examples;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.event.PageEvent;
import org.apache.tapestry.event.PageRenderListener;
import org.apache.tapestry.html.BasePage;
public abstract class Toppings extends BasePage implements PageRenderListener
{
private static String[] TOPPINGS =
{ "Lettuce", "Tomato", "Cheese", "Onions", "Pickles", "Relish", "Mustard", "Ketchup" };
public String[] getAllToppings()
{
return TOPPINGS;
}
public abstract String getTopping();
public abstract void setSelectedToppings(Set toppings);
public abstract Set getSelectedToppings();
public boolean isToppingSelected()
{
return getSelectedToppings().contains(getTopping());
}
public void setToppingSelected(boolean toppingSelected)
{
if (toppingSelected)
getSelectedToppings().add(getTopping());
else
getSelectedToppings().remove(getTopping());
}
public void selectToppings(IRequestCycle cycle)
{
String toppings = getToppingsList();
ToppingsResult page = (ToppingsResult) cycle.getPage("ToppingsResult");
page.setToppings(toppings);
cycle.activate(page);
}
private String getToppingsList()
{
if (getSelectedToppings().isEmpty())
return "No toppings.";
StringBuffer buffer = new StringBuffer();
int count = getSelectedToppings().size();
int x = 0;
Iterator i = getSelectedToppings().iterator();
while (i.hasNext())
{
if (++x > 1)
{
if (x == count)
buffer.append(" and ");
else
buffer.append(", ");
}
String topping = (String) i.next();
buffer.append(topping);
}
buffer.append(".");
return buffer.toString();
}
public void pageBeginRender(PageEvent event)
{
setSelectedToppings(new HashSet());
}
}
--- NEW FILE: ToppingsResult.java ---
package examples;
import org.apache.tapestry.html.BasePage;
public abstract class ToppingsResult extends BasePage
{
public abstract void setToppings(String toppings);
}
--- NEW FILE: DatePicker.java ---
package examples;
import java.util.Date;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.html.BasePage;
public abstract class DatePicker extends BasePage
{
public abstract Date getDate();
public void formSubmit(IRequestCycle cycle)
{
DatePickerResult page = (DatePickerResult)cycle.getPage("DatePickerResult");
page.setDate(getDate());
cycle.activate(page);
}
}
--- NEW FILE: JSP.java ---
package examples;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.RedirectException;
import org.apache.tapestry.html.BasePage;
public class JSP extends BasePage
{
public void displayPageTagDemo(IRequestCycle cycle)
{
throw new RedirectException("PageTagDemo.jsp");
}
public void displayExternalTagDemo(IRequestCycle cycle)
{
throw new RedirectException("ExternalTagDemo.jsp");
}
}
-------------------------------------------------------
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