All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.myfaces.shared_tomahawk.renderkit.html.CommonPropertyConstants Maven / Gradle / Ivy

Go to download

JSF components and utilities that can be used with any JSF implementation. This library is based on the JSF1.1 version of Tomahawk, but with minor source code and build changes to take advantage of JSF2.1 features. A JSF2.1 implementation is required to use this version of the Tomahawk library.

The newest version!
/*
 * 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.shared_tomahawk.renderkit.html;

import java.util.HashMap;
import java.util.Map;

import javax.faces.component.UIComponent;

/**
 * This is a list of the most common properties used by a JSF html
 * component, organized by interfaces.
 * 
 * This is a copy from javax.faces.component._CommonPropertyConstants
 * and should be synchronized with this copy on shared
 * 
 * @author Leonardo Uribe
 *
 */
public class CommonPropertyConstants
{
    public static final String COMMON_PROPERTIES_MARKED = "oam.COMMON_PROPERTIES_MARKED";
    
    //_StyleProperties
    public static final long STYLE_PROP       = 0x1L;
    public static final long STYLECLASS_PROP = 0x2L;
    
    //_UniversalProperties
    //_TitleProperty
    public static final long DIR_PROP         = 0x4L;
    public static final long LANG_PROP        = 0x8L;
    public static final long TITLE_PROP       = 0x10L;
    
    //_EscapeProperty
    public static final long ESCAPE_PROP      = 0x20L;

    //_DisabledClassEnabledClassProperties
    //_DisabledReadonlyProperties
    public static final long DISABLED_PROP    = 0x40L;
    public static final long ENABLED_PROP     = 0x80L;
    public static final long READONLY_PROP    = 0x100L;

    //_AccesskeyProperty
    public static final long ACCESSKEY_PROP  = 0x200L;
    
    //_AltProperty
    public static final long ALT_PROP         = 0x400L;
    
    //_ChangeSelectProperties
    public static final long ONCHANGE_PROP    = 0x800L;
    public static final long ONSELECT_PROP    = 0x1000L;
    
    //_EventProperties
    public static final long ONCLICK_PROP     = 0x2000L;
    public static final long ONDBLCLICK_PROP  = 0x4000L;
    public static final long ONMOUSEDOWN_PROP = 0x8000L;
    public static final long ONMOUSEUP_PROP   = 0x10000L;
    public static final long ONMOUSEOVER_PROP = 0x20000L;
    public static final long ONMOUSEMOVE_PROP = 0x40000L;
    public static final long ONMOUSEOUT_PROP  = 0x80000L;
    public static final long ONKEYPRESS_PROP  = 0x100000L;
    public static final long ONKEYDOWN_PROP   = 0x200000L;
    public static final long ONKEYUP_PROP     = 0x400000L;
    
    //_FocusBlurProperties
    public static final long ONFOCUS_PROP     = 0x800000L;
    public static final long ONBLUR_PROP      = 0x1000000L;

    //_LabelProperty
    public static final long LABEL_PROP       = 0x2000000L;
    
    //_LinkProperties
    public static final long CHARSET_PROP     = 0x4000000L;
    public static final long COORDS_PROP      = 0x8000000L;
    public static final long HREFLANG_PROP    = 0x10000000L;
    public static final long REL_PROP         = 0x20000000L;
    public static final long REV_PROP         = 0x40000000L;
    public static final long SHAPE_PROP       = 0x80000000L;
    public static final long TARGET_PROP      = 0x100000000L;
    public static final long TYPE_PROP        = 0x200000000L;

    //_TabindexProperty
    public static final long TABINDEX_PROP    = 0x400000000L;
    
    //Common to input fields
    public static final long ALIGN_PROP       = 0x800000000L;
    public static final long CHECKED_PROP     = 0x1000000000L;
    public static final long MAXLENGTH_PROP   = 0x2000000000L;
    public static final long SIZE_PROP        = 0x4000000000L;
    
    public static final Map COMMON_PROPERTIES_KEY_BY_NAME = new HashMap(64,1);
    
