Refactor to use ACR instead of JCR.
[lgpl/argeo-commons.git] / eclipse / org.argeo.cms.swt / src / org / argeo / cms / swt / CmsSwtUtils.java
index 3ff747949c5553d0fa0694e13f6eb323ad1e772c..784d03173bce51ec53285c39f1a1c87defc9490f 100644 (file)
@@ -1,7 +1,10 @@
 package org.argeo.cms.swt;
 
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.StringTokenizer;
 
 import org.argeo.api.cms.CmsStyle;
 import org.argeo.api.cms.CmsTheme;
@@ -272,4 +275,18 @@ public class CmsSwtUtils {
                for (Control child : composite.getChildren())
                        child.dispose();
        }
+
+       /** Clean reserved URL characters for use in HTTP links. */
+       public static String cleanPathForUrl(String path) {
+               StringTokenizer st = new StringTokenizer(path, "/");
+               StringBuilder sb = new StringBuilder();
+               while (st.hasMoreElements()) {
+                       sb.append('/');
+                       String encoded = URLEncoder.encode(st.nextToken(), StandardCharsets.UTF_8);
+                       encoded = encoded.replace("+", "%20");
+                       sb.append(encoded);
+       
+               }
+               return sb.toString();
+       }
 }