Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[platform-debug-dev] Context view management released to HEAD

I've released the first cut of context-based view management for the
Debug perspective to HEAD. The changes to org.eclipse.debug.ui require
the org.eclipse.ui.workbench from HEAD (which requires the latest
org.eclipse.jface).

The Debug UI provides two new extension points. One for mapping debug
model identifiers to context identifiers. And one for mapping views to a
context.

When a stack frame is selected in the Debug view, we look for a context
that matches its model identifier. If one is found (and it doesn't match
the current context), it then automatically opens views associated with
that context, closes views associated with other contexts (but leave
unassociated views alone), and activates views within the context as
appropriate. New views are opened "underneath" existing views using a
new API from Platform UI and we examine the view stack (also using new
API) so as to not activate a view if another applicable view is already
visible on top of it. This means that we minimize flickering and UI
instability.

Also, we notice when the user manually opens or closes a view, after
which we will no longer automatically open or close it (this isn't
currently persisted, but probably should be).

There's a new button on the Debug view which lets you toggle this
"linking" behavior on and off.

Developers just using Java will find that the first time they launch,
the Display and "Threads and Monitors" views will open stacked
underneath other views. Other than that, there shouldn't be any
differences.

Debugger providers will want to make two changes. First, views that are
currently added to the Debug perspective using the perspective extension
shortcut should have visible="false" added to their extension so as to
not clutter the Debug perspective before they're needed. Second,
contributors should use the two new extension points to specify which
views are associated with their debug model. By default, views
associated with contexts in this way will be automatically opened and
closed. But the extension point supports specifying whether a particular
view should be automatically opened or closed.

I haven't written up the schema yet, but interested parties can look at
the extension provided by org.eclipse.jdt.debug.ui.

- Jared



Back to the top