[richfaces-svn-commits] JBoss Rich Faces SVN: r13512 - in trunk: samples/themes/src/main/java/org/richfaces/theme/images and 2 other directories.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Fri Apr 10 20:50:33 EDT 2009


Author: alexsmirnov
Date: 2009-04-10 20:50:33 -0400 (Fri, 10 Apr 2009)
New Revision: 13512

Removed:
   trunk/framework/impl/src/main/java/org/richfaces/renderkit/html/BaseSkinImage.java
Modified:
   trunk/framework/impl/src/main/java/org/richfaces/renderkit/html/BaseGradient.java
   trunk/samples/themes/src/main/java/org/richfaces/theme/images/FooterBackground.java
   trunk/samples/themes/src/main/java/org/richfaces/theme/images/HeaderBackground.java
   trunk/samples/themes/src/main/resources/org/richfaces/renderkit/html/css/theme2.xcss
   trunk/samples/themes/src/main/templates/org/richfaces/theme2.jspx
Log:
Theme 2 images done

Modified: trunk/framework/impl/src/main/java/org/richfaces/renderkit/html/BaseGradient.java
===================================================================
--- trunk/framework/impl/src/main/java/org/richfaces/renderkit/html/BaseGradient.java	2009-04-10 17:39:37 UTC (rev 13511)
+++ trunk/framework/impl/src/main/java/org/richfaces/renderkit/html/BaseGradient.java	2009-04-11 00:50:33 UTC (rev 13512)
@@ -50,12 +50,12 @@
  */
 public class BaseGradient extends Java2Dresource {
 
-    private int width;
-    private int height;
-    private int gradientHeight;
-    private String baseColor;
-    private String gradientColor;
-    private boolean horizontal = false;
+    private final int width;
+    private final int height;
+    private final int gradientHeight;
+    private final String baseColor;
+    private final String gradientColor;
+    private final boolean horizontal;
 
     public BaseGradient(int width, int height, int gradientHeight, String baseColor, String gradientColor, boolean horizontal) {
 	super();
@@ -115,14 +115,42 @@
     }
     
     public Dimension getDimensions(FacesContext facesContext, Object data) {
-	return new Dimension(width, height);
+    	return new Dimension(width, height);
     }
 
     protected Dimension getDimensions(ResourceContext resourceContext) {
-	return getDimensions(null, restoreData(resourceContext));
+    	return new Dimension(width, height);
     }
 
-    private void drawGradient(Graphics2D g2d, Rectangle2D rectangle, BiColor colors, int height) {
+    /**
+	 * @return the gradientHeight
+	 */
+	protected int getGradientHeight() {
+		return gradientHeight;
+	}
+
+	/**
+	 * @return the baseColor
+	 */
+	protected String getBaseColor() {
+		return baseColor;
+	}
+
+	/**
+	 * @return the gradientColor
+	 */
+	protected String getGradientColor() {
+		return gradientColor;
+	}
+
+	/**
+	 * @return the horizontal
+	 */
+	protected boolean isHorizontal() {
+		return horizontal;
+	}
+
+	protected void drawGradient(Graphics2D g2d, Rectangle2D rectangle, BiColor colors, int height) {
 	if (colors != null) {
 	    GradientPaint gragient = new GradientPaint(0, 0, colors.getTopColor(), 0, height, colors.getBottomColor());
 	    g2d.setPaint(gragient);
@@ -138,19 +166,28 @@
 	g2d.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
 	g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
 
-	Data dataToStore = (Data) restoreData(resourceContext);
-	if (dataToStore != null) {
-	    Integer headerBackgroundColor = dataToStore.getHeaderBackgroundColor();
-	    Integer headerGradientColor = dataToStore.getHeaderGradientColor();
+	Data data = (Data) restoreData(resourceContext);
+	if (data != null) {
+	    paintGradient(g2d, data);
+	}
+    }
 
+	/**
+	 * @param g2d
+	 * @param data
+	 */
+	protected void paintGradient(Graphics2D g2d, Data data) {
+		Integer headerBackgroundColor = data.getHeaderBackgroundColor();
+	    Integer headerGradientColor = data.getHeaderGradientColor();
+
 	    if (headerBackgroundColor != null && headerGradientColor != null) {
 		BiColor biColor = new GradientType.BiColor(headerBackgroundColor, headerGradientColor);
 
-		GradientType type = dataToStore.getGradientType();
+		GradientType type = data.getGradientType();
 		BiColor firstLayer = type.getFirstLayerColors(biColor);
 		BiColor secondLayer = type.getSecondLayerColors(biColor);
 
-		Dimension dim = getDimensions(null, dataToStore);
+		Dimension dim = getDimensions(null, data);
 
 		if (horizontal) {
 		    //x -> y, y -> x
@@ -182,7 +219,6 @@
 		drawGradient(g2d, rect, secondLayer, smallGradientHeight);
 	    }
 	}
-    }
 
     protected void restoreData(Data data, Zipper2 zipper2) {
 	if (zipper2.hasMore()) {

Deleted: trunk/framework/impl/src/main/java/org/richfaces/renderkit/html/BaseSkinImage.java
===================================================================
--- trunk/framework/impl/src/main/java/org/richfaces/renderkit/html/BaseSkinImage.java	2009-04-10 17:39:37 UTC (rev 13511)
+++ trunk/framework/impl/src/main/java/org/richfaces/renderkit/html/BaseSkinImage.java	2009-04-11 00:50:33 UTC (rev 13512)
@@ -1,184 +0,0 @@
-/**
- * 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;
-
-import java.awt.Color;
-import java.awt.Dimension;
-import java.awt.GradientPaint;
-import java.awt.Graphics2D;
-import java.awt.RenderingHints;
-import java.awt.geom.AffineTransform;
-import java.awt.geom.Rectangle2D;
-import java.io.Serializable;
-import java.nio.ByteBuffer;
-import java.nio.IntBuffer;
-import java.util.Date;
-import java.util.Map;
-
-import javax.faces.context.FacesContext;
-
-import org.ajax4jsf.resource.InternetResourceBuilder;
-import org.ajax4jsf.resource.Java2Dresource;
-import org.ajax4jsf.resource.PngRenderer;
-import org.ajax4jsf.resource.ResourceContext;
-import org.ajax4jsf.util.HtmlColor;
-import org.ajax4jsf.util.HtmlDimensions;
-import org.ajax4jsf.util.Zipper2;
-import org.richfaces.renderkit.html.images.GradientAlignment;
-import org.richfaces.renderkit.html.images.GradientType;
-import org.richfaces.renderkit.html.images.GradientType.BiColor;
-import org.richfaces.skin.Skin;
-import org.richfaces.skin.SkinFactory;
-
-/**
- * @author asmirnov
- *
- */
-public abstract class BaseSkinImage extends Java2Dresource {
-
-
-	public BaseSkinImage() {
-		super();
-		setRenderer(new PngRenderer());
-	}
-
-	public Dimension getDimensions(FacesContext facesContext, Object data) {
-		return getDimension();
-	}
-
-	/**
-	 * Hook method to define constant dimension.
-	 * 
-	 * @return
-	 */
-	protected abstract Dimension getDimension();
-
-	protected Dimension getDimensions(ResourceContext resourceContext) {
-		return getDimension();
-	}
-
-	protected void drawRectangle(Graphics2D g2d, Rectangle2D rect,
-			BiColor biColor, boolean useTop) {
-		if (biColor != null) {
-			Color color = useTop ? biColor.getTopColor() : biColor
-					.getBottomColor();
-			g2d.setColor(color);
-			g2d.fill(rect);
-		}
-	}
-
-	protected void drawGradient(Graphics2D g2d, Rectangle2D rectangle,
-			BiColor colors, int height) {
-		if (colors != null) {
-			GradientPaint gragient = new GradientPaint(0, 0, colors
-					.getTopColor(), 0, height, colors.getBottomColor());
-			g2d.setPaint(gragient);
-			g2d.fill(rectangle);
-		}
-	}
-
-	protected void paint(ResourceContext resourceContext, Graphics2D g2d) {
-		g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
-				RenderingHints.VALUE_ANTIALIAS_ON);
-		g2d.setRenderingHint(RenderingHints.KEY_DITHERING,
-				RenderingHints.VALUE_DITHER_ENABLE);
-
-		g2d.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION,
-				RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY);
-		g2d.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING,
-				RenderingHints.VALUE_COLOR_RENDER_QUALITY);
-		g2d.setRenderingHint(RenderingHints.KEY_RENDERING,
-				RenderingHints.VALUE_RENDER_QUALITY);
-		paintImage(resourceContext,g2d);
-	}
-
-	/**
-	 * @param resourceContext
-	 * @param g2d
-	 */
-	protected abstract void paintImage(ResourceContext resourceContext, Graphics2D g2d);
-
-	private Integer decodeColor(String value) {
-		if (value != null && value.length() != 0) {
-			return Integer.valueOf(HtmlColor.decode(value).getRGB());
-		} else {
-			return null;
-		}
-	}
-
-	private Integer decodeHeight(String value) {
-		if (value != null && value.length() != 0) {
-			return HtmlDimensions.decode(value).intValue();
-		} else {
-			return null;
-		}
-	}
-
-	protected static String safeTrim(String s) {
-		return s != null ? s.trim() : null;
-	}
-
-	protected Object getDataToStore(FacesContext context, Object parameterData) {
-		SkinFactory skinFactory = SkinFactory.getInstance();
-
-		Skin skin = skinFactory.getSkin(context);
-
-		int hashCode = skin.hashCode(context);
-		byte[] data = new byte[4];
-		ByteBuffer.wrap(data).asIntBuffer().put(hashCode);
-		return data;
-	}
-
-	public boolean isCacheable() {
-		return true;
-	}
-
-	@Override
-	public boolean requireFacesContext() {
-		return true;
-	}
-
-	protected Integer getSkinColor(String name) {
-		return decodeColor(getSkinParameter(name));
-	}
-	
-	protected Integer getSkinSize(String name) {
-		return decodeHeight(getSkinParameter(name));
-	}
-	protected String getSkinParameter(String name) {
-		String value = null;
-		FacesContext context = FacesContext.getCurrentInstance();
-		if (null != context) {
-			SkinFactory skinFactory = SkinFactory.getInstance();
-			Skin skin = skinFactory.getSkin(context);
-			value = (String) skin.getParameter(context, name);
-
-			if (value == null || value.length() == 0) {
-				skin = skinFactory.getDefaultSkin(context);
-				value = (String) skin.getParameter(context, name);
-			}
-
-		}
-		return value;
-	}
-
-}

Modified: trunk/samples/themes/src/main/java/org/richfaces/theme/images/FooterBackground.java
===================================================================
--- trunk/samples/themes/src/main/java/org/richfaces/theme/images/FooterBackground.java	2009-04-10 17:39:37 UTC (rev 13511)
+++ trunk/samples/themes/src/main/java/org/richfaces/theme/images/FooterBackground.java	2009-04-11 00:50:33 UTC (rev 13512)
@@ -3,7 +3,16 @@
  */
 package org.richfaces.theme.images;
 
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.GradientPaint;
+import java.awt.Graphics2D;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.Rectangle2D;
+
 import org.richfaces.renderkit.html.BaseGradient;
+import org.richfaces.renderkit.html.images.GradientType;
+import org.richfaces.renderkit.html.images.GradientType.BiColor;
 
 /**
  * @author asmirnov
@@ -14,4 +23,75 @@
 	public FooterBackground() {
 		super(1, 95, 47,"panelBorderColor","generalBackgroundColor", false);
 	}
+	
+	protected void drawBackGradient(Graphics2D g2d, Rectangle2D rectangle, BiColor colors, int height) {
+		if (colors != null) {
+		    GradientPaint gragient = new GradientPaint(0, (float)(rectangle.getHeight()-height), colors.getBottomColor(), 0, (float) rectangle.getHeight(), colors.getTopColor());
+		    g2d.setPaint(gragient);
+		    g2d.fill(rectangle);
+		}
+	    }
+
+	
+	@Override
+	protected void paintGradient(Graphics2D g2d, Data data) {
+		Integer headerBackgroundColor = data.getHeaderBackgroundColor();
+	    Integer headerGradientColor = data.getHeaderGradientColor();
+
+	    if (headerBackgroundColor != null && headerGradientColor != null) {
+		BiColor biColor = new GradientType.BiColor(headerBackgroundColor, headerGradientColor);
+
+		GradientType type = data.getGradientType();
+		BiColor firstLayer = type.getFirstLayerColors(biColor);
+		BiColor secondLayer = type.getSecondLayerColors(biColor);
+
+		Dimension dim = getDimensions(null, data);
+
+		if (isHorizontal()) {
+		    //x -> y, y -> x
+		    g2d.transform(new AffineTransform(0, 1, 1, 0, 0, 0));
+		    dim.setSize(dim.height, dim.width);
+		}
+		
+		int localGradientHeight = getGradientHeight();
+		if (localGradientHeight < 0) {
+		    localGradientHeight = dim.height/2;
+		}
+		
+		Rectangle2D rect = new Rectangle2D.Float(
+			0, 
+			0, 
+			dim.width, 
+			localGradientHeight);
+
+		drawGradient(g2d, rect, firstLayer, localGradientHeight);
+		
+		rect = new Rectangle2D.Float(
+				0, 
+				localGradientHeight, 
+				dim.width, 
+				dim.height);
+		
+		drawBackGradient(g2d, rect, firstLayer, localGradientHeight);
+		
+		int smallGradientHeight = localGradientHeight / 2;
+		
+		rect = new Rectangle2D.Float(
+			0, 
+			0, 
+			dim.width, 
+			smallGradientHeight);
+
+		drawGradient(g2d, rect, secondLayer, smallGradientHeight);
+
+		rect = new Rectangle2D.Float(
+				0, 
+				dim.height-smallGradientHeight, 
+				dim.width, 
+				dim.height);
+		
+		drawBackGradient(g2d, rect, secondLayer, smallGradientHeight);
+	    }
+	}
+
 }

Modified: trunk/samples/themes/src/main/java/org/richfaces/theme/images/HeaderBackground.java
===================================================================
--- trunk/samples/themes/src/main/java/org/richfaces/theme/images/HeaderBackground.java	2009-04-10 17:39:37 UTC (rev 13511)
+++ trunk/samples/themes/src/main/java/org/richfaces/theme/images/HeaderBackground.java	2009-04-11 00:50:33 UTC (rev 13512)
@@ -3,6 +3,10 @@
  */
 package org.richfaces.theme.images;
 
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Graphics2D;
+
 import org.richfaces.renderkit.html.BaseGradient;
 
 /**
@@ -14,4 +18,19 @@
 	public HeaderBackground() {
 		super(1, 95, 47,"headerBackgroundColor","headerGradientColor", false);
 	}
+	
+	@Override
+	protected void paintGradient(Graphics2D g2d, Data data) {
+		// Paint gradient itself
+		super.paintGradient(g2d, data);
+		// Paint lower bar
+		Dimension dim = getDimensions(null, data);
+		Integer headerBackgroundColor = data.getHeaderBackgroundColor();
+
+		if(headerBackgroundColor != null && dim.height > getGradientHeight() && getGradientHeight() >=0){
+			g2d.setPaint(null);
+			g2d.setColor(new Color(headerBackgroundColor));
+			g2d.fillRect(0,getGradientHeight(),dim.width,dim.height);
+		}
+	}
 }

Modified: trunk/samples/themes/src/main/resources/org/richfaces/renderkit/html/css/theme2.xcss
===================================================================
--- trunk/samples/themes/src/main/resources/org/richfaces/renderkit/html/css/theme2.xcss	2009-04-10 17:39:37 UTC (rev 13511)
+++ trunk/samples/themes/src/main/resources/org/richfaces/renderkit/html/css/theme2.xcss	2009-04-11 00:50:33 UTC (rev 13512)
@@ -29,7 +29,7 @@
 		<u:style name="border-top-color" skin="generalBackgroundColor" />
 		<u:style name="background-color" skin="panelBorderColor"/>
 		<u:style name="background-repeat" value="repeat-x"/>
-		<u:style name="background-position" value="top left"/>
+		<u:style name="background-position" value="center left"/>
 	</u:selector>
 
 	<u:selector name=".menu_col">

Modified: trunk/samples/themes/src/main/templates/org/richfaces/theme2.jspx
===================================================================
--- trunk/samples/themes/src/main/templates/org/richfaces/theme2.jspx	2009-04-10 17:39:37 UTC (rev 13511)
+++ trunk/samples/themes/src/main/templates/org/richfaces/theme2.jspx	2009-04-11 00:50:33 UTC (rev 13512)
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <f:root 
-	xmlns:f="http://ajax4jsf.org/cdk/template" 
+	xmlns:f="http://ajax4jsf.org/cdk/template"
+	xmlns:jsp="http://java.sun.com/JSP/Page" 
 	xmlns:c=" http://java.sun.com/jsf/core" 
 	xmlns:ui=" http://ajax4jsf.org/cdk/ui"
 	xmlns:u=" http://ajax4jsf.org/cdk/u"
@@ -8,18 +9,18 @@
     xmlns:h="http://jsf.exadel.com/header"
     xmlns:vcp="http://ajax4jsf.org/cdk/vcp"
  	class="org.richfaces.renderkit.html.Theme2Renderer"
-	baseclass="org.richfaces.theme.AbstractThemeRenderer"
+	baseclass="org.richfaces.renderkit.AbstractPageRenderer"
 	component="org.richfaces.component.UIPage" 
 	>
 	<c:set var="namespace" value="#{this:prolog(context,component)}"/>
-	<html x:xmlns="#{namespace}" x:lang="#{context.viewRoot.locale}"
-		>
+	<html x:xmlns="#{namespace}" x:lang="#{context.viewRoot.locale}">
 <head>
 <meta http-equiv="content-type" content="text/html; charset=utf-8" />
 		   <title>#{component.attributes['pageTitle']}</title>
 		   <f:call name="themeStyle"/>
 		   <f:call name="themeScript"/>
-		   <f:call name="pageStyle"/>		   
+		   <jsp:scriptlet>
+		   </jsp:scriptlet>		   
 		   <u:insertFacet name="pageHeader"/>
 
 </head>




More information about the richfaces-svn-commits mailing list