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.03.2004 project: WiSer-Framework
039: *
040: * <p>
041: * IUnTabbedPane is the common interface to the tabPane widget. A tabPane
042: * consits of multiple forms. To activate a form the user has to click the
043: * corresponding tab
044: * </p>
045: */
046: public interface IUnTabbedPane extends IUnInputComponent, IUnComponent {
047: /**
048: * @author Dirk
049: *
050: * date: 29.05.2007 project: WiSer-Framework
051: *
052: * <p>
053: * Factory is a convenience class to create components of the surrounding
054: * interface's type without taking care for the WidgetServer MultiChannel API.
055: * It's use is similar to a constructor.
056: * </p>
057: */
058: public static class Factory {
059: /**
060: * Creates a standard version of this component as described in the factory.
061: * If you create masses of components for e.g. within a renderer use
062: * <i> create(IUnApplication xAppl)</i> for performance
063: * reasons.
064: *
065: * @param xTabsBottom
066: * true indicates that the tabs are rendered at the bottom of the
067: * tab pane
068: * @return new component
069: */
070: public static IUnTabbedPane create(boolean xTabsBottom) {
071: IUnApplication l_appl = (IUnApplication) KeRegisteredObject
072: .pcmf_getObjByName(IUnApplication.MY_APPL);
073: return (l_appl.pcmf_getComponentFactory()
074: .pcmf_createTabPane(l_appl.pcmf_getApplType(), "",
075: xTabsBottom, l_appl));
076: }
077:
078: /**
079: * Creates a special version of this component as described in the factory
080: * configuration under the descriptor xFactoryDesc. If you create masses of
081: * components for e.g. within a renderer use <i>
082: * create(IUnApplication xAppl, String xFactoryDesc)</i> for performance
083: * reasons.
084: *
085: * @param xTabsBottom
086: * true indicates that the tabs are rendered at the bottom of the
087: * tab pane
088: * @param xFactoryDesc
089: * descriptor
090: * @return new component
091: */
092: public static IUnTabbedPane create(boolean xTabsBottom,
093: String xFactoryDesc) {
094: IUnApplication l_appl = (IUnApplication) KeRegisteredObject
095: .pcmf_getObjByName(IUnApplication.MY_APPL);
096: return (l_appl.pcmf_getComponentFactory()
097: .pcmf_createTabPanePlugin(
098: l_appl.pcmf_getApplType(), "", xTabsBottom,
099: l_appl, xFactoryDesc));
100: }
101:
102: /**
103: * Creates a standard version of this component as described in the factory
104: * within the given application-context. If you create masses of components
105: * for e.g. within a renderer use this method for performance reasons.
106: *
107: * @param xTabsBottom
108: * true indicates that the tabs are rendered at the bottom of the
109: * tab pane
110: * @param xAppl
111: * application in which context the component is created
112: * @return new component
113: */
114: public static IUnTabbedPane create(boolean xTabsBottom,
115: IUnApplication xAppl) {
116: return (xAppl.pcmf_getComponentFactory()
117: .pcmf_createTabPane(xAppl.pcmf_getApplType(), "",
118: xTabsBottom, xAppl));
119: }
120:
121: /**
122: * Creates a special version of this component as described in the factory
123: * configuration under the descriptor xFactoryDesc. If you create masses of
124: * components for e.g. within a renderer use this function for performance
125: * reasons.
126: *
127: * @param xTabsBottom
128: * true indicates that the tabs are rendered at the bottom of the
129: * tab pane
130: * @param xFactoryDesc
131: * descriptor
132: * @param xAppl
133: * application in which context the component is created
134: * @return new component
135: */
136: public static IUnTabbedPane create(boolean xTabsBottom,
137: IUnApplication xAppl, String xFactoryDesc) {
138: return (xAppl.pcmf_getComponentFactory()
139: .pcmf_createTabPanePlugin(xAppl.pcmf_getApplType(),
140: "", xTabsBottom, xAppl, xFactoryDesc));
141: }
142: }
143:
144: /**
145: * <p>
146: * Adds a new form to the tabPane. The name is shown on the tab. If the form
147: * has an associated icon this will be shown on the tab either.
148: * </p>
149: * <p>
150: *
151: * </p>
152: * <p>
153: *
154: * @param xName
155: * name of the tab (form)
156: * @param xForm
157: * reference to a form
158: * </p>
159: */
160: public void pcmf_addTab(String xName, IUnForm xForm);
161:
162: /**
163: * <p>
164: * Removes a form from the tabPane
165: * </p>
166: * <p>
167: *
168: * </p>
169: * <p>
170: *
171: * @param xName
172: * name of the form to remove
173: * </p>
174: */
175: public void pcmf_removeTab(String xName);
176:
177: /**
178: * <p>
179: * Commits changes of the tabPane
180: * </p>
181: * <p>
182: *
183: * </p>
184: * <p>
185: * </p>
186: */
187: public void pcmf_commitTabs();
188:
189: /**
190: * <p>
191: * Gets whether the tabs are downside or upside
192: * </p>
193: * <p>
194: *
195: * @return true indicates downside
196: * </p>
197: * <p>
198: * </p>
199: */
200: public boolean pcmf_isTabDown();
201:
202: /**
203: * <p>
204: * Sets a component to a tab. The component is rendered into the tab instead
205: * of the label and icon. It is able to receive mouseMove-, mouseClicked-,
206: * mousePressed- and mouseReleased-events in every channel.
207: * </p>
208: * <p>
209: *
210: * @param xIdx
211: * index of the tab
212: * @param xCont
213: * Component to insert into the tab
214: * </p>
215: */
216: public void pcmf_setTabComponent(int xIdx, IUnComponent xComp);
217:
218: /**
219: * <p>
220: * Removes a component from the tab
221: * </p>
222: * <p>
223: *
224: * @param xIdx
225: * index of the tab
226: * </p>
227: */
228: public void pcmf_removeTabComponent(int xIdx);
229:
230: /**
231: * <p>
232: * Reorganizes the tab components after a tab has been removed
233: * </p>
234: */
235: public void pcmf_reorgTabComponents();
236:
237: /**
238: * <p>
239: * Activates the first tab
240: * </p>
241: */
242: public void pcmf_activateFirst();
243:
244: /**
245: * <p>
246: * Activates the next tab
247: * </p>
248: */
249: public void pcmf_activateNext();
250:
251: /**
252: * <p>
253: * Activates the previous tab
254: * </p>
255: */
256: public void pcmf_activatePrev();
257:
258: /**
259: * <p>
260: * Activates the last tab
261: * </p>
262: */
263: public void pcmf_activateLast();
264:
265: /**
266: * <p>
267: * Returns the index of the active tab
268: * </p>
269: * <p>
270: *
271: * @return index
272: * </p>
273: */
274: public int pcmf_getActivatedIndex();
275:
276: /**
277: * <p>
278: * Activates the tab at the given index
279: * </p>
280: * <p>
281: *
282: * @param xIdx
283: * index of the tab
284: * </p>
285: */
286: public void pcmf_setActivatedIndex(int xIdx);
287: };
|