package org.argeo.cms.ui;
-import org.argeo.eclipse.ui.specific.EclipseUiConstants;
import org.eclipse.swt.graphics.Point;
/** Commons constants */
public interface CmsConstants {
// DATAKEYS
- public final static String STYLE = EclipseUiConstants.CSS_CLASS;
- public final static String MARKUP = EclipseUiConstants.MARKUP_SUPPORT;
+// public final static String STYLE = EclipseUiConstants.CSS_CLASS;
+// public final static String MARKUP = EclipseUiConstants.MARKUP_SUPPORT;
@Deprecated
/* RWT.CUSTOM_ITEM_HEIGHT */
public final static String ITEM_HEIGHT = "org.eclipse.rap.rwt.customItemHeight";
private String propertyName;
private String message;
// TODO implement the ability to provide a list of possible values
- private String[] possibleValues;
+// private String[] possibleValues;
private boolean canEdit;
private SelectionListener removeValueSL;
private List<String> values;
this.propertyName = propertyName;
this.values = values;
- this.possibleValues = new String[]{"Un", "Deux", "Trois"};
+// this.possibleValues = new String[] { "Un", "Deux", "Trois" };
this.message = addValueMsg;
this.canEdit = removeValueSelectionListener != null;
this.removeValueSL = removeValueSelectionListener;
}
/**
- * Override to provide specific layout for the existing values, typically
- * adding a pound (#) char for tags or anchor info for browsable links. We
- * assume the parent composite already has a layout and it is the caller
- * responsibility to apply corresponding layout data
+ * Override to provide specific layout for the existing values, typically adding
+ * a pound (#) char for tags or anchor info for browsable links. We assume the
+ * parent composite already has a layout and it is the caller responsibility to
+ * apply corresponding layout data
*/
protected Label createValueLabel(Composite parent, int style, String value) {
Label label = new Label(parent, style);
}
public synchronized void startEditing() {
- getControl().setData(STYLE, FormStyle.propertyText.style());
+ CmsUiUtils.style(getControl(), FormStyle.propertyText.style());
+// getControl().setData(STYLE, FormStyle.propertyText.style());
super.startEditing();
}
public synchronized void stopEditing() {
- getControl().setData(STYLE, FormStyle.propertyMessage.style());
+ CmsUiUtils.style(getControl(), FormStyle.propertyMessage.style());
+// getControl().setData(STYLE, FormStyle.propertyMessage.style());
super.stopEditing();
}
* @param node
* @param propertyName
* @param message
- * @param dateFormat
- * provide a {@link DateFormat} as contract to be able to
- * read/write dates as strings
+ * @param dateFormat provide a {@link DateFormat} as contract to be able to
+ * read/write dates as strings
* @throws RepositoryException
*/
- public EditablePropertyDate(Composite parent, int style, Node node,
- String propertyName, String message, DateFormat dateFormat)
- throws RepositoryException {
+ public EditablePropertyDate(Composite parent, int style, Node node, String propertyName, String message,
+ DateFormat dateFormat) throws RepositoryException {
super(parent, style, node, false);
this.propertyName = propertyName;
if (node.hasProperty(propertyName)) {
this.setStyle(FormStyle.propertyText.style());
- this.setText(dateFormat.format(node.getProperty(propertyName)
- .getDate().getTime()));
+ this.setText(dateFormat.format(node.getProperty(propertyName).getDate().getTime()));
} else {
this.setStyle(FormStyle.propertyMessage.style());
this.setText(message);
public synchronized void startEditing() {
// if (dateTxt != null && !dateTxt.isDisposed())
- getControl().setData(STYLE, FormStyle.propertyText.style());
+ CmsUiUtils.style(getControl(), FormStyle.propertyText);
+// getControl().setData(STYLE, FormStyle.propertyText.style());
super.startEditing();
}
public synchronized void stopEditing() {
if (EclipseUiUtils.isEmpty(dateTxt.getText()))
- getControl().setData(STYLE, FormStyle.propertyMessage.style());
+ CmsUiUtils.style(getControl(), FormStyle.propertyMessage);
+// getControl().setData(STYLE, FormStyle.propertyMessage.style());
else
- getControl().setData(STYLE, FormStyle.propertyText.style());
+ CmsUiUtils.style(getControl(), FormStyle.propertyText);
+// getControl().setData(STYLE, FormStyle.propertyText.style());
super.stopEditing();
}
private Control createCustomEditableControl(Composite box, String style) {
box.setLayoutData(CmsUiUtils.fillWidth());
Composite dateComposite = new Composite(box, SWT.NONE);
- GridLayout gl = EclipseUiUtils.noSpaceGridLayout(new GridLayout(2,
- false));
+ GridLayout gl = EclipseUiUtils.noSpaceGridLayout(new GridLayout(2, false));
gl.horizontalSpacing = fieldBtnSpacing;
dateComposite.setLayout(gl);
dateTxt = new Text(dateComposite, SWT.BORDER);
CmsUiUtils.style(dateTxt, style);
dateTxt.setLayoutData(new GridData(120, SWT.DEFAULT));
- dateTxt.setToolTipText("Enter a date with form \""
- + FormUtils.DEFAULT_SHORT_DATE_FORMAT
- + "\" or use the calendar");
+ dateTxt.setToolTipText(
+ "Enter a date with form \"" + FormUtils.DEFAULT_SHORT_DATE_FORMAT + "\" or use the calendar");
openCalBtn = new Button(dateComposite, SWT.FLAT);
- CmsUiUtils.style(openCalBtn, FormStyle.calendar.style()
- + FormStyle.BUTTON_SUFFIX);
+ CmsUiUtils.style(openCalBtn, FormStyle.calendar.style() + FormStyle.BUTTON_SUFFIX);
GridData gd = new GridData(SWT.CENTER, SWT.CENTER, false, false);
gd.heightHint = 17;
openCalBtn.setLayoutData(gd);
CmsUiUtils.style(CalendarPopup.this, FormStyle.popupCalendar.style());
pack();
layout();
- setLocation(source.toDisplay((source.getLocation().x - 2),
- (source.getSize().y) + 3));
+ setLocation(source.toDisplay((source.getLocation().x - 2), (source.getSize().y) + 3));
addShellListener(new ShellAdapter() {
private static final long serialVersionUID = 5178980294808435833L;
dateTimeCtl = new DateTime(this, SWT.CALENDAR);
dateTimeCtl.setLayoutData(EclipseUiUtils.fillAll());
- Calendar calendar = FormUtils.parseDate(dateFormat,
- dateTxt.getText());
+ Calendar calendar = FormUtils.parseDate(dateFormat, dateTxt.getText());
if (calendar != null)
- dateTimeCtl.setDate(calendar.get(Calendar.YEAR),
- calendar.get(Calendar.MONTH),
+ dateTimeCtl.setDate(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH));
dateTimeCtl.addSelectionListener(new SelectionAdapter() {
import javax.jcr.Node;
import javax.jcr.RepositoryException;
+import org.argeo.cms.ui.util.CmsUiUtils;
import org.argeo.cms.ui.viewers.EditablePart;
import org.argeo.cms.ui.widgets.EditableText;
import org.argeo.eclipse.ui.EclipseUiUtils;
import org.eclipse.swt.widgets.Text;
/** Editable String in a CMS context */
-public class EditablePropertyString extends EditableText implements
- EditablePart {
+public class EditablePropertyString extends EditableText implements EditablePart {
private static final long serialVersionUID = 5055000749992803591L;
private String propertyName;
private final static String AMPERSAND = "&";
private final static String AMPERSAND_REGEX = "&(?![#a-zA-Z0-9]+;)";
- public EditablePropertyString(Composite parent, int style, Node node,
- String propertyName, String message) throws RepositoryException {
+ public EditablePropertyString(Composite parent, int style, Node node, String propertyName, String message)
+ throws RepositoryException {
super(parent, style, node, true);
this.propertyName = propertyName;
}
public synchronized void startEditing() {
- getControl().setData(STYLE, propertyText.style());
+ CmsUiUtils.style(getControl(), FormStyle.propertyText);
+// getControl().setData(STYLE, propertyText.style());
super.startEditing();
}
public synchronized void stopEditing() {
if (EclipseUiUtils.isEmpty(((Text) getControl()).getText()))
- getControl().setData(STYLE, propertyMessage.style());
+ CmsUiUtils.style(getControl(), FormStyle.propertyMessage);
+// getControl().setData(STYLE, propertyMessage.style());
else
- getControl().setData(STYLE, propertyText.style());
+ CmsUiUtils.style(getControl(), FormStyle.propertyText);
+// getControl().setData(STYLE, propertyText.style());
super.stopEditing();
}
package org.argeo.cms.ui.forms;
+import org.argeo.cms.ui.util.CmsStyle;
+
/** Syles used */
-public enum FormStyle {
+public enum FormStyle implements CmsStyle {
// Main
form, title,
// main part
import org.argeo.cms.ui.CmsConstants;
import org.argeo.cms.ui.CmsView;
import org.argeo.eclipse.ui.Selected;
+import org.argeo.eclipse.ui.specific.EclipseUiSpecificUtils;
import org.argeo.jcr.JcrUtils;
import org.eclipse.rap.rwt.RWT;
import org.eclipse.rap.rwt.service.ResourceManager;
public static <T extends Widget> T style(T widget, String style) {
if (style == null)
return widget;// does nothing
- widget.setData(CmsConstants.STYLE, style);
+ EclipseUiSpecificUtils.setStyleData(widget, style);
if (widget instanceof Control)
CmsView.getCmsView(((Control) widget).getParent()).applyStyles(widget);
return widget;
/** Enable markups on widget */
public static <T extends Widget> T markup(T widget) {
- if (CmsConstants.MARKUP != null)
- widget.setData(CmsConstants.MARKUP, true);
+ EclipseUiSpecificUtils.setMarkupData(widget);
return widget;
}
package org.argeo.cms.ui.widgets;
import javax.jcr.Item;
-import javax.jcr.RepositoryException;
import org.argeo.cms.ui.CmsConstants;
import org.argeo.cms.ui.util.CmsUiUtils;
+import org.argeo.eclipse.ui.specific.EclipseUiSpecificUtils;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.FocusListener;
import org.eclipse.swt.events.MouseListener;
assert !isEditing();
editing = true;
// int height = control.getSize().y;
- String style = (String) control.getData(STYLE);
+ String style = (String) EclipseUiSpecificUtils.getStyleData(control);
clear(false);
control = createControl(box, style);
setControlLayoutData(control);
public synchronized void stopEditing() {
assert isEditing();
editing = false;
- String style = (String) control.getData(STYLE);
+ String style = (String) EclipseUiSpecificUtils.getStyleData(control);
clear(false);
control = createControl(box, style);
setControlLayoutData(control);
public void setStyle(String style) {
Object currentStyle = null;
if (control != null)
- currentStyle = control.getData(STYLE);
+ currentStyle = EclipseUiSpecificUtils.getStyleData(control);
if (currentStyle != null && currentStyle.equals(style))
return;
control = createControl(box, style);
setControlLayoutData(control);
- control.getParent().setData(STYLE, style + "_box");
- control.getParent().getParent().setData(STYLE, style + "_container");
+// control.getParent().setData(STYLE, style + "_box");
+ EclipseUiSpecificUtils.setStyleData(control.getParent(), style + "_box");
+// control.getParent().getParent().setData(STYLE, style + "_container");
+ EclipseUiSpecificUtils.setStyleData(control.getParent().getParent(), style + "_container");
}
/** To be overridden */
+++ /dev/null
-package org.argeo.eclipse.ui.specific;
-
-import org.eclipse.rap.rwt.RWT;
-
-/** Constants which are specific to RWT.*/
-public interface EclipseUiConstants {
- final static String CSS_CLASS = RWT.CUSTOM_VARIANT;
- final static String MARKUP_SUPPORT = RWT.MARKUP_ENABLED;
-}
import org.eclipse.jface.viewers.ColumnViewer;
import org.eclipse.jface.viewers.ColumnViewerToolTipSupport;
import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.rap.rwt.RWT;
+import org.eclipse.swt.widgets.Widget;
/** Static utilities to bridge differences between RCP and RAP */
public class EclipseUiSpecificUtils {
+ public static void setStyleData(Widget widget, Object data) {
+ widget.setData(RWT.CUSTOM_VARIANT, data);
+ }
+
+ public static Object getStyleData(Widget widget) {
+ return widget.getData(RWT.CUSTOM_VARIANT);
+ }
+
+ public static void setMarkupData(Widget widget) {
+ widget.setData(RWT.MARKUP_ENABLED, true);
+ }
+
/**
* TootlTip support is supported only for {@link AbstractTableViewer} in RAP
*/