Annotation actions are not prompt (After NB 7.2)
authorSubhashini Sooriarachchi <subslk@netbeans.org>
Fri, 24 Aug 2012 09:56:16 +0530
changeset 284d3356ccbe48a
parent 283 a11eb74f1c23
child 285 71a2c9335b5f
Annotation actions are not prompt (After NB 7.2)
PLSQL/Annotation/src/org/netbeans/modules/plsql/annotation/Annotation.java
PLSQL/Annotation/src/org/netbeans/modules/plsql/annotation/GenericPlsqlAnnotations.java
PLSQL/Annotation/src/org/netbeans/modules/plsql/annotation/PlsqlAnnotationActionProvider.java
PLSQL/Annotation/src/org/netbeans/modules/plsql/annotation/PlsqlAnnotationManager.java
     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);