EADS-3569 - Not possible to update comment code eg: design history after latest updation
authorchrislovsund@netbeans.org
Thu, 04 Apr 2013 16:08:11 +0200
changeset 3724a9a29c231bb
parent 371 f1c863293468
child 373 546604c8847e
EADS-3569 - Not possible to update comment code eg: design history after latest updation
cleanup
PLSQL/Formatter/src/org/netbeans/modules/plsql/format/PlsqlEditorKit.java
PLSQL/Formatter/src/org/netbeans/modules/plsql/format/PlsqlFormatter.java
PLSQL/Formatter/src/org/netbeans/modules/plsql/format/PlsqlSyntax.java
PLSQL/Formatter/src/org/netbeans/modules/plsql/format/PlsqlTokenContext.java
PLSQL/Formatter/src/org/netbeans/modules/plsql/format/comment/PlsqlCommentAction.java
PLSQL/Formatter/src/org/netbeans/modules/plsql/format/comment/PlsqlUncommentAction.java
     1.1 --- a/PLSQL/Formatter/src/org/netbeans/modules/plsql/format/PlsqlEditorKit.java	Thu Apr 04 16:00:59 2013 +0200
     1.2 +++ b/PLSQL/Formatter/src/org/netbeans/modules/plsql/format/PlsqlEditorKit.java	Thu Apr 04 16:08:11 2013 +0200
     1.3 @@ -59,28 +59,6 @@
     1.4  import org.netbeans.editor.Syntax;
     1.5  import org.netbeans.editor.SyntaxSupport;
     1.6  import org.netbeans.modules.editor.NbEditorKit;
     1.7 -
     1.8 -/*
     1.9 - * Class description
    1.10 - *
    1.11 - * Created on February 13, 2006, 9:42 AM
    1.12 - *
    1.13 - * @author IFS
    1.14 - *
    1.15 - * To change this template, choose Tools | Template Manager
    1.16 - * and open the template in the editor.
    1.17 - */
    1.18 -/*
    1.19 - * Class description
    1.20 - *
    1.21 - * Created on February 13, 2006, 9:42 AM
    1.22 - *
    1.23 - * @author IFS
    1.24 - *
    1.25 - * To change this template, choose Tools | Template Manager
    1.26 - * and open the template in the editor.
    1.27 - */
    1.28 -
    1.29  import org.openide.util.NbBundle;
    1.30  
    1.31  public class PlsqlEditorKit extends NbEditorKit {
    1.32 @@ -102,10 +80,12 @@
    1.33      * Create a syntax object suitable for highlighting PLSQL file syntax
    1.34      *
    1.35      */
    1.36 +   @Override
    1.37     public Syntax createSyntax(Document doc) {
    1.38        return new PlsqlSyntax();
    1.39     }
    1.40  
    1.41 +   @Override
    1.42     public SyntaxSupport createSyntaxSupport(BaseDocument doc) {
    1.43        return new PlsqlSyntaxSupport(doc);
    1.44     }
    1.45 @@ -118,6 +98,7 @@
    1.46      * Override create actions method to add our actions
    1.47      * @return
    1.48      */
    1.49 +   @Override
    1.50     protected Action[] createActions() {
    1.51        Action[] superActions = super.createActions();
    1.52        Action[] plsqlActions = new Action[]{
    1.53 @@ -133,6 +114,7 @@
    1.54     /**
    1.55      * Retrieves the content type for this editor kit
    1.56      */
    1.57 +   @Override
    1.58     public String getContentType() {
    1.59        return MIME_TYPE;
    1.60     }
    1.61 @@ -148,6 +130,7 @@
    1.62           putValue(BaseAction.POPUP_MENU_TEXT, NbBundle.getBundle(PlsqlEditorKit.class).getString("popup-expand-folds"));
    1.63        }
    1.64  
    1.65 +      @Override
    1.66        public void actionPerformed(ActionEvent evt, JTextComponent target) {
    1.67           int startSelect = -1;
    1.68           int endSelect = -1;
    1.69 @@ -167,7 +150,6 @@
    1.70                 hierarchy.expand(temp);
    1.71              }
    1.72              hierarchy.unlock();
    1.73 -            return;
    1.74           }
    1.75  
    1.76        //If there are no enclosed blocks try default expand fold
    1.77 @@ -187,6 +169,7 @@
    1.78           putValue(BaseAction.POPUP_MENU_TEXT, NbBundle.getBundle(PlsqlEditorKit.class).getString("popup-collapse-folds"));
    1.79        }
    1.80  
    1.81 +      @Override
    1.82        public void actionPerformed(ActionEvent evt, JTextComponent target) {
    1.83           int startSelect = -1;
    1.84           int endSelect = -1;
    1.85 @@ -206,7 +189,6 @@
    1.86                 hierarchy.collapse(temp);
    1.87              }
    1.88              hierarchy.unlock();
    1.89 -            return;
    1.90           }
    1.91  
    1.92        //If there are no enclosed blocks try default expand fold
    1.93 @@ -226,6 +208,7 @@
    1.94           putValue(BaseAction.POPUP_MENU_TEXT, NbBundle.getBundle(PlsqlEditorKit.class).getString("popup-expand-child-folds"));
    1.95        }
    1.96  
    1.97 +      @Override
    1.98        public void actionPerformed(ActionEvent evt, JTextComponent target) {
    1.99           int dot = target.getCaret().getDot();
   1.100           int mark = target.getCaret().getMark();
   1.101 @@ -280,6 +263,7 @@
   1.102           putValue(BaseAction.POPUP_MENU_TEXT, NbBundle.getBundle(PlsqlEditorKit.class).getString("popup-collapse-child-folds"));
   1.103        }
   1.104  
   1.105 +      @Override
   1.106        public void actionPerformed(ActionEvent evt, JTextComponent target) {
   1.107           int dot = target.getCaret().getDot();
   1.108           int mark = target.getCaret().getMark();
   1.109 @@ -325,6 +309,7 @@
   1.110  
   1.111     public static class PlsqlGenerateFoldPopupAction extends GenerateFoldPopupAction {
   1.112  
   1.113 +      @Override
   1.114        protected void addAdditionalItems(JTextComponent target, JMenu menu) {
   1.115           addAction(target, menu, collapseFolds);
   1.116           addAction(target, menu, expandFolds);
     2.1 --- a/PLSQL/Formatter/src/org/netbeans/modules/plsql/format/PlsqlFormatter.java	Thu Apr 04 16:00:59 2013 +0200
     2.2 +++ b/PLSQL/Formatter/src/org/netbeans/modules/plsql/format/PlsqlFormatter.java	Thu Apr 04 16:08:11 2013 +0200
     2.3 @@ -41,7 +41,6 @@
     2.4   */
     2.5  package org.netbeans.modules.plsql.format;
     2.6  
     2.7 -import org.netbeans.modules.plsql.lexer.PlsqlBlockFactory;
     2.8  import java.io.IOException;
     2.9  import java.util.Arrays;
    2.10  import java.util.HashSet;
     3.1 --- a/PLSQL/Formatter/src/org/netbeans/modules/plsql/format/PlsqlSyntax.java	Thu Apr 04 16:00:59 2013 +0200
     3.2 +++ b/PLSQL/Formatter/src/org/netbeans/modules/plsql/format/PlsqlSyntax.java	Thu Apr 04 16:08:11 2013 +0200
     3.3 @@ -141,6 +141,7 @@
     3.4       * Parse the next token
     3.5       * @return returns the token identified by the parser
     3.6       */
     3.7 +    @Override
     3.8      protected TokenID parseToken() {
     3.9          char actChar; //the current character
    3.10          
    3.11 @@ -450,6 +451,7 @@
    3.12       * @param stateNumber the int value of the token
    3.13       * @return returns the String value for the tokens
    3.14       */
    3.15 +    @Override
    3.16      public String getStateName(int stateNumber) {
    3.17          switch(stateNumber) {
    3.18          case ISI_WHITESPACE:
     4.1 --- a/PLSQL/Formatter/src/org/netbeans/modules/plsql/format/PlsqlTokenContext.java	Thu Apr 04 16:00:59 2013 +0200
     4.2 +++ b/PLSQL/Formatter/src/org/netbeans/modules/plsql/format/PlsqlTokenContext.java	Thu Apr 04 16:08:11 2013 +0200
     4.3 @@ -45,105 +45,91 @@
     4.4  import org.netbeans.editor.BaseTokenID;
     4.5  import org.netbeans.editor.TokenContext;
     4.6  import org.netbeans.editor.TokenContextPath;
     4.7 +import org.openide.util.Exceptions;
     4.8  
     4.9 -/*
    4.10 - * Class description
    4.11 - *
    4.12 - * Created on February 13, 2006, 9:22 AM
    4.13 - *
    4.14 - * @author IFS
    4.15 - *
    4.16 - * To change this template, choose Tools | Template Manager
    4.17 - * and open the template in the editor.
    4.18 - */
    4.19  public class PlsqlTokenContext extends TokenContext {
    4.20 -    // Numeric-ids for token categories
    4.21 -    public static final int ERRORS_ID = 0; // errors
    4.22 -    // Numeric-ids for token-ids
    4.23 -    public static final int WHITESPACE_ID = ERRORS_ID + 1; // inside white space
    4.24 -    public static final int LINE_COMMENT_ID = WHITESPACE_ID + 1; // inside line comment --
    4.25 -    public static final int BLOCK_COMMENT_ID = LINE_COMMENT_ID + 1; // inside block comment /* ... */
    4.26 -    public static final int STRING_ID = BLOCK_COMMENT_ID + 1; // inside string constant
    4.27 -    public static final int INCOMPLETE_STRING_ID = STRING_ID + 1; // inside string constant after '
    4.28 -    public static final int IDENTIFIER_ID = INCOMPLETE_STRING_ID + 1; // inside identifier
    4.29 -    public static final int OPERATOR_ID = IDENTIFIER_ID + 1; // slash char
    4.30 -    public static final int INVALID_COMMENT_END_ID = OPERATOR_ID + 1; // after '0'
    4.31 -    public static final int INT_LITERAL_ID = INVALID_COMMENT_END_ID + 1; // integer number
    4.32 -    public static final int DOUBLE_LITERAL_ID = INT_LITERAL_ID + 1; // double number
    4.33 -    public static final int DOT_ID = DOUBLE_LITERAL_ID + 1; // after '.'
    4.34 -    public static final int KEYWORD_ID = DOT_ID + 1;  
    4.35 -    public static final int LPAREN_ID = KEYWORD_ID + 1;
    4.36 -    public static final int RPAREN_ID = LPAREN_ID + 1;
    4.37 -    public static final int RBRACKET_ID = RPAREN_ID + 1;
    4.38 -    public static final int LBRACKET_ID = RBRACKET_ID+ 1;
    4.39 -    public static final int LBRACE_ID = LBRACKET_ID+1;
    4.40 -    public static final int RBRACE_ID = LBRACE_ID + 1;    
    4.41 -    public static final int CHAR_LITERAL_ID= RBRACE_ID +1;
    4.42 +   // Numeric-ids for token categories
    4.43  
    4.44 -    // Token categories
    4.45 -    public static final BaseTokenCategory ERRORS = 
    4.46 -            new BaseTokenCategory("errors", ERRORS_ID); // NOI18N
    4.47 -    
    4.48 -    // Token-ids
    4.49 -    public static final BaseTokenID WHITESPACE = 
    4.50 -            new BaseTokenID( "whitespace", WHITESPACE_ID ); // NOI18N
    4.51 -    public static final BaseTokenID LINE_COMMENT = 
    4.52 -            new BaseTokenID( "line-comment", LINE_COMMENT_ID ); // NOI18N
    4.53 -    public static final BaseTokenID BLOCK_COMMENT = 
    4.54 -            new BaseTokenID( "block-comment", BLOCK_COMMENT_ID ); // NOI18N
    4.55 -   
    4.56 -    public static final BaseTokenID STRING_LITERAL = 
    4.57 -            new BaseTokenID( "string-literal", STRING_ID ); // NOI18N
    4.58 -    public static final BaseTokenID INCOMPLETE_STRING = 
    4.59 -            new BaseTokenID( "incomplete-string-literal", INCOMPLETE_STRING_ID, 
    4.60 -            ERRORS ); // NOI18N
    4.61 -    
    4.62 -    public static final BaseTokenID IDENTIFIER = 
    4.63 -            new BaseTokenID( "identifier", IDENTIFIER_ID ); // NOI18N
    4.64 -    public static final BaseTokenID OPERATOR = 
    4.65 -            new BaseTokenID( "operator", OPERATOR_ID ); // NOI18N
    4.66 -    public static final BaseTokenID INVALID_COMMENT_END = 
    4.67 -            new BaseTokenID( "invalid-comment-end", INVALID_COMMENT_END_ID, 
    4.68 -            ERRORS ); // NOI18N
    4.69 -    public static final BaseTokenID INT_LITERAL = 
    4.70 -            new BaseTokenID( "int-literal", INT_LITERAL_ID ); // NOI18N
    4.71 -    public static final BaseTokenID DOUBLE_LITERAL = 
    4.72 -            new BaseTokenID( "double-literal", DOUBLE_LITERAL_ID ); // NOI18N
    4.73 -    public static final BaseTokenID DOT = 
    4.74 -            new BaseTokenID( "dot", DOT_ID ); // NOI18N
    4.75 -    public static final BaseTokenID KEYWORD = 
    4.76 -            new BaseTokenID( "keyword", KEYWORD_ID ); // NOI18N  
    4.77 -    public static final BaseTokenID LPAREN = 
    4.78 -            new BaseTokenID( "lparen", LPAREN_ID ); // NOI18N
    4.79 -    public static final BaseTokenID RPAREN = 
    4.80 -            new BaseTokenID( "rparen", RPAREN_ID ); // NOI18N
    4.81 -    public static final BaseTokenID RBRACKET = 
    4.82 -            new BaseTokenID( "rbracket", RBRACKET_ID ); // NOI18N
    4.83 -    public static final BaseTokenID LBRACKET = 
    4.84 -            new BaseTokenID( "lbracket", LBRACKET_ID ); // NOI18N
    4.85 -    public static final BaseTokenID LBRACE = 
    4.86 -            new BaseTokenID( "lbrace", LBRACE_ID ); // NOI18N
    4.87 -    public static final BaseTokenID RBRACE = 
    4.88 -            new BaseTokenID( "rbrace", RBRACE_ID ); // NOI18N 
    4.89 -    public static final BaseTokenID CHAR_LITERAL=
    4.90 -            new BaseTokenID("char-literal",CHAR_LITERAL_ID);
    4.91 -    
    4.92 -    // Context instance declaration
    4.93 -    public static final PlsqlTokenContext context = new PlsqlTokenContext();
    4.94 -    public static final TokenContextPath contextPath = context.getContextPath();   
    4.95 +   public static final int ERRORS_ID = 0; // errors
    4.96 +   // Numeric-ids for token-ids
    4.97 +   public static final int WHITESPACE_ID = ERRORS_ID + 1; // inside white space
    4.98 +   public static final int LINE_COMMENT_ID = WHITESPACE_ID + 1; // inside line comment --
    4.99 +   public static final int BLOCK_COMMENT_ID = LINE_COMMENT_ID + 1; // inside block comment /* ... */
   4.100 +   public static final int STRING_ID = BLOCK_COMMENT_ID + 1; // inside string constant
   4.101 +   public static final int INCOMPLETE_STRING_ID = STRING_ID + 1; // inside string constant after '
   4.102 +   public static final int IDENTIFIER_ID = INCOMPLETE_STRING_ID + 1; // inside identifier
   4.103 +   public static final int OPERATOR_ID = IDENTIFIER_ID + 1; // slash char
   4.104 +   public static final int INVALID_COMMENT_END_ID = OPERATOR_ID + 1; // after '0'
   4.105 +   public static final int INT_LITERAL_ID = INVALID_COMMENT_END_ID + 1; // integer number
   4.106 +   public static final int DOUBLE_LITERAL_ID = INT_LITERAL_ID + 1; // double number
   4.107 +   public static final int DOT_ID = DOUBLE_LITERAL_ID + 1; // after '.'
   4.108 +   public static final int KEYWORD_ID = DOT_ID + 1;
   4.109 +   public static final int LPAREN_ID = KEYWORD_ID + 1;
   4.110 +   public static final int RPAREN_ID = LPAREN_ID + 1;
   4.111 +   public static final int RBRACKET_ID = RPAREN_ID + 1;
   4.112 +   public static final int LBRACKET_ID = RBRACKET_ID + 1;
   4.113 +   public static final int LBRACE_ID = LBRACKET_ID + 1;
   4.114 +   public static final int RBRACE_ID = LBRACE_ID + 1;
   4.115 +   public static final int CHAR_LITERAL_ID = RBRACE_ID + 1;
   4.116 +   // Token categories
   4.117 +   public static final BaseTokenCategory ERRORS =
   4.118 +           new BaseTokenCategory("errors", ERRORS_ID); // NOI18N
   4.119 +   // Token-ids
   4.120 +   public static final BaseTokenID WHITESPACE =
   4.121 +           new BaseTokenID("whitespace", WHITESPACE_ID); // NOI18N
   4.122 +   public static final BaseTokenID LINE_COMMENT =
   4.123 +           new BaseTokenID("line-comment", LINE_COMMENT_ID); // NOI18N
   4.124 +   public static final BaseTokenID BLOCK_COMMENT =
   4.125 +           new BaseTokenID("block-comment", BLOCK_COMMENT_ID); // NOI18N
   4.126 +   public static final BaseTokenID STRING_LITERAL =
   4.127 +           new BaseTokenID("string-literal", STRING_ID); // NOI18N
   4.128 +   public static final BaseTokenID INCOMPLETE_STRING =
   4.129 +           new BaseTokenID("incomplete-string-literal", INCOMPLETE_STRING_ID,
   4.130 +           ERRORS); // NOI18N
   4.131 +   public static final BaseTokenID IDENTIFIER =
   4.132 +           new BaseTokenID("identifier", IDENTIFIER_ID); // NOI18N
   4.133 +   public static final BaseTokenID OPERATOR =
   4.134 +           new BaseTokenID("operator", OPERATOR_ID); // NOI18N
   4.135 +   public static final BaseTokenID INVALID_COMMENT_END =
   4.136 +           new BaseTokenID("invalid-comment-end", INVALID_COMMENT_END_ID,
   4.137 +           ERRORS); // NOI18N
   4.138 +   public static final BaseTokenID INT_LITERAL =
   4.139 +           new BaseTokenID("int-literal", INT_LITERAL_ID); // NOI18N
   4.140 +   public static final BaseTokenID DOUBLE_LITERAL =
   4.141 +           new BaseTokenID("double-literal", DOUBLE_LITERAL_ID); // NOI18N
   4.142 +   public static final BaseTokenID DOT =
   4.143 +           new BaseTokenID("dot", DOT_ID); // NOI18N
   4.144 +   public static final BaseTokenID KEYWORD =
   4.145 +           new BaseTokenID("keyword", KEYWORD_ID); // NOI18N  
   4.146 +   public static final BaseTokenID LPAREN =
   4.147 +           new BaseTokenID("lparen", LPAREN_ID); // NOI18N
   4.148 +   public static final BaseTokenID RPAREN =
   4.149 +           new BaseTokenID("rparen", RPAREN_ID); // NOI18N
   4.150 +   public static final BaseTokenID RBRACKET =
   4.151 +           new BaseTokenID("rbracket", RBRACKET_ID); // NOI18N
   4.152 +   public static final BaseTokenID LBRACKET =
   4.153 +           new BaseTokenID("lbracket", LBRACKET_ID); // NOI18N
   4.154 +   public static final BaseTokenID LBRACE =
   4.155 +           new BaseTokenID("lbrace", LBRACE_ID); // NOI18N
   4.156 +   public static final BaseTokenID RBRACE =
   4.157 +           new BaseTokenID("rbrace", RBRACE_ID); // NOI18N 
   4.158 +   public static final BaseTokenID CHAR_LITERAL =
   4.159 +           new BaseTokenID("char-literal", CHAR_LITERAL_ID);
   4.160 +   // Context instance declaration
   4.161 +   public static final PlsqlTokenContext context = new PlsqlTokenContext();
   4.162 +   public static final TokenContextPath contextPath = context.getContextPath();
   4.163  
   4.164 -    /**
   4.165 -     * Constructs a new PLSQLTokenContext
   4.166 -     */
   4.167 -    private PlsqlTokenContext() {
   4.168 -        super("plsql-"); // NOI18N
   4.169 +   /**
   4.170 +    * Constructs a new PLSQLTokenContext
   4.171 +    */
   4.172 +   private PlsqlTokenContext() {
   4.173 +      super("plsql-"); // NOI18N
   4.174  
   4.175 -        try {
   4.176 -            addDeclaredTokenIDs();
   4.177 -        } catch (Exception e) {
   4.178 -            e.printStackTrace();
   4.179 -        }
   4.180 +      try {
   4.181 +         addDeclaredTokenIDs();
   4.182 +      } catch (Exception e) {
   4.183 +         Exceptions.printStackTrace(e);
   4.184 +      }
   4.185  
   4.186 -    }
   4.187 +   }
   4.188  }
   4.189 -
     5.1 --- a/PLSQL/Formatter/src/org/netbeans/modules/plsql/format/comment/PlsqlCommentAction.java	Thu Apr 04 16:00:59 2013 +0200
     5.2 +++ b/PLSQL/Formatter/src/org/netbeans/modules/plsql/format/comment/PlsqlCommentAction.java	Thu Apr 04 16:08:11 2013 +0200
     5.3 @@ -57,6 +57,7 @@
     5.4  
     5.5  public final class PlsqlCommentAction extends CookieAction {
     5.6  
     5.7 +   @Override
     5.8     protected void performAction(Node[] activatedNodes) {
     5.9        try {   
    5.10           DataObject dataObject = activatedNodes[0].getLookup().lookup(DataObject.class);
    5.11 @@ -65,21 +66,23 @@
    5.12           if (contentType.equals("org.netbeans.modules.plsql.filetype.PlsqlDataObject")) {
    5.13              JTextComponent component = Utilities.getFocusedComponent();            
    5.14              commentLines(component);
    5.15 -         } else 
    5.16 -            return;
    5.17 +         }
    5.18        } catch (BadLocationException ex) {
    5.19           Exceptions.printStackTrace(ex);
    5.20        }
    5.21     }
    5.22  
    5.23 +   @Override
    5.24     protected int mode() {
    5.25        return CookieAction.MODE_EXACTLY_ONE;
    5.26     }
    5.27  
    5.28 +   @Override
    5.29     public String getName() {
    5.30        return NbBundle.getMessage(PlsqlCommentAction.class, "CTL_CommentAction");
    5.31     }
    5.32  
    5.33 +   @Override
    5.34     protected Class[] cookieClasses() {
    5.35        return new Class[]{EditorCookie.class};
    5.36     }
    5.37 @@ -89,6 +92,7 @@
    5.38        return "org/netbeans/modules/plsql/format/comment/resources/comment.png";
    5.39     }
    5.40  
    5.41 +   @Override
    5.42     public HelpCtx getHelpCtx() {
    5.43        return HelpCtx.DEFAULT_HELP;
    5.44     }
    5.45 @@ -113,6 +117,7 @@
    5.46          if (doc instanceof BaseDocument)
    5.47              ((BaseDocument)doc).runAtomic(new Runnable() {
    5.48  
    5.49 +            @Override
    5.50              public void run() {
    5.51                  commentLines(target, doc);
    5.52              }
    5.53 @@ -160,7 +165,7 @@
    5.54                 }
    5.55              }            
    5.56          } catch (BadLocationException ble) {
    5.57 -            ble.printStackTrace();
    5.58 +           Exceptions.printStackTrace(ble);
    5.59          }
    5.60     }
    5.61  }
     6.1 --- a/PLSQL/Formatter/src/org/netbeans/modules/plsql/format/comment/PlsqlUncommentAction.java	Thu Apr 04 16:00:59 2013 +0200
     6.2 +++ b/PLSQL/Formatter/src/org/netbeans/modules/plsql/format/comment/PlsqlUncommentAction.java	Thu Apr 04 16:08:11 2013 +0200
     6.3 @@ -57,29 +57,33 @@
     6.4  
     6.5  public final class PlsqlUncommentAction extends CookieAction {
     6.6  
     6.7 +   @Override
     6.8     protected void performAction(Node[] activatedNodes) {
     6.9        try {
    6.10           DataObject dataObject = activatedNodes[0].getLookup().lookup(DataObject.class);
    6.11           String contentType = dataObject.getLoader().getRepresentationClassName().trim();
    6.12 -         
    6.13 +
    6.14           if (contentType.equals("org.netbeans.modules.plsql.filetype.PlsqlDataObject")) {
    6.15              JTextComponent component = Utilities.getFocusedComponent();
    6.16              uncommentLines(component);
    6.17 -         } else 
    6.18 -            return;
    6.19 +         } else {
    6.20 +         }
    6.21        } catch (BadLocationException ex) {
    6.22           Exceptions.printStackTrace(ex);
    6.23        }
    6.24     }
    6.25  
    6.26 +   @Override
    6.27     protected int mode() {
    6.28        return CookieAction.MODE_EXACTLY_ONE;
    6.29     }
    6.30  
    6.31 +   @Override
    6.32     public String getName() {
    6.33        return NbBundle.getMessage(PlsqlUncommentAction.class, "CTL_UncommentAction");
    6.34     }
    6.35  
    6.36 +   @Override
    6.37     protected Class[] cookieClasses() {
    6.38        return new Class[]{EditCookie.class};
    6.39     }
    6.40 @@ -89,6 +93,7 @@
    6.41        return "org/netbeans/modules/plsql/format/comment/resources/uncomment.png";
    6.42     }
    6.43  
    6.44 +   @Override
    6.45     public HelpCtx getHelpCtx() {
    6.46        return HelpCtx.DEFAULT_HELP;
    6.47     }
    6.48 @@ -97,96 +102,81 @@
    6.49     protected boolean asynchronous() {
    6.50        return false;
    6.51     }
    6.52 -   
    6.53 -     /**
    6.54 +
    6.55 +   /**
    6.56      * Method that will uncomment lines in the selected area
    6.57 +    *
    6.58      * @param target
    6.59      * @throws javax.swing.text.BadLocationException
    6.60      */
    6.61     public void uncommentLines(final JTextComponent target)
    6.62 -    throws BadLocationException {           
    6.63 -        final Document doc = target.getDocument();
    6.64 -        if (doc == null)
    6.65 -            
    6.66 -            return;
    6.67 -        
    6.68 -        if (doc instanceof BaseDocument)
    6.69 -            ((BaseDocument)doc).runAtomic(new Runnable() {
    6.70 +           throws BadLocationException {
    6.71 +      final Document doc = target.getDocument();
    6.72 +      if (doc == null) {
    6.73 +         return;
    6.74 +      }
    6.75  
    6.76 +      if (doc instanceof BaseDocument) {
    6.77 +         ((BaseDocument) doc).runAtomic(new Runnable() {
    6.78 +            @Override
    6.79              public void run() {
    6.80 -                uncommentLines(target, doc);
    6.81 +               uncommentLines(target, doc);
    6.82              }
    6.83 -        });
    6.84 -    }
    6.85 +         });
    6.86 +      }
    6.87 +   }
    6.88  
    6.89     /**
    6.90      * Method that will actually perform the commenting
    6.91 +    *
    6.92      * @param target
    6.93      * @param doc
    6.94      */
    6.95     private void uncommentLines(JTextComponent target, Document doc) {
    6.96        int lineStart = -1;
    6.97 -        try {
    6.98 -            //at first, find selected text range
    6.99 -            Caret caret = target.getCaret();
   6.100 -            int currentDot = caret.getDot();
   6.101 -            int currentMark = caret.getMark();
   6.102 -            int start = Math.min(currentDot, currentMark);
   6.103 -            int end = Math.max(currentDot, currentMark);
   6.104 -            int docLength = doc.getLength();            
   6.105 -            
   6.106 -            if (start == end) {//No selection
   6.107 -               if (docLength == end) //If we are going to the EOF ignore that
   6.108 -                  return;
   6.109 -               
   6.110 -               lineStart = Utilities.getRowStart(target, end);
   6.111 -               int commentStart = Utilities.getRowFirstNonWhite((BaseDocument)doc, lineStart);
   6.112 -               String str = doc.getText(commentStart, 2);
   6.113 -               if ((str != null) && (str.equals("--"))) {
   6.114 -                  doc.remove(commentStart, 2);
   6.115 -               }
   6.116 -            } else {  
   6.117 -               lineStart = Utilities.getRowStart(target, start);
   6.118 -               target.setSelectionStart(lineStart);
   6.119 -               String originalText = target.getSelectedText();
   6.120 -               String text = originalText.substring(0, originalText.length()).replaceAll("\n--", "\n");     
   6.121 -               if(text.startsWith("--"))
   6.122 -                  text=text.substring(2);
   6.123 -               target.replaceSelection(text);
   6.124 -               if(start!=lineStart) {
   6.125 -                  start=start-2;
   6.126 -               } 
   6.127 -               if(currentDot<currentMark) {
   6.128 -                  caret.setDot(lineStart+text.length());
   6.129 -                  caret.moveDot(start);
   6.130 -               } else {
   6.131 -                  caret.setDot(start);
   6.132 -                  caret.moveDot(lineStart+text.length());
   6.133 -               }
   6.134 -            }            
   6.135 -        } catch (BadLocationException ble) {
   6.136 -            ble.printStackTrace();
   6.137 -        }
   6.138 -   }
   6.139 -   
   6.140 -    /**
   6.141 -    * Method to get number of lines involved
   6.142 -    * @param target
   6.143 -    * @param start
   6.144 -    * @param end
   6.145 -    * @return
   6.146 -    */
   6.147 -   private int GetNumberOfLines(JTextComponent target, int start, int end) throws BadLocationException {
   6.148 -      int lineNo = 0;
   6.149 -      int lineStart = -1;
   6.150 -      for (int i = start; i <= end; i++) {
   6.151 -         int tmp = Utilities.getRowStart(target, i);
   6.152 -         if (tmp != lineStart) {
   6.153 -            lineStart = tmp;      
   6.154 -            ++lineNo;
   6.155 +      try {
   6.156 +         //at first, find selected text range
   6.157 +         Caret caret = target.getCaret();
   6.158 +         int currentDot = caret.getDot();
   6.159 +         int currentMark = caret.getMark();
   6.160 +         int start = Math.min(currentDot, currentMark);
   6.161 +         int end = Math.max(currentDot, currentMark);
   6.162 +         int docLength = doc.getLength();
   6.163 +
   6.164 +         if (start == end) {//No selection
   6.165 +            if (docLength == end) //If we are going to the EOF ignore that
   6.166 +            {
   6.167 +               return;
   6.168 +            }
   6.169 +
   6.170 +            lineStart = Utilities.getRowStart(target, end);
   6.171 +            int commentStart = Utilities.getRowFirstNonWhite((BaseDocument) doc, lineStart);
   6.172 +            String str = doc.getText(commentStart, 2);
   6.173 +            if ((str != null) && (str.equals("--"))) {
   6.174 +               doc.remove(commentStart, 2);
   6.175 +            }
   6.176 +         } else {
   6.177 +            lineStart = Utilities.getRowStart(target, start);
   6.178 +            target.setSelectionStart(lineStart);
   6.179 +            String originalText = target.getSelectedText();
   6.180 +            String text = originalText.substring(0, originalText.length()).replaceAll("\n--", "\n");
   6.181 +            if (text.startsWith("--")) {
   6.182 +               text = text.substring(2);
   6.183 +            }
   6.184 +            target.replaceSelection(text);
   6.185 +            if (start != lineStart) {
   6.186 +               start = start - 2;
   6.187 +            }
   6.188 +            if (currentDot < currentMark) {
   6.189 +               caret.setDot(lineStart + text.length());
   6.190 +               caret.moveDot(start);
   6.191 +            } else {
   6.192 +               caret.setDot(start);
   6.193 +               caret.moveDot(lineStart + text.length());
   6.194 +            }
   6.195           }
   6.196 +      } catch (BadLocationException ble) {
   6.197 +         Exceptions.printStackTrace(ble);
   6.198        }
   6.199 -      return lineNo;
   6.200     }
   6.201  }
   6.202 -