001: // @@
002: // @@
003: /*
004: * Wi.Ser Framework
005: *
006: * Version: 1.8.1, 20-September-2007
007: * Copyright (C) 2005 Dirk von der Weiden <dvdw@imail.de>
008: *
009: * This library is free software; you can redistribute it and/or
010: * modify it under the terms of the GNU Lesser General Public
011: * License as published by the Free Software Foundation; either
012: * version 2 of the License, or (at your option) any later version.
013: *
014: * This library is distributed in the hope that it will be useful,
015: * but WITHOUT ANY WARRANTY; without even the implied warranty of
016: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
017: * Lesser General Public License for more details.
018: *
019: * You should have received a copy of the GNU Lesser General Public
020: * License along with this library located in LGPL.txt in the
021: * license directory; if not, write to the
022: * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
023: * Boston, MA 02111-1307, USA.
024: *
025: * If this agreement does not cover your requirements, please contact us
026: * via email to get detailed information about the commercial license
027: * or our service offerings!
028: *
029: */
030: // @@
031: package de.ug2t.unifiedGui.interfaces;
032:
033: import de.ug2t.kernel.*;
034:
035: /**
036: * @author Dirk
037: *
038: * date: 15.09.2003 project: WiSer-Framework
039: *
040: * <p>
041: * IUnImage is the common interface to an image
042: * </p>
043: */
044: public interface IUnImage extends IUnComponent, IKeAttachable {
045: /**
046: * @author Dirk
047: *
048: * date: 29.05.2007 project: WiSer-Framework
049: *
050: * <p>
051: * Factory is a convenience class to create components of the surrounding
052: * interface's type without taking care for the WidgetServer MultiChannel API.
053: * It's use is similar to a constructor.
054: * </p>
055: */
056: public static class Factory {
057: /**
058: * Creates a standard version of this component as described in the factory.
059: * If you create masses of components for e.g. within a renderer use
060: * <i> create(IUnApplication xAppl)</i> for performance
061: * reasons.
062: *
063: * @param xImage
064: * the path of the image relative to the application's root
065: * directory
066: * @return new component
067: */
068: public static IUnImage create(String xImage) {
069: IUnApplication l_appl = (IUnApplication) KeRegisteredObject
070: .pcmf_getObjByName(IUnApplication.MY_APPL);
071: return (l_appl.pcmf_getComponentFactory().pcmf_createImage(
072: l_appl.pcmf_getApplType(), "", xImage, l_appl));
073: }
074:
075: /**
076: * Creates a special version of this component as described in the factory
077: * configuration under the descriptor xFactoryDesc. If you create masses of
078: * components for e.g. within a renderer use <i>
079: * create(IUnApplication xAppl, String xFactoryDesc)</i> for performance
080: * reasons.
081: *
082: * @param xImage
083: * the path of the image relative to the application's root
084: * directory
085: * @param xFactoryDesc
086: * descriptor
087: * @return new component
088: */
089: public static IUnImage create(String xImage, String xFactoryDesc) {
090: IUnApplication l_appl = (IUnApplication) KeRegisteredObject
091: .pcmf_getObjByName(IUnApplication.MY_APPL);
092: return (l_appl.pcmf_getComponentFactory()
093: .pcmf_createImagePlugin(l_appl.pcmf_getApplType(),
094: "", xImage, l_appl, xFactoryDesc));
095: }
096:
097: /**
098: * Creates a standard version of this component as described in the factory
099: * within the given application-context. If you create masses of components
100: * for e.g. within a renderer use this method for performance reasons.
101: *
102: * @param xImage
103: * the path of the image relative to the application's root
104: * directory
105: * @param xAppl
106: * application in which context the component is created
107: * @return new component
108: */
109: public static IUnImage create(String xImage,
110: IUnApplication xAppl) {
111: return (xAppl.pcmf_getComponentFactory().pcmf_createImage(
112: xAppl.pcmf_getApplType(), "", xImage, xAppl));
113: }
114:
115: /**
116: * Creates a special version of this component as described in the factory
117: * configuration under the descriptor xFactoryDesc. If you create masses of
118: * components for e.g. within a renderer use this function for performance
119: * reasons.
120: *
121: * @param xImage
122: * the path of the image relative to the application's root
123: * directory
124: * @param xFactoryDesc
125: * descriptor
126: * @param xAppl
127: * application in which context the component is created
128: * @return new component
129: */
130: public static IUnImage create(String xImage,
131: IUnApplication xAppl, String xFactoryDesc) {
132: return (xAppl.pcmf_getComponentFactory()
133: .pcmf_createImagePlugin(xAppl.pcmf_getApplType(),
134: "", xImage, xAppl, xFactoryDesc));
135: }
136: }
137:
138: /**
139: * <p>
140: * Internal use for garbage collection, do not call manually
141: * </p>
142: * <p>
143: *
144: * </p>
145: * <p>
146: * </p>
147: */
148: public void pcmf_attach();
149:
150: /**
151: * <p>
152: * Internal use for garbage collection, do not call manually
153: * </p>
154: * <p>
155: *
156: * </p>
157: * <p>
158: * </p>
159: */
160: public void pcmf_detach();
161:
162: /**
163: * <p>
164: * Attaches an image for preventing it from beeing deleted when not in use
165: * </p>
166: * <p>
167: *
168: * </p>
169: * <p>
170: * </p>
171: */
172: public void pcmf_attachImage();
173:
174: /**
175: * <p>
176: * Releases an image for beeing deleted when not in use
177: * </p>
178: * <p>
179: *
180: * </p>
181: * <p>
182: * </p>
183: */
184: public void pcmf_detachImage();
185:
186: /**
187: * Clones an image
188: *
189: * @return cloned image
190: */
191: public IUnImage pcmf_clone();
192: }
|