From a6af2cf54a6c19cb49ea1705777a6ae858f6c29c Mon Sep 17 00:00:00 2001 From: Manindra Moharana Date: Sun, 18 Aug 2013 12:20:24 +0530 Subject: [PATCH] minor tweaks --- .../mode/experimental/ASTGenerator.java | 7 ++- .../experimental/ErrorCheckerService.java | 10 ++-- .../mode/experimental/SketchOutline.java | 59 +++++++++++-------- 3 files changed, 45 insertions(+), 31 deletions(-) diff --git a/pdex/src/processing/mode/experimental/ASTGenerator.java b/pdex/src/processing/mode/experimental/ASTGenerator.java index a9609315b..bb9ac4de4 100644 --- a/pdex/src/processing/mode/experimental/ASTGenerator.java +++ b/pdex/src/processing/mode/experimental/ASTGenerator.java @@ -982,6 +982,7 @@ public class ASTGenerator { } private void showPredictions(final String word) { + if(sketchOutline.isVisible()) return; Collections.sort(candidates); CompletionCandidate[][] candi = new CompletionCandidate[candidates.size()][1]; DefaultListModel defListModel = new DefaultListModel(); @@ -2069,10 +2070,10 @@ public class ASTGenerator { } } - protected SketchOutline sko; + protected SketchOutline sketchOutline; protected void showSketchOutline(){ - sko = new SketchOutline(codeTree, errorCheckerService); - sko.show(); + sketchOutline = new SketchOutline(codeTree, errorCheckerService); + sketchOutline.show(); } public int javaCodeOffsetToLineStartOffset(int line, int jOffset){ diff --git a/pdex/src/processing/mode/experimental/ErrorCheckerService.java b/pdex/src/processing/mode/experimental/ErrorCheckerService.java index 3853a367d..e565b11c4 100644 --- a/pdex/src/processing/mode/experimental/ErrorCheckerService.java +++ b/pdex/src/processing/mode/experimental/ErrorCheckerService.java @@ -1,6 +1,7 @@ package processing.mode.experimental; import static processing.mode.experimental.ExperimentalMode.log; +import static processing.mode.experimental.ExperimentalMode.logE; import java.awt.EventQueue; import java.io.File; @@ -881,6 +882,7 @@ public class ErrorCheckerService implements Runnable{ } public String getPDECodeAtLine(int tab, int linenumber){ + if(linenumber < 0) return null; editor.getSketch().setCurrentCode(tab); return editor.ta.getLineText(linenumber); } @@ -1116,16 +1118,16 @@ public class ErrorCheckerService implements Runnable{ * @return true - if highlighting happened correctly. */ public boolean highlightNode(ASTNodeWrapper awrap){ - int pdeoffsets[] = awrap.getPDECodeOffsets(this); - int javaoffsets[] = awrap.getJavaCodeOffsets(this); try { + int pdeoffsets[] = awrap.getPDECodeOffsets(this); + int javaoffsets[] = awrap.getJavaCodeOffsets(this); scrollToErrorLine(editor, pdeoffsets[0], pdeoffsets[1],javaoffsets[1], javaoffsets[2]); return true; } catch (Exception e) { - - e.printStackTrace(); + logE("Scrolling failed for " + awrap); + // e.printStackTrace(); } return false; } diff --git a/pdex/src/processing/mode/experimental/SketchOutline.java b/pdex/src/processing/mode/experimental/SketchOutline.java index e76591520..527c85c88 100644 --- a/pdex/src/processing/mode/experimental/SketchOutline.java +++ b/pdex/src/processing/mode/experimental/SketchOutline.java @@ -126,17 +126,20 @@ public class SketchOutline { return; internalSelection = true; - if (evt.getKeyCode() == KeyEvent.VK_ENTER) { + + if (evt.getKeyCode() == KeyEvent.VK_ESCAPE) { + close(); + } + else if (evt.getKeyCode() == KeyEvent.VK_ENTER) { if (soTree.getLastSelectedPathComponent() != null) { DefaultMutableTreeNode tnode = (DefaultMutableTreeNode) soTree .getLastSelectedPathComponent(); if (tnode.getUserObject() instanceof ASTNodeWrapper) { ASTNodeWrapper awrap = (ASTNodeWrapper) tnode.getUserObject(); errorCheckerService.highlightNode(awrap); + close(); } - } - return; } else if (evt.getKeyCode() == KeyEvent.VK_UP) { if (soTree.getLastSelectedPathComponent() == null) { @@ -155,7 +158,6 @@ public class SketchOutline { .getValue() - step)); } soTree.setSelectionRow(x); - return; } else if (evt.getKeyCode() == KeyEvent.VK_DOWN) { if (soTree.getLastSelectedPathComponent() == null) { @@ -174,28 +176,28 @@ public class SketchOutline { .getValue() + step)); } soTree.setSelectionRow(x); - return; } - - SwingWorker worker = new SwingWorker() { - protected Object doInBackground() throws Exception { - return null; - } - - protected void done() { - String text = searchField.getText().toLowerCase(); - tempNode = new DefaultMutableTreeNode(); - filterTree(text, tempNode, soNode); - soTree.setModel(new DefaultTreeModel(tempNode)); - ((DefaultTreeModel) soTree.getModel()).reload(); - for (int i = 0; i < soTree.getRowCount(); i++) { - soTree.expandRow(i); + else { + SwingWorker worker = new SwingWorker() { + protected Object doInBackground() throws Exception { + return null; } - internalSelection = true; - soTree.setSelectionRow(0); - } - }; - worker.execute(); + + protected void done() { + String text = searchField.getText().toLowerCase(); + tempNode = new DefaultMutableTreeNode(); + filterTree(text, tempNode, soNode); + soTree.setModel(new DefaultTreeModel(tempNode)); + ((DefaultTreeModel) soTree.getModel()).reload(); + for (int i = 0; i < soTree.getRowCount(); i++) { + soTree.expandRow(i); + } + internalSelection = true; + soTree.setSelectionRow(0); + } + }; + worker.execute(); + } } }); @@ -316,6 +318,15 @@ public class SketchOutline { frmOutlineView.setVisible(true); } + public void close(){ + frmOutlineView.setVisible(false); + frmOutlineView.dispose(); + } + + public boolean isVisible(){ + return frmOutlineView.isVisible(); + } + protected class CustomCellRenderer extends DefaultTreeCellRenderer { // ImageIcon icons[];