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 connection to a file on a distant accessible by SSH server
22 public class SshFileTemplateEditor
extends AkbItemTemplateEditor
implements
25 public final static String ID
= AkbUiPlugin
.PLUGIN_ID
26 + ".sshFileTemplateEditor";
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));
54 public void forceRefresh(Object object
) {
55 String output
= getAkbService()
56 .retrieveFile(getEnvNode(), getAkbNode());
57 if (AkbJcrUtils
.checkNotEmptyString(output
))
58 outputDisplay
.setText(output
);
60 outputDisplay
.setText("");
64 protected void populateBottomPart(Composite parent
, IManagedForm managedForm
) {
65 parent
.setLayout(AkbUiUtils
.gridLayoutNoBorder());
66 Group group
= new Group(parent
, SWT
.NO_FOCUS
);
67 getToolkit().adapt(group
, false, false);
68 group
.setLayoutData(new GridData(SWT
.FILL
, SWT
.FILL
, true, true));
70 group
.setLayout(new GridLayout(1, false));
72 // first line: Description
73 getToolkit().createLabel(group
,
74 "Enter below a valid path in the target server");
77 final Text pathTxt
= getToolkit().createText(group
, "",
78 SWT
.BORDER
| SWT
.SINGLE
);
79 GridData gd
= new GridData(SWT
.FILL
, SWT
.TOP
, true, false);
80 pathTxt
.setLayoutData(gd
);
83 final AbstractFormPart part
= new AbstractFormPart() {
84 public void refresh() {
86 // update display value
87 AkbUiUtils
.refreshFormTextWidget(pathTxt
, getAkbNode(),
88 AkbNames
.AKB_FILE_PATH
);
92 AkbUiUtils
.addTextModifyListener(pathTxt
, getAkbNode(),
93 AkbNames
.AKB_FILE_PATH
, part
);
94 managedForm
.addPart(part
);