001 /*
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements. See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership. The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License. You may obtain a copy of the License at
009 *
010 * http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing,
013 * software distributed under the License is distributed on an
014 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015 * KIND, either express or implied. See the License for the
016 * specific language governing permissions and limitations
017 * under the License.
018 */
019
020 package org.apache.myfaces.tobago.taglib.component;
021
022 import org.apache.myfaces.tobago.apt.annotation.BodyContentDescription;
023 import org.apache.myfaces.tobago.apt.annotation.DynamicExpression;
024 import org.apache.myfaces.tobago.apt.annotation.Tag;
025 import org.apache.myfaces.tobago.apt.annotation.TagAttribute;
026 import org.apache.myfaces.tobago.apt.annotation.UIComponentTag;
027 import org.apache.myfaces.tobago.apt.annotation.UIComponentTagAttribute;
028 import org.apache.myfaces.tobago.component.UITabGroup;
029 import org.apache.myfaces.tobago.taglib.decl.HasDeprecatedDimension;
030 import org.apache.myfaces.tobago.taglib.decl.HasIdBindingAndRendered;
031 import org.apache.myfaces.tobago.taglib.decl.IsImmediateCommand;
032
033 /**
034 * Renders a tab panel.
035 */
036 @Tag(name = "tabGroup")
037 @BodyContentDescription(anyTagOf = "(<tc:tab>* ")
038 @UIComponentTag(
039 uiComponent = "org.apache.myfaces.tobago.component.UITabGroup",
040 rendererType = "TabGroup")
041
042 public interface TabGroupTagDeclaration extends TobagoTagDeclaration, HasIdBindingAndRendered, HasDeprecatedDimension,
043 IsImmediateCommand {
044 /**
045 * Deprecated! Use 'switchType' instead.
046 * Flag indicating that tab switching is done by server request.
047 *
048 * @deprecated
049 */
050 @TagAttribute
051 @UIComponentTagAttribute(type = "java.lang.Boolean", defaultValue = "false")
052 @Deprecated
053 void setServerside(String serverside);
054
055 /**
056 * Flag indicating that the tab navigation bar is rendered.
057 */
058 @TagAttribute
059 @UIComponentTagAttribute(type = "java.lang.Boolean", defaultValue = "true")
060 void setShowNavigationBar(String showNavigationBar);
061
062 /**
063 * Indicating how tab switching should be done.
064 * <p/>
065 * Possible values are:
066 * <dl>
067 * <dt>client</dt>
068 * <dd>Tab switching is done on client, no server Request.</dd>
069 * <dt>reloadPage</dt>
070 * <dd>Tab switching is done by server request. Full page is reloaded.</dd>
071 * <dt>reloadTab</dt>
072 * <dd>Tab switching is done by server request. Only the Tab is reloaded.</dd>
073 * </dl>
074 * @param switchType Sets the switching type.
075 */
076 @TagAttribute
077 @UIComponentTagAttribute(type = "java.lang.String",
078 allowedValues =
079 {UITabGroup.SWITCH_TYPE_CLIENT, UITabGroup.SWITCH_TYPE_RELOAD_PAGE, UITabGroup.SWITCH_TYPE_RELOAD_TAB},
080 defaultValue = UITabGroup.SWITCH_TYPE_CLIENT)
081 void setSwitchType(String switchType);
082
083 /**
084 * <strong>ValueBindingExpression</strong> pointing to a Integer to save the
085 * component's selected Tab.
086 */
087 @TagAttribute
088 @UIComponentTagAttribute(type = "java.lang.Integer")
089 void setSelectedIndex(String selectedIndex);
090
091 /**
092 * <strong>ValueBindingExpression</strong> pointing to a Integer to save the
093 * component's selected Tab.
094 * @deprecated Please use "selectedIndex" instead.
095 */
096 @TagAttribute
097 @UIComponentTagAttribute(type = "java.lang.Integer")
098 @Deprecated()
099 void setState(String state);
100
101 @TagAttribute
102 @UIComponentTagAttribute(
103 type = "javax.faces.el.MethodBinding",
104 expression = DynamicExpression.METHOD_BINDING)
105 void setTabChangeListener(String listener);
106 }