]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.cms.ui/src/org/argeo/cms/util/CmsUtils.java
CMS wizard and error feedback
[lgpl/argeo-commons.git] / org.argeo.cms.ui / src / org / argeo / cms / util / CmsUtils.java
index 108dd3a95b8b28840c521f7baf54841547e0ea3e..38979610d1d57d332bb315cfac73c4b1b2503e31 100644 (file)
@@ -4,24 +4,18 @@ import java.io.InputStream;
 import java.net.MalformedURLException;
 import java.net.URL;
 
-import javax.jcr.Item;
 import javax.jcr.Node;
-import javax.jcr.Property;
-import javax.jcr.Repository;
 import javax.jcr.RepositoryException;
-import javax.jcr.Session;
 import javax.servlet.http.HttpServletRequest;
 
 import org.apache.commons.io.IOUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.argeo.cms.CmsException;
 import org.argeo.cms.ui.CmsConstants;
 import org.argeo.cms.ui.CmsView;
 import org.argeo.eclipse.ui.specific.UiContext;
 import org.argeo.jcr.JcrUtils;
-import org.argeo.node.NodeAuthenticated;
 import org.argeo.node.NodeConstants;
+import org.argeo.node.NodeUtils;
 import org.eclipse.rap.rwt.RWT;
 import org.eclipse.rap.rwt.service.ResourceManager;
 import org.eclipse.swt.SWT;
@@ -39,14 +33,14 @@ import org.eclipse.swt.widgets.Widget;
 
 /** Static utilities for the CMS framework. */
 public class CmsUtils implements CmsConstants {
-       private final static Log log = LogFactory.getLog(CmsUtils.class);
+       // 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.
         */
        public static CmsView getCmsView() {
-               return UiContext.getData(NodeAuthenticated.KEY);
+               return UiContext.getData(CmsView.KEY);
        }
 
        public static StringBuilder getServerBaseUrl(HttpServletRequest request) {
@@ -73,47 +67,14 @@ public class CmsUtils implements CmsConstants {
                }
        }
 
-       // FIXME
-       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 {
-               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();
+               return getDataPath(NodeConstants.NODE, node);
+       }
+
+       public static String getDataPath(String cn, Node node) throws RepositoryException {
+               return NodeUtils.getDataPath(cn, node);
        }
-       //
-       // 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
@@ -164,26 +125,6 @@ public class CmsUtils implements CmsConstants {
                table.setData(CmsConstants.ITEM_HEIGHT, height);
        }
 
-       /** @return the path or null if not instrumented */
-       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())