Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkraev2009-02-19 17:37:54 +0000
committerkraev2009-02-19 17:37:54 +0000
commit1288c8a3b26ea3b9076391ecdb725fe9cd303cbf (patch)
treeed0906a5dc4085f10ea47ed17702c48dda33e4bd /plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal
parent61f21c4704f5f3ce71e453bf8572c24e6cc27dd5 (diff)
downloadwebtools.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')
-rw-r--r--plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewFilterClassWizardPage.java201
-rw-r--r--plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewServletClassWizardPage.java25
-rw-r--r--plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewWebArtifactWizard.java8
-rw-r--r--plugins/org.eclipse.jst.servlet.ui/servlet_ui/org/eclipse/jst/servlet/ui/internal/wizard/NewWebClassWizardPage.java240
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());
+ }
+
}

Back to the top