]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms.ui/src/org/argeo/cms/ui/widgets/EditableImage.java
1 package org
.argeo
.cms
.ui
.widgets
;
4 import javax
.jcr
.RepositoryException
;
6 import org
.apache
.commons
.logging
.Log
;
7 import org
.apache
.commons
.logging
.LogFactory
;
8 import org
.argeo
.cms
.ui
.util
.CmsUiUtils
;
9 import org
.eclipse
.swt
.graphics
.Point
;
10 import org
.eclipse
.swt
.widgets
.Composite
;
11 import org
.eclipse
.swt
.widgets
.Control
;
12 import org
.eclipse
.swt
.widgets
.Label
;
13 import org
.eclipse
.swt
.widgets
.Text
;
15 /** A stylable and editable image. */
16 public abstract class EditableImage
extends StyledControl
{
17 private static final long serialVersionUID
= -5689145523114022890L;
18 private final static Log log
= LogFactory
.getLog(EditableImage
.class);
20 private Point preferredImageSize
;
21 private Boolean loaded
= false;
23 public EditableImage(Composite parent
, int swtStyle
) {
24 super(parent
, swtStyle
);
27 public EditableImage(Composite parent
, int swtStyle
,
28 Point preferredImageSize
) {
29 super(parent
, swtStyle
);
30 this.preferredImageSize
= preferredImageSize
;
33 public EditableImage(Composite parent
, int style
, Node node
,
34 boolean cacheImmediately
, Point preferredImageSize
)
35 throws RepositoryException
{
36 super(parent
, style
, node
, cacheImmediately
);
37 this.preferredImageSize
= preferredImageSize
;
41 protected void setContainerLayoutData(Composite composite
) {
42 // composite.setLayoutData(fillWidth());
46 protected void setControlLayoutData(Control control
) {
47 // control.setLayoutData(fillWidth());
50 /** To be overriden. */
51 protected String
createImgTag() throws RepositoryException
{
52 return CmsUiUtils
.noImg(preferredImageSize
!= null ? preferredImageSize
56 protected Label
createLabel(Composite box
, String style
) {
57 Label lbl
= new Label(box
, getStyle());
58 // lbl.setLayoutData(CmsUiUtils.fillWidth());
59 CmsUiUtils
.markup(lbl
);
60 CmsUiUtils
.style(lbl
, style
);
61 if (mouseListener
!= null)
62 lbl
.addMouseListener(mouseListener
);
67 /** To be overriden. */
68 protected synchronized Boolean
load(Control control
) {
71 imgTag
= createImgTag();
72 } catch (Exception e
) {
73 // throw new CmsException("Cannot retrieve image", e);
74 log
.error("Cannot retrieve image", e
);
75 imgTag
= CmsUiUtils
.noImg(preferredImageSize
);
81 imgTag
= CmsUiUtils
.noImg(preferredImageSize
);
84 if (control
!= null) {
85 ((Label
) control
).setText(imgTag
);
86 control
.setSize(preferredImageSize
!= null ? preferredImageSize
95 public void setPreferredSize(Point size
) {
96 this.preferredImageSize
= size
;
98 load((Label
) getControl());
102 protected Text
createText(Composite box
, String style
) {
103 Text text
= new Text(box
, getStyle());
104 CmsUiUtils
.style(text
, style
);
108 public Point
getPreferredImageSize() {
109 return preferredImageSize
;