Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [platform-ui-dev] Activities and Contexts - Important Update

>Then, we still have the issue of automatically changing the set enabled 
activies as the user debugs. Thus, when the user starts a debug >session, 
the appropriate views should come into being. When the sessions is 
terminated (and removed), the views can then be hidden. I >believe hiding 
the view when the debug session is removed is safe. This way, view content 
can still be viewed after termination.  Once the >user explicitly removes 
the debug session, it should be safe to remove the output from that 
session (this is how console output is currently >handled). Perhaps we can 
use contexts to dynamically enable activities, based on what exists in the 
debug view. 

I think you are running a risk of mixed metaphor here. First of all views 
are frequently adjusted by the user - position, size etc. is something 
that they get the way they like. Closing the view and reopening can be 
very frustrating as it is possible to lose context and configuration this 
way. I think the idea of bringing a more relevant view to the top will 
give the user context but not ruin any of thier layout.

Using contexts to enable activities will potentially cause some knock on 
loss of context because if the inconsistency of trigger points. Contexts 
come and go all of the time but when you work on an activity you do so for 
the long term. For instance I use the console view to read over printlns I 
may have inserted while debugging. When debugging is done and I am making 
fixes based on these printlns I still want that output. I am still doing 
the debugging activitiy even if I am not running an application currently.

Tod







Darin Wright/Ottawa/IBM@IBMCA
Sent by: platform-ui-dev-admin@xxxxxxxxxxx
12/04/2003 09:47 AM
Please respond to platform-ui-dev

 
        To:     platform-ui-dev@xxxxxxxxxxx
        cc:     Wayne Ho/Toronto/IBM@IBMCA
        Subject:        Re: [platform-ui-dev] Activities and Contexts - Important Update




Originally, we were hoping that activities would solve the entire debug 
problem - i.e. displaying the correct set of views/actions based on what 
was being debugged. However, the problem we discovered is that the debug 
platform provides a superset of actions and views that many debuggers 
share different subsets of. Thus using activities to filter does not work 
well (since the views actions all come from the same plug-in). As well, a 
more dynamic solution is desired - i.e. we'd like views/actions to appear 
and disappear as they are required rather than having a superset of 
views/actions visible all the time. 

For  example, the debug platform provides the following views: 
breakpoints, variables, expressions, registers, and storage (note - in 
reality, the registers and storage views do not yet exist in the platform, 
but may be contributed during the 3.0 time frame). When debugging "Java", 
the registers and storage views are not applicable. When debugging a 
functional language, the expressions view is not applicable. I suppose one 
approach would be to define unique prefixes for each view and associated 
actions such that we may be able to define activities properly to identify 
the subset of views/actions used by each debugger. 

Then, we still have the issue of automatically changing the set enabled 
activies as the user debugs. Thus, when the user starts a debug session, 
the appropriate views should come into being. When the sessions is 
terminated (and removed), the views can then be hidden. I believe hiding 
the view when the debug session is removed is safe. This way, view content 
can still be viewed after termination.  Once the user explicitly removes 
the debug session, it should be safe to remove the output from that 
session (this is how console output is currently handled). Perhaps we can 
use contexts to dynamically enable activities, based on what exists in the 
debug view. 

Darin 




Chris McLaren/Ottawa/IBM@IBMCA 
Sent by: platform-ui-dev-admin@xxxxxxxxxxx 
12/03/2003 09:54 PM 
Please respond to platform-ui-dev 
        
        To:        Darin Wright/Ottawa/IBM@IBMCA, jaredburns@xxxxxxx, 
Wayne Ho/Toronto/IBM@IBMCA 
        cc:        platform-ui-dev@xxxxxxxxxxx 
        Subject:        Re: [platform-ui-dev] Activities and Contexts - 
Important Update 



Wayne, thanks for this description. You and I are in sync with regards to 
how 'contexts' will faciliate this work. It might be worth it for me to 
describe where 'activities' and 'contexts' are as of today:

- Activities -

Activities have been taking priority, and the API is largely complete. 
What remains in activities is work to ensure that various UIs within the 
workbench adhere to the filtering that activities define, and that some 
UIs expose smart workflow mechanisms that allow the user to 'grow into' 
new activities in a more natural way that simply having them choose their 
activities explicitly in some UI. (i.e. Being able to create a new Java 
project in the new project wizard to enable the 'Java Development' 
activity as opposed to requiring the user to go to an activities dialog 
and select a check box which says 'Java Development')

Activities do effect debug, significantly: they can filter out debug 
views, debug commands, and even the debug perspective as a whole, but it 
is on a macroscale - debug is affected by 'activities' like any other set 
of plugins in the sense that 'java development' (or a similar 
coarse-grained activity) could be completely filtered out of the 
application by the user, hence you the user would never get as far as java 

debugging to be concerned with the use cases you describe below.

Assuming, however, that the user has enabled the required activities such 
that debug is not filtered out of existence entirely, then contexts can 
come into play.

- Contexts -

The contexts API is largely complete as well:
1. There are facilities to define contexts and their interdependancies 
(via the org.eclipse.ui.contexts) extension point. 
2. One can activate or deactivate contexts via API at various levels in 
the workbench (workbench, window, page, part).
3. One can receive notification when the set of active contexts change, or 

changes to particular contexts, via IContextManager.

What is missing? Primarily, I chose not to provide a mechanism in the 
contexts API to bind contexts to specific functionality. Activities, in 
contrast, has this mechanism built right into its API via its 'pattern 
bindings'. The reason this could be readily included in activities is that 

the semantics of binding an activity to some functionality is clearly 
defined - the binding always means 'functionality X is available when 
activity Y is enabled'. For contexts, however, I didn't think it was clear 

yet what the semantics of bindings would be for various systems.

For commands, the semantics are fairly clear: menus and toolbars should 
hide (or disable?) irrelevant commands. I am in the process of adding the 
ability to bind contexts to commands in the org.eclipse.ui.commands 
extension point, but it remains to be experimented with if the binding 
should specify whether the command should be hidden altogether or just 
disabled when the user is out of context for that command. (Commands are 
already filtered on activity. Filtering on context would be next in the 
chain of filtering for those commands that made it though the activity 
filter)

For views, the semantics aren't as clear:
a) The big question: the Show View dialog currently filters out views 
based on activity, but should the Show View dialog also further filter 
context bound views? i.e. Should the user be restricted to only be allowed 

to open views that are currently in context?
b) One might define that a particular view is to be opened and brought to 
the top when a particular context becomes active, but another view is only 

to open itself on the bottom of a stack such that the user notices only 
the tab appearing. 
c) There might be some user defined behavior here as well - preferences to 

open certain views based on certain contexts. 
d) Also there might be some user-defined behavior on how those views might 

hide themselves once one leaves a context. How do we distinguish those 
views that might contain residual information (logs, etc.) that you might 
not simply want to disappear just because the debug target terminated, vs. 

those that can disappear automatically (variables view, maybe?). 

I'd like to work with debug to have them show/hide views programatically 
for now in response to events from the context manager before considering 
declarative API in the area of view-context bindings. 
IWorkbenchPage.showView(..) has been made public for this purpose, with 
the option to activate the view or not, (but it currently lacks further 
options on how to show - brought to front/pushed to back - currently views 

are always brought to front). IWorkbenchPage.hideView(..) also exists. 


Chris.

_______________________________________________
platform-ui-dev mailing list
platform-ui-dev@xxxxxxxxxxx
http://dev.eclipse.org/mailman/listinfo/platform-ui-dev






Back to the top