]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms.ui/src/org/argeo/cms/text/TextEditorHeader.java
1 package org
.argeo
.cms
.text
;
3 import java
.util
.Observable
;
4 import java
.util
.Observer
;
6 import org
.argeo
.cms
.ui
.CmsEditable
;
7 import org
.argeo
.cms
.util
.CmsUtils
;
8 import org
.eclipse
.swt
.SWT
;
9 import org
.eclipse
.swt
.events
.SelectionEvent
;
10 import org
.eclipse
.swt
.events
.SelectionListener
;
11 import org
.eclipse
.swt
.widgets
.Button
;
12 import org
.eclipse
.swt
.widgets
.Composite
;
14 /** Adds editing capabilities to a page editing text */
15 public class TextEditorHeader
implements SelectionListener
, Observer
{
16 private static final long serialVersionUID
= 4186756396045701253L;
18 private final CmsEditable cmsEditable
;
19 private Button publish
;
21 private Composite parent
;
22 private Composite display
;
23 private Object layoutData
;
25 public TextEditorHeader(CmsEditable cmsEditable
, Composite parent
, int style
) {
26 this.cmsEditable
= cmsEditable
;
28 if (this.cmsEditable
instanceof Observable
)
29 ((Observable
) this.cmsEditable
).addObserver(this);
33 protected void refresh() {
34 if (display
!= null && !display
.isDisposed())
38 if (cmsEditable
.isEditing()) {
39 display
= new Composite(parent
, SWT
.NONE
);
40 // display.setBackgroundMode(SWT.INHERIT_NONE);
41 display
.setLayoutData(layoutData
);
42 display
.setLayout(CmsUtils
.noSpaceGridLayout());
43 CmsUtils
.style(display
, TextStyles
.TEXT_EDITOR_HEADER
);
44 publish
= new Button(display
, SWT
.FLAT
| SWT
.PUSH
);
45 publish
.setText(getPublishButtonLabel());
46 CmsUtils
.style(publish
, TextStyles
.TEXT_EDITOR_HEADER
);
47 publish
.addSelectionListener(this);
48 display
.moveAbove(null);
53 private String
getPublishButtonLabel() {
54 if (cmsEditable
.isEditing())
61 public void widgetSelected(SelectionEvent e
) {
62 if (e
.getSource() == publish
) {
63 if (cmsEditable
.isEditing()) {
64 cmsEditable
.stopEditing();
66 cmsEditable
.startEditing();
68 // publish.setText(getPublishButtonLabel());
73 public void widgetDefaultSelected(SelectionEvent e
) {
77 public void update(Observable o
, Object arg
) {
78 if (o
== cmsEditable
) {
79 // publish.setText(getPublishButtonLabel());
84 public void setLayoutData(Object layoutData
) {
85 this.layoutData
= layoutData
;
86 if (display
!= null && !display
.isDisposed())
87 display
.setLayoutData(layoutData
);