Author: dazarov
Date: 2010-09-01 10:36:07 -0400 (Wed, 01 Sep 2010)
New Revision: 24610
Added:
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/SeamWebWarTestProject/src/action/org/domain/SeamWebWarTestProject/session/StatelessClass.java
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/marker/AbstractSeamMarkerResolution.java
trunk/seam/tests/org.jboss.tools.seam.ui.test/src/org/jboss/tools/seam/ui/test/marker/SeamMarkerResolutionTest.java
Log:
https://jira.jboss.org/browse/JBIDE-6876
Modified:
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/marker/AbstractSeamMarkerResolution.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/marker/AbstractSeamMarkerResolution.java 2010-09-01
14:18:09 UTC (rev 24609)
+++
trunk/seam/plugins/org.jboss.tools.seam.ui/src/org/jboss/tools/seam/ui/marker/AbstractSeamMarkerResolution.java 2010-09-01
14:36:07 UTC (rev 24610)
@@ -81,6 +81,16 @@
}
}
+ private IType getType(IJavaElement element){
+ IJavaElement elem = element;
+ while(elem != null){
+ if(elem instanceof IType)
+ return (IType)elem;
+ elem = elem.getParent();
+ }
+ return null;
+ }
+
private boolean checkImport(String text, String qualifiedName){
String name = getShortName(qualifiedName);
@@ -104,14 +114,18 @@
ICompilationUnit original = EclipseUtil.getCompilationUnit(file);
ICompilationUnit compilationUnit = original.getWorkingCopy(new
NullProgressMonitor());
- if(compilationUnit.getImport(annotationTypeName) == null){
- compilationUnit.createImport(annotationTypeName, null, new NullProgressMonitor());
+ IJavaElement javaElement = compilationUnit.getElementAt(start);
+ IType type = getType(javaElement);
+ if(type != null){
+ if(compilationUnit.getImport(annotationTypeName) == null){
+ compilationUnit.createImport(annotationTypeName, null, new NullProgressMonitor());
+ }
+
+ IBuffer buffer = compilationUnit.getBuffer();
+
+ buffer.replace(type.getSourceRange().getOffset(), 0, annotationString+'\n');
+ compilationUnit.commitWorkingCopy(false, new NullProgressMonitor());
}
-
- IBuffer buffer = compilationUnit.getBuffer();
-
- buffer.replace(start, 0, annotationString+' ');
- compilationUnit.commitWorkingCopy(false, new NullProgressMonitor());
}catch(CoreException ex){
SeamGuiPlugin.getPluginLog().logError(ex);
}
Added:
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/SeamWebWarTestProject/src/action/org/domain/SeamWebWarTestProject/session/StatelessClass.java
===================================================================
---
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/SeamWebWarTestProject/src/action/org/domain/SeamWebWarTestProject/session/StatelessClass.java
(rev 0)
+++
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/SeamWebWarTestProject/src/action/org/domain/SeamWebWarTestProject/session/StatelessClass.java 2010-09-01
14:36:07 UTC (rev 24610)
@@ -0,0 +1,37 @@
+package org.domain.SeamWebWarTestProject.session;
+import javax.ejb.Stateless;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Destroy;
+import org.jboss.seam.annotations.Logger;
+import org.jboss.seam.log.Log;
+@Stateless @Name("StatelessClass")
+public class StatelessClass {
+
+ private String abc;
+
+ @Logger private Log log;
+
+
+ //seam-gen method
+ public String statefulComponent()
+ {
+ //implement your business logic here
+ log.info("statefulComponent.statefulComponent() action called");
+ return "success";
+ }
+
+ //add additional action methods
+ @Destroy
+ public void destroyMethod(){
+
+ }
+
+ public String getAbc() {
+ return abc;
+ }
+
+ public void setAbc(String abc) {
+ this.abc = abc;
+ }
+
+}
\ No newline at end of file
Property changes on:
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/SeamWebWarTestProject/src/action/org/domain/SeamWebWarTestProject/session/StatelessClass.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified:
trunk/seam/tests/org.jboss.tools.seam.ui.test/src/org/jboss/tools/seam/ui/test/marker/SeamMarkerResolutionTest.java
===================================================================
---
trunk/seam/tests/org.jboss.tools.seam.ui.test/src/org/jboss/tools/seam/ui/test/marker/SeamMarkerResolutionTest.java 2010-09-01
14:18:09 UTC (rev 24609)
+++
trunk/seam/tests/org.jboss.tools.seam.ui.test/src/org/jboss/tools/seam/ui/test/marker/SeamMarkerResolutionTest.java 2010-09-01
14:36:07 UTC (rev 24610)
@@ -100,6 +100,34 @@
assertTrue("The quickfix \"Delete @Destroy annotation\" doesn't
exist.", found);
}
+ public void testDuplicateDestroyAnnotationResolution2() throws CoreException {
+ String TARGET_FILE_NAME =
"src/action/org/domain/SeamWebWarTestProject/session/StatelessClass.java";
+ IFile file = project.getFile(TARGET_FILE_NAME);
+
+ assertTrue("File - "+TARGET_FILE_NAME+" must be
exists",file.exists());
+
+ IMarker[] markers = file.findMarkers(MARKER_TYPE, true, IResource.DEPTH_INFINITE);
+
+ boolean found = false;
+ for (int i = 0; i < markers.length; i++) {
+ IMarker marker = markers[i];
+ IMarkerResolution[] resolutions = IDE.getMarkerHelpRegistry()
+ .getResolutions(marker);
+ for (int j = 0; j < resolutions.length; j++) {
+ IMarkerResolution resolution = resolutions[j];
+ if (resolution instanceof DeleteAnnotaionMarkerResolution) {
+ assertEquals("org.jboss.seam.annotations.Destroy",
((DeleteAnnotaionMarkerResolution)resolution).getQualifiedName());
+ found = true;
+ break;
+ }
+ }
+ if (found) {
+ break;
+ }
+ }
+ assertTrue("The quickfix \"Delete @Destroy annotation\" doesn't
exist.", found);
+ }
+
public void testDuplicateCreateAnnotationResolution() throws CoreException {
String TARGET_FILE_NAME =
"src/action/org/domain/SeamWebWarTestProject/session/StatefulDuplicateCreateComponent.java";
IFile file = project.getFile(TARGET_FILE_NAME);