1.1 --- a/PLSQL/Annotation/src/org/netbeans/modules/plsql/annotation/Annotation.java Tue Aug 21 18:34:01 2012 +0200
1.2 +++ b/PLSQL/Annotation/src/org/netbeans/modules/plsql/annotation/Annotation.java Fri Aug 24 09:56:16 2012 +0530
1.3 @@ -41,9 +41,11 @@
1.4 */
1.5 package org.netbeans.modules.plsql.annotation;
1.6
1.7 +import java.util.ArrayList;
1.8 import org.netbeans.modules.plsql.annotation.annotations.PlsqlAnnotation;
1.9 import org.netbeans.modules.plsql.lexer.PlsqlBlock;
1.10 import java.util.HashMap;
1.11 +import java.util.List;
1.12 import java.util.Map;
1.13 import java.util.Set;
1.14
1.15 @@ -56,10 +58,13 @@
1.16 String TOKEN_ERROR_SYS = "ERROR_SYS";
1.17 String TOKEN_START_KEYWORD = "START_KEYWORD";
1.18 static final Map<String, Set<PlsqlAnnotation>> configuration = new HashMap<String, Set<PlsqlAnnotation>>();
1.19 -
1.20 + List<String> allAnnotationTypes = new ArrayList<String>();
1.21 +
1.22 void loadConfiguration();
1.23
1.24 Map<String, Set<PlsqlAnnotation>> getConfiguration();
1.25
1.26 String getType(PlsqlBlock block);
1.27 +
1.28 + String[] getAllAnnotationTypes();
1.29 }
2.1 --- a/PLSQL/Annotation/src/org/netbeans/modules/plsql/annotation/GenericPlsqlAnnotations.java Tue Aug 21 18:34:01 2012 +0200
2.2 +++ b/PLSQL/Annotation/src/org/netbeans/modules/plsql/annotation/GenericPlsqlAnnotations.java Fri Aug 24 09:56:16 2012 +0530
2.3 @@ -54,6 +54,7 @@
2.4 import org.netbeans.modules.plsql.lexer.PlsqlBlock;
2.5 import org.netbeans.modules.plsql.lexer.PlsqlBlockType;
2.6 import java.util.HashSet;
2.7 +import java.util.Iterator;
2.8 import java.util.Map;
2.9 import java.util.Set;
2.10
2.11 @@ -82,7 +83,7 @@
2.12
2.13 final Set<PlsqlAnnotation> procDefAnnotations = new HashSet<PlsqlAnnotation>();
2.14 configuration.put(BLOCK_PROCEDURE_DEF, procDefAnnotations);
2.15 -
2.16 +
2.17 final Set<PlsqlAnnotation> procImplAnnotations = new HashSet<PlsqlAnnotation>();
2.18 configuration.put(BLOCK_PROCEDURE_IMPL, procImplAnnotations);
2.19
2.20 @@ -94,7 +95,7 @@
2.21
2.22 final Set<PlsqlAnnotation> ifAnnotations = new HashSet<PlsqlAnnotation>();
2.23 configuration.put(BLOCK_IF, ifAnnotations);
2.24 -
2.25 +
2.26 final Set<PlsqlAnnotation> cursorAnnotations = new HashSet<PlsqlAnnotation>();
2.27 configuration.put(BLOCK_CURSOR, cursorAnnotations);
2.28
2.29 @@ -167,4 +168,21 @@
2.30
2.31 }
2.32
2.33 + @Override
2.34 + public String[] getAllAnnotationTypes() {
2.35 + if (!configuration.isEmpty()) {
2.36 + String[] keys = configuration.keySet().toArray(new String[0]);
2.37 + for (String key : keys) {
2.38 + Set<PlsqlAnnotation> allnnotations = configuration.get(key);
2.39 + Iterator<PlsqlAnnotation> iterator = allnnotations.iterator();
2.40 + while (iterator.hasNext()) {
2.41 + PlsqlAnnotation next = iterator.next();
2.42 + if (!allAnnotationTypes.contains(next.getAnnotationType())) {
2.43 + allAnnotationTypes.add(next.getAnnotationType());
2.44 + }
2.45 + }
2.46 + }
2.47 + }
2.48 + return allAnnotationTypes.toArray(new String[]{});
2.49 + }
2.50 }
3.1 --- a/PLSQL/Annotation/src/org/netbeans/modules/plsql/annotation/PlsqlAnnotationActionProvider.java Tue Aug 21 18:34:01 2012 +0200
3.2 +++ b/PLSQL/Annotation/src/org/netbeans/modules/plsql/annotation/PlsqlAnnotationActionProvider.java Fri Aug 24 09:56:16 2012 +0530
3.3 @@ -51,7 +51,10 @@
3.4
3.5 public final class PlsqlAnnotationActionProvider extends AbstractAction {
3.6
3.7 - public PlsqlAnnotationActionProvider() { //NOPMD
3.8 + public PlsqlAnnotationActionProvider() {
3.9 + //From NetBeans 7.2
3.10 + PlsqlAnnotationManager annotationManager = new PlsqlAnnotationManager();
3.11 + putValue("supported-annotation-types",annotationManager.getAllAnnotationTypes());
3.12 }
3.13
3.14 @Override
4.1 --- a/PLSQL/Annotation/src/org/netbeans/modules/plsql/annotation/PlsqlAnnotationManager.java Tue Aug 21 18:34:01 2012 +0200
4.2 +++ b/PLSQL/Annotation/src/org/netbeans/modules/plsql/annotation/PlsqlAnnotationManager.java Fri Aug 24 09:56:16 2012 +0530
4.3 @@ -81,12 +81,12 @@
4.4 public final Map<Integer, String> errorSysCalls;
4.5 public final Map<Integer, Set<String>> allowedTablesOrViews;
4.6 public static Annotation annotation = new GenericPlsqlAnnotations();
4.7 -
4.8 +
4.9 public PlsqlAnnotationManager() {
4.10 if (OptionsUtilities.isPlSqlAnnotationsEnabled()) {
4.11 annotation.loadConfiguration();
4.12 - }
4.13 -
4.14 + }
4.15 +
4.16 final PreferenceChangeListener listener = new PreferenceChangeListener() {
4.17
4.18 @Override
4.19 @@ -110,6 +110,10 @@
4.20 errorSysCalls = new ConcurrentHashMap<Integer, String>();
4.21 allowedTablesOrViews = new ConcurrentHashMap<Integer, Set<String>>();
4.22 }
4.23 +
4.24 + public String[] getAllAnnotationTypes(){
4.25 + return annotation.getAllAnnotationTypes();
4.26 + }
4.27
4.28 @Override
4.29 public void update(final Observable obj1, final Object obj2) {
4.30 @@ -150,7 +154,7 @@
4.31 errorSysCalls.clear();
4.32 allowedTablesOrViews.clear();
4.33 }
4.34 -
4.35 +
4.36 public void initAnnotations(final DataObject dataObject) {
4.37 clearAllAnnotations();
4.38 final EditorCookie editorCookie = dataObject.getLookup().lookup(EditorCookie.class);