1 package org
.argeo
.slc
.akb
.ui
.editors
;
3 import org
.argeo
.slc
.akb
.AkbNames
;
4 import org
.argeo
.slc
.akb
.ui
.AkbUiPlugin
;
5 import org
.argeo
.slc
.akb
.ui
.AkbUiUtils
;
6 import org
.argeo
.slc
.akb
.ui
.composites
.ActiveItemHeaderComposite
;
7 import org
.argeo
.slc
.akb
.ui
.utils
.Refreshable
;
8 import org
.argeo
.slc
.akb
.utils
.AkbJcrUtils
;
9 import org
.eclipse
.swt
.SWT
;
10 import org
.eclipse
.swt
.graphics
.Font
;
11 import org
.eclipse
.swt
.layout
.GridData
;
12 import org
.eclipse
.swt
.layout
.GridLayout
;
13 import org
.eclipse
.swt
.widgets
.Composite
;
14 import org
.eclipse
.swt
.widgets
.Group
;
15 import org
.eclipse
.swt
.widgets
.Text
;
16 import org
.eclipse
.ui
.forms
.AbstractFormPart
;
17 import org
.eclipse
.ui
.forms
.IManagedForm
;
20 * Display and edit a SSH Command Template ITEM
22 public class SshCommandTemplateEditor
extends AkbItemTemplateEditor
implements
25 public final static String ID
= AkbUiPlugin
.PLUGIN_ID
26 + ".sshCommandTemplateEditor";
28 private Text outputDisplay
;
31 protected String
getEditorId() {
36 protected void populateTestPage(Composite parent
, IManagedForm managedForm
) {
37 parent
.setLayout(AkbUiUtils
.gridLayoutNoBorder());
39 ActiveItemHeaderComposite header
= new ActiveItemHeaderComposite(
40 parent
, SWT
.NONE
, getToolkit(), managedForm
, getEnvNode(),
41 getAkbNode(), getAkbService());
42 header
.setLayoutData(new GridData(SWT
.FILL
, SWT
.TOP
, true, false));
44 outputDisplay
= getToolkit().createText(parent
, "", SWT
.MULTI
);
45 outputDisplay
.setFont(new Font(parent
.getDisplay(), "Monospaced", 10,
47 outputDisplay
.setEditable(false);
49 .setLayoutData(new GridData(SWT
.FILL
, SWT
.FILL
, true, true));
53 public void forceRefresh(Object object
) {
54 String output
= getAkbService().executeCommand(getEnvNode(),
56 if (AkbJcrUtils
.checkNotEmptyString(output
))
57 outputDisplay
.setText(output
);
59 outputDisplay
.setText("");
63 protected void populateBottomPart(Composite parent
, IManagedForm managedForm
) {
64 parent
.setLayout(AkbUiUtils
.gridLayoutNoBorder());
65 Group group
= new Group(parent
, SWT
.NO_FOCUS
);
66 getToolkit().adapt(group
, false, false);
67 group
.setLayoutData(new GridData(SWT
.FILL
, SWT
.FILL
, true, true));
69 group
.setLayout(new GridLayout(1, false));
71 // first line: Description
72 getToolkit().createLabel(group
, "Enter below a valid SSH command");
74 // 2nd line: the query
75 final Text queryTxt
= getToolkit().createText(group
, "",
76 SWT
.BORDER
| SWT
.MULTI
| SWT
.WRAP
);
77 GridData gd
= new GridData(SWT
.FILL
, SWT
.FILL
, true, true);
78 queryTxt
.setLayoutData(gd
);
81 final AbstractFormPart part
= new AbstractFormPart() {
82 public void refresh() {
84 // update display value
85 AkbUiUtils
.refreshFormTextWidget(queryTxt
, getAkbNode(),
86 AkbNames
.AKB_COMMAND_TEXT
);
90 AkbUiUtils
.addTextModifyListener(queryTxt
, getAkbNode(),
91 AkbNames
.AKB_COMMAND_TEXT
, part
);
92 managedForm
.addPart(part
);