KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > mortbay > html > Applet


1 // ========================================================================
2
// $Id: Applet.java,v 1.7 2004/07/19 13:12:58 hlavac Exp $
3
// Copyright 1996-2004 Mort Bay Consulting Pty. Ltd.
4
// ------------------------------------------------------------------------
5
// Licensed under the Apache License, Version 2.0 (the "License");
6
// you may not use this file except in compliance with the License.
7
// You may obtain a copy of the License at
8
// http://www.apache.org/licenses/LICENSE-2.0
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
// ========================================================================
15

16 package org.mortbay.html;
17
18 import java.io.IOException JavaDoc;
19 import java.io.Writer JavaDoc;
20 import java.util.Enumeration JavaDoc;
21 import java.util.Hashtable JavaDoc;
22
23 /* ---------------------------------------------------------------- */
24 /** An Applet Block.
25  * <p> Lets you set the class name from the program, and optionally, the
26  * size and the codebase.
27  *
28  * <p> This class uses any attributes set in Element.
29  *
30  * <p><h4>Usage</h4>
31  * <pre>
32  * org.mortbay.Page page = new org.mortbay.html.Page();
33  * page.add(new org.mortbay.Applet("org.mortbay.Foo.App"));
34  * </pre>
35  *
36  * @see org.mortbay.html.Block
37  * @version $Id: Applet.java,v 1.7 2004/07/19 13:12:58 hlavac Exp $
38  * @author Matthew Watson
39 */

40 public class Applet extends Block
41 {
42     /* ------------------------------------------------------------ */
43     public String JavaDoc codeBase = null;
44
45     /* ------------------------------------------------------------ */
46     private boolean debug =false;
47     private Hashtable JavaDoc params = null;
48     private Composite paramHolder = new Composite();
49     
50     /* ------------------------------------------------------------ */
51     /** Create an Applet Element.
52      * @param className The name of the class to give for the applet
53      */

54     public Applet(String JavaDoc className)
55     {
56         super("applet");
57         add(paramHolder);
58         attribute("code",className);
59     }
60     
61     /* ------------------------------------------------------------ */
62     /** Set the dimensions of the Applet.
63      */

64     public Applet setDimensions(int height, int width)
65     {
66         width(width);
67         height(height);
68         return this;
69     }
70     
71     /* ------------------------------------------------------------ */
72     /** Set whether debugging is on in the Applet.
73      * <p> This controls whether the org.mortbay.util.Code debug messages
74      * will be printed to the java console.
75      * <p> Defaults to whether debug is turned on in the generating app */

76     public Applet setDebug(boolean debug){
77         this.debug = debug;
78         return this;
79     }
80     
81     /* ------------------------------------------------------------ */
82     /**
83      * Set an alternate display for non-java browsers.
84      * @param alt The alternate element to display
85      * @deprecated use add
86      */

87     public Applet setAlternate(Element alt)
88     {
89         add(alt);
90         return this;
91     }
92     
93     /* ------------------------------------------------------------ */
94     /** Set an alternate display for non-java browsers.
95      * @param alt The alternate element to display
96      * @deprecated use add
97      */

98     public Applet setAlternate(String JavaDoc alt)
99     {
100         add(alt);
101         return this;
102     }
103     
104     /* ------------------------------------------------------------ */
105     /** Set the codebase */
106     public Applet codeBase(String JavaDoc cb)
107     {
108         codeBase = cb;
109         return this;
110     }
111     
112     /* ------------------------------------------------------------ */
113     public Applet setParam(String JavaDoc name, String JavaDoc value)
114     {
115         if (params == null)
116             params = new Hashtable JavaDoc(10);
117         params.put(name, value);
118         return this;
119     }
120     
121     /* ------------------------------------------------------------ */
122     /** Write out the HTML */
123     public void write(Writer JavaDoc out)
124          throws IOException JavaDoc
125     {
126         if (codeBase != null)
127             attribute("codebase",codeBase);
128         
129         if (debug)
130             paramHolder.add("<param name=\"debug\" value=\"yes\">");
131         if (params != null)
132             for (Enumeration JavaDoc enm = params.keys(); enm.hasMoreElements();)
133             {
134                 String JavaDoc key = enm.nextElement().toString();
135                 paramHolder.add("<param name=\"" + key + "\" value=\"" +
136                                 params.get(key).toString() + "\">");
137             }
138         super.write(out);
139     }
140 };
141
142
143
144
145
146
Popular Tags