View | Details | Raw Unified | Return to bug 290041 | Differences between
and this patch

Collapse All | Expand All

(-)j2ee_ui/org/eclipse/jst/j2ee/internal/ui/J2EEDependencyPageProvider.java (+5 lines)
Lines 47-50 Link Here
47
		return project.hasProjectFacet(ProjectFacetsManager.getProjectFacet(IModuleConstants.JST_WEB_MODULE));
47
		return project.hasProjectFacet(ProjectFacetsManager.getProjectFacet(IModuleConstants.JST_WEB_MODULE));
48
	}
48
	}
49
49
50
	public String getPageTitle() {
51
		
52
		return Messages.J2EEDependencyPageProvider_0;
53
	}
54
50
}
55
}
(-)j2ee_ui/org/eclipse/jst/j2ee/internal/ui/Messages.java (+15 lines)
Added Link Here
1
package org.eclipse.jst.j2ee.internal.ui;
2
3
import org.eclipse.osgi.util.NLS;
4
5
public class Messages extends NLS {
6
	private static final String BUNDLE_NAME = "org.eclipse.jst.j2ee.internal.ui.messages"; //$NON-NLS-1$
7
	public static String J2EEDependencyPageProvider_0;
8
	static {
9
		// initialize resource bundle
10
		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
11
	}
12
13
	private Messages() {
14
	}
15
}
(-)j2ee_ui/org/eclipse/jst/j2ee/internal/ui/messages.properties (+1 lines)
Added Link Here
1
J2EEDependencyPageProvider_0=Web Module Assembly
(-)j2ee_ui/org/eclipse/jst/j2ee/internal/ui/preferences/EarModuleDependenciesPropertyPage.java (+95 lines)
Added Link Here
1
/******************************************************************************
2
 * Copyright (c) 2009 Red Hat
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *    Rob Stryker - initial implementation and ongoing maintenance
10
 ******************************************************************************/
11
package org.eclipse.jst.j2ee.internal.ui.preferences;
12
13
import java.util.ArrayList;
14
15
import org.eclipse.core.resources.IProject;
16
import org.eclipse.core.runtime.IProgressMonitor;
17
import org.eclipse.jst.j2ee.application.internal.operations.AddComponentToEnterpriseApplicationDataModelProvider;
18
import org.eclipse.jst.j2ee.application.internal.operations.RemoveComponentFromEnterpriseApplicationDataModelProvider;
19
import org.eclipse.jst.j2ee.internal.common.classpath.J2EEComponentClasspathUpdater;
20
import org.eclipse.jst.jee.project.facet.EarCreateDeploymentFilesDataModelProvider;
21
import org.eclipse.jst.jee.project.facet.ICreateDeploymentFilesDataModelProperties;
22
import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
23
import org.eclipse.wst.common.componentcore.ui.propertypage.AddModuleDependenciesPropertiesPage;
24
import org.eclipse.wst.common.componentcore.ui.propertypage.ModuleAssemblyRootPage;
25
import org.eclipse.wst.common.frameworks.datamodel.DataModelFactory;
26
import org.eclipse.wst.common.frameworks.datamodel.IDataModel;
27
import org.eclipse.wst.common.frameworks.datamodel.IDataModelOperation;
28
import org.eclipse.wst.common.frameworks.datamodel.IDataModelProvider;
29
30
public class EarModuleDependenciesPropertyPage extends
31
		AddModuleDependenciesPropertiesPage {
32
	public EarModuleDependenciesPropertyPage(IProject project,
33
			ModuleAssemblyRootPage page) {
34
		super(project, page);
35
	}
36
37
	protected IDataModelOperation generateEARDDOperation() {
38
		IDataModel model = DataModelFactory.createDataModel(new EarCreateDeploymentFilesDataModelProvider());
39
		model.setProperty(ICreateDeploymentFilesDataModelProperties.GENERATE_DD, rootComponent);
40
		model.setProperty(ICreateDeploymentFilesDataModelProperties.TARGET_PROJECT, project);
41
		return model.getDefaultOperation();
42
	}
43
	
44
	@Override
45
	public boolean postHandleChanges(IProgressMonitor monitor) {
46
		return true;
47
	}
48
	
49
	@Override
50
	protected void handleRemoved(ArrayList<IVirtualComponent> removed) {
51
		super.handleRemoved(removed);
52
		J2EEComponentClasspathUpdater.getInstance().queueUpdateEAR(rootComponent.getProject());
53
	}
54
55
//	protected void postAddProjects(Set moduleProjects) throws CoreException {
56
//		EarFacetRuntimeHandler.updateModuleProjectRuntime(rootComponent.getProject(), moduleProjects, new NullProgressMonitor());
57
//	}
58
59
	@Override
60
	protected IDataModelProvider getAddReferenceDataModelProvider(IVirtualComponent component) {
61
		return new AddComponentToEnterpriseApplicationDataModelProvider();
62
	}
63
64
	@Override
65
	protected String getAddFolderLabel() {
66
		
67
		return Messages.EarModuleDependenciesPropertyPage_0;
68
	}
69
70
	@Override
71
	protected String getAddReferenceLabel() {
72
		
73
		return Messages.EarModuleDependenciesPropertyPage_1;
74
	}
75
76
	@Override
77
	protected String getEditReferenceLabel() {
78
		
79
		return Messages.EarModuleDependenciesPropertyPage_2;
80
	}
81
82
	@Override
83
	protected String getModuleAssemblyRootPageDescription() {
84
		
85
		return Messages.EarModuleDependenciesPropertyPage_3;
86
	}
87
88
	@Override
89
	protected IDataModelProvider getRemoveReferenceDataModelProvider(IVirtualComponent component) {
90
		
91
			return new RemoveComponentFromEnterpriseApplicationDataModelProvider();
92
		
93
	}
94
95
}
(-)j2ee_ui/org/eclipse/jst/j2ee/internal/ui/preferences/EarModuleDependencyPageProvider.java (+46 lines)
Added Link Here
1
/******************************************************************************
2
 * Copyright (c) 2009 Red Hat
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *    Rob Stryker - initial implementation and ongoing maintenance
10
 ******************************************************************************/
