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.Tag;
024 import org.apache.myfaces.tobago.apt.annotation.TagAttribute;
025 import org.apache.myfaces.tobago.apt.annotation.UIComponentTag;
026 import org.apache.myfaces.tobago.apt.annotation.UIComponentTagAttribute;
027 import org.apache.myfaces.tobago.component.UIToolBar;
028
029 /*
030 * Date: 11.02.2006
031 * Time: 14:07:05
032 */
033
034 /**
035 * <p/>
036 * Renders a toolbar.<p />
037 * Allowed subcomponents are subtypes of UICommand i.e.
038 * <code>'button'</code> and <code>'link'</code> tags.
039 * These are rendered by ToolbarRenderer, so the result has
040 * no difference.<p />
041 * To add an dropdown menu to a button add a facet <code>'menupopup'</code>
042 * containing a
043 * <a href="menu.html"><code><tc:menu></code></a>
044 * tag to the button. Label's and Image's on those menu tag's are ignored
045 * and replaced by the renderer.
046 * <pre>
047 * <tc:button onclick="alert('test 0')"
048 * label="Alert 0" >
049 * <f:facet name="menupopup">
050 * <tc:menu>
051 * <tc:menuItem onclick="alert('test 1')" label="Alert 1"/>
052 * <tc:menuItem onclick="alert('test 2')" label="Alert 2"/>
053 * <tc:menuItem onclick="alert('test 3')" label="Alert 3"/>
054 * </tc:menu>
055 * </f:facet>
056 * </tc:button>
057 * </pre>
058 */
059
060 @Tag(name = "toolBar")
061 @BodyContentDescription(anyTagOf = "(<tc:toolBarCommand>|<tc:toolBarSelectBoolean>|<tc:toolBarSelectOne>)* ")
062 @UIComponentTag(
063 uiComponent = "org.apache.myfaces.tobago.component.UIToolBar",
064 rendererType = "ToolBar")
065 public interface ToolBarTagDeclaration extends PanelTagDeclaration {
066 /**
067 * Position of the button label, possible values are: right, bottom, off.
068 * If toolbar is facet of box: bottom is changed to right!
069 */
070 @TagAttribute
071 @UIComponentTagAttribute(defaultValue = UIToolBar.LABEL_BOTTOM,
072 allowedValues = {UIToolBar.LABEL_BOTTOM, UIToolBar.LABEL_RIGHT, UIToolBar.LABEL_OFF})
073 void setLabelPosition(String labelPosition);
074
075 /**
076 * Size of button images, possible values are: small, big, off.
077 */
078 @TagAttribute
079 @UIComponentTagAttribute(defaultValue = UIToolBar.ICON_SMALL,
080 allowedValues = {UIToolBar.ICON_SMALL, UIToolBar.ICON_BIG, UIToolBar.ICON_OFF})
081 void setIconSize(String iconSize);
082
083 /**
084 * Orientation of toolbar
085 */
086 @TagAttribute
087 @UIComponentTagAttribute(defaultValue = UIToolBar.ORIENTATION_LEFT,
088 allowedValues = {UIToolBar.ORIENTATION_LEFT, UIToolBar.ORIENTATION_RIGHT})
089 void setOrientation(String orientation);
090 }