Improve CMS UI utilities.
[lgpl/argeo-commons.git] / org.argeo.cms.ui / src / org / argeo / cms / util / CmsUtils.java
index 3bb984b6a86bfff20ec7a6d2d5aea92ead954859..0c6eb53d4022dbbb496381db6e450006d4444f13 100644 (file)
@@ -1,5 +1,6 @@
 package org.argeo.cms.util;
 
+import java.io.IOException;
 import java.io.InputStream;
 import java.net.MalformedURLException;
 import java.net.URL;
@@ -8,9 +9,7 @@ import javax.jcr.Node;
 import javax.jcr.RepositoryException;
 import javax.servlet.http.HttpServletRequest;
 
-import org.apache.commons.io.IOUtils;
 import org.argeo.cms.CmsException;
-import org.argeo.cms.auth.CmsAuthenticated;
 import org.argeo.cms.ui.CmsConstants;
 import org.argeo.cms.ui.CmsView;
 import org.argeo.eclipse.ui.specific.UiContext;
@@ -37,11 +36,11 @@ public class CmsUtils implements CmsConstants {
        // private final static Log log = LogFactory.getLog(CmsUtils.class);
 
        /**
-        * The CMS view related to this display, or null if none is available from
-        * this call.
+        * The CMS view related to this display, or null if none is available from this
+        * call.
         */
        public static CmsView getCmsView() {
-               return UiContext.getData(CmsAuthenticated.KEY);
+               return UiContext.getData(CmsView.KEY);
        }
 
        public static StringBuilder getServerBaseUrl(HttpServletRequest request) {
@@ -68,10 +67,6 @@ public class CmsUtils implements CmsConstants {
                }
        }
 
-       // private final static String PATH_DATA = "/data";
-       // private final static String WEBDAV_PUBLIC = PATH_DATA + "/public";
-       // private final static String WEBDAV_PRIVATE = PATH_DATA + "/files";
-
        /** A path in the node repository */
        public static String getDataPath(Node node) throws RepositoryException {
                return getDataPath(NodeConstants.NODE, node);
@@ -79,43 +74,7 @@ public class CmsUtils implements CmsConstants {
 
        public static String getDataPath(String cn, Node node) throws RepositoryException {
                return NodeUtils.getDataPath(cn, node);
-               // assert node != null;
-               // String userId = node.getSession().getUserID();
-               // if (log.isTraceEnabled())
-               // log.trace(userId + " : " + node.getPath());
-               // StringBuilder buf = new StringBuilder();
-               // boolean isAnonymous =
-               // userId.equalsIgnoreCase(NodeConstants.ROLE_ANONYMOUS);
-               // if (isAnonymous)
-               // buf.append(WEBDAV_PUBLIC);
-               // else
-               // buf.append(WEBDAV_PRIVATE);
-               // Session session = node.getSession();
-               // Repository repository = session.getRepository();
-               // String cn;
-               // if (repository.isSingleValueDescriptor(NodeConstants.CN)) {
-               // cn = repository.getDescriptor(NodeConstants.CN);
-               // } else {
-               // log.warn("No cn defined in repository, using " + NodeConstants.NODE);
-               // cn = NodeConstants.NODE;
-               // }
-               // return
-               // buf.append('/').append(cn).append('/').append(session.getWorkspace().getName()).append(node.getPath())
-               // .toString();
        }
-       //
-       // public static String getCanonicalUrl(Node node, HttpServletRequest
-       // request) throws RepositoryException {
-       // try {
-       // StringBuilder buf = getServerBaseUrl(request);
-       // buf.append('/').append('!').append(node.getPath());
-       // return new URL(buf.toString()).toString();
-       // } catch (MalformedURLException e) {
-       // throw new CmsException("Cannot build data URL for " + node, e);
-       // }
-       // // return request.getRequestURL().append('!').append(node.getPath())
-       // // .toString();
-       // }
 
        /** @deprecated Use rowData16px() instead. GridData should not be reused. */
        @Deprecated
@@ -125,6 +84,10 @@ public class CmsUtils implements CmsConstants {
                return noSpaceGridLayout(new GridLayout());
        }
 
+       public static GridLayout noSpaceGridLayout(int columns) {
+               return noSpaceGridLayout(new GridLayout(columns, false));
+       }
+
        public static GridLayout noSpaceGridLayout(GridLayout layout) {
                layout.horizontalSpacing = 0;
                layout.verticalSpacing = 0;
@@ -153,41 +116,21 @@ public class CmsUtils implements CmsConstants {
        }
 
        /** Style widget */
-       public static void style(Widget widget, String style) {
+       public static <T extends Widget> T style(T widget, String style) {
                widget.setData(CmsConstants.STYLE, style);
+               return widget;
        }
 
        /** Enable markups on widget */
-       public static void markup(Widget widget) {
+       public static <T extends Widget> T markup(T widget) {
                widget.setData(CmsConstants.MARKUP, true);
+               return widget;
        }
 
        public static void setItemHeight(Table table, int height) {
                table.setData(CmsConstants.ITEM_HEIGHT, height);
        }
 
-       // /** @return the path or null if not instrumented */
-       // @Deprecated
-       // public static String getDataPath(Widget widget) {
-       // // JCR item
-       // Object data = widget.getData();
-       // if (data != null && data instanceof Item) {
-       // try {
-       // return ((Item) data).getPath();
-       // } catch (RepositoryException e) {
-       // throw new CmsException("Cannot find data path of " + data + " for " +
-       // widget);
-       // }
-       // }
-       //
-       // // JCR path
-       // data = widget.getData(Property.JCR_PATH);
-       // if (data != null)
-       // return data.toString();
-       //
-       // return null;
-       // }
-
        /** Dispose all children of a Composite */
        public static void clear(Composite composite) {
                for (Control child : composite.getChildren())
@@ -257,10 +200,28 @@ public class CmsUtils implements CmsConstants {
                        Image image = new Image(Display.getCurrent(), scaled);
                        return image;
                } finally {
-                       IOUtils.closeQuietly(in);
+                       try {
+                               in.close();
+                       } catch (IOException e) {
+                               // silent
+                       }
                }
        }
 
+       /** Lorem ipsum text to be used during development. */
+       public final static String LOREM_IPSUM = "Lorem ipsum dolor sit amet, consectetur adipiscing elit."
+                       + " Etiam eleifend hendrerit sem, ac ultricies massa ornare ac."
+                       + " Cras aliquam sodales risus, vitae varius lacus molestie quis."
+                       + " Vivamus consequat, leo id lacinia volutpat, eros diam efficitur urna, finibus interdum risus turpis at nisi."
+                       + " Curabitur vulputate nulla quis scelerisque fringilla. Integer consectetur turpis id lobortis accumsan."
+                       + " Pellentesque commodo turpis ac diam ultricies dignissim."
+                       + " Curabitur sit amet dolor volutpat lacus aliquam ornare quis sed velit."
+                       + " Integer varius quis est et tristique."
+                       + " Suspendisse pharetra porttitor purus, eget condimentum magna."
+                       + " Duis vitae turpis eros. Sed tincidunt lacinia rutrum."
+                       + " Aliquam velit velit, rutrum ut augue sed, condimentum lacinia augue.";
+
+       /** Singleton. */
        private CmsUtils() {
        }
 }