11
package org.eclipse.jst.j2ee.internal.ui.preferences;
12
13
import org.eclipse.swt.widgets.Composite;
14
import org.eclipse.wst.common.project.facet.core.IFacetedProject;
15
import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
16
import org.eclipse.wst.common.componentcore.ui.propertypage.IDependencyPageProvider;
17
import org.eclipse.wst.common.componentcore.ui.propertypage.IModuleDependenciesControl;
18
import org.eclipse.wst.common.componentcore.ui.propertypage.ModuleAssemblyRootPage;
19
20
public class EarModuleDependencyPageProvider implements IDependencyPageProvider {
21
22
	public boolean canHandle(IFacetedProject project) {
23
		boolean isEAR = project.hasProjectFacet(ProjectFacetsManager.getProjectFacet("jst.ear")); //$NON-NLS-1$
24
		return isEAR;
25
	}
26
27
	public IModuleDependenciesControl[] createPages(IFacetedProject project,
28
			ModuleAssemblyRootPage parent) {
29
		return new IModuleDependenciesControl[] {
30
				new EarModuleDependenciesPropertyPage(project.getProject(), parent)
31
		};
32
	}
33
34
	public Composite createRootControl(IFacetedProject project,IModuleDependenciesControl[] pages,
35
			Composite parent) {
36
		if( pages.length == 1 && pages[0] != null)
37
			return pages[0].createContents(parent);
38
		return null;
39
	}
40
	
41
	public String getPageTitle() {
42
		return Messages.EarModuleDependencyPageProvider_0;
43
	}
44
45
46
}
(-)j2ee_ui/org/eclipse/jst/j2ee/internal/ui/preferences/Messages.java (+19 lines)
Added Link Here
1
package org.eclipse.jst.j2ee.internal.ui.preferences;
2
3
import org.eclipse.osgi.util.NLS;
4
5
public class Messages extends NLS {
6
	private static final String BUNDLE_NAME = "org.eclipse.jst.j2ee.internal.ui.preferences.messages"; //$NON-NLS-1$
7
	public static String EarModuleDependenciesPropertyPage_0;
8
	public static String EarModuleDependenciesPropertyPage_1;
9
	public static String EarModuleDependenciesPropertyPage_2;
10
	public static String EarModuleDependenciesPropertyPage_3;
11
	public static String EarModuleDependencyPageProvider_0;
12
	static {
13
		// initialize resource bundle
14
		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
15
	}
16
17
	private Messages() {
18
	}
19
}
(-)j2ee_ui/org/eclipse/jst/j2ee/internal/ui/preferences/messages.properties (+5 lines)
Added Link Here
1
EarModuleDependenciesPropertyPage_0=Add Ear Module Folder...
2
EarModuleDependenciesPropertyPage_1=Add Ear Module Reference...
3
EarModuleDependenciesPropertyPage_2=Edit Ear Module Reference...
4
EarModuleDependenciesPropertyPage_3=Assemble packaging structure for this Java EE Application project
5
EarModuleDependencyPageProvider_0=Ear Module Assembly
(-)plugin.xml (-3 / +9 lines)
Lines 522-530 Link Here
522
							value="jst.utility" />
