CVS: TapestryBook/examples/src/examples ToppingsResult.java,NONE,1.1 Login.java,NONE,1.1 ToDo.java,NONE,1.1 TextField1.java,NONE,1.1 Toppings.java,NONE,1.1 ToDoItem.java,NONE,1.1
Howard Lewis Ship <[email protected]> Thu, 20 Feb 2003 07:13:48 -0800
| Newsgroups | gmane.comp.java.tapestry.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/tapestry/TapestryBook/examples/src/examples
In directory sc8-pr-cvs1:/tmp/cvs-serv16370/examples/src/examples
Added Files:
ToppingsResult.java Login.java ToDo.java TextField1.java
Toppings.java ToDoItem.java
Log Message:
Checkpoint.
--- NEW FILE: ToppingsResult.java ---
package examples;
import net.sf.tapestry.html.BasePage;
public abstract class ToppingsResult extends BasePage
{
public abstract void setToppings(String toppings);
}
--- NEW FILE: Login.java ---
package examples;
import net.sf.tapestry.IRequestCycle;
import net.sf.tapestry.html.BasePage;
/**
* Demonstration of very simple form support.
*
* @author Howard Lewis Ship
* @version $Id: Login.java,v 1.1 2003/02/20 15:13:44 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.setPage("Main");
return;
}
setMessage("Invalid user name or password.");
}
private boolean isValidLogin(String userName, String password)
{
return "tapestry".equalsIgnoreCase(userName);
}
}
--- NEW FILE: ToDo.java ---
package examples;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
import net.sf.tapestry.IMarkupWriter;
import net.sf.tapestry.IRequestCycle;
import net.sf.tapestry.RequestCycleException;
import net.sf.tapestry.html.BasePage;
public abstract class ToDo extends BasePage
{
public abstract List getToDoList();
public abstract void setToDoList(List toDoList);
public abstract ToDoItem getItem();
public abstract ToDoItem getMoveUpItem();
public abstract void setMoveUpItem(ToDoItem moveUpItem);
public abstract ToDoItem getMoveDownItem();
public abstract void setMoveDownItem(ToDoItem moveDownItem);
// Remember which item to move up until after the form finishes
// rewinding.
public void moveUp(IRequestCycle cycle)
{
setMoveUpItem(getItem());
}
public void moveDown(IRequestCycle cycle)
{
setMoveDownItem(getItem());
}
public void addTodoItem(IRequestCycle cycle)
{
getToDoList().add(new ToDoItem("New Item"));
}
// The Submit for this is after the main loop, so its safe to
// actually edit the list.
public void deleteCompleted(IRequestCycle cycle)
{
ListIterator i = getToDoList().listIterator();
while (i.hasNext())
{
ToDoItem item = (ToDoItem) i.next();
if (item.isCompleted())
i.remove();
}
}
public void formSubmit(IRequestCycle cycle)
{
List list = getToDoList();
int count = list.size();
for (int i = 0; i < count; i++)
{
ToDoItem item = (ToDoItem) list.get(i);
if (item == getMoveUpItem())
{
if (i > 0)
{
list.remove(i);
list.add(i - 1, item);
}
break;
}
if (item == getMoveDownItem())
{
if (i + 1 < count)
{
list.remove(i);
list.add(i + 1, item);
}
break;
}
}
// Always important to set peristent properties; otherwise changes
// made in this request cycle will be lost. The framework
// makes a copy of the list.
setToDoList(list);
}
// Last chance to set persistent properties before a render. This is where
// we detect the uninitialized ToDo list and set its initial
// contents.
public void beginResponse(IMarkupWriter writer, IRequestCycle cycle)
throws RequestCycleException
{
List list = getToDoList();
if (list == null)
{
list = new ArrayList();
list.add(new ToDoItem("Finish reading Tapestry Book"));
list.add(new ToDoItem("Download latest version of Tapestry"));
setToDoList(list);
}
}
}
--- NEW FILE: TextField1.java ---
package examples;
import net.sf.tapestry.html.BasePage;
public abstract class TextField1 extends BasePage
{
public abstract int getRealProperty();
public abstract void setRealProperty(int realProperty);
public abstract void setErrorMessage(String errorMessage);
public void setStringProperty(String stringProperty)
{
try
{
int value = Integer.parseInt(stringProperty);
setRealProperty(value);
}
catch (NumberFormatException ex)
{
setErrorMessage("Invalid integer value.");
}
}
public String getStringProperty()
{
return Integer.toString(getRealProperty());
}
}
--- NEW FILE: Toppings.java ---
package examples;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import net.sf.tapestry.IRequestCycle;
import net.sf.tapestry.html.BasePage;
public abstract class Toppings extends BasePage
{
private static String[] TOPPINGS =
{ "Lettuce", "Tomato", "Cheese", "Onions", "Pickles", "Relish", "Mustard", "Ketchup" };
private Set _selectedToppings;
public void initialize()
{
_selectedToppings = new HashSet();
}
public String[] getToppings()
{
return TOPPINGS;
}
public abstract void setTopping(String topping);
public abstract String getTopping();
public boolean isToppingSelected()
{
return _selectedToppings.contains(getTopping());
}
public void setToppingSelected(boolean toppingSelected)
{
if (toppingSelected)
_selectedToppings.add(getTopping());
else
_selectedToppings.remove(getTopping());
}
public void selectToppings(IRequestCycle cycle)
{
String toppings = getToppingsList();
ToppingsResult page = (ToppingsResult) cycle.getPage("ToppingsResult");
page.setToppings(toppings);
cycle.setPage(page);
}
private String getToppingsList()
{
if (_selectedToppings.isEmpty())
return "No toppings.";
StringBuffer buffer = new StringBuffer();
int count = _selectedToppings.size();
int x = 0;
Iterator i = _selectedToppings.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();
}
}
--- NEW FILE: ToDoItem.java ---
package examples;
public class ToDoItem
{
private boolean _completed;
private String _title;
public ToDoItem()
{
}
public ToDoItem(String title)
{
_title = title;
}
public boolean isCompleted()
{
return _completed;
}
public String getTitle()
{
return _title;
}
public void setCompleted(boolean completed)
{
_completed = completed;
}
public void setTitle(String title)
{
_title = title;
}
}
-------------------------------------------------------
This SF.net email is sponsored by: SlickEdit Inc. Develop an edge.
The most comprehensive and flexible code editor you can use.
Code faster. C/C++, C#, Java, HTML, XML, many more. FREE 30-Day Trial.
www.slickedit.com/sourceforge