blob: 055baedf6f3def9dd19bc64eead6a51bb13bdd05 [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.j2ee.internal.ui;
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.preferences.Messages;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Event;
import org.eclipse.wst.common.componentcore.resources.IVirtualComponent;
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;
}
}