Package org.richfaces.renderkit.html.images

Source Code of org.richfaces.renderkit.html.images.BaseControlBackgroundImage$Data

/**
* License Agreement.
*
*  JBoss RichFaces - Ajax4jsf Component Library
*
* Copyright (C) 2007  Exadel, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License version 2.1 as published by the Free Software Foundation.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
*/

package org.richfaces.renderkit.html.images;

import java.awt.Dimension;

import javax.faces.context.FacesContext;

import org.ajax4jsf.util.HtmlDimensions;
import org.ajax4jsf.util.Zipper2;
import org.richfaces.renderkit.html.BaseGradient;
import org.richfaces.skin.Skin;
import org.richfaces.skin.SkinFactory;

/**
* Created 23.02.2008
*
* @author Nick Belaevski
* @since 3.2
*/

public abstract class BaseControlBackgroundImage extends BaseGradient {

    private static final Dimension DIMENSION = new Dimension(1, 1);

    public BaseControlBackgroundImage(String baseColor, String gradientColor, int width) {
        super(width, -1, baseColor, gradientColor);
    }

    public Dimension getDimensions(FacesContext facesContext, Object data) {
        Data data2 = (Data) data;
  if (data != null) {
            return new Dimension(super.getDimensions(facesContext, data).width, data2.getHeight());
        } else {
            return DIMENSION;
        }
    }

    protected final Integer getHeight(FacesContext context, String heightParamName) {
        SkinFactory skinFactory = SkinFactory.getInstance();
        Skin skin = skinFactory.getSkin(context);

        String height = (String) skin.getParameter(context, heightParamName);
        if (height == null || height.length() == 0) {
            skin = skinFactory.getDefaultSkin(context);
            height = (String) skin.getParameter(context, heightParamName);
        }

        if (height != null && height.length() != 0) {
            return Integer.valueOf(HtmlDimensions.decode(height).intValue());
        } else {
            return Integer.valueOf(16);
        }
    }

    protected Integer getHeight(FacesContext context) {
        return getHeight(context, Skin.generalSizeFont);
    }


    public boolean isCacheable() {
        return true;
    }
   
    @Override
    protected org.richfaces.renderkit.html.BaseGradient.Data createData() {
        return new Data();
    }
   
    @Override
    protected void saveData(FacesContext context, org.richfaces.renderkit.html.BaseGradient.Data data, Object parameterData) {
        super.saveData(context, data, parameterData);
        Data d = ((Data) data);
        d.setGradientType(GradientType.PLAIN);
        d.setHeight(getHeight(context));
    }

    protected void restoreData(org.richfaces.renderkit.html.BaseGradient.Data data, Zipper2 zipper2) {
  if (zipper2.hasMore()) {
      ((Data) data).setHeight(zipper2.nextInt());
      super.restoreData(data, zipper2);
  }
    }
   
    protected static class Data extends BaseGradient.Data {

  /**
   *
   */
  private static final long serialVersionUID = -1499766195614003931L;

  private Integer height;
 
  @Override
  public byte[] toByteArray() {
            byte[] bs = super.toByteArray();
            byte[] result = new byte[(bs != null ? bs.length : 0) + 4];
      new Zipper2(result).addInt(height).addBytes(bs);

      return result;
  }

  public Integer getHeight() {
      return height;
  }

  public void setHeight(Integer height) {
      this.height = height;
  }
 
    };
}
TOP

Related Classes of org.richfaces.renderkit.html.images.BaseControlBackgroundImage$Data

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.