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>