X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=org.argeo.cms.ui%2Fsrc%2Forg%2Fargeo%2Fcms%2Fui%2Fwidgets%2FImg.java;h=3a4a60c9ff5ec6d2841f55f1d769ec4debd920be;hb=b71546ddc74d6ca49d252806aafd491c75dfe1fb;hp=258aa9f49eb6006086675cb5f3b6c689fce6af95;hpb=601db57307d66b20ca3da21fabdcfd5b19d965cb;p=lgpl%2Fargeo-commons.git diff --git a/org.argeo.cms.ui/src/org/argeo/cms/ui/widgets/Img.java b/org.argeo.cms.ui/src/org/argeo/cms/ui/widgets/Img.java index 258aa9f49..3a4a60c9f 100644 --- a/org.argeo.cms.ui/src/org/argeo/cms/ui/widgets/Img.java +++ b/org.argeo.cms.ui/src/org/argeo/cms/ui/widgets/Img.java @@ -3,13 +3,14 @@ package org.argeo.cms.ui.widgets; 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; @@ -19,7 +20,6 @@ import org.eclipse.rap.rwt.widgets.FileUpload; 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; @@ -29,11 +29,11 @@ public class Img extends EditableImage implements SectionPart, NodePart { private final Section section; - private final CmsImageManager imageManager; + private final CmsImageManager 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); } @@ -43,17 +43,19 @@ public class Img extends EditableImage implements SectionPart, NodePart { 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 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 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) CmsSwtUtils.getCmsView(section).getImageManager(); + CmsSwtUtils.style(this, TextStyles.TEXT_IMG); } @Override @@ -77,26 +79,34 @@ public class Img extends EditableImage implements SectionPart, NodePart { @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 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;