    static
    {
        COMMON_PROPERTIES_KEY_BY_NAME.put("style",      STYLE_PROP);
        
        COMMON_PROPERTIES_KEY_BY_NAME.put("styleClass", STYLECLASS_PROP);
        
        //_UniversalProperties
        //_TitleProperty
        COMMON_PROPERTIES_KEY_BY_NAME.put("dir",        DIR_PROP);
        COMMON_PROPERTIES_KEY_BY_NAME.put("lang",       LANG_PROP);
        COMMON_PROPERTIES_KEY_BY_NAME.put("title",      TITLE_PROP);
        
        //_EscapeProperty
        COMMON_PROPERTIES_KEY_BY_NAME.put("escape",     ESCAPE_PROP);

        //_DisabledClassEnabledClassProperties
        //_DisabledReadonlyProperties
        COMMON_PROPERTIES_KEY_BY_NAME.put("disabled",   DISABLED_PROP);
        COMMON_PROPERTIES_KEY_BY_NAME.put("enabled",    ENABLED_PROP);
        COMMON_PROPERTIES_KEY_BY_NAME.put("readonly",   READONLY_PROP);

        //_AccesskeyProperty
        COMMON_PROPERTIES_KEY_BY_NAME.put("accesskey",  ACCESSKEY_PROP);
        
        //_AltProperty
        COMMON_PROPERTIES_KEY_BY_NAME.put("alt",        ALT_PROP);
        
        //_ChangeSelectProperties
        COMMON_PROPERTIES_KEY_BY_NAME.put("onchange",   ONCHANGE_PROP);
        COMMON_PROPERTIES_KEY_BY_NAME.put("onselect",   ONSELECT_PROP);
        
        //_EventProperties
        COMMON_PROPERTIES_KEY_BY_NAME.put("onclick",    ONCLICK_PROP);
        COMMON_PROPERTIES_KEY_BY_NAME.put("ondblclick", ONDBLCLICK_PROP);
        COMMON_PROPERTIES_KEY_BY_NAME.put("onmousedown",ONMOUSEDOWN_PROP);
        COMMON_PROPERTIES_KEY_BY_NAME.put("onmouseup",  ONMOUSEUP_PROP);
        COMMON_PROPERTIES_KEY_BY_NAME.put("onmouseover",ONMOUSEOVER_PROP);
        COMMON_PROPERTIES_KEY_BY_NAME.put("onmousemove",ONMOUSEMOVE_PROP);
        COMMON_PROPERTIES_KEY_BY_NAME.put("onmouseout", ONMOUSEOUT_PROP);
        COMMON_PROPERTIES_KEY_BY_NAME.put("onkeypress", ONKEYPRESS_PROP);
        COMMON_PROPERTIES_KEY_BY_NAME.put("onkeydown",  ONKEYDOWN_PROP);
        COMMON_PROPERTIES_KEY_BY_NAME.put("onkeyup",    ONKEYUP_PROP);
        
        //_FocusBlurProperties
        COMMON_PROPERTIES_KEY_BY_NAME.put("onfocus",    ONFOCUS_PROP);
        COMMON_PROPERTIES_KEY_BY_NAME.put("onblur",     ONBLUR_PROP);

        //_LabelProperty
        COMMON_PROPERTIES_KEY_BY_NAME.put("label",      LABEL_PROP);
        
        //_LinkProperties
        COMMON_PROPERTIES_KEY_BY_NAME.put("charset",    CHARSET_PROP);
        COMMON_PROPERTIES_KEY_BY_NAME.put("coords",     COORDS_PROP);
        COMMON_PROPERTIES_KEY_BY_NAME.put("hreflang",   HREFLANG_PROP);
        COMMON_PROPERTIES_KEY_BY_NAME.put("rel",        REL_PROP);
        COMMON_PROPERTIES_KEY_BY_NAME.put("rev",        REV_PROP);
        COMMON_PROPERTIES_KEY_BY_NAME.put("shape",      SHAPE_PROP);
        COMMON_PROPERTIES_KEY_BY_NAME.put("target",     TARGET_PROP);
        COMMON_PROPERTIES_KEY_BY_NAME.put("type",       TYPE_PROP);

        //_TabindexProperty
        COMMON_PROPERTIES_KEY_BY_NAME.put("tabindex",   TABINDEX_PROP);

        //Common to input fields
        COMMON_PROPERTIES_KEY_BY_NAME.put("align",      ALIGN_PROP);
        COMMON_PROPERTIES_KEY_BY_NAME.put("checked",    CHECKED_PROP);
        COMMON_PROPERTIES_KEY_BY_NAME.put("maxlength",  MAXLENGTH_PROP);
        COMMON_PROPERTIES_KEY_BY_NAME.put("size",       SIZE_PROP);
    }
    
    public static void markProperty(UIComponent component, String name)
    {
        Long propertyConstant = COMMON_PROPERTIES_KEY_BY_NAME.get(name);
        if (propertyConstant == null)
        {
            return;
        }
        Long commonPropertiesSet = (Long) component.getAttributes().get(COMMON_PROPERTIES_MARKED);
        if (commonPropertiesSet == null)
        {
            commonPropertiesSet = 0L;
        }
        component.getAttributes().put(COMMON_PROPERTIES_MARKED, commonPropertiesSet | propertyConstant);
    }
    
    public static void markProperty(UIComponent component, long propertyConstant)
    {
        Long commonPropertiesSet = (Long) component.getAttributes().get(COMMON_PROPERTIES_MARKED);
        if (commonPropertiesSet == null)
        {
            commonPropertiesSet = 0L;
        }
        component.getAttributes().put(COMMON_PROPERTIES_MARKED, commonPropertiesSet | propertyConstant);
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy