X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms.ui%2Fsrc%2Forg%2Fargeo%2Fcms%2Futil%2FCmsUtils.java;h=f4004e493123c75426e3a82b10289ef7491dc516;hb=2aa6142e53fcd55622c7d58d772e76d17e916dda;hp=415008966dfe927654daf2e0885f5b93974502fc;hpb=d2cce87ce029689cd4b2661c1d9ef50b706b9187;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms.ui/src/org/argeo/cms/util/CmsUtils.java b/org.argeo.cms.ui/src/org/argeo/cms/util/CmsUtils.java index 415008966..f4004e493 100644 --- a/org.argeo.cms.ui/src/org/argeo/cms/util/CmsUtils.java +++ b/org.argeo.cms.ui/src/org/argeo/cms/util/CmsUtils.java @@ -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,7 +9,6 @@ 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.ui.CmsConstants; import org.argeo.cms.ui.CmsView; @@ -25,10 +25,13 @@ import org.eclipse.swt.graphics.Point; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.layout.RowData; +import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Table; +import org.eclipse.swt.widgets.Text; import org.eclipse.swt.widgets.Widget; /** Static utilities for the CMS framework. */ @@ -84,6 +87,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; @@ -112,13 +119,33 @@ public class CmsUtils implements CmsConstants { } /** Style widget */ - public static void style(Widget widget, String style) { + public static 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 markup(T widget) { widget.setData(CmsConstants.MARKUP, true); + return widget; + } + + /** + * Apply markup and set text on {@link Label}, {@link Button}, {@link Text}. + * + * @see #markup(Widget) + */ + public static T text(T widget, String txt) { + markup(widget); + if (widget instanceof Label) + ((Label) widget).setText(txt); + else if (widget instanceof Button) + ((Button) widget).setText(txt); + else if (widget instanceof Text) + ((Text) widget).setText(txt); + else + throw new IllegalArgumentException("Unsupported widget type " + widget.getClass()); + return widget; } public static void setItemHeight(Table table, int height) { @@ -194,10 +221,15 @@ 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." @@ -210,6 +242,7 @@ public class CmsUtils implements CmsConstants { + " Duis vitae turpis eros. Sed tincidunt lacinia rutrum." + " Aliquam velit velit, rutrum ut augue sed, condimentum lacinia augue."; + /** Singleton. */ private CmsUtils() { } }