1 package org
.argeo
.slc
.akb
.ui
.editors
;
4 import javax
.jcr
.Property
;
5 import javax
.jcr
.RepositoryException
;
7 import org
.argeo
.eclipse
.ui
.ErrorFeedback
;
8 import org
.argeo
.slc
.akb
.AkbException
;
9 import org
.argeo
.slc
.akb
.AkbNames
;
10 import org
.argeo
.slc
.akb
.ui
.AkbUiPlugin
;
11 import org
.argeo
.slc
.akb
.ui
.AkbUiUtils
;
12 import org
.argeo
.slc
.akb
.utils
.AkbJcrUtils
;
13 import org
.eclipse
.jface
.dialogs
.MessageDialog
;
14 import org
.eclipse
.swt
.SWT
;
15 import org
.eclipse
.swt
.events
.SelectionAdapter
;
16 import org
.eclipse
.swt
.events
.SelectionEvent
;
17 import org
.eclipse
.swt
.layout
.GridData
;
18 import org
.eclipse
.swt
.layout
.GridLayout
;
19 import org
.eclipse
.swt
.widgets
.Button
;
20 import org
.eclipse
.swt
.widgets
.Composite
;
21 import org
.eclipse
.swt
.widgets
.Group
;
22 import org
.eclipse
.swt
.widgets
.Text
;
23 import org
.eclipse
.ui
.forms
.AbstractFormPart
;
24 import org
.eclipse
.ui
.forms
.IManagedForm
;
27 * Display and edit a connector Alias
29 public class ConnectorAliasEditor
extends AbstractAkbNodeEditor
{
30 // private final static Log log = LogFactory
31 // .getLog(AkbConnectorAliasEditor.class);
33 public final static String ID
= AkbUiPlugin
.PLUGIN_ID
34 + ".connectorAliasEditor";
36 private IManagedForm managedForm
;
37 private Node activeConnector
;
39 /* CONTENT CREATION */
41 public void populateMainPage(Composite parent
, IManagedForm managedForm
) {
42 parent
.setLayout(AkbUiUtils
.gridLayoutNoBorder());
46 this.managedForm
= managedForm
;
47 // enable dynamic change of the active connector
49 activeConnector
= getAkbNode().getNode(
50 AkbNames
.AKB_DEFAULT_TEST_CONNECTOR
);
51 } catch (RepositoryException e
) {
52 throw new AkbException("unable to retrieve active connector node",
56 // First line main info
57 Composite firstLine
= getToolkit()
58 .createComposite(parent
, SWT
.NO_FOCUS
);
59 firstLine
.setLayoutData(new GridData(SWT
.FILL
, SWT
.TOP
, true, false));
60 createConnectorAliasInfoCmp(firstLine
);
62 // Second line define defaut connector and test abilities
63 Composite secondLine
= getToolkit().createComposite(parent
,
65 secondLine
.setLayoutData(new GridData(SWT
.FILL
, SWT
.FILL
, true, true));
66 createDefaultTestConnectorCmp(secondLine
);
70 private void createConnectorAliasInfoCmp(Composite parent
) {
71 parent
.setLayout(new GridLayout(2, false));
74 final Text titleTxt
= getToolkit().createText(parent
, "", SWT
.BORDER
);
75 GridData gd
= new GridData(SWT
.FILL
, SWT
.TOP
, false, false);
76 gd
.minimumWidth
= 200;
78 titleTxt
.setLayoutData(gd
);
81 final Text descTxt
= getToolkit().createText(parent
, "", SWT
.BORDER
);
82 gd
= new GridData(SWT
.FILL
, SWT
.TOP
, true, false);
83 descTxt
.setLayoutData(gd
);
86 final AbstractFormPart part
= new AbstractFormPart() {
87 public void refresh() {
89 // update display value
90 AkbUiUtils
.refreshFormTextWidget(titleTxt
, getAkbNode(),
91 Property
.JCR_TITLE
, "Name");
92 AkbUiUtils
.refreshFormTextWidget(descTxt
, getAkbNode(),
93 Property
.JCR_DESCRIPTION
, "Short description");
97 AkbUiUtils
.addTextModifyListener(titleTxt
, getAkbNode(),
98 Property
.JCR_TITLE
, part
);
99 AkbUiUtils
.addTextModifyListener(descTxt
, getAkbNode(),
100 Property
.JCR_DESCRIPTION
, part
);
102 managedForm
.addPart(part
);
105 protected void updatePartNameAndToolTip() {
106 super.updatePartNameAndToolTip();
107 // TODO update editor image
110 private void createDefaultTestConnectorCmp(Composite parent
) {
111 String groupTitle
= "Default test instance";
112 parent
.setLayout(new GridLayout());
113 Group group
= new Group(parent
, SWT
.NONE
);
114 group
.setLayoutData(new GridData(SWT
.FILL
, SWT
.FILL
, true, true));
115 getToolkit().adapt(group
, false, false);
117 group
.setText(groupTitle
);
118 group
.setLayout(AkbUiUtils
.gridLayoutNoBorder());
121 Composite firstLine
= getToolkit().createComposite(group
);
122 firstLine
.setLayoutData(new GridData(SWT
.FILL
, SWT
.FILL
, true, true));
123 firstLine
.setLayout(new GridLayout(2, false));
125 getToolkit().createLabel(firstLine
, "URL");
126 final Text urlTxt
= getToolkit().createText(firstLine
, "", SWT
.BORDER
);
127 urlTxt
.setLayoutData(new GridData(SWT
.FILL
, SWT
.TOP
, true, false));
129 getToolkit().createLabel(firstLine
, "User");
130 final Text userTxt
= getToolkit().createText(firstLine
, "", SWT
.BORDER
);
131 userTxt
.setLayoutData(new GridData(SWT
.FILL
, SWT
.TOP
, true, false));
133 final Button testBtn
= getToolkit().createButton(firstLine
,
134 "Test connection", SWT
.PUSH
);
135 // testBtn.setLayoutData(new GridData(SWT.RIGHT, SWT.TOP, false,
139 final AbstractFormPart part
= new AbstractFormPart() {
140 public void refresh() {
142 // update display value
143 AkbUiUtils
.refreshFormTextWidget(urlTxt
, activeConnector
,
144 AkbNames
.AKB_CONNECTOR_URL
);
145 AkbUiUtils
.refreshFormTextWidget(userTxt
, activeConnector
,
146 AkbNames
.AKB_CONNECTOR_USER
);
150 AkbUiUtils
.addTextModifyListener(urlTxt
, activeConnector
,
151 AkbNames
.AKB_CONNECTOR_URL
, part
);
152 AkbUiUtils
.addTextModifyListener(userTxt
, activeConnector
,
153 AkbNames
.AKB_CONNECTOR_USER
, part
);
155 testBtn
.addSelectionListener(new SelectionAdapter() {
157 public void widgetSelected(SelectionEvent e
) {
158 boolean testSuccesfull
;
161 testSuccesfull
= getAkbService().testConnector(
163 } catch (Exception e1
) {
164 testSuccesfull
= false;
165 ErrorFeedback
.show("Cannot test connection", e1
);
168 String name
= AkbJcrUtils
.get(activeConnector
,
170 String url
= AkbJcrUtils
.get(activeConnector
,
171 AkbNames
.AKB_CONNECTOR_URL
);
173 String msg
= "to " + name
+ " (" + url
+ ")";
175 MessageDialog
.openInformation(getSite().getShell(),
176 "Test successful", "Successfully connected " + msg
);
178 MessageDialog
.openError(getSite().getShell(),
179 "Test failure", "Unable to connect" + msg
);
183 managedForm
.addPart(part
);
188 protected String
getEditorId() {