blob: 66f5e0744aa3418da999898e3d159dfe68c5377f [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;
import org.eclipse.emf.ecore.util.FeatureMap;
import org.eclipse.emf.ecore.util.FeatureMap.Entry;
import org.eclipse.jst.j2ee.navigator.internal.J2EELabelProvider;
import org.eclipse.jst.javaee.core.Listener;
import org.eclipse.jst.javaee.core.ParamValue;
import org.eclipse.jst.javaee.core.UrlPatternType;
import org.eclipse.jst.javaee.web.ErrorPage;
import org.eclipse.jst.javaee.web.Filter;
import org.eclipse.jst.javaee.web.FilterMapping;
import org.eclipse.jst.javaee.web.Servlet;
import org.eclipse.jst.javaee.web.ServletMapping;
import org.eclipse.jst.jee.ui.internal.navigator.web.GroupContextParamsItemProvider;
import org.eclipse.jst.jee.ui.internal.navigator.web.GroupErrorPagesItemProvider;
import org.eclipse.jst.jee.ui.internal.navigator.web.GroupFilterMappingItemProvider;
import org.eclipse.jst.jee.ui.internal.navigator.web.GroupFiltersItemProvider;
import org.eclipse.jst.jee.ui.internal.navigator.web.GroupListenerItemProvider;
import org.eclipse.jst.jee.ui.internal.navigator.web.GroupServletItemProvider;
import org.eclipse.jst.jee.ui.internal.navigator.web.GroupServletMappingItemProvider;
import org.eclipse.jst.jee.ui.internal.navigator.web.WebAppProvider;
import org.eclipse.jst.jee.ui.internal.navigator.web.WebArtifactNode;
import org.eclipse.swt.graphics.Image;
/**
* Web 2.5 Label provider is Deployment Descriptor label provider,
* used for decorating of the descriptor tree in project explorer.
*
* @author Dimitar Giormov
*/
public class Web25LabelProvider extends J2EELabelProvider {
@Override
public Image getImage(Object element) {
Image ret = null;
if (element instanceof WebAppProvider) {
ret = ((WebAppProvider) element).getImage();
} else if (element instanceof AbstractGroupProvider){
ret = ((AbstractGroupProvider) element).getImage();
} else if (element instanceof Servlet){
ret = GroupServletItemProvider.getServletImage();
} else if (element instanceof ServletMapping){
ret = GroupServletMappingItemProvider.getServletMappingImage();
} else if (element instanceof Filter){
ret = GroupFiltersItemProvider.getFiltersImage();
} else if (element instanceof Listener){
ret = GroupListenerItemProvider.getListenersImage();
} else if (element instanceof FilterMapping){
ret = GroupFilterMappingItemProvider.getFilterMappingImage();
} else if (element instanceof WebArtifactNode){
ret = ((WebArtifactNode)element).getImage();
} else if (element instanceof ErrorPage){
ret = GroupErrorPagesItemProvider.getErrorPagesImage((ErrorPage)element);
} else if (element instanceof ParamValue){
ret = GroupContextParamsItemProvider.getContextParamsImage();
} else {
ret = super.getImage(element);
}
return ret;
}
@Override
public String getText(Object element) {
String ret = null;
if (element instanceof WebAppProvider) {
ret = ((WebAppProvider) element).getText();
} else if (element instanceof AbstractGroupProvider){
ret = ((AbstractGroupProvider) element).getText();
} else if (element instanceof Servlet){
ret = ((Servlet) element).getServletName();
} else if (element instanceof ServletMapping) {
ret = getServletMappingDisplay((ServletMapping) element);
} else if (element instanceof Filter){
ret = ((Filter) element).getFilterName();
} else if (element instanceof Listener){
ret = ((Listener) element).getListenerClass();
} else if (element instanceof FilterMapping) {
ret = getFilterMappingDisplay((FilterMapping) element);
} else if (element instanceof WebArtifactNode) {
ret = ((WebArtifactNode) element).getText();
} else if (element instanceof ErrorPage ){
ErrorPage page = ((ErrorPage) element);
if (page.getErrorCode() == null) {
ret = page.getExceptionType() + " -> " + page.getLocation(); //$NON-NLS-1$
} else {
ret = page.getErrorCode() + " -> " + page.getLocation(); //$NON-NLS-1$
}
} else if (element instanceof ParamValue){
ret = ((ParamValue)element).getParamName() + " = " + ((ParamValue)element).getParamValue();//$NON-NLS-1$
} else {
ret = super.getText(element);
}
return ret;
}
private String getFilterMappingDisplay(FilterMapping element) {
UrlPatternType urlPatterns = null;
String value = null;
if (element.getUrlPatterns().size() > 0){
urlPatterns = (UrlPatternType) element.getUrlPatterns().get(0);
value = urlPatterns.getValue();
}else{
FeatureMap group = element.getGroup();
if (group.size() >0) {
Entry entry = group.get(0);
value = entry.getValue().toString();
}
}
return value + "-> " + element.getFilterName(); //$NON-NLS-1$
}
private String getServletMappingDisplay(ServletMapping element) {
UrlPatternType urlPatterns = (UrlPatternType) element.getUrlPatterns().get(0);
return urlPatterns.getValue() + "-> " + element.getServletName(); //$NON-NLS-1$;
}
}