KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > FormControlDisplayCharacteristics


1 import au.id.jericho.lib.html.*;
2 import java.util.*;
3 import java.io.*;
4 import java.net.*;
5
6 public class FormControlDisplayCharacteristics {
7     public static void main(String JavaDoc[] args) throws Exception JavaDoc {
8         String JavaDoc sourceUrlString="data/form.html";
9         if (args.length==0)
10           System.err.println("Using default argument of \""+sourceUrlString+'"');
11         else
12             sourceUrlString=args[0];
13         if (sourceUrlString.indexOf(':')==-1) sourceUrlString="file:"+sourceUrlString;
14         Source source=new Source(new URL(sourceUrlString));
15         source.setLogWriter(new OutputStreamWriter(System.err)); // send log messages to stderr
16
FormFields formFields=source.findFormFields();
17         // disable some controls:
18
formFields.get("Password").getFormControl().setDisabled(true);
19         formFields.setValue("MailingList","C");
20         formFields.get("MailingList").getFormControl("C").setDisabled(true);
21         formFields.get("MailingList").getFormControl("D").setDisabled(true);
22         // remove some controls:
23
formFields.get("button1").getFormControl().setOutputStyle(FormControlOutputStyle.REMOVE);
24         FormControl rhubarbFormControl=formFields.get("FavouriteFair").getFormControl("rhubarb");
25         rhubarbFormControl.setOutputStyle(FormControlOutputStyle.REMOVE);
26         // set some controls to display value:
27
formFields.setValue("Address","The Lodge\nDeakin ACT 2600\nAustralia");
28         formFields.get("Address").getFormControl().setOutputStyle(FormControlOutputStyle.DISPLAY_VALUE);
29         formFields.setValue("FavouriteSports","BB");
30         formFields.addValue("FavouriteSports","AFL");
31         formFields.get("FavouriteSports").getFormControl().setOutputStyle(FormControlOutputStyle.DISPLAY_VALUE);
32         OutputDocument outputDocument=new OutputDocument(source);
33         outputDocument.replace(formFields); // adds all segments necessary to effect changes
34
// also need to remove label for the removed "rhubarb" radio button:
35
// label segment begins at the end of the rhubarb control, and ends at the start of the next control:
36
Segment rhubarbLabelSegment=new Segment(source,rhubarbFormControl.getEnd(),source.findNextTag(rhubarbFormControl.getEnd()).getBegin());
37         outputDocument.remove(rhubarbLabelSegment);
38         // also need to remove instructions for favourite sports control which has been set to output display value:
39
Segment instructionsSegment=source.findNextStartTag(0,"class","instructions",false).getElement().getContent();
40         outputDocument.replace(instructionsSegment,"A comma separated list of favourite sports is shown above");
41
42         // modify stylesheet link since the output file is in a different directory to the input file
43
int cssPathPos=source.toString().indexOf("main.css");
44         outputDocument.insert(cssPathPos,"data/");
45
46         Writer out=new FileWriter("NewForm.html");
47         outputDocument.writeTo(out);
48         out.close();
49         System.err.println("\nThe form containing new default values has been output to NewForm.html");
50         System.err.println("This will open automatically in a web browser after you press a key.");
51   }
52 }
53
Popular Tags