]>
git.argeo.org Git - gpl/argeo-suite.git/blob - publishing/org.argeo.publishing.ui/src/org/argeo/docbook/ui/TextEditorHeader.java
1 package org
.argeo
.docbook
.ui
;
3 import java
.util
.Observable
;
4 import java
.util
.Observer
;
6 import org
.argeo
.cms
.ui
.CmsEditable
;
7 import org
.argeo
.cms
.ui
.util
.CmsUiUtils
;
8 import org
.argeo
.cms
.ui
.widgets
.TextStyles
;
9 import org
.eclipse
.swt
.SWT
;
10 import org
.eclipse
.swt
.events
.SelectionEvent
;
11 import org
.eclipse
.swt
.events
.SelectionListener
;
12 import org
.eclipse
.swt
.widgets
.Button
;
13 import org
.eclipse
.swt
.widgets
.Composite
;
15 /** Adds editing capabilities to a page editing text */
16 public class TextEditorHeader
implements SelectionListener
, Observer
{
17 private static final long serialVersionUID
= 4186756396045701253L;
19 private final CmsEditable cmsEditable
;
20 private Button publish
;
22 private Composite parent
;
23 private Composite display
;
24 private Object layoutData
;
26 public TextEditorHeader(CmsEditable cmsEditable
, Composite parent
, int style
) {
27 this.cmsEditable
= cmsEditable
;
29 if (this.cmsEditable
instanceof Observable
)
30 ((Observable
) this.cmsEditable
).addObserver(this);
34 protected void refresh() {
35 if (display
!= null && !display
.isDisposed())
39 if (cmsEditable
.isEditing()) {
40 display
= new Composite(parent
, SWT
.NONE
);
41 // display.setBackgroundMode(SWT.INHERIT_NONE);
42 display
.setLayoutData(layoutData
);
43 display
.setLayout(CmsUiUtils
.noSpaceGridLayout());
44 CmsUiUtils
.style(display
, TextStyles
.TEXT_EDITOR_HEADER
);
45 publish
= new Button(display
, SWT
.FLAT
| SWT
.PUSH
);
46 publish
.setText(getPublishButtonLabel());
47 CmsUiUtils
.style(publish
, TextStyles
.TEXT_EDITOR_HEADER
);
48 publish
.addSelectionListener(this);
49 display
.moveAbove(null);
54 private String
getPublishButtonLabel() {
55 if (cmsEditable
.isEditing())
62 public void widgetSelected(SelectionEvent e
) {
63 if (e
.getSource() == publish
) {
64 if (cmsEditable
.isEditing()) {
65 cmsEditable
.stopEditing();
67 cmsEditable
.startEditing();
69 // publish.setText(getPublishButtonLabel());
74 public void widgetDefaultSelected(SelectionEvent e
) {
78 public void update(Observable o
, Object arg
) {
79 if (o
== cmsEditable
) {
80 // publish.setText(getPublishButtonLabel());
85 public void setLayoutData(Object layoutData
) {
86 this.layoutData
= layoutData
;
87 if (display
!= null && !display
.isDisposed())
88 display
.setLayoutData(layoutData
);