package org.argeo.cms.util;
+import static org.argeo.cms.internal.kernel.KernelConstants.WEBDAV_PUBLIC;
+import static org.argeo.jcr.ArgeoJcrConstants.ALIAS_NODE;
+
import java.io.InputStream;
import javax.jcr.Item;
import javax.jcr.Node;
import javax.jcr.Property;
import javax.jcr.RepositoryException;
+import javax.servlet.http.HttpServletRequest;
import org.apache.commons.io.IOUtils;
import org.argeo.cms.CmsConstants;
import org.argeo.cms.CmsException;
+import org.argeo.cms.CmsView;
+import org.argeo.eclipse.ui.specific.UiContext;
import org.argeo.jcr.JcrUtils;
import org.eclipse.rap.rwt.RWT;
import org.eclipse.rap.rwt.service.ResourceManager;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.Widget;
/** Static utilities for the CMS framework. */
public class CmsUtils implements CmsConstants {
+ /**
+ * The CMS view related to this display, or null if none is available from
+ * this call.
+ */
+ public static CmsView getCmsView() {
+ return UiContext.getData(CmsView.KEY);
+ }
+
+ public static String getDataUrl(Node node, HttpServletRequest request)
+ throws RepositoryException {
+ return request.getRequestURL().append(getDataPath(node).substring(1))
+ .toString();
+ }
+
+ public static String getDataPath(Node node) throws RepositoryException {
+ return new StringBuilder().append(WEBDAV_PUBLIC).append('/')
+ .append(ALIAS_NODE + "/")
+ .append(node.getSession().getWorkspace().getName())
+ .append(node.getPath()).toString();
+ }
+
+ public static String getCanonicalUrl(Node node, HttpServletRequest request)
+ throws RepositoryException {
+ return request.getRequestURL().append('!').append(node.getPath())
+ .toString();
+ }
+
/** @deprecated Use rowData16px() instead. GridData should not be reused. */
@Deprecated
public static RowData ROW_DATA_16px = new RowData(16, 16);
return new RowData(16, 16);
}
+ /** Style widget */
public static void style(Widget widget, String style) {
widget.setData(CmsConstants.STYLE, style);
}
+ /** Enable markups on widget */
public static void markup(Widget widget) {
widget.setData(CmsConstants.MARKUP, true);
}
+ public static void setItemHeight(Table table, int height) {
+ table.setData(CmsConstants.ITEM_HEIGHT, height);
+ }
+
/** @return the path or null if not instrumented */
public static String getDataPath(Widget widget) {
// JCR item