import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.argeo.ArgeoException;
import org.argeo.cms.CmsEditable;
import org.argeo.cms.CmsException;
import org.argeo.cms.CmsImageManager;
import org.argeo.eclipse.ui.EclipseUiUtils;
import org.argeo.jcr.JcrUtils;
import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.rap.addons.fileupload.FileDetails;
-import org.eclipse.rap.addons.fileupload.FileUploadEvent;
-import org.eclipse.rap.addons.fileupload.FileUploadHandler;
-import org.eclipse.rap.addons.fileupload.FileUploadListener;
-import org.eclipse.rap.addons.fileupload.FileUploadReceiver;
+import org.eclipse.rap.fileupload.FileDetails;
+import org.eclipse.rap.fileupload.FileUploadEvent;
+import org.eclipse.rap.fileupload.FileUploadHandler;
+import org.eclipse.rap.fileupload.FileUploadListener;
+import org.eclipse.rap.fileupload.FileUploadReceiver;
import org.eclipse.rap.rwt.service.ServerPushSession;
import org.eclipse.rap.rwt.widgets.FileUpload;
import org.eclipse.swt.SWT;
// TODO manage within the CSS
private int labelColWidth = 150;
- private int sectionSeparatorHeight = 10;
- private int sectionBodyVIndent = 30;
- private int sectionBodyHSpacing = 15;
- private int sectionBodyVSpacing = 15;
private int rowLayoutHSpacing = 8;
// Context cached in the viewer
// JCR : Model
node = ept.getNode();
String propName = ept.getPropertyName();
- if (FormUtils.notEmpty(txt)) {
+ if (EclipseUiUtils.isEmpty(txt)) {
if (node.hasProperty(propName))
node.getProperty(propName).remove();
} else {
return bodyRow;
}
- protected Composite createSectionBody(Composite parent, int nbOfCol) {
- // The separator line. Ugly workaround that should be better managed via
- // css
- Composite header = new Composite(parent, SWT.NO_FOCUS);
- CmsUtils.style(header, FormStyle.sectionHeader.style());
- GridData gd = CmsUtils.fillWidth();
- gd.verticalIndent = sectionSeparatorHeight;
- gd.heightHint = 0;
- header.setLayoutData(gd);
-
- Composite bodyRow = new Composite(parent, SWT.NO_FOCUS);
- gd = CmsUtils.fillWidth();
- gd.verticalIndent = sectionBodyVIndent;
- bodyRow.setLayoutData(gd);
- GridLayout gl = new GridLayout(nbOfCol, false);
- gl.horizontalSpacing = sectionBodyHSpacing;
- gl.verticalSpacing = sectionBodyVSpacing;
- bodyRow.setLayout(gl);
- CmsUtils.style(bodyRow, FormStyle.section.style());
-
- return bodyRow;
- }
-
protected Composite createAddImgComposite(final Section section,
Composite parent, final Node parentNode) throws RepositoryException {
if (name == null)
name = details.getFileName();
+
+ // TODO clean image name more carefully
+ String cleanedName = name.replaceAll("[^a-zA-Z0-9-.]", "_");
+
try {
- imageManager().uploadImage(context, name, stream);
+ imageManager().uploadImage(context, cleanedName, stream);
// TODO clean refresh strategy
section.getDisplay().asyncExec(new Runnable() {
@Override
section.layout();
section.getParent().layout();
} catch (RepositoryException re) {
- throw new ArgeoException("unable to refresh "
+ throw new CmsException("unable to refresh "
+ "image section for " + context);
}
}
});
} catch (RepositoryException re) {
- throw new ArgeoException("unable to upload image " + name
+ throw new CmsException("unable to upload image " + name
+ " at " + context);
}
}
refresh(parSection);
layout(parSection);
} catch (RepositoryException re) {
- throw new ArgeoException("Unable to delete "
+ throw new CmsException("Unable to delete "
+ sessionNode, re);
}
edit(emsp, 0);
cancelEdit();
} catch (RepositoryException e1) {
- throw new ArgeoException(
+ throw new CmsException(
"Unable to remove value " + obj, e1);
}
layout(emsp);