KickJava   Java API By Example, From Geeks To Geeks.

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


1 /*
2   Copyright (C) 2003 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, but
10   WITHOUT ANY WARRANTY; without even the implied warranty of
11   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12   Lesser General Public License for more details.
13
14   You should have received a copy of the GNU Lesser General Public
15   License along with this program; if not, write to the Free Software
16   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
17   USA */

18
19 package org.objectweb.jac.aspects.gui.web;
20
21 import java.io.PrintWriter JavaDoc;
22 import java.text.ParsePosition JavaDoc;
23 import org.objectweb.jac.aspects.gui.FloatFormat;
24 import org.objectweb.jac.core.rtti.FieldItem;
25 import org.objectweb.jac.aspects.gui.Format;
26
27 /**
28  * HTML editor and viewer for percentage values. It can handle short,
29  * int, long, float, and double. In the case of short, int and long,
30  * the percentage value is considered to be between 0 and 100, while
31  * in the case of float and double it must be between 0 and 1.
32  */

33 public abstract class FormatEditor extends AbstractFieldEditor
34     implements HTMLEditor
35 {
36     public FormatEditor(Object JavaDoc substance, FieldItem field) {
37         super(substance,field);
38         initFormat(field);
39     }
40
41     /** Stores the default format of the float */
42     protected Format format;
43
44     protected abstract void initFormat(FieldItem field);
45
46     public void setField(FieldItem field) {
47         super.setField(field);
48         initFormat(field);
49     }
50
51     // HTMLEditor interface
52

53     public void genHTML(PrintWriter JavaDoc out) {
54         out.print("<input type=\"text\" name=\""+label+"\""+sizeSpec()+
55                   " value=\""+(value!=null?(format.format(value)):"")+"\"");
56         printAttributes(out);
57         out.println(">");
58     }
59
60     protected boolean doReadValue(Object JavaDoc parameter) {
61         if (parameter==null)
62             return false;
63         Object JavaDoc parsedValue = parse((String JavaDoc)parameter);
64         if (parsedValue==null) {
65             return false;
66         } else {
67             setValue(parsedValue);
68             return true;
69         }
70     }
71
72     protected Object JavaDoc parse(String JavaDoc s) {
73         ParsePosition JavaDoc pos = new ParsePosition JavaDoc(0);
74         return format.parse(s,pos);
75     }
76 }
77
78
Popular Tags