diff --git a/pdex/src/processing/mode/experimental/ASTGenerator.java b/pdex/src/processing/mode/experimental/ASTGenerator.java index eb98bf474..a9609315b 100644 --- a/pdex/src/processing/mode/experimental/ASTGenerator.java +++ b/pdex/src/processing/mode/experimental/ASTGenerator.java @@ -2069,109 +2069,10 @@ public class ASTGenerator { } } - protected JFrame frmOutlineView; + protected SketchOutline sko; protected void showSketchOutline(){ - frmOutlineView = new JFrame(); - frmOutlineView.setAlwaysOnTop(true); - frmOutlineView.setUndecorated(true); - Point tp = editor.ta.getLocationOnScreen(); - log("TA Co " + tp); - frmOutlineView.setBounds(tp.x + editor.ta.getWidth() - 300, tp.y, 300, editor.ta.getHeight()); - JScrollPane jsp = new JScrollPane(); - DefaultMutableTreeNode soNode = new DefaultMutableTreeNode(); - generateSketchOutlineTree(soNode, codeTree); - final JTree soTree = new JTree(soNode); - soTree.setRootVisible(false); - for (int i = 0; i < soTree.getRowCount(); i++) { - soTree.expandRow(i); - } - - jsp.setViewportView(soTree); - jsp.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); - jsp.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - frmOutlineView.add(jsp); - frmOutlineView.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); - frmOutlineView.setVisible(true); - frmOutlineView.addWindowFocusListener(new WindowFocusListener() { - public void windowLostFocus(WindowEvent e) { - frmOutlineView.setVisible(false); - frmOutlineView.dispose(); - } - public void windowGainedFocus(WindowEvent e) { - } - }); - - soTree.addTreeSelectionListener(new TreeSelectionListener() { - public void valueChanged(TreeSelectionEvent e) { - log(e); - SwingWorker worker = new SwingWorker() { - protected Object doInBackground() throws Exception { - return null; - } - protected void done() { - if (soTree.getLastSelectedPathComponent() == null) { - return; - } - DefaultMutableTreeNode tnode = (DefaultMutableTreeNode) soTree - .getLastSelectedPathComponent(); - if (tnode.getUserObject() == null) { - return; - } - - if (tnode.getUserObject() instanceof ASTNodeWrapper) { - ASTNodeWrapper awrap = (ASTNodeWrapper) tnode.getUserObject(); - errorCheckerService.highlightNode(awrap); - } - } - }; - worker.execute(); - } - }); - - } - - protected void generateSketchOutlineTree(DefaultMutableTreeNode node, DefaultMutableTreeNode codetree){ - if (codetree == null) - return; - //log("Visi " + codetree + codetree.getUserObject().getClass().getSimpleName()); - if(!(codetree.getUserObject() instanceof ASTNodeWrapper)) - return; - ASTNodeWrapper awnode = (ASTNodeWrapper) codetree.getUserObject(), aw2 = null; - - if (awnode.getNode() instanceof TypeDeclaration) { - aw2 = new ASTNodeWrapper(awnode.getNode(), - ((TypeDeclaration) awnode.getNode()).getName() - .toString()); - } else if (awnode.getNode() instanceof MethodDeclaration) { - aw2 = new ASTNodeWrapper( - ((MethodDeclaration) awnode - .getNode()).getName(), - new CompletionCandidate( - ((MethodDeclaration) awnode - .getNode())) - .toString()); - } - else if (awnode.getNode() instanceof FieldDeclaration) { - FieldDeclaration fd = (FieldDeclaration)awnode.getNode(); - for (VariableDeclarationFragment vdf : (List)fd.fragments()) { - DefaultMutableTreeNode newNode = new DefaultMutableTreeNode( - new ASTNodeWrapper( - vdf.getName(), - new CompletionCandidate( - vdf) - .toString())); - node.add(newNode); - } - return; - } - if(aw2 == null) return; - DefaultMutableTreeNode newNode = new DefaultMutableTreeNode(aw2); - node.add(newNode); - for (int i = 0; i < codetree.getChildCount(); i++) { - generateSketchOutlineTree(newNode, - (DefaultMutableTreeNode) codetree - .getChildAt(i)); - } + sko = new SketchOutline(codeTree, errorCheckerService); + sko.show(); } public int javaCodeOffsetToLineStartOffset(int line, int jOffset){