001: /**
002: * Copyright 2006-2007 Webmedia Group Ltd.
003: *
004: * Licensed under the Apache License, Version 2.0 (the "License");
005: * you may not use this file except in compliance with the License.
006: * You may obtain a copy of the License at
007: *
008: * http://www.apache.org/licenses/LICENSE-2.0
009: *
010: * Unless required by applicable law or agreed to in writing, software
011: * distributed under the License is distributed on an "AS IS" BASIS,
012: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013: * See the License for the specific language governing permissions and
014: * limitations under the License.
015: **/package org.araneaframework.uilib.tab;
016:
017: import java.io.Serializable;
018: import java.util.Map;
019: import org.araneaframework.Widget;
020: import org.araneaframework.core.WidgetFactory;
021:
022: /**
023: * This context represents interface of tab management component.
024: * @author Taimo Peelo (taimo@araneaframework.org)
025: * @since 1.1
026: */
027: public interface TabContainerContext extends Serializable {
028: /**
029: * Adds the stateful tab with specified identifier.
030: * @param id tab identifier
031: * @param labelId key to resource text to be used as tab label
032: * @param contentWidget tab's content widget
033: */
034: void addTab(String id, String labelId, Widget contentWidget);
035:
036: /**
037: * Adds the stateful tab with specified identifier.
038: * @param id tab identifier
039: * @param labelWidget tab's label widget
040: * @param contentWidget tab's content widget
041: */
042: void addTab(String id, Widget labelWidget, Widget contentWidget);
043:
044: /**
045: * Adds the stateless (content widget is destroyed when tab is deselected) tab with specified identifier.
046: * @param id tab identifier
047: * @param labelId key to resource text to be used as tab label
048: * @param contentWidgetFactory {@link WidgetFactory} that produces tab's contents.
049: */
050: void addTab(String id, String labelId,
051: WidgetFactory contentWidgetFactory);
052:
053: /**
054: * Adds the stateless (content widget is destroyed when tab is deselected) tab with specified identifier.
055: * @param id tab identifier
056: * @param labelWidget tab's label widget
057: * @param contentWidgetFactory
058: */
059: void addTab(String id, Widget labelWidget,
060: WidgetFactory contentWidgetFactory);
061:
062: /**
063: * Removes tab with given id.
064: * @return whether the tab existed and was really removed
065: */
066: boolean removeTab(String id);
067:
068: /**
069: * Disables the tab with given <i>id</i>—the label be shown but tab cannot be
070: * selected before it is enabled again.
071: * @return whether tab with given <i>id</i> existed
072: */
073: boolean disableTab(String id);
074:
075: /**
076: * Enables the tab with <i>id</i> that previously was disabled.
077: * @return whether tab with given <i>id</i> existed
078: */
079: boolean enableTab(String id);
080:
081: /**
082: * Switches selected tab to one identified by <i>id</id>
083: * @return whether tab with given <i>id</i> existed
084: */
085: boolean selectTab(String id);
086:
087: /**
088: * Returns whether specified tab is currently active (selected).
089: * @return whether specified tab is currently active (selected).
090: */
091: boolean isTabSelected(String id);
092:
093: /**
094: * Returns the currently selected tab as a widget. Widget's type is implementation specific,
095: * as a rule it cannot be expected to be of the same type as added tab's content widget.
096: */
097: Widget getSelectedTab();
098:
099: /**
100: * Returns all the tabs present in this {@link TabContainerContext}. Keys in the map are tab
101: * identifiers, values are implementation dependent structures that hold tab information.
102: * Returned <code>Map</code> must be unmodifiable.
103: */
104: Map getTabs();
105: }
|