01: /* Richlet.java
02:
03: {{IS_NOTE
04: Purpose:
05:
06: Description:
07:
08: History:
09: Thu Oct 5 11:56:22 2006, Created by tomyeh
10: }}IS_NOTE
11:
12: Copyright (C) 2006 Potix Corporation. All Rights Reserved.
13:
14: {{IS_RIGHT
15: This program is distributed under GPL Version 2.0 in the hope that
16: it will be useful, but WITHOUT ANY WARRANTY.
17: }}IS_RIGHT
18: */
19: package org.zkoss.zk.ui;
20:
21: import org.zkoss.zk.ui.Page;
22: import org.zkoss.zk.ui.metainfo.LanguageDefinition;
23:
24: /**
25: * Defines methods that all richlets must implement.
26: * A richlet is a small Java program that
27: * creates all necessary components for a given page in response to user's request.
28: *
29: * <p>To activate it, it must be added to {@link org.zkoss.zk.ui.util.Configuration}
30: * by use of {@link org.zkoss.zk.ui.util.Configuration#addRichlet}, or specify
31: * <richlet> in zk.xml.
32: *
33: * @author tomyeh
34: */
35: public interface Richlet {
36: /** Called by the richlet container to indicate to a richlet that
37: * the richlet is being placed into service.
38: */
39: public void init(RichletConfig config);
40:
41: /** Called by the richlet container to indicate to a richlet that
42: * the richlet is being taken out of service.
43: */
44: public void destroy();
45:
46: /** Called by the richlet container to create components when
47: * the specified page is visited and created.
48: */
49: public void service(Page page);
50:
51: /** Returns the default language defintion that this richlet belongs to.
52: * Don't return null.
53: *
54: * <p>The default language definition is used to initialize
55: * a page when the page is created to be served by this richlet.
56: * Note: you can use components from different languages as long as
57: * they belong to the same device type ({@link LanguageDefinition#getDeviceType}.
58: *
59: * <p>The default language definition controls the URIs used to
60: * render a desktop and a page, and the initial zscript codes used
61: * to initialize the interpreter (of a page).
62: *
63: * <p>For example, you can return
64: * <pre><code>LanguageDefinition.lookup("xul/html");</code></pre>
65: */
66: public LanguageDefinition getLanguageDefinition();
67: }
|