522
							value="jst.utility" />
523
						<test forcePluginActivation="true"
523
						<test forcePluginActivation="true"
524
							property="org.eclipse.wst.common.project.facet.core.projectFacet"
524
							property="org.eclipse.wst.common.project.facet.core.projectFacet"
525
							value="jst.ear" />
526
						<test forcePluginActivation="true"
527
							property="org.eclipse.wst.common.project.facet.core.projectFacet"
528
							value="jst.appclient" />
525
							value="jst.appclient" />
529
						<test forcePluginActivation="true"
526
						<test forcePluginActivation="true"
530
							property="org.eclipse.wst.common.project.facet.core.projectFacet"
527
							property="org.eclipse.wst.common.project.facet.core.projectFacet"
Lines 803-808 Link Here
803
     </page>
800
     </page>
804
  </extension>
801
  </extension>
805
802
803
  <extension
804
          point="org.eclipse.wst.common.modulecore.ui.moduleDependencyPropertyPage">
805
     <dependencyPage
806
             class="org.eclipse.jst.j2ee.internal.ui.preferences.EarModuleDependencyPageProvider"
807
             id="org.eclipse.jst.j2ee.internal.ui.preferences.EarModuleDependencyPageProvider">
808
     </dependencyPage>
809
  </extension>
810
811
806
  <!-- 
812
  <!-- 
807
    *****************************
813
    *****************************
808
    * WTP User Library Provider *
814
    * WTP User Library Provider *
(-)plugin.properties (-1 / +1 lines)
Lines 10-13 Link Here
10
###############################################################################
10
###############################################################################
11
provider=Eclipse.org
11
provider=Eclipse.org
12
Bundle-Name.0 = Modulecore UI Plug-in
12
Bundle-Name.0 = Modulecore UI Plug-in
13
Module_assembly.name = Module Assembly **EXPERIMENTAL**
13
Module_assembly.name = Module Assembly
(-)src/org/eclipse/wst/common/componentcore/ui/ModuleCoreUIPlugin.java (+66 lines)
Lines 10-20 Link Here
10
 ******************************************************************************/
10
 ******************************************************************************/
11
package org.eclipse.wst.common.componentcore.ui;
11
package org.eclipse.wst.common.componentcore.ui;
12
12
13
import java.net.MalformedURLException;
14
import java.net.URL;
15
13
import org.eclipse.core.runtime.CoreException;
16
import org.eclipse.core.runtime.CoreException;
17
import org.eclipse.core.runtime.IPath;
14
import org.eclipse.core.runtime.IStatus;
18
import org.eclipse.core.runtime.IStatus;
19
import org.eclipse.core.runtime.Path;
15
import org.eclipse.core.runtime.Platform;
20
import org.eclipse.core.runtime.Platform;
16
import org.eclipse.core.runtime.Status;
21
import org.eclipse.core.runtime.Status;
22
import org.eclipse.jface.resource.ImageDescriptor;
23
import org.eclipse.jface.resource.ImageRegistry;
24
import org.eclipse.swt.graphics.Image;
17
import org.eclipse.ui.plugin.AbstractUIPlugin;
25
import org.eclipse.ui.plugin.AbstractUIPlugin;
26
import org.osgi.framework.Bundle;
18
import org.osgi.framework.BundleContext;
27
import org.osgi.framework.BundleContext;
19
28
20
/**
29
/**
Lines 24-29 Link Here
24
33
25
	// The plug-in ID
34
	// The plug-in ID
26
	public static final String PLUGIN_ID = "org.eclipse.wst.common.modulecore.ui"; //$NON-NLS-1$
35
	public static final String PLUGIN_ID = "org.eclipse.wst.common.modulecore.ui"; //$NON-NLS-1$
36
	
37
	public static final String[] ICON_DIRS = new String[]{"icons/full/obj16", //$NON-NLS-1$
38
		"icons/full/cview16", //$NON-NLS-1$
39
		"icons/full/ctool16", //$NON-NLS-1$
40
		"icons/full/clcl16", //$NON-NLS-1$
41
		"icons/full/ovr16", //$NON-NLS-1$
42
		"icons/full/extra", //$NON-NLS-1$
43
		"icons/full/wizban", //$NON-NLS-1$
44
		"icons", //$NON-NLS-1$
45
		""}; //$NON-NLS-1$
27
46
28
	// The shared instance
47
	// The shared instance
29
	private static ModuleCoreUIPlugin plugin;
48
	private static ModuleCoreUIPlugin plugin;
Lines 64-69 Link Here
64
	}
83
	}
65
84
66
	/**
85
	/**
86
	 * Get a .gif from the image registry.
87
	 */
