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    }