blob: 66d5af57c43bfd1a76a1ab3fae6445a6a6bee422 [file] [log] [blame]
/***********************************************************************
* Copyright (c) 2008 by SAP AG, Walldorf.
* 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:
* SAP AG - initial API and implementation
***********************************************************************/
package org.eclipse.jst.jee.ui.internal.navigator.web;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.jst.j2ee.internal.plugin.J2EEPlugin;
import org.eclipse.jst.javaee.core.UrlPatternType;
import org.eclipse.jst.javaee.web.ServletMapping;
import org.eclipse.jst.javaee.web.WebApp;
import org.eclipse.jst.jee.ui.internal.Messages;
import org.eclipse.jst.jee.ui.plugin.JEEUIPluginIcons;
import org.eclipse.swt.graphics.Image;
/**
* Servlet Mappings group in Deployment Descriptor node.
*
* @author Dimitar Giormov
*
*/
public class GroupServletMappingItemProvider extends AbstractWebGroupProvider{
private static Image SERVLETMAPPING;
public GroupServletMappingItemProvider(WebApp webApp) {
super(webApp);
text = Messages.SERVLET_MAPPING_ITEM_PROVIDER;
}
@Override
public List getChildren() {
if (javaee != null){
return flattenMapping(((WebApp) javaee).getServletMappings());
}
return null;
}
@Override
public Image getImage() {
return getServletMappingImage();
}
@Override
public boolean hasChildren() {
return !getChildren().isEmpty();
}
public static Image getServletMappingImage() {
if (SERVLETMAPPING == null) {
URL url = (URL) J2EEPlugin.getPlugin().getImage(JEEUIPluginIcons.SERVLET_MAPPING);
ImageDescriptor imageDescriptor = ImageDescriptor.createFromURL(url);
SERVLETMAPPING = imageDescriptor.createImage();
}
return SERVLETMAPPING;
}
private List<?> flattenMapping(List<ServletMapping> servletMappings) {
List<ServletMappingUIWrapper> result = new ArrayList<ServletMappingUIWrapper>();
if (servletMappings != null && servletMappings.size() > 0){
for (ServletMapping filterMapping : servletMappings) {
result.addAll(getServletMappingDisplay(filterMapping));
}
}
return result;
}
private List<ServletMappingUIWrapper> getServletMappingDisplay(ServletMapping element) {
List<ServletMappingUIWrapper> result = new ArrayList<ServletMappingUIWrapper>();
String value = null;
if (element.getUrlPatterns().size() > 0){
for (UrlPatternType pattern : element.getUrlPatterns()) {
value = pattern.getValue();
result.add(new ServletMappingUIWrapper(value + " -> " + element.getServletName())); //$NON-NLS-1$
}
}
return result;
}
public class ServletMappingUIWrapper{
private String value;
public String getValue() {
return value;
}
public ServletMappingUIWrapper(String value) {
super();
this.value = value;
}
}
}