88
	public Image getImage(String key) {
89
		ImageRegistry imageRegistry = getImageRegistry();
90
		Image image = imageRegistry.get(key);
91
		if (image == null || image.isDisposed()) {
92
			ImageDescriptor descriptor = getImageDescriptor(key);
93
			if (descriptor != null) {
94
				image = descriptor.createImage();
95
				imageRegistry.put(key, image);
96
			}
97
		}
98
		return image;
99
	}
100
101
	/**
102
	 * This gets a .gif from the icons folder.
103
	 */
104
	public ImageDescriptor getImageDescriptor(String key) {
105
		ImageDescriptor imageDescriptor = null;
106
		URL gifImageURL = getImageURL(key,getBundle());
107
		if (gifImageURL != null)
108
			imageDescriptor = ImageDescriptor.createFromURL(gifImageURL);
109
		return imageDescriptor;
110
	}
111
112
	/**
113
	 * This gets a .gif from the icons folder.
114
	 */
115
	public URL getImageURL(String key, Bundle bundle) {
116
		String gif = "/" + key + ".gif"; //$NON-NLS-1$ //$NON-NLS-2$
117
		IPath path = null;
118
		for (int i = 0; i < ICON_DIRS.length; i++) {
119
			path = new Path(ICON_DIRS[i]).append(gif);
120
			if (Platform.find(bundle,path) == null)
121
				continue;
122
			try {
123
				return new URL( bundle.getEntry("/"), path.toString()); //$NON-NLS-1$ 
124
			} catch (MalformedURLException exception) {
125
				logError(exception);
126
				continue;
127
			}
128
		}
129
		return null;
130
	}
