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.Tag;
021    import org.apache.myfaces.tobago.apt.annotation.TagAttribute;
022    import org.apache.myfaces.tobago.apt.annotation.UIComponentTag;
023    import org.apache.myfaces.tobago.apt.annotation.UIComponentTagAttribute;
024    import org.apache.myfaces.tobago.taglib.decl.HasIdBindingAndRendered;
025    import org.apache.myfaces.tobago.taglib.decl.HasLabelAndAccessKey;
026    import org.apache.myfaces.tobago.taglib.decl.HasOnchange;
027    import org.apache.myfaces.tobago.taglib.decl.HasTabIndex;
028    import org.apache.myfaces.tobago.taglib.decl.HasTip;
029    import org.apache.myfaces.tobago.taglib.decl.HasValidator;
030    import org.apache.myfaces.tobago.taglib.decl.HasValueChangeListener;
031    import org.apache.myfaces.tobago.taglib.decl.IsDisabled;
032    import org.apache.myfaces.tobago.taglib.decl.IsReadonly;
033    import org.apache.myfaces.tobago.taglib.decl.IsRequired;
034    
035    /**
036     * Renders a file input field.
037     * You need to define an org.apache.myfaces.tobago.webapp.TobagoMultipartFormdataFilter in your web.xml or
038     * add the tobago-fileupload.jar to your project.
039     * The tobago-fileupload.jar contains a FacesContextFactory that wraps the
040     * multipart-formdata request inside the facesContext.
041     * <p>
042     * For content constraints please use <a href="validateFileItem.html">tc:validateFileItem</a>.
043     */
044    @Tag(name = "file")
045    @UIComponentTag(
046        uiComponent = "org.apache.myfaces.tobago.component.UIFileInput",
047        rendererType = "File")
048    public interface FileTagDeclaration
049        extends BeanTagDeclaration, HasValidator, HasOnchange, HasValueChangeListener, HasIdBindingAndRendered, IsDisabled,
050        HasLabelAndAccessKey, HasTip, IsReadonly, IsRequired, HasTabIndex {
051    
052      /**
053       * Value binding expression pointing to a
054       * <code>org.apache.commons.fileupload.FileItem</code> property to store the
055       * uploaded file.
056       */
057      @TagAttribute()
058      @UIComponentTagAttribute(type = {"org.apache.commons.fileupload.FileItem"})
059      void setValue(String value);
060    }