]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - swt/org.argeo.cms.swt/src/org/argeo/cms/swt/acr/AcrSwtImageManager.java
1 package org
.argeo
.cms
.swt
.acr
;
3 import java
.io
.IOException
;
4 import java
.io
.InputStream
;
5 import java
.util
.Optional
;
7 import org
.argeo
.api
.acr
.Content
;
8 import org
.argeo
.api
.cms
.ux
.Cms2DSize
;
9 import org
.argeo
.cms
.acr
.ContentUtils
;
10 import org
.argeo
.cms
.acr
.SvgAttrs
;
11 import org
.argeo
.cms
.swt
.AbstractSwtImageManager
;
12 import org
.argeo
.cms
.ux
.CmsUxUtils
;
13 import org
.eclipse
.swt
.graphics
.ImageData
;
15 /** Implementation of {@link AbstractSwtImageManager} based on ACR. */
16 public class AcrSwtImageManager
extends AbstractSwtImageManager
<Content
> {
19 public String
getImageUrl(Content node
) {
20 return getDataPathForUrl(node
);
24 public String
uploadImage(Content context
, Content uploadFolder
, String fileName
, InputStream in
,
26 throw new UnsupportedOperationException();
30 protected ImageData
getSwtImageData(Content node
) {
31 try (InputStream in
= node
.open(InputStream
.class)) {
32 ImageData imageData
= new ImageData(in
);
34 } catch (IOException e
) {
35 throw new RuntimeException(e
);
40 protected String
noImg(Cms2DSize size
) {
42 return CmsUxUtils
.img(dataPath
, size
);
45 protected String
getDataPathForUrl(Content content
) {
46 return ContentUtils
.getDataPathForUrl(content
);
50 public Cms2DSize
getImageSize(Content node
) {
52 Optional
<Integer
> width
= node
.get(SvgAttrs
.width
, Integer
.class);
53 Optional
<Integer
> height
= node
.get(SvgAttrs
.height
, Integer
.class);
54 if (!width
.isEmpty() && !height
.isEmpty())
55 return new Cms2DSize(width
.get(), height
.get());
56 return super.getImageSize(node
);