CVS: TapestryBook/examples/src/java/examples/upload UploadResults.java,NONE,1.1 Upload.java,NONE,1.1

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

Added Files:
	UploadResults.java Upload.java 
Log Message:
Reorganize examples application to reflect standard organization

--- NEW FILE: UploadResults.java ---
package examples.upload;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.StringWriter;

import org.apache.tapestry.ApplicationRuntimeException;
import org.apache.tapestry.IMarkupWriter;
import org.apache.tapestry.IRender;
import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.html.BasePage;
import org.apache.tapestry.request.IUploadFile;
import org.apache.tapestry.util.io.BinaryDumpOutputStream;

public abstract class UploadResults extends BasePage
{
    public abstract void setFile(IUploadFile file);
    public abstract IUploadFile getFile();

    private static class ContentRenderer implements IRender
    {
        private IUploadFile _file;

        ContentRenderer(IUploadFile file)
        {
            _file = file;
        }

        public void render(IMarkupWriter writer, IRequestCycle cycle)
        {
            try
            {
                StringWriter buffer = new StringWriter();
                BinaryDumpOutputStream out = new BinaryDumpOutputStream(buffer);

                out.setBytesPerLine(32);
                out.setShowAscii(true);

                InputStream in = _file.getStream();

                copy(in, out);

                in.close();
                out.close();

                writer.print(buffer.getBuffer().toString());

            }
            catch (IOException ex)
            {
                throw new ApplicationRuntimeException("Unable to generate binary output.", ex);
            }
        }

        private void copy(InputStream in, OutputStream out) throws IOException
        {
            byte[] buffer = new byte[1000];

            while (true)
            {
                int length = in.read(buffer);

                if (length < 0)
                    return;

                out.write(buffer, 0, length);
            }
        }

    }

    public IRender getContentRenderer()
    {
        return new ContentRenderer(getFile());
    }
}

--- NEW FILE: Upload.java ---
package examples.upload;

import org.apache.tapestry.IRequestCycle;
import org.apache.tapestry.html.BasePage;
import org.apache.tapestry.request.IUploadFile;

public abstract class Upload extends BasePage
{
    public abstract IUploadFile getFile();

    public void formSubmit(IRequestCycle cycle)
    {
        IUploadFile file = getFile();

        if (file == null)
            return;

        UploadResults next = (UploadResults) cycle.getPage("UploadResults");
        next.setFile(file);
        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