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", " ");