diff --git a/META-INF/MANIFEST.MF b/META-INF/MANIFEST.MF index d3ffe0f..0159c7c 100644 --- a/META-INF/MANIFEST.MF +++ b/META-INF/MANIFEST.MF @@ -5,12 +5,12 @@ Bundle-Version: 1.0.0.qualifier Automatic-Module-Name: org.ntlab.pushPullRefactoring Require-Bundle: org.eclipse.ltk.core.refactoring, - org.eclipse.jdt.core;bundle-version="3.18.0", - org.eclipse.jdt.core.manipulation;bundle-version="1.11.200", - org.eclipse.core.runtime;bundle-version="3.15.300", - org.eclipse.core.commands;bundle-version="3.9.400", - org.eclipse.jdt.ui;bundle-version="3.18.0", - org.eclipse.jface;bundle-version="3.16.0", - org.eclipse.ui.workbench;bundle-version="3.115.0", - org.eclipse.core.resources;bundle-version="3.13.400", - org.eclipse.jface.text;bundle-version="3.15.200" + org.eclipse.jdt.core, + org.eclipse.jdt.core.manipulation, + org.eclipse.core.runtime, + org.eclipse.core.commands, + org.eclipse.jdt.ui, + org.eclipse.jface, + org.eclipse.ui.workbench, + org.eclipse.core.resources, + org.eclipse.jface.text diff --git a/src/org/ntlab/pushPullRefactoring/PushPullRefactoringHandler.java b/src/org/ntlab/pushPullRefactoring/PushPullRefactoringHandler.java index aadd956..bdbe317 100644 --- a/src/org/ntlab/pushPullRefactoring/PushPullRefactoringHandler.java +++ b/src/org/ntlab/pushPullRefactoring/PushPullRefactoringHandler.java @@ -11,13 +11,16 @@ import org.eclipse.jdt.core.IAnnotation; import org.eclipse.jdt.core.ICodeAssist; import org.eclipse.jdt.core.ICompilationUnit; +import org.eclipse.jdt.core.IField; import org.eclipse.jdt.core.IJavaElement; +import org.eclipse.jdt.core.IMemberValuePair; import org.eclipse.jdt.core.IType; import org.eclipse.jdt.core.ITypeRoot; import org.eclipse.jdt.core.JavaModelException; import org.eclipse.jdt.core.dom.AST; import org.eclipse.jdt.core.dom.ASTNode; import org.eclipse.jdt.core.dom.ASTParser; +import org.eclipse.jdt.internal.core.SourceField; import org.eclipse.jdt.internal.ui.refactoring.RefactoringExecutionHelper; import org.eclipse.jdt.ui.JavaElementLabels; import org.eclipse.jdt.ui.JavaUI; @@ -50,7 +53,9 @@ @Override public Object execute(ExecutionEvent event) throws ExecutionException { // TODO Auto-generated method stub - + + //IAnnotation[] annotations = getValidAnnotations(event); + IType targetType = getTargetType(event); @@ -105,7 +110,7 @@ private IJavaElement codeResolve(ExecutionEvent event) throws JavaModelException { IEditorInput editorInput = HandlerUtil.getActiveEditorInput(event); ITypeRoot typeRoot = JavaUI.getEditorInputTypeRoot(editorInput); - IAnnotation[] annos = typeRoot.findPrimaryType().getAnnotations(); + if (typeRoot instanceof ICodeAssist) { if (typeRoot instanceof ICompilationUnit) { @@ -118,13 +123,16 @@ } -// ITextSelection selection = (ITextSelection) HandlerUtil.getActiveMenuSelection(event); - ITextSelection selection = (ITextSelection) HandlerUtil.getCurrentSelection(event); + + ITextSelection selection = (ITextSelection) HandlerUtil.getActiveMenuSelection(event); +// ITextSelection selection = (ITextSelection) HandlerUtil.getCurrentSelection(event); IJavaElement[] elements = ((ICodeAssist)typeRoot).codeSelect(selection.getOffset() + selection.getLength(), 0); - ICompilationUnit ic =(ICompilationUnit)elements[0].getAncestor(IJavaElement.COMPILATION_UNIT); - IType type = ic.findPrimaryType(); - IAnnotation annotation = type.getAnnotation(type.getElementName()); + if (elements[0] instanceof SourceField) { + IAnnotation annotation = ((SourceField) elements[0]).getAnnotation("PullReference"); + IMemberValuePair[] values = annotation.getMemberValuePairs(); + boolean f = annotation.exists(); + } if (elements.length > 0) { int t = elements[0].getElementType(); return elements[0]; @@ -138,7 +146,7 @@ ASTNode node = parser.createAST(new NullProgressMonitor()); return node; } - private IAnnotation[] getValidAnnotations(ExecutionEvent event) throws JavaModelException { + private IAnnotation[] getValidAnnotations(ExecutionEvent event) { IWorkbenchWindow window = HandlerUtil.getActiveWorkbenchWindow(event); @@ -147,9 +155,23 @@ ICompilationUnit cunit = (ICompilationUnit)javaElement; IType type = cunit.findPrimaryType(); - IAnnotation[] annotations = type.getAnnotations(); + IAnnotation[] annotations; + try { + for (IJavaElement el : type.getChildren()) { + if (el.getElementType() == IJavaElement.FIELD) { + IField field = (IField)el; + IAnnotation[] allAnnos = field.getAnnotations(); + + } + } + annotations = type.getAnnotations(); + return annotations; + } catch (JavaModelException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } - return annotations; + return null; } private RefactoringStatus checkAvailability(IJavaElement element) {