Skip to content

Commit 923bd98

Browse files
committed
make the debug window track, remove the form
1 parent 754d495 commit 923bd98

File tree

17 files changed

+64
-164
lines changed

17 files changed

+64
-164
lines changed

java/src/processing/mode/java/JavaEditor.java

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1861,23 +1861,13 @@ public void switchToTab(String tabFileName) {
18611861
*
18621862
* @return the debugger controller object
18631863
*/
1864-
public Debugger dbg() {
1864+
public Debugger getDebugger() {
18651865
return dbg;
18661866
}
18671867

18681868

1869-
/**
1870-
* Access the mode.
1871-
*
1872-
* @return the mode object
1873-
*/
1874-
public JavaMode mode() {
1875-
return jmode;
1876-
}
1877-
18781869
/**
18791870
* Access the custom text area object.
1880-
*
18811871
* @return the text area object
18821872
*/
18831873
public JavaTextArea textArea() {
@@ -2223,8 +2213,8 @@ protected void setCode(SketchCode code) {
22232213
}
22242214
}
22252215
}
2226-
if (dbg() != null && dbg().isStarted()) {
2227-
dbg().startTrackingLineChanges();
2216+
if (getDebugger() != null && getDebugger().isStarted()) {
2217+
getDebugger().startTrackingLineChanges();
22282218
}
22292219
}
22302220

java/src/processing/mode/java/debug/VariableInspector.java

Lines changed: 60 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,7 @@
2020

2121
package processing.mode.java.debug;
2222

23-
import java.awt.Color;
24-
import java.awt.Component;
25-
import java.awt.EventQueue;
26-
import java.awt.Font;
27-
import java.awt.Graphics;
28-
import java.awt.Image;
23+
import java.awt.*;
2924
import java.awt.event.ComponentEvent;
3025
import java.awt.event.ComponentListener;
3126
import java.awt.image.BufferedImage;
@@ -36,44 +31,21 @@
3631
import java.util.logging.Level;
3732
import java.util.logging.Logger;
3833

39-
import javax.swing.DefaultCellEditor;
40-
import javax.swing.GrayFilter;
41-
import javax.swing.Icon;
42-
import javax.swing.ImageIcon;
43-
import javax.swing.JFrame;
44-
import javax.swing.JScrollPane;
45-
import javax.swing.JTable;
46-
import javax.swing.JTextField;
47-
import javax.swing.UIDefaults;
48-
import javax.swing.UIManager;
34+
import javax.swing.*;
4935
import javax.swing.event.TreeExpansionEvent;
5036
import javax.swing.event.TreeExpansionListener;
5137
import javax.swing.table.TableColumn;
52-
import javax.swing.tree.DefaultMutableTreeNode;
53-
import javax.swing.tree.DefaultTreeModel;
54-
import javax.swing.tree.ExpandVetoException;
55-
import javax.swing.tree.MutableTreeNode;
56-
import javax.swing.tree.TreeNode;
57-
import javax.swing.tree.TreePath;
58-
59-
import org.netbeans.swing.outline.DefaultOutlineCellRenderer;
60-
import org.netbeans.swing.outline.DefaultOutlineModel;
61-
import org.netbeans.swing.outline.ExtTreeWillExpandListener;
62-
import org.netbeans.swing.outline.Outline;
63-
import org.netbeans.swing.outline.OutlineModel;
64-
import org.netbeans.swing.outline.RenderDataProvider;
65-
import org.netbeans.swing.outline.RowModel;
38+
import javax.swing.tree.*;
39+
40+
import org.netbeans.swing.outline.*;
6641

6742
import com.sun.jdi.Value;
6843

44+
import processing.app.Mode;
6945
import processing.mode.java.Debugger;
7046
import processing.mode.java.JavaEditor;
71-
import processing.mode.java.JavaMode;
7247

7348

74-
/**
75-
* Variable Inspector window.
76-
*/
7749
public class VariableInspector extends JFrame {
7850
/// the root node (invisible)
7951
protected DefaultMutableTreeNode rootNode;
@@ -84,7 +56,9 @@ public class VariableInspector extends JFrame {
8456
/// data model for the tree column
8557
protected DefaultTreeModel treeModel;
8658

87-
/// data model for the whole Outline (tree and other columns)
59+
private JScrollPane scrollPane;
60+
61+
protected Outline tree;
8862
protected OutlineModel model;
8963

9064
protected List<DefaultMutableTreeNode> callStack;
@@ -112,36 +86,11 @@ public class VariableInspector extends JFrame {
11286

11387
public VariableInspector(JavaEditor je) {
11488
editor = je;
115-
dbg = editor.dbg();
89+
dbg = editor.getDebugger();
11690

11791
setUndecorated(true);
11892

119-
editor.addComponentListener(new ComponentListener() {
120-
121-
@Override
122-
public void componentShown(ComponentEvent e) { }
123-
124-
@Override
125-
public void componentResized(ComponentEvent e) {
126-
updateBounds(e);
127-
}
128-
129-
@Override
130-
public void componentMoved(ComponentEvent e) {
131-
updateBounds(e);
132-
}
133-
134-
@Override
135-
public void componentHidden(ComponentEvent e) { }
136-
137-
private void updateBounds(ComponentEvent e) {
138-
// System.out.println(e);
139-
setBounds(editor.getX() + editor.getWidth(),
140-
editor.getY() + VERTICAL_OFFSET,
141-
getPreferredSize().width,
142-
editor.getHeight() - VERTICAL_OFFSET*2);
143-
}
144-
});
93+
editor.addComponentListener(new EditorFollower());
14594

14695
initComponents();
14796

@@ -175,6 +124,35 @@ private void updateBounds(ComponentEvent e) {
175124

176125
// this.setTitle(editor.getSketch().getName());
177126
}
127+
128+
129+
/** Keeps the debug window adjacent the editor at all times. */
130+
class EditorFollower implements ComponentListener {
131+
132+
@Override
133+
public void componentShown(ComponentEvent e) { }
134+
135+
@Override
136+
public void componentHidden(ComponentEvent e) { }
137+
138+
@Override
139+
public void componentResized(ComponentEvent e) {
140+
updateBounds(e);
141+
}
142+
143+
@Override
144+
public void componentMoved(ComponentEvent e) {
145+
updateBounds(e);
146+
}
147+
148+
private void updateBounds(ComponentEvent e) {
149+
// System.out.println(e);
150+
setBounds(editor.getX() + editor.getWidth(),
151+
editor.getY() + VERTICAL_OFFSET,
152+
getPreferredSize().width,
153+
editor.getHeight() - VERTICAL_OFFSET*2);
154+
}
155+
}
178156

179157

180158
// @Override
@@ -320,7 +298,7 @@ public OutlineRenderer() {
320298
* null if the file wasn't found.
321299
*/
322300
protected ImageIcon[][] loadIcons(String fileName) {
323-
JavaMode mode = editor.mode();
301+
Mode mode = editor.getMode();
324302
File file = mode.getContentFile(fileName);
325303
if (!file.exists()) {
326304
Logger.getLogger(OutlineRenderer.class.getName()).log(Level.SEVERE, "icon file not found: {0}", file.getAbsolutePath());
@@ -451,7 +429,7 @@ public Icon getIcon(Object o) {
451429
}
452430

453431

454-
// TODO: could probably extend the simpler javax.swing.table.DefaultTableCellRenderer here
432+
// TODO: could probably extend the simpler DefaultTableCellRenderer here
455433
/**
456434
* Renderer for the value column. Uses an italic font for null values and
457435
* Object values ("instance of ..."). Uses a gray color when tree is not
@@ -582,35 +560,24 @@ public void treeExpansionVetoed(TreeExpansionEvent tee, ExpandVetoException eve)
582560
}
583561

584562

585-
/**
586-
* This method is called from within the constructor to initialize the form.
587-
* WARNING: Do NOT modify this code. The content of this method is always
588-
* regenerated by the Form Editor.
589-
*/
590-
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
591-
private void initComponents() {
592-
scrollPane = new JScrollPane();
593-
tree = new Outline();
594-
595-
scrollPane.setViewportView(tree);
596-
597-
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
598-
getContentPane().setLayout(layout);
599-
layout.setHorizontalGroup(
600-
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
601-
.addGap(0, 400, Short.MAX_VALUE)
602-
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
603-
.addComponent(scrollPane, javax.swing.GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE))
604-
);
605-
layout.setVerticalGroup(
606-
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
607-
.addGap(0, 300, Short.MAX_VALUE)
608-
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
609-
.addComponent(scrollPane, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 300, Short.MAX_VALUE))
610-
);
611-
612-
pack();
613-
}// </editor-fold>//GEN-END:initComponents
563+
private void initComponents() {
564+
scrollPane = new JScrollPane();
565+
tree = new Outline();
566+
567+
scrollPane.setViewportView(tree);
568+
569+
GroupLayout layout = new GroupLayout(getContentPane());
570+
getContentPane().setLayout(layout);
571+
layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
572+
.addGap(0, 400, Short.MAX_VALUE)
573+
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
574+
.addComponent(scrollPane, GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE)));
575+
layout.setVerticalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
576+
.addGap(0, 300, Short.MAX_VALUE)
577+
.addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)
578+
.addComponent(scrollPane, GroupLayout.Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, 300, Short.MAX_VALUE)));
579+
pack();
580+
}
614581

615582

616583
protected static void run(final VariableInspector vi) {
@@ -621,10 +588,6 @@ public void run() {
621588
}
622589
});
623590
}
624-
// Variables declaration - do not modify//GEN-BEGIN:variables
625-
private javax.swing.JScrollPane scrollPane;
626-
protected org.netbeans.swing.outline.Outline tree;
627-
// End of variables declaration//GEN-END:variables
628591

629592

630593
public DefaultMutableTreeNode getRootNode() {

java/src/processing/mode/java/pdex/ASTGenerator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -429,7 +429,7 @@ protected void loadJavaDoc() {
429429

430430
@Override
431431
public void run() {
432-
JavadocHelper.loadJavaDoc(jdocMap, editor.mode().getReferenceFolder());
432+
JavadocHelper.loadJavaDoc(jdocMap, editor.getMode().getReferenceFolder());
433433
}
434434
});
435435
t.start();

java/src/processing/mode/java/pdex/VariableInspector.form

Lines changed: 0 additions & 53 deletions
This file was deleted.

java/theme/debug/breakpoint-1x.png

14.7 KB
Loading

java/theme/debug/breakpoint-2x.png

15.7 KB
Loading

java/theme/debug/continue-1x.png

15 KB
Loading

java/theme/debug/continue-2x.png

15.6 KB
Loading

java/theme/debug/step-1x.png

17.3 KB
Loading

java/theme/debug/step-2x.png

15.6 KB
Loading

0 commit comments

Comments
 (0)