import javax.jcr.Node;
import javax.jcr.RepositoryException;
-import org.argeo.cms.ui.CmsImageManager;
-import org.argeo.cms.ui.CmsView;
+import org.argeo.api.cms.Cms2DSize;
+import org.argeo.api.cms.CmsImageManager;
+import org.argeo.cms.swt.CmsSwtUtils;
import org.argeo.cms.ui.internal.JcrFileUploadReceiver;
-import org.argeo.cms.ui.util.CmsUiUtils;
import org.argeo.cms.ui.viewers.NodePart;
import org.argeo.cms.ui.viewers.Section;
import org.argeo.cms.ui.viewers.SectionPart;
+import org.argeo.jcr.Jcr;
import org.argeo.jcr.JcrException;
import org.eclipse.rap.fileupload.FileUploadHandler;
import org.eclipse.rap.fileupload.FileUploadListener;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
private final Section section;
- private final CmsImageManager imageManager;
+ private final CmsImageManager<Control, Node> imageManager;
private FileUploadHandler currentUploadHandler = null;
private FileUploadListener fileUploadListener;
- public Img(Composite parent, int swtStyle, Node imgNode, Point preferredImageSize) throws RepositoryException {
+ public Img(Composite parent, int swtStyle, Node imgNode, Cms2DSize preferredImageSize) throws RepositoryException {
this(Section.findSection(parent), parent, swtStyle, imgNode, preferredImageSize, null);
setStyle(TextStyles.TEXT_IMAGE);
}
setStyle(TextStyles.TEXT_IMAGE);
}
- public Img(Composite parent, int swtStyle, Node imgNode, CmsImageManager imageManager) throws RepositoryException {
+ public Img(Composite parent, int swtStyle, Node imgNode, CmsImageManager<Control, Node> imageManager)
+ throws RepositoryException {
this(Section.findSection(parent), parent, swtStyle, imgNode, null, imageManager);
setStyle(TextStyles.TEXT_IMAGE);
}
- Img(Section section, Composite parent, int swtStyle, Node imgNode, Point preferredImageSize,
- CmsImageManager imageManager) throws RepositoryException {
+ Img(Section section, Composite parent, int swtStyle, Node imgNode, Cms2DSize preferredImageSize,
+ CmsImageManager<Control, Node> imageManager) throws RepositoryException {
super(parent, swtStyle, imgNode, false, preferredImageSize);
this.section = section;
- this.imageManager = imageManager != null ? imageManager : CmsView.getCmsView(section).getImageManager();
- CmsUiUtils.style(this, TextStyles.TEXT_IMG);
+ this.imageManager = imageManager != null ? imageManager
+ : (CmsImageManager<Control, Node>) CmsSwtUtils.getCmsView(section).getImageManager();
+ CmsSwtUtils.style(this, TextStyles.TEXT_IMG);
}
@Override
@Override
protected synchronized Boolean load(Control lbl) {
- try {
- Node imgNode = getNode();
- boolean loaded = imageManager.load(imgNode, lbl, getPreferredImageSize());
- // getParent().layout();
- return loaded;
- } catch (RepositoryException e) {
- throw new JcrException("Cannot load " + getNodeId() + " from image manager", e);
- }
+ Node imgNode = getNode();
+ boolean loaded = imageManager.load(imgNode, lbl, getPreferredImageSize());
+ // getParent().layout();
+ return loaded;
}
- protected Control createImageChooser(Composite box, String style) throws RepositoryException {
+ protected Node getUploadFolder() {
+ return Jcr.getParent(getNode());
+ }
+
+ protected String getUploadName() {
Node node = getNode();
- JcrFileUploadReceiver receiver = new JcrFileUploadReceiver(node.getParent(),
- node.getName() + '[' + node.getIndex() + ']', imageManager);
+ return Jcr.getName(node) + '[' + Jcr.getIndex(node) + ']';
+ }
+
+ protected CmsImageManager<Control, Node> getImageManager() {
+ return imageManager;
+ }
+
+ protected Control createImageChooser(Composite box, String style) throws RepositoryException {
+ JcrFileUploadReceiver receiver = new JcrFileUploadReceiver(this, getUploadFolder(), getUploadName(),
+ imageManager);
if (currentUploadHandler != null)
currentUploadHandler.dispose();
currentUploadHandler = prepareUpload(receiver);
final ServerPushSession pushSession = new ServerPushSession();
final FileUpload fileUpload = new FileUpload(box, SWT.NONE);
- CmsUiUtils.style(fileUpload, style);
+ CmsSwtUtils.style(fileUpload, style);
fileUpload.addSelectionListener(new SelectionAdapter() {
private static final long serialVersionUID = -9158471843941668562L;