001: /*
002: *
003: *
004: * Copyright 1990-2007 Sun Microsystems, Inc. All Rights Reserved.
005: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
006: *
007: * This program is free software; you can redistribute it and/or
008: * modify it under the terms of the GNU General Public License version
009: * 2 only, as published by the Free Software Foundation.
010: *
011: * This program is distributed in the hope that it will be useful, but
012: * WITHOUT ANY WARRANTY; without even the implied warranty of
013: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
014: * General Public License version 2 for more details (a copy is
015: * included at /legal/license.txt).
016: *
017: * You should have received a copy of the GNU General Public License
018: * version 2 along with this work; if not, write to the Free Software
019: * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
020: * 02110-1301 USA
021: *
022: * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
023: * Clara, CA 95054 or visit www.sun.com if you need additional
024: * information or have any questions.
025: */
026:
027: package javax.microedition.lcdui;
028:
029: /**
030: * This is a abstract factory for creating Displayable
031: * and Item's look & feel peer.
032: */
033: abstract class LFFactory {
034:
035: /** singleton concrete factory object */
036: private static LFFactory factory;
037:
038: /**
039: * Returns a concrete factory object.
040: */
041: static LFFactory getFactory() {
042: if (factory == null) {
043: factory = new LFFactoryImpl();
044: }
045:
046: return factory;
047: }
048:
049: /**
050: * Returns an <code>Alert</code> look & feel implementation.
051: *
052: * @param a The <code>Alert</code> associated with this look&feel
053: *
054: * @return an <code>Alert</code> look & feel implementation
055: */
056: abstract AlertLF getAlertLF(Alert a);
057:
058: /**
059: * Returns a <code>Canvas</code> look & feel implementation.
060: *
061: * @param c The <code>Canvas</code> associated with this look&feel
062: *
063: * @return a <code>Canvas</code> look & feel implementation
064: */
065: abstract CanvasLF getCanvasLF(Canvas c);
066:
067: /**
068: * Returns a <code>Form</code> look & feel implementation.
069: *
070: * @param f The <code>Form</code> associated with this look&feel
071: *
072: * @return a <code>Form</code> look & feel implementation
073: */
074: abstract FormLF getFormLF(Form f);
075:
076: /**
077: * Returns a <code>List</code> look & feel implementation.
078: *
079: * @param list The <code>List</code> associated with this look&feel
080: *
081: * @return a <code>List</code> look & feel implementation
082: */
083: abstract FormLF getListLF(List list);
084:
085: /**
086: * Returns a <code>TextBox</code> look & feel implementation.
087: *
088: * @param tb The <code>TextBox</code> associated with this look&feel
089: *
090: * @return a <code>TextBox</code> look & feel implementation
091: */
092: abstract FormLF getTextBoxFormLF(TextBox tb);
093:
094: /**
095: * Returns a <code>ChoiceGroup</code> look & feel implementation.
096: *
097: * @param cg The <code>ChoiceGroup</code> associated with this
098: * look&feel
099: *
100: * @return a <code>ChoiceGroup</code> look & feel implementation
101: */
102: abstract ChoiceGroupLF getChoiceGroupLF(ChoiceGroup cg);
103:
104: /**
105: * Returns a <code>CustomItem</code> look & feel implementation.
106: *
107: * @param ci The <code>CustomItem</code> associated with this
108: * look&feel
109: *
110: * @return a <code>CustomItem</code> look & feel implementation
111: */
112: abstract CustomItemLF getCustomItemLF(CustomItem ci);
113:
114: /**
115: * Returns a <code>DateField</code> look & feel implementation.
116: *
117: * @param df The <code>DateField</code> associated with this look&feel
118: *
119: * @return a <code>DateField</code> look & feel implementation
120: */
121: abstract DateFieldLF getDateFieldLF(DateField df);
122:
123: /**
124: * Returns a <code>Gauge</code> look & feel implementation.
125: *
126: * @param g The <code>Gauge</code> associated with this look&feel
127: *
128: * @return a <code>Gauge</code> look & feel implementation
129: */
130: abstract GaugeLF getGaugeLF(Gauge g);
131:
132: /**
133: * Returns an <code>ImageItem</code> look & feel implementation.
134: *
135: * @param imgItem The <code>Alert</code> associated with this look&feel
136: *
137: * @return an <code>ImageItem</code> look & feel implementation
138: */
139: abstract ImageItemLF getImageItemLF(ImageItem imgItem);
140:
141: /**
142: * Returns a <code>StringItem</code> look & feel implementation.
143: *
144: * @param strItem The <code>StringItem</code> associated with this
145: * look&feel
146: *
147: * @return a <code>StringItem</code> look & feel implementation
148: */
149: abstract StringItemLF getStringItemLF(StringItem strItem);
150:
151: /**
152: * Returns a <code>Spacer</code> look & feel implementation.
153: *
154: * @param spacer The <code>Spacer</code> associated with this look&feel
155: *
156: * @return a <code>Spacer</code> look & feel implementation
157: */
158: abstract SpacerLF getSpacerLF(Spacer spacer);
159:
160: /**
161: * Returns a <code>TextField</code> look & feel implementation.
162: *
163: * @param tf The <code>TextField</code> associated with this look&feel
164: *
165: * @return a <code>TextField</code> look & feel implementation
166: */
167: abstract TextFieldLF getTextFieldLF(TextField tf);
168:
169: /**
170: * Returns a TextField look & feel implementation
171: * for use in a TextBox screen.
172: *
173: * @param tf - <placeholder>
174: * @return a TextField look & feel implementation
175: */
176: abstract TextFieldLF getTextBoxLF(TextField tf);
177:
178: /**
179: * Returns a <code>Ticker</code> look & feel implementation.
180: *
181: * @param ticker The <code>Ticker</code> associated with this look&feel
182: *
183: * @return a <code>Ticker</code> look & feel implementation.
184: */
185: abstract TickerLF getTickerLF(Ticker ticker);
186: }
|