Tree Tables Design View
NetBeans 3.4
- Version:
- 1.0
-
Author:
- Jan Jancura <jan.jancura@sun.com>
- Document History:
- [15/3/2002] : version 1.0 : First Version
-
Contents:
- 1. Introduction
- 2. Three Table Support in Debugger
3. Threads View Redesign
4. Call Stack View Redesign
5. Locals View Redesign
-
Introduction
With NetBeans 3.4, the views shown in the Debugger Window will switch to using
a table or tree-table component to represent their data, rather than using a
tree component. We would like to focus Threads, Call Stack and Locals View on
the "current" context too. So Threads View should show all threads
of current session only (without locales and call stacks), Call Stack View
should contain call stack of current thread only (without locals) and Locals
View should contain locales of current call stack frame only.
This document describes main changes planned in the code supporting this new
model.
Tree Table Support in Debugger

We will implement some basic generic support for Tree Table Views in Debugger
Core module. This class should simplify implementation of Debugger Views. Each
tree table Debugger View should be defined by:
- icon
- display name
- set of columns
- and root node
Root node will define content and behavior of tree view. Column should be
represented by some instance of Node.Property class (or some subclass). So
column (Property class) is defined by:
- display name of column
- column identifier (String)
- isDefault property (if this column should be visible by default)
- class name or CellEditor & CellRenderer (to specify look&feel of
column)
A tree table Debugger View implementation can extend this support class (TreeTableExplorerViewSupport)
and define special set of columns.
Threads View Redesign

Current Threads View contains threads of all sessions together with all
breakpoint groups, call stacks and locals. NetBeans 3.4 Threads View will
show threads (and thread groups) of current session only. No stacks, no locals.
So the new ThreadsRootNode must listen on:
- curret session (debugger): property PROP_CURRENT_THREAD of
CoreDebugger
- root of threads of current debugger instance (AbstractDebugger). So if the
current debugger implements ThreadsProducer we should call getThreadsRoot ()
for it and listen on PROP_THREADS on changes of current set threads.
If a current session is changed we should "forget" old threads root
instance and remove listener from it.
Call Stack View Redesign

Current Call Stack View contains call stack frames and locales. NetBeans 3.4
Call Stack View will show call stack frames of current thread only.
The new CallStackRootNode must listen on:
- curret thread: property PROP_CURRENT_THREAD of CoreDebugger
- changes of current call stack: If the current thread implements
CallStackRoot CallStackRootNode should listen on PROP_CALL_STACK on changes
of current call stack.
If a current thread is changed CallStackRootNode should "forget"
old thread instance and remove listener from it.
Locals View Redesign

Current Locals View contains locals of current thread. NetBeans 3.4 Locals
View will show locals of current call stack line (frame) only.
The new LocalsRootNode must listen on:
- curret thread: property PROP_CURRENT_THREAD of CoreDebugger
- current call stack line (frame): if current thread (AbstractThread)
implements CallStackRoot LocalsRootNode should listen on property
PROP_CURRENT_CALL_STACK_FRAME_INDEX of it.
- current set of variables (locals) of current call stack line (frame):
if current location (call stack frame) implements VariablesProducer
LocalsRootNode should listen on property PROP_VARIABLES of it.
If a current thread is changed LocalsRootNode should "forget" old
thread instance and old location instance and remove listener from them. If a
current call stack frame (location) is changed LocalsRootNode should
"forget" old ocation instance and remove listener from it.