[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