blob: 298bd081d833508c4be3a747724ec5319a5c99d8 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.myfaces.tobago.internal.taglib.component;
import org.apache.myfaces.tobago.apt.annotation.Tag;
import org.apache.myfaces.tobago.apt.annotation.TagAttribute;
import org.apache.myfaces.tobago.apt.annotation.UIComponentTag;
import org.apache.myfaces.tobago.apt.annotation.UIComponentTagAttribute;
import org.apache.myfaces.tobago.component.RendererTypes;
import org.apache.myfaces.tobago.internal.taglib.declaration.HasIdBindingAndRendered;
import org.apache.myfaces.tobago.layout.Display;
import org.apache.myfaces.tobago.layout.Overflow;
import org.apache.myfaces.tobago.layout.Position;
import org.apache.myfaces.tobago.layout.TextAlign;
/**
* <p>
* Add a style tag with the given file name to the header (using file attribute) or add
* some CSS styles to the parent component.
* </p>
*/
@Tag(name = "style")
@UIComponentTag(
uiComponent = "org.apache.myfaces.tobago.component.UIStyle",
componentFamily = "org.apache.myfaces.tobago.Style",
rendererType = RendererTypes.STYLE,
allowedChildComponenents = "NONE")
public interface StyleTagDeclaration extends HasIdBindingAndRendered {
/**
* Name of the stylesheet file to add to page. The name must be full qualified, or relative.
* If using a complete path from root, you'll need to add the contextPath from the web application.
* This can be done with the EL #{request.contextPath}.
*/
@TagAttribute()
@UIComponentTagAttribute()
void setFile(String file);
/**
* @param customClass A custom CSS class for the parent component.
* Note: The rendered attribute has no effect to the use of this customClass.
* To switch the customClass, you may use an EL expression
* like e.g. customClass="#{isError ? 'red' : null}".
* @since 3.0.0
*/
@TagAttribute()
@UIComponentTagAttribute(type = "org.apache.myfaces.tobago.renderkit.css.CustomClass")
void setCustomClass(String customClass);
/**
* @param selector A selector to define the element for this style rules. Defaults to the ID of the parent component.
* @since 4.0.0
*/
@TagAttribute()
@UIComponentTagAttribute()
void setSelector(String selector);
/**
* @param width The width for the parent component.
* @since 3.0.0
*/
@TagAttribute()
@UIComponentTagAttribute(type = "org.apache.myfaces.tobago.layout.Measure")
void setWidth(String width);
/**
* @param height The height for the parent component.
* @since 3.0.0
*/
@TagAttribute()
@UIComponentTagAttribute(type = "org.apache.myfaces.tobago.layout.Measure")
void setHeight(String height);
/**
* @param minWidth The minimum width for the parent component.
* @since 3.0.0
*/
@TagAttribute()
@UIComponentTagAttribute(type = "org.apache.myfaces.tobago.layout.Measure")
void setMinWidth(String minWidth);
/**
* @param minHeight The minimum height for the parent component.
* @since 3.0.0
*/
@TagAttribute()
@UIComponentTagAttribute(type = "org.apache.myfaces.tobago.layout.Measure")
void setMinHeight(String minHeight);
/**
* @param maxWidth The maximum width for the parent component.
* @since 3.0.0
*/
@TagAttribute()
@UIComponentTagAttribute(type = "org.apache.myfaces.tobago.layout.Measure")
void setMaxWidth(String maxWidth);
/**
* @param maxHeight The maximum height for the parent component.
* @since 3.0.0
*/
@TagAttribute()
@UIComponentTagAttribute(type = "org.apache.myfaces.tobago.layout.Measure")
void setMaxHeight(String maxHeight);
/**
* @param left The left position value for the parent component.
* @since 3.0.0
*/
@TagAttribute()
@UIComponentTagAttribute(type = "org.apache.myfaces.tobago.layout.Measure")
void setLeft(String left);
/**
* @param right The left position value for the parent component.
* @since 3.0.0
*/
@TagAttribute()
@UIComponentTagAttribute(type = "org.apache.myfaces.tobago.layout.Measure")
void setRight(String right);
/**
* @param top The top position value for the parent component.
* @since 3.0.0
*/
@TagAttribute()
@UIComponentTagAttribute(type = "org.apache.myfaces.tobago.layout.Measure")
void setTop(String top);
/**
* @param bottom The top position value for the parent component.
* @since 3.0.0
*/
@TagAttribute()
@UIComponentTagAttribute(type = "org.apache.myfaces.tobago.layout.Measure")
void setBottom(String bottom);
/**
* @param paddingLeft The left padding.
* @since 3.0.0
*/
@TagAttribute()
@UIComponentTagAttribute(type = "org.apache.myfaces.tobago.layout.Measure")
void setPaddingLeft(String paddingLeft);
/**
* @param paddingRight The right padding.
* @since 3.0.0
*/
@TagAttribute()
@UIComponentTagAttribute(type = "org.apache.myfaces.tobago.layout.Measure")
void setPaddingRight(String paddingRight);
/**
* @param paddingTop The top padding.
* @since 3.0.0
*/
@TagAttribute()
@UIComponentTagAttribute(type = "org.apache.myfaces.tobago.layout.Measure")
void setPaddingTop(String paddingTop);
/**
* @param paddingBottom The bottom padding.
* @since 3.0.0
*/
@TagAttribute()
@UIComponentTagAttribute(type = "org.apache.myfaces.tobago.layout.Measure")
void setPaddingBottom(String paddingBottom);
/**
* @param marginLeft The margin at the left of the parent component.
* @since 3.0.0
*/
@TagAttribute()
@UIComponentTagAttribute(type = "org.apache.myfaces.tobago.layout.Measure")
void setMarginLeft(String marginLeft);
/**
* @param marginRight The margin at the right of the parent component.
* @since 3.0.0
*/
@TagAttribute()
@UIComponentTagAttribute(type = "org.apache.myfaces.tobago.layout.Measure")
void setMarginRight(String marginRight);
/**
* @param marginTop The margin at the top of the parent component.
* @since 3.0.0
*/
@TagAttribute()
@UIComponentTagAttribute(type = "org.apache.myfaces.tobago.layout.Measure")
void setMarginTop(String marginTop);
/**
* @param marginBottom The margin at the bottom of the parent component.
* @since 3.0.0
*/
@TagAttribute()
@UIComponentTagAttribute(type = "org.apache.myfaces.tobago.layout.Measure")
void setMarginBottom(String marginBottom);
/**
* @param overflowX Does the component need a horizontal scrollbar.
* @since 3.0.0
*/
@TagAttribute()
@UIComponentTagAttribute(
type = "org.apache.myfaces.tobago.layout.Overflow",
allowedValues = {Overflow.AUTO, Overflow.SCROLL, Overflow.HIDDEN})
void setOverflowX(String overflowX);
/**
* @param overflowY Does the component need a vertical scrollbar.
* @since 3.0.0
*/
@TagAttribute()
@UIComponentTagAttribute(
type = "org.apache.myfaces.tobago.layout.Overflow",
allowedValues = {Overflow.AUTO, Overflow.SCROLL, Overflow.HIDDEN})
void setOverflowY(String overflowY);
/**
* @param display Indicates the renderer to render the element as
* {@link Display#block}, {@link Display#inline} or {@link Display#none}.
* @since 3.0.0
*/
@TagAttribute()
@UIComponentTagAttribute(
type = "org.apache.myfaces.tobago.layout.Display",
allowedValues = {Display.BLOCK, Display.INLINE, Display.GRID, Display.NONE})
void setDisplay(String display);
/**
* @param position Values for the position used with CSS.
* @since 3.0.0
*/
@TagAttribute()
@UIComponentTagAttribute(
type = "org.apache.myfaces.tobago.layout.Position",
allowedValues = {Position.ABSOLUTE, Position.RELATIVE, Position.FIXED})
void setPosition(String position);
/**
* The alignment of the elements inside of the container, possible values are:
* {@link TextAlign#left},
* {@link TextAlign#right},
* {@link TextAlign#center} and
* {@link TextAlign#justify}.
*
* @since 3.0.0
*/
@TagAttribute
@UIComponentTagAttribute(
type = {"org.apache.myfaces.tobago.layout.TextAlign"},
allowedValues = {
TextAlign.LEFT, TextAlign.RIGHT, TextAlign.CENTER, TextAlign.JUSTIFY
})
void setTextAlign(String textAlign);
/**
* The background image of the element.
*
* @since 4.0.0
*/
@TagAttribute
@UIComponentTagAttribute
void setBackgroundImage(String backgroundImage);
/**
* Flex grow value of the element.
*
* @since 4.0.0
*/
@TagAttribute
@UIComponentTagAttribute(type = "java.lang.Number")
void setFlexGrow(String flexGrow);
/**
* Flex shrink value of the element.
*
* @since 4.0.0
*/
@TagAttribute
@UIComponentTagAttribute(type = "java.lang.Number")
void setFlexShrink(String flexShrink);
/**
* Flex basis value of the element.
*
* @since 4.0.0
*/
@TagAttribute
@UIComponentTagAttribute(type = "org.apache.myfaces.tobago.layout.Measure")
void setFlexBasis(String flexBasis);
/**
* Grid template columns value of the element.
*
* @since 4.0.0
*/
@TagAttribute
@UIComponentTagAttribute//(type = "org.apache.myfaces.tobago.layout.TBD")
void setGridTemplateColumns(String gridTemplateColumns);
/**
* Grid template rows value of the element.
*
* @since 4.0.0
*/
@TagAttribute
@UIComponentTagAttribute//(type = "org.apache.myfaces.tobago.layout.TBD")
void setGridTemplateRows(String gridTemplateRows);
/**
* Grid column value of the element.
*
* @since 4.0.0
*/
@TagAttribute
@UIComponentTagAttribute(type = "org.apache.myfaces.tobago.layout.GridSpan")
void setGridColumn(String gridColumn);
/**
* Grid row value of the element.
*
* @since 4.0.0
*/
@TagAttribute
@UIComponentTagAttribute(type = "org.apache.myfaces.tobago.layout.GridSpan")
void setGridRow(String gridRow);
/**
* Note: The rendered attribute has no effect to the use of the customClass attribute.
*/
@Override
void setRendered(String rendered);
}