1 package org
.argeo
.slc
.client
.ui
.dist
.editors
;
4 import javax
.jcr
.RepositoryException
;
6 import org
.argeo
.slc
.SlcException
;
7 import org
.argeo
.slc
.SlcNames
;
8 import org
.eclipse
.swt
.SWT
;
9 import org
.eclipse
.swt
.layout
.GridData
;
10 import org
.eclipse
.swt
.layout
.GridLayout
;
11 import org
.eclipse
.swt
.widgets
.Composite
;
12 import org
.eclipse
.swt
.widgets
.Text
;
13 import org
.eclipse
.ui
.forms
.IManagedForm
;
14 import org
.eclipse
.ui
.forms
.editor
.FormEditor
;
15 import org
.eclipse
.ui
.forms
.editor
.FormPage
;
16 import org
.eclipse
.ui
.forms
.widgets
.FormToolkit
;
17 import org
.eclipse
.ui
.forms
.widgets
.ScrolledForm
;
18 import org
.eclipse
.ui
.forms
.widgets
.Section
;
20 /** Show the details for a given bundle. */
21 public class ModularDistVersionDetailPage
extends FormPage
implements SlcNames
{
23 final static String PAGE_ID
= "ModularDistVersionDetailPage";
26 private Node modularDistVersion
;
29 private FormToolkit tk
;
31 public ModularDistVersionDetailPage(FormEditor formEditor
, String title
,
32 Node modularDistVersion
) {
33 super(formEditor
, PAGE_ID
, title
);
34 this.modularDistVersion
= modularDistVersion
;
38 protected void createFormContent(IManagedForm managedForm
) {
39 // General settings for this page
40 ScrolledForm form
= managedForm
.getForm();
41 tk
= managedForm
.getToolkit();
42 Composite body
= form
.getBody();
44 GridLayout layout
= new GridLayout(1, false);
45 layout
.marginWidth
= 5;
46 layout
.marginRight
= 15;
47 layout
.verticalSpacing
= 0;
48 body
.setLayout(layout
);
50 form
.setText(modularDistVersion
.hasProperty(SLC_NAME
) ? modularDistVersion
51 .getProperty(SLC_NAME
).getString() : "");
52 } catch (RepositoryException re
) {
53 throw new SlcException("Unable to get slc:name for node "
54 + modularDistVersion
, re
);
58 Composite mavenSnipet
= tk
.createComposite(body
);
59 mavenSnipet
.setLayoutData(new GridData(SWT
.FILL
, SWT
.FILL
, true, true));
60 populateMavenSnippetPart(mavenSnipet
);
63 private void populateMavenSnippetPart(Composite parent
) {
64 GridLayout layout
= new GridLayout(1, false);
65 layout
.marginWidth
= layout
.horizontalSpacing
= layout
.horizontalSpacing
= layout
.marginHeight
= 0;
66 parent
.setLayout(layout
);
68 Section section
= tk
.createSection(parent
, Section
.TITLE_BAR
69 | Section
.DESCRIPTION
);
70 section
.setText("Maven");
71 section
.setDescription("In order to rely on the versions defined by this distribution, "
72 + "add the below tag to the dependency management of your parent pom.");
73 section
.setLayoutData(new GridData(SWT
.FILL
, SWT
.FILL
, true, true));
74 Text snippetTxt
= createMavenSnippet(section
);
75 section
.setClient(snippetTxt
);
78 // /////////////////////
80 /** Creates a text area with corresponding maven snippet */
81 private Text
createMavenSnippet(Composite parent
) {
82 Text mavenSnippet
= new Text(parent
, SWT
.MULTI
| SWT
.WRAP
);
83 GridData gd
= new GridData(GridData
.FILL_HORIZONTAL
);
84 gd
.grabExcessHorizontalSpace
= true;
86 mavenSnippet
.setLayoutData(gd
);
87 mavenSnippet
.setText(generateXmlSnippet());
88 mavenSnippet
.setEditable(false);
92 private String
generateXmlSnippet() {
94 StringBuffer sb
= new StringBuffer();
95 sb
.append("<dependency>\n");
96 sb
.append("\t<groupId>");
97 sb
.append(modularDistVersion
.getProperty(SLC_GROUP_ID
).getString());
98 sb
.append("</groupId>\n");
99 sb
.append("\t<artifactId>");
100 sb
.append(modularDistVersion
.getProperty(SLC_ARTIFACT_ID
)
102 sb
.append("</artifactId>\n");
103 sb
.append("\t<version>");
104 sb
.append(modularDistVersion
.getProperty(SLC_ARTIFACT_VERSION
)
106 sb
.append("</version>\n");
107 sb
.append("\t<type>pom</type>\n");
108 sb
.append("\t<scope>import</scope>\n");
109 sb
.append("</dependency>");
110 return sb
.toString();
111 } catch (RepositoryException re
) {
112 throw new SlcException(
113 "unexpected error while generating maven snippet");