]> git.argeo.org Git - gpl/argeo-slc.git/blob - plugins/org.argeo.slc.akb.ui/src/main/java/org/argeo/slc/akb/ui/editors/SshCommandTemplateEditor.java
Prepare SLC v1.1.15 release
[gpl/argeo-slc.git] / plugins / org.argeo.slc.akb.ui / src / main / java / org / argeo / slc / akb / ui / editors / SshCommandTemplateEditor.java
1 package org.argeo.slc.akb.ui.editors;
2
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;
18
19 /**
20 * Display and edit a SSH Command Template ITEM
21 */
22 public class SshCommandTemplateEditor extends AkbItemTemplateEditor implements
23 Refreshable {
24
25 public final static String ID = AkbUiPlugin.PLUGIN_ID
26 + ".sshCommandTemplateEditor";
27
28 private Text outputDisplay;
29
30 @Override
31 protected String getEditorId() {
32 return ID;
33 }
34
35 @Override
36 protected void populateTestPage(Composite parent, IManagedForm managedForm) {
37 parent.setLayout(AkbUiUtils.gridLayoutNoBorder());
38
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));
43
44 outputDisplay = getToolkit().createText(parent, "", SWT.MULTI);
45 outputDisplay.setFont(new Font(parent.getDisplay(), "Monospaced", 10,
46 SWT.NONE));
47 outputDisplay.setEditable(false);
48 outputDisplay
49 .setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
50 forceRefresh(null);
51 }
52
53 public void forceRefresh(Object object) {
54 String output = getAkbService().executeCommand(getEnvNode(),
55 getAkbNode());
56 if (AkbJcrUtils.checkNotEmptyString(output))
57 outputDisplay.setText(output);
58 else
59 outputDisplay.setText("");
60 }
61
62 @Override
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));
68
69 group.setLayout(new GridLayout(1, false));
70
71 // first line: Description
72 getToolkit().createLabel(group, "Enter below a valid SSH command");
73
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);
79
80 // Part Management
81 final AbstractFormPart part = new AbstractFormPart() {
82 public void refresh() {
83 super.refresh();
84 // update display value
85 AkbUiUtils.refreshFormTextWidget(queryTxt, getAkbNode(),
86 AkbNames.AKB_COMMAND_TEXT);
87 }
88 };
89 // Listeners
90 AkbUiUtils.addTextModifyListener(queryTxt, getAkbNode(),
91 AkbNames.AKB_COMMAND_TEXT, part);
92 managedForm.addPart(part);
93 }
94 }