2020
2121package 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 .*;
2924import java .awt .event .ComponentEvent ;
3025import java .awt .event .ComponentListener ;
3126import java .awt .image .BufferedImage ;
3631import java .util .logging .Level ;
3732import 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 .*;
4935import javax .swing .event .TreeExpansionEvent ;
5036import javax .swing .event .TreeExpansionListener ;
5137import 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
6742import com .sun .jdi .Value ;
6843
44+ import processing .app .Mode ;
6945import processing .mode .java .Debugger ;
7046import processing .mode .java .JavaEditor ;
71- import processing .mode .java .JavaMode ;
7247
7348
74- /**
75- * Variable Inspector window.
76- */
7749public 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 () {
0 commit comments