2 * Copyright (C) 2007-2012 Argeo GmbH
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
16 package org
.argeo
.slc
.client
.ui
.dist
.editors
;
18 import javax
.jcr
.Node
;
19 import javax
.jcr
.RepositoryException
;
21 import org
.argeo
.ArgeoException
;
22 import org
.argeo
.slc
.SlcException
;
23 import org
.argeo
.slc
.jcr
.SlcNames
;
24 import org
.eclipse
.swt
.SWT
;
25 import org
.eclipse
.swt
.layout
.GridData
;
26 import org
.eclipse
.swt
.layout
.GridLayout
;
27 import org
.eclipse
.swt
.widgets
.Composite
;
28 import org
.eclipse
.swt
.widgets
.Text
;
29 import org
.eclipse
.ui
.forms
.IManagedForm
;
30 import org
.eclipse
.ui
.forms
.editor
.FormEditor
;
31 import org
.eclipse
.ui
.forms
.editor
.FormPage
;
32 import org
.eclipse
.ui
.forms
.widgets
.FormToolkit
;
33 import org
.eclipse
.ui
.forms
.widgets
.ScrolledForm
;
34 import org
.eclipse
.ui
.forms
.widgets
.Section
;
37 * Show the details for a given bundle.
39 public class ModularDistVersionDetailPage
extends FormPage
implements SlcNames
{
41 final static String PAGE_ID
= "ModularDistVersionDetailPage";
44 private Node modularDistVersion
;
47 private FormToolkit tk
;
49 public ModularDistVersionDetailPage(FormEditor formEditor
, String title
,
50 Node modularDistVersion
) {
51 super(formEditor
, PAGE_ID
, title
);
52 this.modularDistVersion
= modularDistVersion
;
56 protected void createFormContent(IManagedForm managedForm
) {
57 // General settings for this page
58 ScrolledForm form
= managedForm
.getForm();
59 tk
= managedForm
.getToolkit();
60 Composite body
= form
.getBody();
62 GridLayout layout
= new GridLayout(1, false);
63 layout
.marginWidth
= 5;
64 layout
.marginRight
= 15;
65 layout
.verticalSpacing
= 0;
66 body
.setLayout(layout
);
68 form
.setText(modularDistVersion
.hasProperty(SLC_NAME
) ? modularDistVersion
69 .getProperty(SLC_NAME
).getString() : "");
70 } catch (RepositoryException re
) {
71 throw new SlcException("Unable to get slc:name for node "
72 + modularDistVersion
, re
);
76 Composite mavenSnipet
= tk
.createComposite(body
);
77 mavenSnipet
.setLayoutData(new GridData(SWT
.FILL
, SWT
.FILL
, true, true));
78 populateMavenSnippetPart(mavenSnipet
);
81 private void populateMavenSnippetPart(Composite parent
) {
82 GridLayout layout
= new GridLayout(1, false);
83 layout
.marginWidth
= layout
.horizontalSpacing
= layout
.horizontalSpacing
= layout
.marginHeight
= 0;
84 parent
.setLayout(layout
);
86 Section section
= tk
.createSection(parent
, Section
.TITLE_BAR
87 | Section
.DESCRIPTION
);
88 section
.setText("Maven");
89 section
.setDescription("In order to rely on the versions defined by this distribution, "
90 + "add the below tag to the dependency management of your parent pom.");
91 section
.setLayoutData(new GridData(SWT
.FILL
, SWT
.FILL
, true, true));
92 Text snippetTxt
= createMavenSnippet(section
);
93 section
.setClient(snippetTxt
);
96 // /////////////////////
98 /** Creates a text area with corresponding maven snippet */
99 private Text
createMavenSnippet(Composite parent
) {
100 Text mavenSnippet
= new Text(parent
, SWT
.MULTI
| SWT
.WRAP
);
101 GridData gd
= new GridData(GridData
.FILL_HORIZONTAL
);
102 gd
.grabExcessHorizontalSpace
= true;
104 mavenSnippet
.setLayoutData(gd
);
105 mavenSnippet
.setText(generateXmlSnippet());
106 mavenSnippet
.setEditable(false);
110 private String
generateXmlSnippet() {
112 StringBuffer sb
= new StringBuffer();
113 sb
.append("<dependency>\n");
114 sb
.append("\t<groupId>");
115 sb
.append(modularDistVersion
.getProperty(SLC_GROUP_ID
).getString());
116 sb
.append("</groupId>\n");
117 sb
.append("\t<artifactId>");
118 sb
.append(modularDistVersion
.getProperty(SLC_ARTIFACT_ID
)
120 sb
.append("</artifactId>\n");
121 sb
.append("\t<version>");
122 sb
.append(modularDistVersion
.getProperty(SLC_ARTIFACT_VERSION
)
124 sb
.append("</version>\n");
125 sb
.append("\t<type>pom</type>\n");
126 sb
.append("\t<scope>import</scope>\n");
127 sb
.append("</dependency>");
128 return sb
.toString();
129 } catch (RepositoryException re
) {
130 throw new ArgeoException(
131 "unexpected error while generating maven snippet");