CVS: TapestryBook/examples/src/examples/upload Upload.java,NONE,1.1 UploadResults.java,NONE,1.1
Howard Lewis Ship <[email protected]> Mon, 03 Mar 2003 17:13:12 -0800
| Newsgroups | gmane.comp.java.tapestry.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/tapestry/TapestryBook/examples/src/examples/upload
In directory sc8-pr-cvs1:/tmp/cvs-serv3222/examples/src/examples/upload
Added Files:
Upload.java UploadResults.java
Log Message:
Add new examples for Upload and DatePicker.
--- NEW FILE: Upload.java ---
package examples.upload;
import net.sf.tapestry.IRequestCycle;
import net.sf.tapestry.IUploadFile;
import net.sf.tapestry.html.BasePage;
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.setPage(next);
}
}
--- NEW FILE: UploadResults.java ---
package examples.upload;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.StringWriter;
import net.sf.tapestry.IMarkupWriter;
import net.sf.tapestry.IRender;
import net.sf.tapestry.IRequestCycle;
import net.sf.tapestry.IUploadFile;
import net.sf.tapestry.RequestCycleException;
import net.sf.tapestry.html.BasePage;
import net.sf.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) throws RequestCycleException
{
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 RequestCycleException("Unable to generate binary dump.", null, 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());
}
}
-------------------------------------------------------
This SF.net email is sponsored by: Etnus, makers of TotalView, The debugger
for complex code. Debugging C/C++ programs can leave you feeling lost and
disoriented. TotalView can help you find your way. Available on major UNIX
and Linux platforms. Try it free. www.etnus.com