KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > jac > aspects > gui > web > AttachmentEditor


1 /*
2   Copyright (C) 2002 Laurent Martelli <laurent@aopsys.com>
3   
4   This program is free software; you can redistribute it and/or modify
5   it under the terms of the GNU Lesser General Public License as
6   published by the Free Software Foundation; either version 2 of the
7   License, or (at your option) any later version.
8
9   This program is distributed in the hope that it will be useful,
10   but WITHOUT ANY WARRANTY; without even the implied warranty of
11   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12   GNU Lesser General Public License for more details.
13
14   You should have received a copy of the GNU Lesser General Public License
15   along with this program; if not, write to the Free Software
16   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */

17
18 package org.objectweb.jac.aspects.gui.web;
19
20 import org.objectweb.jac.core.rtti.FieldItem;
21 import org.objectweb.jac.lib.Attachment;
22 import org.objectweb.jac.util.Streams;
23 import java.io.IOException JavaDoc;
24 import java.io.PrintWriter JavaDoc;
25
26 public class AttachmentEditor extends AbstractFieldEditor
27     implements HTMLEditor
28 {
29     public AttachmentEditor(Object JavaDoc substance, FieldItem field) {
30         super(substance,field);
31     }
32
33     // HTMLEditor interface
34

35     protected boolean doReadValue(Object JavaDoc parameter) {
36         RequestPart part = (RequestPart)parameter;
37         if(part.getFilename()==null || part.getFilename().equals("")) {
38             return false;
39         }
40         try {
41             byte[] data = Streams.readStream(part.getData());
42             Attachment attachment =
43                 new Attachment(data,
44                                (String JavaDoc)part.getHeaders().get("content-type"),
45                                part.getFilename());
46             setValue(attachment);
47             return true;
48         } catch (IOException JavaDoc e) {
49             logger.error("Failed to read data for parameters "+part.getName(),e);
50             return false;
51         }
52     }
53    
54     public void genHTML(PrintWriter JavaDoc out) {
55         out.print("<input name=\""+label+"\" type=\"file\">");
56     }
57 }
58
Popular Tags