CVS: TapestryBook/examples/src/examples/todo4 ToDoItem4.java,NONE,1.1 ToDo4.java,NONE,1.1

Howard Lewis Ship <[email protected]> Sun, 25 May 2003 14:27:34 -0700
Newsgroups gmane.comp.java.tapestry.cvs
Message-ID <[email protected]>
Update of /cvsroot/tapestry/TapestryBook/examples/src/examples/todo4
In directory sc8-pr-cvs1:/tmp/cvs-serv25467/examples/src/examples/todo4

Added Files:
	ToDoItem4.java ToDo4.java 
Log Message:
Update docs based on lengthy revisions.

--- NEW FILE: ToDoItem4.java ---
package examples.todo4;

import examples.todo3.ToDoItem3;

public class ToDoItem4 extends ToDoItem3
{
	private static int _nextuid = 0;
	
    private int _uid = _nextuid++;


    public ToDoItem4()
    {
        super();
    }

    public ToDoItem4(String title)
    {
        super(title);
    }

    public int getUid()
    {
        return _uid;
    }
}

--- NEW FILE: ToDo4.java ---
package examples.todo4;

import java.util.List;

import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.PageRedirectException;
import org.apache.tapestry.event.PageEvent;
import org.apache.tapestry.form.ListEditMap;

import examples.todo1.ToDoItem;
import examples.todo3.ToDo3;

public abstract class ToDo4 extends ToDo3
{
    public abstract void setErrorMessage(String message);

    public abstract void setListEditMap(ListEditMap listEditMap);
    public abstract ListEditMap getListEditMap();
    
    public abstract void setItem(ToDoItem item);

    protected ToDoItem createNewItem(String title)
    {
        return new ToDoItem4(title);
    }

    public void pageBeginRender(PageEvent event)
    {
        super.pageBeginRender(event);

        // Construct a ListEditMap with all the current items.

        ListEditMap map = new ListEditMap();

        List items = getToDoList();
        int count = items.size();

        for (int i = 0; i < count; i++)
        {
            ToDoItem4 item = (ToDoItem4) items.get(i);
            int uid = item.getUid();

            map.add(new Integer(uid), item);
        }

        setListEditMap(map);
    }

    public void synchronizeItem(IRequestCycle cycle)
    {
        ListEditMap map = getListEditMap();

        ToDoItem item = (ToDoItem) map.getValue();

        if (item == null)
        {
            setErrorMessage("Your form submission is out of date.  Please retry.");
            throw new PageRedirectException(this);
        }
	
		setItem(item);
    }

}



-------------------------------------------------------
This SF.net email is sponsored by: ObjectStore.
If flattening out C++ or Java code to make your application fit in a
relational database is painful, don't do it! Check out ObjectStore.
Now part of Progress Software. http://www.objectstore.net/sourceforge