blob: 755e1299c1335a5be90b7a6415580029dc994f89 [file] [log] [blame]
/******************************************************************************
* Copyright (c) 2009 Red Hat
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Rob Stryker - initial implementation and ongoing maintenance
******************************************************************************/
package org.eclipse.jst.servlet.ui.internal;
import java.util.ArrayList;
import java.util.Iterator;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.Path;
import org.eclipse.jst.j2ee.internal.J2EEConstants;
import org.eclipse.jst.j2ee.internal.ui.J2EEModuleDependenciesPropertyPage;
import org.eclipse.jst.j2ee.internal.ui.preferences.Messages;
import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
import org.eclipse.wst.common.componentcore.ui.internal.propertypage.DependencyPageExtensionManager;
import org.eclipse.wst.common.componentcore.ui.internal.propertypage.DependencyPageExtensionManager.ReferenceExtension;
import org.eclipse.wst.common.componentcore.ui.propertypage.ModuleAssemblyRootPage;
public class WebDependencyPropertyPage extends J2EEModuleDependenciesPropertyPage {
// protected Button addWebLibRefButton;
// private boolean addingWebLib = true;
public WebDependencyPropertyPage(IProject project,
ModuleAssemblyRootPage page) {
super(project, page);
}
@Override
protected String getRuntimePath(IVirtualComponent addedComp, String wizardPath) {
// if (addingWebLib) {
// String lastSegment = new Path(wizardPath).lastSegment();
// return new Path(J2EEConstants.WEB_INF_LIB).append(lastSegment).makeAbsolute().toString();
// }
return super.getRuntimePath(addedComp, wizardPath);
}
@Override
protected void createPushButtons() {
addMappingButton = createPushButton(getAddFolderLabel());
addReferenceButton = createPushButton(getAddReferenceLabel());
//addWebLibRefButton = createPushButton(getAddWebLibRefLabel());
editReferenceButton = createPushButton(getEditReferenceLabel());
removeButton = createPushButton(getRemoveSelectedLabel());
}
protected String getAddWebLibRefLabel() {
return Messages.WebDependencyPropertyPage_0;
}
// @Override
// protected void handleAddReferenceButton() {
//
// addingWebLib = false;
// super.handleAddReferenceButton();
// }
// @Override
// public void handleEvent(Event event) {
// super.handleEvent(event);
// if( event.widget == addWebLibRefButton)
// handleAddWebLibMappingButton();
//
// }
@Override
protected void addComponents(ArrayList<IVirtualComponent> components) throws CoreException {
// First add the components
super.addComponents(components);
// Now add to MANIFEST
}
// private void handleAddWebLibMappingButton() {
// addingWebLib = true;
// showReferenceWizard(false);
// }
@Override
protected String getModuleAssemblyRootPageDescription() {
return Messages.WebDependencyPropertyPage_1;
}
@Override
protected StringBuffer getCompsForManifest(ArrayList<IVirtualComponent> components) {
StringBuffer newComps = new StringBuffer();
for (Iterator iterator = components.iterator(); iterator.hasNext();) {
IVirtualComponent comp = (IVirtualComponent) iterator.next();
String runtimePath = objectToRuntimePath.get(comp);
if (runtimePath.indexOf(J2EEConstants.WEB_INF_LIB) == -1) {
String archiveName = new Path(runtimePath).lastSegment();
newComps.append(archiveName);
newComps.append(' ');
}
}
return newComps;
}
@Override
protected ReferenceExtension[] filterReferenceTypes(ReferenceExtension[] defaults) {
// Replace the default one with our own custom one, in class CustomWebProjectReferenceWizardFragment
for( int i = 0; i < defaults.length; i++ ) {
if( defaults[i].getId().equals("org.eclipse.wst.common.componentcore.ui.newProjectReference")) { //$NON-NLS-1$
defaults[i] = DependencyPageExtensionManager.getManager().findReferenceExtension("org.eclipse.jst.servlet.ui.internal.CustomWebProjectReferenceWizardFragment"); //$NON-NLS-1$
}
}
return defaults;
}
}