4 package eu
.etaxonomy
.taxeditor
.ui
.element
;
6 import org
.eclipse
.swt
.SWT
;
7 import org
.eclipse
.swt
.events
.ModifyEvent
;
8 import org
.eclipse
.swt
.events
.ModifyListener
;
9 import org
.eclipse
.swt
.events
.SelectionListener
;
10 import org
.eclipse
.swt
.graphics
.Color
;
11 import org
.eclipse
.swt
.widgets
.Button
;
12 import org
.eclipse
.swt
.widgets
.Composite
;
13 import org
.eclipse
.swt
.widgets
.Label
;
14 import org
.eclipse
.swt
.widgets
.Text
;
16 import eu
.etaxonomy
.cdm
.common
.CdmUtils
;
17 import eu
.etaxonomy
.taxeditor
.ui
.campanula
.compatibility
.ICdmFormElement
;
20 * <p>TextActionElement class.</p>
25 public class TextActionElement
extends AbstractCdmFormElement
implements ModifyListener
, ISelectable
{
29 private Button button
;
30 private Composite box
;
33 * <p>Constructor for TextActionElement.</p>
36 * @param toolkit a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
37 * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
38 * @param labelString a {@link java.lang.String} object.
39 * @param buttonLabel a {@link java.lang.String} object.
40 * @param initialText a {@link java.lang.String} object.
42 protected TextActionElement(CdmFormFactory toolkit
, ICdmFormElement parentElement
, String labelString
, String buttonLabel
, String initialText
, int style
) {
43 super(toolkit
, parentElement
);
45 label
= toolkit
.createLabel(getLayoutComposite(), labelString
, SWT
.WRAP
);
48 box
= formFactory
.createComposite(getLayoutComposite());
49 box
.setLayout(LayoutConstants
.LAYOUT(2, false));
50 box
.setLayoutData(LayoutConstants
.FILL_HORIZONTALLY());
53 text
= toolkit
.createText(box
, "", style
);
55 text
.setLayoutData(LayoutConstants
.FILL_HORIZONTALLY());
57 setText(CdmUtils
.Nz(initialText
));
59 button
= toolkit
.createButton(box
, buttonLabel
, SWT
.PUSH
);
64 * <p>Setter for the field <code>text</code>.</p>
66 * @param string a {@link java.lang.String} object.
68 public void setText(String string
) {
69 text
.setText(CdmUtils
.Nz(string
));
73 * <p>Getter for the field <code>text</code>.</p>
77 public String
getText() {
78 return text
.getText();
82 * <p>addSelectionListener</p>
84 * @param listener a {@link org.eclipse.swt.events.SelectionListener} object.
86 public void addSelectionListener(SelectionListener listener
){
87 button
.addSelectionListener(listener
);
91 * <p>removeSelectionListener</p>
93 * @param listener a {@link org.eclipse.swt.events.SelectionListener} object.
95 public void removeSelectionListener(SelectionListener listener
){
96 button
.removeSelectionListener(listener
);
100 * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent)
103 public void modifyText(ModifyEvent e
) {
104 propertyChange(null);
108 * <p>addModifyListener</p>
110 * @param listener a {@link org.eclipse.swt.events.ModifyListener} object.
112 public void addModifyListener(ModifyListener listener
){
113 text
.addModifyListener(listener
);
117 * <p>removeModifyListener</p>
119 * @param listener a {@link org.eclipse.swt.events.ModifyListener} object.
121 public void removeModifyListener(ModifyListener listener
){
122 text
.removeModifyListener(listener
);
127 public void setBackground(Color color
) {
128 label
.setBackground(color
);
132 public void setSelected(boolean selected
) {
133 setBackground(selected ? SELECTED
: getPersistentBackground());