import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.argeo.cms.CmsException;
-import org.argeo.cms.ui.CmsEditable;
-import org.argeo.cms.ui.CmsImageManager;
-import org.argeo.cms.ui.util.CmsUiUtils;
+import org.argeo.api.cms.Cms2DSize;
+import org.argeo.api.cms.CmsEditable;
+import org.argeo.api.cms.CmsImageManager;
+import org.argeo.cms.swt.CmsSwtUtils;
import org.argeo.cms.ui.viewers.AbstractPageViewer;
import org.argeo.cms.ui.viewers.EditablePart;
import org.argeo.cms.ui.viewers.Section;
import org.argeo.cms.ui.widgets.Img;
import org.argeo.cms.ui.widgets.StyledControl;
import org.argeo.eclipse.ui.EclipseUiUtils;
+import org.argeo.jcr.JcrException;
import org.argeo.jcr.JcrUtils;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.rap.fileupload.FileDetails;
private final Section mainSection;
// TODO manage within the CSS
- private int labelColWidth = 150;
+ private Integer labelColWidth = null;
private int rowLayoutHSpacing = 8;
// Context cached in the viewer
// The reference to translate from text to calendar and reverse
private DateFormat dateFormat = new SimpleDateFormat(FormUtils.DEFAULT_SHORT_DATE_FORMAT);
- private CmsImageManager imageManager;
+ private CmsImageManager<Control, Node> imageManager;
private FileUploadListener fileUploadListener;
public FormPageViewer(Section mainSection, int style, CmsEditable cmsEditable) throws RepositoryException {
// TODO: make this configurable, sometimes we do not want to save the
// current session at this stage
if (node != null && node.getSession().hasPendingChanges()) {
- JcrUtils.updateLastModified(node);
+ JcrUtils.updateLastModified(node, true);
node.getSession().save();
}
}
}
public void uploadFailed(FileUploadEvent event) {
- throw new CmsException("Upload failed " + event, event.getException());
+ throw new IllegalStateException("Upload failed " + event, event.getException());
}
public void uploadFinished(FileUploadEvent event) {
return mainSection;
}
- protected CmsImageManager imageManager() {
+ protected CmsImageManager<Control, Node> imageManager() {
if (imageManager == null)
- imageManager = CmsUiUtils.getCmsView().getImageManager();
+ imageManager = (CmsImageManager<Control, Node>) CmsSwtUtils.getCmsView(mainSection).getImageManager();
return imageManager;
}
Section section = null;
if (node != null) {
section = new Section(body, SWT.NO_FOCUS, node);
- section.setLayoutData(CmsUiUtils.fillWidth());
- section.setLayout(CmsUiUtils.noSpaceGridLayout());
+ section.setLayoutData(CmsSwtUtils.fillWidth());
+ section.setLayout(CmsSwtUtils.noSpaceGridLayout());
}
return section;
}
EditablePropertyString eps = new EditablePropertyString(bodyRow, SWT.WRAP | SWT.LEFT, node, propName, msg);
eps.setMouseListener(getMouseListener());
eps.setFocusListener(getFocusListener());
- eps.setLayoutData(CmsUiUtils.fillWidth());
+ eps.setLayoutData(CmsSwtUtils.fillWidth());
}
}
addListeners(emsp);
// emsp.setMouseListener(getMouseListener());
emsp.setStyle(FormStyle.propertyMessage.style());
- emsp.setLayoutData(CmsUiUtils.fillWidth());
+ emsp.setLayoutData(CmsSwtUtils.fillWidth());
}
}
protected Label createPropertyLbl(Composite parent, String value) {
- return createPropertyLbl(parent, value, SWT.TOP);
+ return createPropertyLbl(parent, value, SWT.NONE);
}
protected Label createPropertyLbl(Composite parent, String value, int vAlign) {
- boolean isSmall = CmsUiUtils.getCmsView().getUxContext().isSmall();
- Label label = new Label(parent, isSmall ? SWT.LEFT : SWT.RIGHT | SWT.WRAP);
+ // boolean isSmall = CmsView.getCmsView(parent).getUxContext().isSmall();
+ Label label = new Label(parent, SWT.LEAD | SWT.WRAP);
label.setText(value + " ");
- CmsUiUtils.style(label, FormStyle.propertyLabel.style());
- GridData gd = new GridData(isSmall ? SWT.LEFT : SWT.RIGHT, vAlign, false, false);
- gd.widthHint = labelColWidth;
+ CmsSwtUtils.style(label, FormStyle.propertyLabel.style());
+ GridData gd = new GridData(SWT.LEAD, vAlign, false, false);
+ if (labelColWidth != null)
+ gd.widthHint = labelColWidth;
label.setLayoutData(gd);
return label;
}
protected Label newStyledLabel(Composite parent, String style, String value) {
Label label = new Label(parent, SWT.NONE);
label.setText(value);
- CmsUiUtils.style(label, style);
+ CmsSwtUtils.style(label, style);
return label;
}
protected Composite createRowLayoutComposite(Composite parent) throws RepositoryException {
Composite bodyRow = new Composite(parent, SWT.NO_FOCUS);
- bodyRow.setLayoutData(CmsUiUtils.fillWidth());
+ bodyRow.setLayoutData(CmsSwtUtils.fillWidth());
RowLayout rl = new RowLayout(SWT.WRAP);
rl.type = SWT.HORIZONTAL;
rl.spacing = rowLayoutHSpacing;
// for a while
cleanedName = System.currentTimeMillis() % 100000 + "_" + cleanedName;
- try {
- imageManager().uploadImage(context, cleanedName, stream);
- // TODO clean refresh strategy
- section.getDisplay().asyncExec(new Runnable() {
- @Override
- public void run() {
- try {
- FormPageViewer.this.refresh(section);
- section.layout();
- section.getParent().layout();
- } catch (RepositoryException re) {
- throw new CmsException("unable to refresh " + "image section for " + context);
- }
+ imageManager().uploadImage(context, context, cleanedName, stream, details.getContentType());
+ // TODO clean refresh strategy
+ section.getDisplay().asyncExec(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ FormPageViewer.this.refresh(section);
+ section.layout();
+ section.getParent().layout();
+ } catch (RepositoryException re) {
+ throw new JcrException("Unable to refresh " + "image section for " + context, re);
}
- });
- } catch (RepositoryException re) {
- throw new CmsException("unable to upload image " + name + " at " + context);
- }
+ }
+ });
}
}
}
protected Img createImgComposite(Composite parent, Node node, Point preferredSize) throws RepositoryException {
- Img img = new Img(parent, SWT.NONE, node, preferredSize) {
+ Img img = new Img(parent, SWT.NONE, node, new Cms2DSize(preferredSize.x, preferredSize.y)) {
private static final long serialVersionUID = 1297900641952417540L;
@Override
protected void setContainerLayoutData(Composite composite) {
- composite.setLayoutData(CmsUiUtils.grabWidth(SWT.CENTER, SWT.DEFAULT));
+ composite.setLayoutData(CmsSwtUtils.grabWidth(SWT.CENTER, SWT.DEFAULT));
}
@Override
protected void setControlLayoutData(Control control) {
- control.setLayoutData(CmsUiUtils.grabWidth(SWT.CENTER, SWT.DEFAULT));
+ control.setLayoutData(CmsSwtUtils.grabWidth(SWT.CENTER, SWT.DEFAULT));
}
};
- img.setLayoutData(CmsUiUtils.grabWidth(SWT.CENTER, SWT.DEFAULT));
+ img.setLayoutData(CmsSwtUtils.grabWidth(SWT.CENTER, SWT.DEFAULT));
updateContent(img);
addListeners(img);
return img;
protected Composite addDeleteAbility(final Section section, final Node sessionNode, int topWeight,
int rightWeight) {
Composite comp = new Composite(section, SWT.NONE);
- comp.setLayoutData(CmsUiUtils.fillAll());
+ comp.setLayoutData(CmsSwtUtils.fillAll());
comp.setLayout(new FormLayout());
// The body to be populated
if (getCmsEditable().canEdit()) {
// the delete button
Button deleteBtn = new Button(comp, SWT.FLAT);
- CmsUiUtils.style(deleteBtn, FormStyle.deleteOverlay.style());
+ CmsSwtUtils.style(deleteBtn, FormStyle.deleteOverlay.style());
FormData formData = new FormData();
formData.right = new FormAttachment(rightWeight, 0);
formData.top = new FormAttachment(topWeight, 0);
refresh(parSection);
layout(parSection);
} catch (RepositoryException re) {
- throw new CmsException("Unable to delete " + sessionNode, re);
+ throw new JcrException("Unable to delete " + sessionNode, re);
}
}
edit(emsp, 0);
cancelEdit();
} catch (RepositoryException e1) {
- throw new CmsException("Unable to remove value " + obj, e1);
+ throw new JcrException("Unable to remove value " + obj, e1);
}
layout(emsp);
}