Select and Execute multiple statements gives invalid character exception release701
authorSubhashini Sooriarachchi <subslk@netbeans.org>
Mon, 23 Jul 2012 14:06:23 +0530
branchrelease701
changeset 2583234da818566
parent 257 b16664261b68
child 259 c96374242ed1
Select and Execute multiple statements gives invalid character exception
PLSQL/Execution/src/org/netbeans/modules/plsql/execution/PlsqlExecuteAction.java
     1.1 --- a/PLSQL/Execution/src/org/netbeans/modules/plsql/execution/PlsqlExecuteAction.java	Tue Jul 17 15:45:19 2012 +0200
     1.2 +++ b/PLSQL/Execution/src/org/netbeans/modules/plsql/execution/PlsqlExecuteAction.java	Mon Jul 23 14:06:23 2012 +0530
     1.3 @@ -317,6 +317,9 @@
     1.4              connectionProvider.connect(connection);
     1.5          }
     1.6  
     1.7 +        PlsqlExecutableBlocksMaker blockMaker = new PlsqlExecutableBlocksMaker(document);
     1.8 +        blocks = blockMaker.makeExceutableObjects();
     1.9 +                
    1.10          //if the user has selected any text in the window, create exec block using selected text only
    1.11          if (validator.isValidTDB(dataObject)) {
    1.12              JEditorPane[] panes = edCookie.getOpenedPanes();
    1.13 @@ -324,17 +327,20 @@
    1.14                  String selectedSql = panes[0].getSelectedText();
    1.15                  if (selectedSql != null && !selectedSql.trim().equals("")) { //some text has been selected
    1.16                      //create executable block with selected sql
    1.17 -                    blocks = new ArrayList<PlsqlExecutableObject>();
    1.18 -                    blocks.add(new PlsqlExecutableObject(0, selectedSql, "SQL", PlsqlExecutableObjectType.STATEMENT, 0, selectedSql.length() - 1));
    1.19 +                    List<PlsqlExecutableObject> newblocks = new ArrayList<PlsqlExecutableObject>();
    1.20 +                    int selectionStart = panes[0].getSelectionStart();
    1.21 +                    int selectionEnd = panes[0].getSelectionEnd();
    1.22 +                    for (PlsqlExecutableObject block : blocks) {
    1.23 +                        if ((selectionStart <= block.getStartOffset()) && (selectionEnd >= block.getEndOffset())) {
    1.24 +                            newblocks.add(block);
    1.25 +                        }
    1.26 +                    }
    1.27 +                    if (!newblocks.isEmpty()) {
    1.28 +                        blocks = newblocks;
    1.29 +                    }
    1.30                  }
    1.31              }
    1.32          }
    1.33 -
    1.34 -        //if blocks were not created using selected text, use entire document to create exec blocks
    1.35 -        if (blocks == null) {
    1.36 -            PlsqlExecutableBlocksMaker blockMaker = new PlsqlExecutableBlocksMaker(document);
    1.37 -            blocks = blockMaker.makeExceutableObjects();
    1.38 -        }
    1.39          String extension = file.getExt();
    1.40          if (blocks.size() > 0 && "tdb".equalsIgnoreCase(extension) && (dataObject.getNodeDelegate().getDisplayName() == null || !dataObject.getNodeDelegate().getDisplayName().contains(TEST_BLOCK_NAME_PREFIX))) {
    1.41              String str = blocks.get(0).getPlsqlString().replaceAll("\n", " ");