131
132
	/**
67
	 * Returns the shared instance
133
	 * Returns the shared instance
68
	 *
134
	 *
69
	 * @return the shared instance
135
	 * @return the shared instance
(-)src/org/eclipse/wst/common/componentcore/ui/internal/propertypage/ComponentDependencyContentProvider.java (+10 lines)
Lines 24-29 Link Here
24
import org.eclipse.swt.graphics.Image;
24
import org.eclipse.swt.graphics.Image;
25
import org.eclipse.wst.common.componentcore.internal.resources.VirtualArchiveComponent;
25
import org.eclipse.wst.common.componentcore.internal.resources.VirtualArchiveComponent;
26
import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
26
import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
27
import org.eclipse.wst.common.componentcore.ui.ModuleCoreUIPlugin;
27
import org.eclipse.wst.common.componentcore.ui.propertypage.AddModuleDependenciesPropertiesPage.ComponentResourceProxy;
28
import org.eclipse.wst.common.componentcore.ui.propertypage.AddModuleDependenciesPropertiesPage.ComponentResourceProxy;
28
29
29
30
Lines 64-69 Link Here
64
	}
65
	}
65
	
66
	
66
	public Image getColumnImage(Object element, int columnIndex) {
67
	public Image getColumnImage(Object element, int columnIndex) {
68
		if( element instanceof ComponentResourceProxy) {
69
			return ModuleCoreUIPlugin.getInstance().getImage("folder");
70
		}
71
		if (element instanceof IVirtualComponent) {
72
			return ModuleCoreUIPlugin.getInstance().getImage("jar_obj");
73
		} 
74
		if (element instanceof IProject){
75
			return ModuleCoreUIPlugin.getInstance().getImage("prj_obj");
76
		}
67
		return null;
77
		return null;
68
	}
78
	}
69
79
(-)src/org/eclipse/wst/common/componentcore/ui/propertypage/AddModuleDependenciesPropertiesPage.java (-5 / +25 lines)
Lines 142-154 Link Here
142
		composite.setLayout(layout);
142
		composite.setLayout(layout);
143
		composite.setLayoutData(new GridData(GridData.FILL_BOTH));
143
		composite.setLayoutData(new GridData(GridData.FILL_BOTH));
144
		ModuleAssemblyRootPage.createDescriptionComposite(composite,
144
		ModuleAssemblyRootPage.createDescriptionComposite(composite,
145
				Messages.ModuleAssemblyRootPageDescription);
145
				getModuleAssemblyRootPageDescription());
146
		createListGroup(composite);
146
		createListGroup(composite);
147
		refresh();
147
		refresh();
148
		Dialog.applyDialogFont(parent);
148
		Dialog.applyDialogFont(parent);
149
		return composite;
149
		return composite;
150
	}
150
	}
151
151
152
	protected String getModuleAssemblyRootPageDescription() {
153
		return Messages.ModuleAssemblyRootPageDescription;
154
	}
155
152
	protected void createListGroup(Composite parent) {
156
	protected void createListGroup(Composite parent) {
153
		Composite listGroup = new Composite(parent, SWT.NONE);
157
		Composite listGroup = new Composite(parent, SWT.NONE);
154
		GridLayout layout = new GridLayout();
158
		GridLayout layout = new GridLayout();
Lines 193-202 Link Here
193
	}
197
	}
194
198
195
	protected void createPushButtons() {
199
	protected void createPushButtons() {
196
		addMappingButton = createPushButton(Messages.AddFolderElipses);
200
		addMappingButton = createPushButton(getAddFolderLabel());
197
		addReferenceButton = createPushButton(Messages.AddReference);
201
		addReferenceButton = createPushButton(getAddReferenceLabel());
198
		editReferenceButton = createPushButton(Messages.EditReference);
202
		editReferenceButton = createPushButton(getEditReferenceLabel());
199
		removeButton = createPushButton(Messages.RemoveSelected);
203
		removeButton = createPushButton(getRemoveSelectedLabel());
204
	}
205
206
	protected String getRemoveSelectedLabel() {
207
		return Messages.RemoveSelected;
208
	}
209
210
	protected String getEditReferenceLabel() {
211
		return Messages.EditReference;
212
	}
213
214
	protected String getAddReferenceLabel() {
215
		return Messages.AddReference;
216
	}
217
218
	protected String getAddFolderLabel() {
219
		return Messages.AddFolderElipses;
200
	}
220
	}
201
221
202
	protected Button createPushButton(String label) {
222
	protected Button createPushButton(String label) {
(-)src/org/eclipse/wst/common/componentcore/ui/propertypage/IDependencyPageProvider.java (+6 lines)
Lines 50-53 Link Here
50
	 * @return
50
	 * @return
51
	 */
51
	 */
52
	public Composite createRootControl(IFacetedProject project, IModuleDependenciesControl[] pages, Composite parent);
52
	public Composite createRootControl(IFacetedProject project, IModuleDependenciesControl[] pages, Composite parent);
53
54
	/**
55
	 * 
56
	 * @return String - page title string or null if default title is desired
57
	 */
58
	public String getPageTitle();
53
}
59
}
(-)src/org/eclipse/wst/common/componentcore/ui/propertypage/ModuleAssemblyRootPage.java (+2 lines)
Lines 158-163 Link Here
158
				if( provider != null ) {
158
				if( provider != null ) {
159
					controls = provider.createPages(facetedProject, this);
159
					controls = provider.createPages(facetedProject, this);
160
					controls = controls == null ? new IModuleDependenciesControl[]{} : controls;
160
					controls = controls == null ? new IModuleDependenciesControl[]{} : controls;
161
					if (provider.getPageTitle() != null)
162
						setTitle(provider.getPageTitle());
161
					return provider.createRootControl(facetedProject, controls, parent);
163
					return provider.createRootControl(facetedProject, controls, parent);
162
				}
164
				}
163
				
165
				

Return to bug 290041