]> git.argeo.org Git - gpl/argeo-slc.git/blob - org.argeo.slc.client.ui.dist/src/org/argeo/slc/client/ui/dist/editors/ModularDistVersionDetailPage.java
Adapt to changes in Argeo Commons.
[gpl/argeo-slc.git] / org.argeo.slc.client.ui.dist / src / org / argeo / slc / client / ui / dist / editors / ModularDistVersionDetailPage.java
1 /*
2 * Copyright (C) 2007-2012 Argeo GmbH
3 *
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
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
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.
15 */
16 package org.argeo.slc.client.ui.dist.editors;
17
18 import javax.jcr.Node;
19 import javax.jcr.RepositoryException;
20
21 import org.argeo.slc.SlcException;
22 import org.argeo.slc.SlcNames;
23 import org.eclipse.swt.SWT;
24 import org.eclipse.swt.layout.GridData;
25 import org.eclipse.swt.layout.GridLayout;
26 import org.eclipse.swt.widgets.Composite;
27 import org.eclipse.swt.widgets.Text;
28 import org.eclipse.ui.forms.IManagedForm;
29 import org.eclipse.ui.forms.editor.FormEditor;
30 import org.eclipse.ui.forms.editor.FormPage;
31 import org.eclipse.ui.forms.widgets.FormToolkit;
32 import org.eclipse.ui.forms.widgets.ScrolledForm;
33 import org.eclipse.ui.forms.widgets.Section;
34
35 /** Show the details for a given bundle. */
36 public class ModularDistVersionDetailPage extends FormPage implements SlcNames {
37
38 final static String PAGE_ID = "ModularDistVersionDetailPage";
39
40 // Business Objects
41 private Node modularDistVersion;
42
43 // This page widgets
44 private FormToolkit tk;
45
46 public ModularDistVersionDetailPage(FormEditor formEditor, String title,
47 Node modularDistVersion) {
48 super(formEditor, PAGE_ID, title);
49 this.modularDistVersion = modularDistVersion;
50 }
51
52 @Override
53 protected void createFormContent(IManagedForm managedForm) {
54 // General settings for this page
55 ScrolledForm form = managedForm.getForm();
56 tk = managedForm.getToolkit();
57 Composite body = form.getBody();
58
59 GridLayout layout = new GridLayout(1, false);
60 layout.marginWidth = 5;
61 layout.marginRight = 15;
62 layout.verticalSpacing = 0;
63 body.setLayout(layout);
64 try {
65 form.setText(modularDistVersion.hasProperty(SLC_NAME) ? modularDistVersion
66 .getProperty(SLC_NAME).getString() : "");
67 } catch (RepositoryException re) {
68 throw new SlcException("Unable to get slc:name for node "
69 + modularDistVersion, re);
70 }
71
72 // Main layout
73 Composite mavenSnipet = tk.createComposite(body);
74 mavenSnipet.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
75 populateMavenSnippetPart(mavenSnipet);
76 }
77
78 private void populateMavenSnippetPart(Composite parent) {
79 GridLayout layout = new GridLayout(1, false);
80 layout.marginWidth = layout.horizontalSpacing = layout.horizontalSpacing = layout.marginHeight = 0;
81 parent.setLayout(layout);
82
83 Section section = tk.createSection(parent, Section.TITLE_BAR
84 | Section.DESCRIPTION);
85 section.setText("Maven");
86 section.setDescription("In order to rely on the versions defined by this distribution, "
87 + "add the below tag to the dependency management of your parent pom.");
88 section.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true));
89 Text snippetTxt = createMavenSnippet(section);
90 section.setClient(snippetTxt);
91 }
92
93 // /////////////////////
94 // HELPERS
95 /** Creates a text area with corresponding maven snippet */
96 private Text createMavenSnippet(Composite parent) {
97 Text mavenSnippet = new Text(parent, SWT.MULTI | SWT.WRAP);
98 GridData gd = new GridData(GridData.FILL_HORIZONTAL);
99 gd.grabExcessHorizontalSpace = true;
100 gd.heightHint = 100;
101 mavenSnippet.setLayoutData(gd);
102 mavenSnippet.setText(generateXmlSnippet());
103 mavenSnippet.setEditable(false);
104 return mavenSnippet;
105 }
106
107 private String generateXmlSnippet() {
108 try {
109 StringBuffer sb = new StringBuffer();
110 sb.append("<dependency>\n");
111 sb.append("\t<groupId>");
112 sb.append(modularDistVersion.getProperty(SLC_GROUP_ID).getString());
113 sb.append("</groupId>\n");
114 sb.append("\t<artifactId>");
115 sb.append(modularDistVersion.getProperty(SLC_ARTIFACT_ID)
116 .getString());
117 sb.append("</artifactId>\n");
118 sb.append("\t<version>");
119 sb.append(modularDistVersion.getProperty(SLC_ARTIFACT_VERSION)
120 .getString());
121 sb.append("</version>\n");
122 sb.append("\t<type>pom</type>\n");
123 sb.append("\t<scope>import</scope>\n");
124 sb.append("</dependency>");
125 return sb.toString();
126 } catch (RepositoryException re) {
127 throw new SlcException(
128 "unexpected error while generating maven snippet");
129 }
130 }
131 }