diff options
author | kraev | 2009-02-19 17:37:54 +0000 |
---|---|---|
committer | kraev | 2009-02-19 17:37:54 +0000 |
commit | 1288c8a3b26ea3b9076391ecdb725fe9cd303cbf (patch) | |
tree | ed0906a5dc4085f10ea47ed17702c48dda33e4bd /plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal | |
parent | 61f21c4704f5f3ce71e453bf8572c24e6cc27dd5 (diff) | |
download | webtools.javaee-1288c8a3b26ea3b9076391ecdb725fe9cd303cbf.tar.gz webtools.javaee-1288c8a3b26ea3b9076391ecdb725fe9cd303cbf.tar.xz webtools.javaee-1288c8a3b26ea3b9076391ecdb725fe9cd303cbf.zip |
[238770] Creating a Servlet from an existing Servlet class or JSP file
Diffstat (limited to 'plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal')
4 files changed, 281 insertions, 193 deletions
diff --git a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewFilterClassWizardPage.java b/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewFilterClassWizardPage.java index b424d74ae..d0d071c56 100644 --- a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewFilterClassWizardPage.java +++ b/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewFilterClassWizardPage.java @@ -18,42 +18,25 @@ import static org.eclipse.jst.servlet.ui.internal.wizard.IWebWizardConstants.NEW import static org.eclipse.jst.servlet.ui.internal.wizard.IWebWizardConstants.USE_EXISTING_FILTER_CLASS; import java.util.ArrayList; -import java.util.Iterator; import java.util.List; import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IProject; -import org.eclipse.core.resources.IResource; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; -import org.eclipse.jdt.core.ICompilationUnit; -import org.eclipse.jdt.core.IJavaElement; import org.eclipse.jdt.core.IType; -import org.eclipse.jdt.core.ITypeHierarchy; -import org.eclipse.jdt.core.JavaModelException; -import org.eclipse.jdt.core.Signature; import org.eclipse.jem.util.emf.workbench.ProjectUtilities; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.window.Window; -import org.eclipse.jst.j2ee.internal.J2EEConstants; import org.eclipse.jst.j2ee.internal.war.ui.util.WebFiltersGroupItemProvider; import org.eclipse.jst.j2ee.internal.web.operations.FilterMappingItem; import org.eclipse.jst.j2ee.internal.web.operations.IFilterMappingItem; -import org.eclipse.jst.j2ee.model.IModelProvider; -import org.eclipse.jst.j2ee.model.ModelProviderManager; -import org.eclipse.jst.j2ee.web.IServletConstants; +import org.eclipse.jst.j2ee.project.WebUtilities; import org.eclipse.jst.j2ee.webapplication.WebApp; import org.eclipse.jst.jee.ui.internal.navigator.web.GroupFiltersItemProvider; import org.eclipse.jst.jee.ui.internal.navigator.web.WebAppProvider; -import org.eclipse.jst.servlet.ui.internal.plugin.ServletUIPlugin; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Cursor; import org.eclipse.swt.widgets.Composite; -import org.eclipse.ui.IWorkbenchWindow; -import org.eclipse.ui.PlatformUI; import org.eclipse.wst.common.componentcore.ComponentCore; import org.eclipse.wst.common.componentcore.resources.IVirtualComponent; import org.eclipse.wst.common.frameworks.datamodel.IDataModel; @@ -125,11 +108,14 @@ public class NewFilterClassWizardPage extends NewWebClassWizardPage { Composite composite = super.createTopLevelComposite(parent); Object obj = getSelectedObject(); - if (isServlet(obj)) { + if (isFilter(obj)) { + checkExistingButton(true); + existingClassText.setText(getFilterClass(obj)); + } else if (isServlet(obj)) { + String servletName = getServletName(obj); // set the class name - classText.setText(getServletSimpleClassName(obj) + "Filter"); + classText.setText(makeFirstCharUppercase(servletName) + "Filter"); // set the filter mapping - String servletName = getServletName(obj); if (servletName != null) { List<IFilterMappingItem> mappings = new ArrayList<IFilterMappingItem>(); mappings.add(new FilterMappingItem(IFilterMappingItem.SERVLET_NAME, servletName)); @@ -143,9 +129,9 @@ public class NewFilterClassWizardPage extends NewWebClassWizardPage { // set the filter mapping String webFolderPath = getWebResourcePath(folder); List<IFilterMappingItem> mappings = new ArrayList<IFilterMappingItem>(); - mappings.add(new FilterMappingItem(IFilterMappingItem.URL_PATTERN, "/" + webFolderPath + "/*")); + mappings.add(new FilterMappingItem(IFilterMappingItem.URL_PATTERN, webFolderPath + "/*")); model.setProperty(FILTER_MAPPINGS, mappings); - } else if (isWebResource(obj)) { + } else if (WebUtilities.isWebResource(obj)) { IFile file = (IFile) obj; // set the class name String webResourceName = makeFirstCharUppercase(getFileNameWithouFileExtension(file)); @@ -153,178 +139,11 @@ public class NewFilterClassWizardPage extends NewWebClassWizardPage { // set the filter mapping String webResourcePath = getWebResourcePath(file); List<IFilterMappingItem> mappings = new ArrayList<IFilterMappingItem>(); - mappings.add(new FilterMappingItem(IFilterMappingItem.URL_PATTERN, "/" + webResourcePath)); + mappings.add(new FilterMappingItem(IFilterMappingItem.URL_PATTERN, webResourcePath)); model.setProperty(FILTER_MAPPINGS, mappings); } return composite; } - - private Object getSelectedObject() { - IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); - if (window == null) - return null; - ISelection selection = window.getSelectionService().getSelection(); - if (selection == null) - return null; - if (!(selection instanceof IStructuredSelection)) - return null; - IStructuredSelection ssel = (IStructuredSelection) selection; - if (ssel.size() != 1) - return null; - return ssel.getFirstElement(); - } - - private IType getPrimaryType(ICompilationUnit cu) { - return cu.getType(new Path(cu.getElementName()).removeFileExtension().toString()); - } - - private boolean isServlet(Object selectedObject) { - if (selectedObject instanceof org.eclipse.jst.javaee.web.Servlet) - return true; - - if (selectedObject instanceof org.eclipse.jst.j2ee.webapplication.Servlet) - return true; - - IJavaElement jelem = getJavaElement(selectedObject); - - try { - if (jelem != null) { - if (jelem instanceof ICompilationUnit) { - ICompilationUnit cu = (ICompilationUnit) jelem; - jelem = getPrimaryType(cu); - } - - if (jelem instanceof IType && ((IType) jelem).isClass()) { - IType type = (IType) jelem; - ITypeHierarchy typeHierarchy = type.newTypeHierarchy(null); - for (IType superType : typeHierarchy.getAllSuperInterfaces(type)) { - if (IServletConstants.QUALIFIED_SERVLET.equals(superType.getFullyQualifiedName())) - return true; - } - } - } - } catch (JavaModelException e) { - ServletUIPlugin.log(e); - } - - return false; - } - - private String getServletClass(Object obj) { - if (obj instanceof org.eclipse.jst.javaee.web.Servlet) { - org.eclipse.jst.javaee.web.Servlet servlet = (org.eclipse.jst.javaee.web.Servlet) obj; - return servlet.getServletClass(); - } - - if (obj instanceof org.eclipse.jst.j2ee.webapplication.Servlet) { - org.eclipse.jst.j2ee.webapplication.Servlet servlet = (org.eclipse.jst.j2ee.webapplication.Servlet) obj; - return servlet.getServletClass().getQualifiedName(); - } - - IJavaElement jelem = getJavaElement(obj); // should not be null, because isServletSelected() is true - if (jelem instanceof ICompilationUnit) { - ICompilationUnit cu = (ICompilationUnit) jelem; - jelem = getPrimaryType(cu); - } - return ((IType) jelem).getFullyQualifiedName(); - } - - private String getServletSimpleClassName(Object obj) { - return Signature.getSimpleName(getServletClass(obj)); - } - - private String getServletName(Object obj) { - if (obj instanceof org.eclipse.jst.javaee.web.Servlet) { - org.eclipse.jst.javaee.web.Servlet servlet = (org.eclipse.jst.javaee.web.Servlet) obj; - return servlet.getServletName(); - } - - if (obj instanceof org.eclipse.jst.j2ee.webapplication.Servlet) { - org.eclipse.jst.j2ee.webapplication.Servlet servlet = (org.eclipse.jst.j2ee.webapplication.Servlet) obj; - return servlet.getServletName(); - } - - String servletClass = getServletClass(obj); - IProject project = getJavaElement(obj).getJavaProject().getProject(); - IModelProvider provider = ModelProviderManager.getModelProvider(project); - Object modelObject = provider.getModelObject(); - if (modelObject instanceof org.eclipse.jst.javaee.web.WebApp) { - org.eclipse.jst.javaee.web.WebApp webApp = (org.eclipse.jst.javaee.web.WebApp) modelObject; - Iterator servlets = webApp.getServlets().iterator(); - while (servlets.hasNext()) { - org.eclipse.jst.javaee.web.Servlet servlet = (org.eclipse.jst.javaee.web.Servlet) servlets.next(); - String qualified = servlet.getServletClass(); - if (qualified.equals(servletClass)) { - return servlet.getServletName(); - } - } - } else if (modelObject instanceof org.eclipse.jst.j2ee.webapplication.WebApp) { - org.eclipse.jst.j2ee.webapplication.WebApp webApp = (org.eclipse.jst.j2ee.webapplication.WebApp) modelObject; - Iterator servlets = webApp.getServlets().iterator(); - while (servlets.hasNext()) { - org.eclipse.jst.j2ee.webapplication.Servlet servlet = (org.eclipse.jst.j2ee.webapplication.Servlet) servlets.next(); - String qualified = servlet.getServletClass().getQualifiedName(); - if (qualified.equals(servletClass)) { - return servlet.getServletName(); - } - } - } - - return null; - } - - private boolean isWebFolder(Object obj) { - if (obj instanceof IFolder) { - return isWebResource(obj); - } - return false; - } - - private boolean isWebResource(Object obj) { - if (obj instanceof IResource) { - IResource resource = (IResource) obj; - IVirtualComponent comp = ComponentCore.createComponent(resource.getProject()); - if (comp != null) { - IPath rootPath = comp.getRootFolder().getWorkspaceRelativePath(); - IPath webInfPath = rootPath.append(J2EEConstants.WEB_INF); - IPath metaInfPath = rootPath.append(J2EEConstants.META_INF); - IPath resourcePath = resource.getFullPath(); - return rootPath.isPrefixOf(resourcePath) && - !rootPath.equals(resourcePath) && - !webInfPath.isPrefixOf(resourcePath) && - !metaInfPath.isPrefixOf(resourcePath); - } - } - return false; - } - - private String getWebResourcePath(IResource resource) { - IVirtualComponent comp = ComponentCore.createComponent(resource.getProject()); - if (comp != null) { - IPath rootPath = comp.getRootFolder().getWorkspaceRelativePath(); - return resource.getFullPath().makeRelativeTo(rootPath).toString(); - } - return null; - } - - public String makeFirstCharUppercase(String str) { - if (str == null || str.length() == 0) - return str; - - StringBuilder builder = new StringBuilder(str); - builder.setCharAt(0, Character.toUpperCase(builder.charAt(0))); - return builder.toString(); - } - - public String getFileNameWithouFileExtension(IFile file) { - String name = file.getName(); - String ext = file.getFileExtension(); - - if (ext == null) - return name; - - return name.substring(0, name.length() - (ext.length() + 1)); - } } diff --git a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewServletClassWizardPage.java b/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewServletClassWizardPage.java index 7eb7f67fe..daca4542d 100644 --- a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewServletClassWizardPage.java +++ b/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewServletClassWizardPage.java @@ -21,6 +21,7 @@ import static org.eclipse.jst.servlet.ui.internal.wizard.IWebWizardConstants.USE import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.IPath; import org.eclipse.jdt.core.IType; import org.eclipse.jem.util.emf.workbench.ProjectUtilities; @@ -31,6 +32,7 @@ import org.eclipse.jst.jee.ui.internal.navigator.web.GroupServletItemProvider; import org.eclipse.jst.jee.ui.internal.navigator.web.WebAppProvider; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Cursor; +import org.eclipse.swt.widgets.Composite; import org.eclipse.wst.common.componentcore.ComponentCore; import org.eclipse.wst.common.componentcore.resources.IVirtualComponent; import org.eclipse.wst.common.frameworks.datamodel.IDataModel; @@ -110,4 +112,27 @@ public class NewServletClassWizardPage extends NewWebClassWizardPage { getControl().setCursor(null); } + @Override + protected Composite createTopLevelComposite(Composite parent) { + Composite composite = super.createTopLevelComposite(parent); + + Object obj = getSelectedObject(); + if (isServlet(obj)) { + checkExistingButton(true); + if (isServletJSP(obj)) { + existingClassText.setText(getServletJSPFile(obj)); + model.setBooleanProperty(IS_SERVLET_TYPE, false); + } else { + existingClassText.setText(getServletClass(obj)); + model.setBooleanProperty(IS_SERVLET_TYPE, true); + } + } else if (isJSP(obj)) { + checkExistingButton(true); + existingClassText.setText(getWebResourcePath((IResource) obj)); + model.setBooleanProperty(IS_SERVLET_TYPE, false); + } + + return composite; + } + } diff --git a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewWebArtifactWizard.java b/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewWebArtifactWizard.java index b718464b1..b35eb2405 100644 --- a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewWebArtifactWizard.java +++ b/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewWebArtifactWizard.java @@ -14,6 +14,7 @@ import static org.eclipse.jst.j2ee.internal.common.operations.INewJavaClassDataM import static org.eclipse.jst.j2ee.internal.common.operations.INewJavaClassDataModelProperties.OPEN_IN_EDITOR; import static org.eclipse.jst.j2ee.internal.common.operations.INewJavaClassDataModelProperties.PROJECT; import static org.eclipse.jst.j2ee.internal.common.operations.INewJavaClassDataModelProperties.QUALIFIED_CLASS_NAME; +import static org.eclipse.jst.j2ee.internal.web.operations.INewWebClassDataModelProperties.USE_EXISTING_CLASS; import java.net.URL; @@ -67,7 +68,12 @@ public abstract class NewWebArtifactWizard extends NewWebWizard { protected void openJavaClass() { try { - String className = getDataModel().getStringProperty(QUALIFIED_CLASS_NAME); + String className; + if (getDataModel().getBooleanProperty(USE_EXISTING_CLASS)) { + className = getDataModel().getStringProperty(CLASS_NAME); + } else { + className = getDataModel().getStringProperty(QUALIFIED_CLASS_NAME); + } IProject p = (IProject) getDataModel().getProperty(PROJECT); IJavaProject javaProject = J2EEEditorUtility.getJavaProject(p); IFile file = (IFile) javaProject.findType(className).getResource(); diff --git a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewWebClassWizardPage.java b/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewWebClassWizardPage.java index ba7ef94d6..69a74636e 100644 --- a/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewWebClassWizardPage.java +++ b/plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewWebClassWizardPage.java @@ -12,21 +12,38 @@ package org.eclipse.jst.servlet.ui.internal.wizard; import static org.eclipse.jst.j2ee.application.internal.operations.IAnnotationsDataModel.USE_ANNOTATIONS; import static org.eclipse.jst.j2ee.internal.common.operations.INewJavaClassDataModelProperties.CLASS_NAME; +import static org.eclipse.jst.j2ee.internal.common.operations.INewJavaClassDataModelProperties.GENERATE_DD; import static org.eclipse.jst.servlet.ui.internal.wizard.IWebWizardConstants.BROWSE_BUTTON_LABEL; import static org.eclipse.jst.servlet.ui.internal.wizard.IWebWizardConstants.CLASS_NAME_LABEL; import static org.eclipse.wst.common.componentcore.internal.operation.IArtifactEditOperationDataModelProperties.PROJECT_NAME; -import static org.eclipse.jst.j2ee.internal.common.operations.INewJavaClassDataModelProperties.GENERATE_DD; + +import java.util.Iterator; import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IFolder; import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IResource; import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.Path; +import org.eclipse.jdt.core.ICompilationUnit; +import org.eclipse.jdt.core.IJavaElement; +import org.eclipse.jdt.core.IType; +import org.eclipse.jdt.core.ITypeHierarchy; +import org.eclipse.jdt.core.JavaModelException; import org.eclipse.jem.util.emf.workbench.ProjectUtilities; import org.eclipse.jface.dialogs.Dialog; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jst.j2ee.commonarchivecore.internal.util.J2EEFileUtil; import org.eclipse.jst.j2ee.internal.J2EEConstants; import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities; import org.eclipse.jst.j2ee.internal.wizard.AnnotationsStandaloneGroup; import org.eclipse.jst.j2ee.internal.wizard.NewJavaClassWizardPage; +import org.eclipse.jst.j2ee.model.IModelProvider; +import org.eclipse.jst.j2ee.model.ModelProviderManager; +import org.eclipse.jst.j2ee.project.WebUtilities; +import org.eclipse.jst.j2ee.web.IServletConstants; import org.eclipse.jst.j2ee.web.project.facet.WebFacetUtils; import org.eclipse.jst.servlet.ui.internal.navigator.CompressedJavaProject; import org.eclipse.jst.servlet.ui.internal.plugin.ServletUIPlugin; @@ -37,8 +54,11 @@ import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PlatformUI; import org.eclipse.wst.common.componentcore.ComponentCore; import org.eclipse.wst.common.componentcore.resources.IVirtualComponent; import org.eclipse.wst.common.frameworks.datamodel.IDataModel; @@ -186,4 +206,222 @@ public abstract class NewWebClassWizardPage extends NewJavaClassWizardPage { } } } + + protected Object getSelectedObject() { + IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); + if (window == null) + return null; + ISelection selection = window.getSelectionService().getSelection(); + if (selection == null) + return null; + if (!(selection instanceof IStructuredSelection)) + return null; + IStructuredSelection ssel = (IStructuredSelection) selection; + if (ssel.size() != 1) + return null; + return ssel.getFirstElement(); + } + + private IType getPrimaryType(ICompilationUnit cu) { + return cu.getType(new Path(cu.getElementName()).removeFileExtension().toString()); + } + + private boolean isObjectSubclassOf(Object obj, String base) { + IJavaElement jelem = getJavaElement(obj); + + try { + if (jelem != null) { + if (jelem instanceof ICompilationUnit) { + ICompilationUnit cu = (ICompilationUnit) jelem; + jelem = getPrimaryType(cu); + } + + if (jelem instanceof IType && ((IType) jelem).isClass()) { + IType type = (IType) jelem; + ITypeHierarchy typeHierarchy = type.newTypeHierarchy(null); + for (IType superType : typeHierarchy.getAllSuperInterfaces(type)) { + if (base.equals(superType.getFullyQualifiedName())) + return true; + } + } + } + } catch (JavaModelException e) { + ServletUIPlugin.log(e); + } + + return false; + } + + protected boolean isServlet(Object obj) { + if (obj instanceof org.eclipse.jst.javaee.web.Servlet) + return true; + + if (obj instanceof org.eclipse.jst.j2ee.webapplication.Servlet) + return true; + + return isObjectSubclassOf(obj, IServletConstants.QUALIFIED_SERVLET); + } + + protected boolean isFilter(Object obj) { + if (obj instanceof org.eclipse.jst.javaee.web.Filter) + return true; + + if (obj instanceof org.eclipse.jst.j2ee.webapplication.Filter) + return true; + + return isObjectSubclassOf(obj, IServletConstants.QUALIFIED_FILTER); + } + + private String getJavaClass(Object obj) { + IJavaElement jelem = getJavaElement(obj); + + if (jelem == null) { + throw new IllegalArgumentException("the object parameter must be instance of IJavaElement"); + } + + if (jelem instanceof ICompilationUnit) { + ICompilationUnit cu = (ICompilationUnit) jelem; + jelem = getPrimaryType(cu); + } + return ((IType) jelem).getFullyQualifiedName(); + } + + protected String getServletClass(Object obj) { + if (obj instanceof org.eclipse.jst.javaee.web.Servlet) { + org.eclipse.jst.javaee.web.Servlet servlet = (org.eclipse.jst.javaee.web.Servlet) obj; + return servlet.getServletClass(); + } + + if (obj instanceof org.eclipse.jst.j2ee.webapplication.Servlet) { + org.eclipse.jst.j2ee.webapplication.Servlet servlet = (org.eclipse.jst.j2ee.webapplication.Servlet) obj; + return servlet.getServletClass().getQualifiedName(); + } + + return getJavaClass(obj); + } + + protected String getFilterClass(Object obj) { + if (obj instanceof org.eclipse.jst.javaee.web.Filter) { + org.eclipse.jst.javaee.web.Filter filter = (org.eclipse.jst.javaee.web.Filter) obj; + return filter.getFilterClass(); + } + + if (obj instanceof org.eclipse.jst.j2ee.webapplication.Filter) { + org.eclipse.jst.j2ee.webapplication.Filter filter = (org.eclipse.jst.j2ee.webapplication.Filter) obj; + return filter.getFilterClass().getQualifiedName(); + } + + return getJavaClass(obj); + } + + protected String getServletName(Object obj) { + if (obj instanceof org.eclipse.jst.javaee.web.Servlet) { + org.eclipse.jst.javaee.web.Servlet servlet = (org.eclipse.jst.javaee.web.Servlet) obj; + return servlet.getServletName(); + } + + if (obj instanceof org.eclipse.jst.j2ee.webapplication.Servlet) { + org.eclipse.jst.j2ee.webapplication.Servlet servlet = (org.eclipse.jst.j2ee.webapplication.Servlet) obj; + return servlet.getServletName(); + } + + String servletClass = getServletClass(obj); + IProject project = getJavaElement(obj).getJavaProject().getProject(); + IModelProvider provider = ModelProviderManager.getModelProvider(project); + Object modelObject = provider.getModelObject(); + if (modelObject instanceof org.eclipse.jst.javaee.web.WebApp) { + org.eclipse.jst.javaee.web.WebApp webApp = (org.eclipse.jst.javaee.web.WebApp) modelObject; + Iterator servlets = webApp.getServlets().iterator(); + while (servlets.hasNext()) { + org.eclipse.jst.javaee.web.Servlet servlet = (org.eclipse.jst.javaee.web.Servlet) servlets.next(); + String qualified = servlet.getServletClass(); + if (qualified.equals(servletClass)) { + return servlet.getServletName(); + } + } + } else if (modelObject instanceof org.eclipse.jst.j2ee.webapplication.WebApp) { + org.eclipse.jst.j2ee.webapplication.WebApp webApp = (org.eclipse.jst.j2ee.webapplication.WebApp) modelObject; + Iterator servlets = webApp.getServlets().iterator(); + while (servlets.hasNext()) { + org.eclipse.jst.j2ee.webapplication.Servlet servlet = (org.eclipse.jst.j2ee.webapplication.Servlet) servlets.next(); + String qualified = servlet.getServletClass().getQualifiedName(); + if (qualified.equals(servletClass)) { + return servlet.getServletName(); + } + } + } + + return null; + } + + protected boolean isServletJSP(Object obj) { + return getServletJSPFile(obj) != null; + } + + protected String getServletJSPFile(Object obj) { + if (obj instanceof org.eclipse.jst.javaee.web.Servlet) { + org.eclipse.jst.javaee.web.Servlet servlet = (org.eclipse.jst.javaee.web.Servlet) obj; + return servlet.getJspFile(); + } + + if (obj instanceof org.eclipse.jst.j2ee.webapplication.Servlet) { + org.eclipse.jst.j2ee.webapplication.Servlet servlet = (org.eclipse.jst.j2ee.webapplication.Servlet) obj; + org.eclipse.jst.j2ee.webapplication.WebType webType = servlet.getWebType(); + if (webType.isJspType()) { + org.eclipse.jst.j2ee.webapplication.JSPType jspType = (org.eclipse.jst.j2ee.webapplication.JSPType) webType; + return jspType.getJspFile(); + } + } + + return null; + } + + protected boolean isWebFolder(Object obj) { + if (obj instanceof IFolder) { + return WebUtilities.isWebResource(obj); + } + return false; + } + + protected boolean isJSP(Object obj) { + if (obj instanceof IFile) { + IFile file = (IFile) obj; + return WebUtilities.isWebResource(file) && file.getName().endsWith(J2EEFileUtil.DOT_JSP); + } + return false; + } + + protected String getWebResourcePath(IResource resource) { + IVirtualComponent comp = ComponentCore.createComponent(resource.getProject()); + if (comp != null) { + IPath rootPath = comp.getRootFolder().getWorkspaceRelativePath(); + return "/" + resource.getFullPath().makeRelativeTo(rootPath).toString(); + } + return null; + } + + protected String makeFirstCharUppercase(String str) { + if (str == null || str.length() == 0) + return str; + + StringBuilder builder = new StringBuilder(str); + builder.setCharAt(0, Character.toUpperCase(builder.charAt(0))); + return builder.toString(); + } + + protected String getFileNameWithouFileExtension(IFile file) { + String name = file.getName(); + String ext = file.getFileExtension(); + + if (ext == null) + return name; + + return name.substring(0, name.length() - (ext.length() + 1)); + } + + protected void checkExistingButton(boolean state) { + existingButton.setSelection(state); + existingButton.notifyListeners(SWT.Selection, new Event()); + } + } |