[223644] error pages, context params and welcome pages added to Web 2.5 Deployment descriptor tree
diff --git a/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/Messages.java b/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/Messages.java index 0da7a6a..af32aa9 100644 --- a/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/Messages.java +++ b/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/Messages.java
@@ -35,6 +35,11 @@ public static String FILTERS_ITEM_PROVIDER; public static String FILTER_MAPPING_ITEM_PROVIDER; public static String SERVLET_MAPPING_ITEM_PROVIDER; + public static String ERROR_PAGES_ITEM_PROVIDER; + public static String WELCOME_PAGES_ITEM_PROVIDER; + public static String CONTEXT_PARAMS_ITEM_PROVIDER; + + public static String REFERENCES;
diff --git a/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/messages.properties b/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/messages.properties index 4cc3602..3c6a17f 100644 --- a/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/messages.properties +++ b/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/messages.properties
@@ -11,10 +11,13 @@ ENTERPRISE_BEAN_CLASS_DESCRIPTION=Enterprise Bean Class - SERVLET_ITEM_PROVIDER=Servlets -LISTENER_ITEM_PROVIDER=Listener +LISTENER_ITEM_PROVIDER=Listeners FILTERS_ITEM_PROVIDER=Filters -FILTER_MAPPING_ITEM_PROVIDER=Filter Mapping -SERVLET_MAPPING_ITEM_PROVIDER=Servlet Mapping +FILTER_MAPPING_ITEM_PROVIDER=Filter Mappings +SERVLET_MAPPING_ITEM_PROVIDER=Servlet Mappings +ERROR_PAGES_ITEM_PROVIDER=Error Pages +WELCOME_PAGES_ITEM_PROVIDER=Welcome Pages +CONTEXT_PARAMS_ITEM_PROVIDER=Context Parameters BUNDLED_LIBRARIES_NODE=Bundled Libraries LIBRARY_DIRECTORY=Library Directory EAR_MODULES_NODE=Modules
diff --git a/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/navigator/Web25LabelProvider.java b/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/navigator/Web25LabelProvider.java index a9bd52c..2467f14 100644 --- a/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/navigator/Web25LabelProvider.java +++ b/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/navigator/Web25LabelProvider.java
@@ -12,17 +12,22 @@ 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; @@ -53,7 +58,15 @@ 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; } @@ -66,30 +79,39 @@ ret = ((AbstractGroupProvider) element).getText(); } else if (element instanceof Servlet){ ret = ((Servlet) element).getServletName(); - } else if (element instanceof ServletMapping){ - ret = "Servlet mapping (" + getServletMappingDisplay((ServletMapping) element)+")"; //$NON-NLS-1$ //$NON-NLS-2$ + } 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 = "Filter mapping (" + getFilterMappingDisplay((FilterMapping)element) + ")"; //$NON-NLS-1$ //$NON-NLS-2$ - } + } 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) { - String returnValue = ""; //$NON-NLS-1$ UrlPatternType urlPatterns = (UrlPatternType) element.getUrlPatterns().get(0); - returnValue = element.getFilterName() + "-> " + urlPatterns.getValue(); //$NON-NLS-1$ - return returnValue; + return urlPatterns.getValue() + "-> " + element.getFilterName(); //$NON-NLS-1$ } private String getServletMappingDisplay(ServletMapping element) { - String retValue = "-> " + element.getServletName(); //$NON-NLS-1$ UrlPatternType urlPatterns = (UrlPatternType) element.getUrlPatterns().get(0); - retValue = urlPatterns.getValue() + retValue; - return retValue; + return urlPatterns.getValue() + "-> " + element.getServletName(); //$NON-NLS-1$; } }
diff --git a/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/navigator/web/GroupContextParamsItemProvider.java b/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/navigator/web/GroupContextParamsItemProvider.java new file mode 100644 index 0000000..904d22f --- /dev/null +++ b/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/navigator/web/GroupContextParamsItemProvider.java
@@ -0,0 +1,66 @@ +/*********************************************************************** + * 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.List; + +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.jst.j2ee.internal.plugin.J2EEPlugin; +import org.eclipse.jst.javaee.web.WebApp; +import org.eclipse.jst.jee.ui.internal.Messages; +import org.eclipse.jst.jee.ui.internal.navigator.AbstractGroupProvider; +import org.eclipse.jst.jee.ui.plugin.JEEUIPluginIcons; +import org.eclipse.swt.graphics.Image; + +/** + * Context Parameters group in Deployment Descriptor node. + * + * @author Dimitar Giormov + * + */ +public class GroupContextParamsItemProvider extends AbstractGroupProvider{ + + private static Image CONTEXT_PARAM_IMAGE; + + public GroupContextParamsItemProvider(WebApp webApp) { + super(webApp); + text = Messages.CONTEXT_PARAMS_ITEM_PROVIDER; + } + + @Override + public List getChildren() { + if (javaee != null){ + return ((WebApp) javaee).getContextParams(); + } + return null; + } + + @Override + public Image getImage() { + return getContextParamsImage(); + } + + @Override + public boolean hasChildren() { + return !getChildren().isEmpty(); + } + + public static Image getContextParamsImage() { + if (CONTEXT_PARAM_IMAGE == null) { + URL url = (URL) J2EEPlugin.getPlugin().getImage(JEEUIPluginIcons.GROUP_CONTEXT_PARAM); + ImageDescriptor imageDescriptor = ImageDescriptor.createFromURL(url); + CONTEXT_PARAM_IMAGE = imageDescriptor.createImage(); + } + return CONTEXT_PARAM_IMAGE; + } + +}
diff --git a/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/navigator/web/GroupErrorPagesItemProvider.java b/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/navigator/web/GroupErrorPagesItemProvider.java new file mode 100644 index 0000000..286a8e0 --- /dev/null +++ b/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/navigator/web/GroupErrorPagesItemProvider.java
@@ -0,0 +1,80 @@ +/*********************************************************************** + * 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.List; + +import org.eclipse.jface.resource.ImageDescriptor; +import org.eclipse.jst.j2ee.internal.plugin.J2EEPlugin; +import org.eclipse.jst.javaee.web.ErrorPage; +import org.eclipse.jst.javaee.web.WebApp; +import org.eclipse.jst.jee.ui.internal.Messages; +import org.eclipse.jst.jee.ui.internal.navigator.AbstractGroupProvider; +import org.eclipse.jst.jee.ui.plugin.JEEUIPluginIcons; +import org.eclipse.swt.graphics.Image; + +/** + * Error pages group in Deployment Descriptor node. + * + * @author Dimitar Giormov + * + */ +public class GroupErrorPagesItemProvider extends AbstractGroupProvider{ + + private static Image ERROR_PAGES; + private static Image EXCEPTION_ERROR_PAGES; + + public GroupErrorPagesItemProvider(WebApp webApp) { + super(webApp); + text = Messages.ERROR_PAGES_ITEM_PROVIDER; + } + + @Override + public List getChildren() { + if (javaee != null){ + return ((WebApp) javaee).getErrorPages(); + } + return null; + } + + @Override + public Image getImage() { + return getErrorPagesImage(); + } + + @Override + public boolean hasChildren() { + return !getChildren().isEmpty(); + } + + public static Image getErrorPagesImage() { + if (ERROR_PAGES == null) { + URL url = (URL) J2EEPlugin.getPlugin().getImage(JEEUIPluginIcons.GROUP_ERROR_PAGE); + ImageDescriptor imageDescriptor = ImageDescriptor.createFromURL(url); + ERROR_PAGES = imageDescriptor.createImage(); + } + return ERROR_PAGES; + } + + public static Image getErrorPagesImage(ErrorPage element) { + if (element.getErrorCode() != null){ + + } + if (EXCEPTION_ERROR_PAGES == null) { + URL url = (URL) J2EEPlugin.getPlugin().getImage(JEEUIPluginIcons.GROUP_ERROR_PAGE); + ImageDescriptor imageDescriptor = ImageDescriptor.createFromURL(url); + EXCEPTION_ERROR_PAGES = imageDescriptor.createImage(); + } + return EXCEPTION_ERROR_PAGES; + } + +}
diff --git a/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/navigator/web/GroupWelcomePagesItemProvider.java b/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/navigator/web/GroupWelcomePagesItemProvider.java new file mode 100644 index 0000000..e3dcc25 --- /dev/null +++ b/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/navigator/web/GroupWelcomePagesItemProvider.java
@@ -0,0 +1,97 @@ +/*********************************************************************** + * 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.web.WebApp; +import org.eclipse.jst.javaee.web.WelcomeFileList; +import org.eclipse.jst.jee.ui.internal.Messages; +import org.eclipse.jst.jee.ui.internal.navigator.AbstractGroupProvider; +import org.eclipse.jst.jee.ui.plugin.JEEUIPluginIcons; +import org.eclipse.swt.graphics.Image; + +/** + * Welcome pages group in Deployment Descriptor node. + * + * @author Dimitar Giormov + * + */ +public class GroupWelcomePagesItemProvider extends AbstractGroupProvider{ + + private static Image WELCOME_PAGES; + + private static Image WELCOME_PAGE; + + private List children = null; + + public GroupWelcomePagesItemProvider(WebApp webApp) { + super(webApp); + text = Messages.WELCOME_PAGES_ITEM_PROVIDER; + } + + @Override + public List getChildren() { + if (children != null){ + return children; + } + if (javaee != null){ + List welcomeFileLists = ((WebApp) javaee).getWelcomeFileLists(); + if (welcomeFileLists.size()>0){ + children = new ArrayList(); + for (Object object : welcomeFileLists) { + List welcomeFiles = ((WelcomeFileList)object).getWelcomeFiles(); + for (Object object2 : welcomeFiles) { + if(object2 != null && !"".equals( ((String)object2).trim())){ //$NON-NLS-1$ + children.add(new WebArtifactNode((String) object2, getWelcomePageImage())); + } + } + } + return children; + } + return null; + } + return null; + } + + @Override + public Image getImage() { + return getWelcomePagesImage(); + } + + @Override + public boolean hasChildren() { + return !getChildren().isEmpty(); + } + + public static Image getWelcomePagesImage() { + if (WELCOME_PAGES == null) { + URL url = (URL) J2EEPlugin.getPlugin().getImage(JEEUIPluginIcons.GROUP_WELCOME_PAGES); + ImageDescriptor imageDescriptor = ImageDescriptor.createFromURL(url); + WELCOME_PAGES = imageDescriptor.createImage(); + } + return WELCOME_PAGES; + } + + public static Image getWelcomePageImage() { + if (WELCOME_PAGE == null) { + URL url = (URL) J2EEPlugin.getPlugin().getImage(JEEUIPluginIcons.GROUP_WELCOME_PAGE); + ImageDescriptor imageDescriptor = ImageDescriptor.createFromURL(url); + WELCOME_PAGE = imageDescriptor.createImage(); + } + return WELCOME_PAGE; + } + +}
diff --git a/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/navigator/web/WebAppProvider.java b/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/navigator/web/WebAppProvider.java index a8bcc3f..b12f123 100644 --- a/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/navigator/web/WebAppProvider.java +++ b/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/navigator/web/WebAppProvider.java
@@ -36,12 +36,14 @@ private static final String PROJECT_RELATIVE_PATH = "WEB-INF/web.xml"; //$NON-NLS-1$ + private GroupErrorPagesItemProvider errors; private GroupServletItemProvider servlets; private GroupFiltersItemProvider filters; private GroupListenerItemProvider listeners; private GroupServletMappingItemProvider servletMapping; private GroupFilterMappingItemProvider filterMapping; private GroupReferenceItemProvider references; + private GroupWelcomePagesItemProvider welcome; private List<Object> children = new ArrayList<Object>(); @@ -52,6 +54,9 @@ private IFile ddFile = null; + private GroupContextParamsItemProvider contextParams; + + @@ -59,18 +64,24 @@ public WebAppProvider(WebApp webApp, IProject project) { text = Messages.DEPLOYMENT_DESCRIPTOR + project.getName(); + contextParams = new GroupContextParamsItemProvider(webApp); + errors = new GroupErrorPagesItemProvider(webApp); servlets = new GroupServletItemProvider(webApp); servletMapping = new GroupServletMappingItemProvider(webApp); filters = new GroupFiltersItemProvider(webApp); filterMapping = new GroupFilterMappingItemProvider(webApp); listeners = new GroupListenerItemProvider(webApp); references = new GroupReferenceItemProvider(webApp); + welcome = new GroupWelcomePagesItemProvider(webApp); + children.add(contextParams); + children.add(errors); children.add(servlets); children.add(filters); children.add(listeners); children.add(servletMapping); children.add(filterMapping); children.add(references); + children.add(welcome); prjct = project; } public List getChildren(){
diff --git a/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/navigator/web/WebArtifactNode.java b/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/navigator/web/WebArtifactNode.java new file mode 100644 index 0000000..4d8708b --- /dev/null +++ b/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/internal/navigator/web/WebArtifactNode.java
@@ -0,0 +1,42 @@ +/*********************************************************************** + * 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 org.eclipse.swt.graphics.Image; + +/** + * + * Wrapper node for representing string values of the model in Deployment descriptor tree. + * (e.g. Welcome Files) + * + * @author Dimitar Giormov + * + */ +public class WebArtifactNode { + + private Image image; + private String text; + + public WebArtifactNode(String text, Image image) { + super(); + this.text = text; + this.image = image; + } + + public Image getImage() { + return image; + } + + public String getText() { + return text; + } + +}
diff --git a/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/plugin/JEEUIPluginIcons.java b/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/plugin/JEEUIPluginIcons.java index 478a1ab..6b9e958 100644 --- a/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/plugin/JEEUIPluginIcons.java +++ b/plugins/org.eclipse.jst.jee.ui/src/org/eclipse/jst/jee/ui/plugin/JEEUIPluginIcons.java
@@ -1,3 +1,13 @@ +/*********************************************************************** + * 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.plugin; @@ -10,7 +20,12 @@ public static String GROUP_FILTER_MAPPING = "webuiIcons/filter_mapping"; //$NON-NLS-1$ public static String GROUP_LISTENER = "webuiIcons/listener"; //$NON-NLS-1$ public static String GROUP_SERVLET = "webuiIcons/servlet"; //$NON-NLS-1$ + public static String GROUP_ERROR_PAGE = "webuiIcons/error_page"; //$NON-NLS-1$ + public static String GROUP_CONTEXT_PARAM = "webuiIcons/initializ_parameter_context"; //$NON-NLS-1$ + public static String GROUP_WELCOME_PAGES = "webuiIcons/welcome_list"; //$NON-NLS-1$ + public static String GROUP_WELCOME_PAGE = "webuiIcons/welcome_file"; //$NON-NLS-1$ public static String RESOURCE_REFERENCE_OBJ = "resourceRef_obj"; //$NON-NLS-1$ + public static String BUSSINESS_LOCAL = "ovr/business_local_ovr"; //$NON-NLS-1$