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