1 package org
.argeo
.cms
.swt
.acr
;
3 import org
.argeo
.api
.acr
.Content
;
4 import org
.argeo
.api
.acr
.NamespaceUtils
;
5 import org
.argeo
.api
.acr
.spi
.ProvidedContent
;
6 import org
.argeo
.api
.cms
.ux
.Cms2DSize
;
7 import org
.argeo
.api
.cms
.ux
.CmsImageManager
;
8 import org
.argeo
.cms
.swt
.CmsSwtUtils
;
9 import org
.argeo
.cms
.swt
.widgets
.EditableImage
;
10 import org
.argeo
.cms
.ux
.acr
.ContentPart
;
11 import org
.argeo
.eclipse
.ui
.specific
.CmsFileUpload
;
12 import org
.eclipse
.swt
.SWT
;
13 import org
.eclipse
.swt
.events
.SelectionAdapter
;
14 import org
.eclipse
.swt
.events
.SelectionEvent
;
15 import org
.eclipse
.swt
.widgets
.Composite
;
16 import org
.eclipse
.swt
.widgets
.Control
;
18 /** An image within the Argeo Text framework */
19 public class Img
extends EditableImage
implements SwtSectionPart
, ContentPart
{
20 private static final long serialVersionUID
= 6233572783968188476L;
22 private final SwtSection section
;
24 private final CmsImageManager
<Control
, Content
> imageManager
;
25 // private FileUploadHandler currentUploadHandler = null;
26 // private FileUploadListener fileUploadListener;
28 public Img(Composite parent
, int swtStyle
, Content imgNode
, Cms2DSize preferredImageSize
) {
29 this(SwtSection
.findSection(parent
), parent
, swtStyle
, imgNode
, preferredImageSize
, null);
30 // setStyle(TextStyles.TEXT_IMAGE);
33 public Img(Composite parent
, int swtStyle
, Content imgNode
) {
34 this(SwtSection
.findSection(parent
), parent
, swtStyle
, imgNode
, null, null);
35 // setStyle(TextStyles.TEXT_IMAGE);
38 public Img(Composite parent
, int swtStyle
, Content imgNode
, CmsImageManager
<Control
, Content
> imageManager
) {
39 this(SwtSection
.findSection(parent
), parent
, swtStyle
, imgNode
, null, imageManager
);
40 // setStyle(TextStyles.TEXT_IMAGE);
43 Img(SwtSection section
, Composite parent
, int swtStyle
, Content imgNode
, Cms2DSize preferredImageSize
,
44 CmsImageManager
<Control
, Content
> imageManager
) {
45 super(parent
, swtStyle
, preferredImageSize
);
46 this.section
= section
;
47 this.imageManager
= imageManager
!= null ? imageManager
48 : (CmsImageManager
<Control
, Content
>) CmsSwtUtils
.getCmsView(section
).getImageManager();
49 // CmsSwtUtils.style(this, TextStyles.TEXT_IMG);
54 protected Control
createControl(Composite box
, String style
) {
56 return createImageChooser(box
, style
);
58 return createLabel(box
, style
);
63 public synchronized void stopEditing() {
65 // fileUploadListener = null;
69 protected synchronized Boolean
load(Control lbl
) {
70 Content imgNode
= getContent();
71 boolean loaded
= imageManager
.load(imgNode
, lbl
, getPreferredImageSize());
72 // getParent().layout();
76 protected Content
getUploadFolder() {
77 return getContent().getParent();
80 protected String
getUploadName() {
81 Content node
= getContent();
82 // TODO centralise pattern?
83 return NamespaceUtils
.toPrefixedName(node
.getName()) + '[' + node
.getSiblingIndex() + ']';
86 protected CmsImageManager
<Control
, Content
> getImageManager() {
90 protected Control
createImageChooser(Composite box
, String style
) {
91 // JcrFileUploadReceiver receiver = new JcrFileUploadReceiver(this, getUploadFolder(), getUploadName(),
93 // if (currentUploadHandler != null)
94 // currentUploadHandler.dispose();
95 // currentUploadHandler = prepareUpload(receiver);
96 // final ServerPushSession pushSession = new ServerPushSession();
97 final CmsFileUpload fileUpload
= new CmsFileUpload(box
, SWT
.NONE
);
98 CmsSwtUtils
.style(fileUpload
, style
);
99 fileUpload
.addSelectionListener(new SelectionAdapter() {
100 private static final long serialVersionUID
= -9158471843941668562L;
103 public void widgetSelected(SelectionEvent e
) {
104 // pushSession.start();
105 // fileUpload.submit(currentUploadHandler.getUploadUrl());
111 // protected FileUploadHandler prepareUpload(FileUploadReceiver receiver) {
112 // final FileUploadHandler uploadHandler = new FileUploadHandler(receiver);
113 // if (fileUploadListener != null)
114 // uploadHandler.addUploadListener(fileUploadListener);
115 // return uploadHandler;
119 public SwtSection
getSection() {
123 // public void setFileUploadListener(FileUploadListener fileUploadListener) {
124 // this.fileUploadListener = fileUploadListener;
125 // if (currentUploadHandler != null)
126 // currentUploadHandler.addUploadListener(fileUploadListener);
130 public Content
getContent() {
131 return (Content
) getData();
135 public String
getPartId() {
136 return ((ProvidedContent
) getContent()).getSessionLocalId();
140 public String
toString() {
141 return "Img #" + getPartId();