[richfaces-svn-commits] JBoss Rich Faces SVN: r2355 - in trunk/framework/impl/src/main/java/org: ajax4jsf/util and 1 other directories.
richfaces-svn-commits at lists.jboss.org
richfaces-svn-commits at lists.jboss.org
Mon Aug 20 13:20:13 EDT 2007
Author: ishabalov
Date: 2007-08-20 13:20:13 -0400 (Mon, 20 Aug 2007)
New Revision: 2355
Added:
trunk/framework/impl/src/main/java/org/ajax4jsf/util/Zipper.java
Modified:
trunk/framework/impl/src/main/java/org/ajax4jsf/resource/ResourceBuilderImpl.java
trunk/framework/impl/src/main/java/org/richfaces/renderkit/html/BaseGradient.java
Log:
Shorter URI encoding
Modified: trunk/framework/impl/src/main/java/org/ajax4jsf/resource/ResourceBuilderImpl.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/resource/ResourceBuilderImpl.java 2007-08-20 17:16:11 UTC (rev 2354)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/resource/ResourceBuilderImpl.java 2007-08-20 17:20:13 UTC (rev 2355)
@@ -263,15 +263,17 @@
return packageName.append("/").append(path).toString();
}
- public String getUri(InternetResource resource, FacesContext context,
- Object storeData) {
+ public String getUri(InternetResource resource, FacesContext context, Object storeData) {
StringBuffer uri = new StringBuffer();// ResourceServlet.DEFAULT_SERVLET_PATH).append("/");
uri.append(resource.getKey());
// append serialized data as Base-64 encoded request string.
if (storeData != null) {
try {
- byte[] objectData;
- if (!(storeData instanceof byte[])) {
+ String encodedObjectData;
+ if (storeData instanceof byte[]) {
+ byte[] objectData = (byte[]) storeData;
+ encodedObjectData = new String(encrypt(objectData), "ISO-8859-1");
+ } else {
ByteArrayOutputStream dataSteram = new ByteArrayOutputStream(
1024);
ObjectOutputStream objStream = new ObjectOutputStream(
@@ -280,13 +282,11 @@
objStream.flush();
objStream.close();
dataSteram.close();
- objectData = dataSteram.toByteArray();
- } else {
- objectData = (byte[]) storeData;
+ byte[] objectData = dataSteram.toByteArray();
+ encodedObjectData = new String(encrypt(objectData), "ISO-8859-1");
}
uri.append(DATA_SEPARATOR);
- byte[] dataArray = encrypt(objectData);
- uri.append(new String(dataArray, "ISO-8859-1"));
+ uri.append(encodedObjectData);
// / byte[] objectData = dataSteram.toByteArray();
// / uri.append("?").append(new
Added: trunk/framework/impl/src/main/java/org/ajax4jsf/util/Zipper.java
===================================================================
--- trunk/framework/impl/src/main/java/org/ajax4jsf/util/Zipper.java (rev 0)
+++ trunk/framework/impl/src/main/java/org/ajax4jsf/util/Zipper.java 2007-08-20 17:20:13 UTC (rev 2355)
@@ -0,0 +1,16 @@
+package org.ajax4jsf.util;
+
+public class Zipper {
+ public static void zip(byte[] buf, int value, int offset) {
+ buf[offset] = (byte)(value & 0x0ff);
+ buf[offset+1] = (byte)((value & 0x0ff00)>>8);
+ buf[offset+2] = (byte)((value & 0x0ff0000)>>16);
+ }
+ public static int unzip(byte[] buf, int offset) {
+ int r0 = buf[offset]&0x0ff;
+ int r1 = (buf[offset+1]<<8)&0x0ff00;
+ int r2 = (buf[offset+2]<<16)&0x0ff0000;
+ int ret = r0 | r1 | r2;
+ return ret;
+ }
+}
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 2007-08-20 17:16:11 UTC (rev 2354)
+++ trunk/framework/impl/src/main/java/org/richfaces/renderkit/html/BaseGradient.java 2007-08-20 17:20:13 UTC (rev 2355)
@@ -29,6 +29,7 @@
import java.awt.geom.Rectangle2D;
import java.io.Serializable;
import java.util.Date;
+import java.util.StringTokenizer;
import javax.faces.context.FacesContext;
@@ -37,6 +38,7 @@
import org.ajax4jsf.resource.Java2Dresource;
import org.ajax4jsf.resource.ResourceContext;
import org.ajax4jsf.util.HtmlColor;
+import org.ajax4jsf.util.Zipper;
import org.richfaces.skin.Skin;
import org.richfaces.skin.SkinFactory;
@@ -138,7 +140,7 @@
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2d.setRenderingHint(RenderingHints.KEY_DITHERING, RenderingHints.VALUE_DITHER_ENABLE);
g2d.setRenderingHint(RenderingHints.KEY_COLOR_RENDERING, RenderingHints.VALUE_COLOR_RENDER_QUALITY);
- Data dataToStore = (Data)resourceContext.getResourceData();
+ Data dataToStore = new Data((byte[])resourceContext.getResourceData());
if (dataToStore.headerBackgroundColor!=null && dataToStore.headerGradientColor!=null) {
Color baseColor = new Color(dataToStore.headerBackgroundColor.intValue());
Dimension dim =getDimensions(resourceContext);
@@ -164,9 +166,9 @@
protected Object getDataToStore(FacesContext context, Object data) {
if (baseColor == null) {
- return new Data(context);
+ return new Data(context).toByteArray();
} else {
- return new Data(context, baseColor, gradientColor);
+ return new Data(context, baseColor, gradientColor).toByteArray();
}
}
@@ -175,9 +177,15 @@
}
protected static class Data implements Serializable {
+ private static final String SEPARATOR = ".";
public Data() {
}
+
+ public Data(byte[] data) {
+ headerBackgroundColor = new Integer(Zipper.unzip(data,0));
+ headerGradientColor = new Integer(Zipper.unzip(data,3));
+ }
protected Data(FacesContext context) {
this(context, Skin.headerBackgroundColor, "headerGradientColor");
@@ -220,6 +228,12 @@
private static final long serialVersionUID = 1732700513743861250L;
protected Integer headerBackgroundColor;
protected Integer headerGradientColor;
+ public byte[] toByteArray() {
+ byte[] ret = new byte[6];
+ Zipper.zip(ret,headerBackgroundColor.intValue(),0);
+ Zipper.zip(ret,headerGradientColor.intValue(),3);
+ return ret;
+ }
}
}
More information about the richfaces-svn-commits
mailing list