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    }