View Javadoc

1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  
20  package org.apache.myfaces.tobago.internal.taglib.component;
21  
22  import org.apache.myfaces.tobago.apt.annotation.BodyContent;
23  import org.apache.myfaces.tobago.apt.annotation.Tag;
24  import org.apache.myfaces.tobago.apt.annotation.TagAttribute;
25  import org.apache.myfaces.tobago.apt.annotation.UIComponentTag;
26  import org.apache.myfaces.tobago.apt.annotation.UIComponentTagAttribute;
27  import org.apache.myfaces.tobago.component.RendererTypes;
28  import org.apache.myfaces.tobago.internal.component.AbstractUIFlowLayout;
29  import org.apache.myfaces.tobago.internal.taglib.declaration.HasBinding;
30  import org.apache.myfaces.tobago.internal.taglib.declaration.HasCurrentMarkup;
31  import org.apache.myfaces.tobago.internal.taglib.declaration.HasId;
32  import org.apache.myfaces.tobago.internal.taglib.declaration.HasMargin;
33  import org.apache.myfaces.tobago.internal.taglib.declaration.HasMargins;
34  import org.apache.myfaces.tobago.internal.taglib.declaration.HasMarkup;
35  import org.apache.myfaces.tobago.layout.TextAlign;
36  
37  /**
38   * XXX Warning: Still in progress! Please do not use it until other announcement.
39   * Renders a FlowLayout that positions the content components in there natural order.
40   */
41  @Tag(name = "flowLayout", bodyContent = BodyContent.EMPTY)
42  @UIComponentTag(
43      uiComponent = "org.apache.myfaces.tobago.component.UIFlowLayout",
44      uiComponentBaseClass = "org.apache.myfaces.tobago.internal.component.AbstractUIFlowLayout",
45      uiComponentFacesClass = "javax.faces.component.UIComponentBase",
46      componentFamily = AbstractUIFlowLayout.COMPONENT_FAMILY,
47      rendererType = RendererTypes.FLOW_LAYOUT,
48      allowedChildComponenents = "NONE", isLayout = true)
49  public interface FlowLayoutTagDeclaration
50      extends HasId,
51      /*HasSpacing, TODO*/
52      HasMargin, HasMargins, /*todo: do we need the margin here? Or should be use the margin from the container? */ 
53      HasBinding, HasMarkup, HasCurrentMarkup {
54  
55    /**
56     * The alignment of the elements inside of the container, possible values are:
57     * {@value TextAlign#STRING_LEFT},
58     * {@value TextAlign#STRING_RIGHT},
59     * {@value TextAlign#STRING_CENTER} und
60     * {@value TextAlign#STRING_JUSTIFY}.
61     */
62    @TagAttribute
63    @UIComponentTagAttribute(
64        type = {"org.apache.myfaces.tobago.layout.TextAlign"},
65        defaultValue = "TextAlign.LEFT",
66        allowedValues = {
67            TextAlign.STRING_LEFT, TextAlign.STRING_RIGHT, TextAlign.STRING_CENTER, TextAlign.STRING_JUSTIFY})
68    void setTextAlign(String textAlign);
69  }