Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 71320 - [ActivityMgmt] Activity activation points are difficult to define.
Summary: [ActivityMgmt] Activity activation points are difficult to define.
Status: RESOLVED WONTFIX
Alias: None
Product: Platform
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 3.0   Edit
Hardware: PC Windows XP
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Kim Horne CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 80130
  Show dependency tree
 
Reported: 2004-08-03 15:44 EDT by Jason Sholl CLA
Modified: 2007-06-05 13:39 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jason Sholl CLA 2004-08-03 15:44:39 EDT
Activity pattern bindings should be more like this:
<extension
      point="org.eclipse.ui.activities">
		<activity
            name="FooBar"
            description=""
            id="foobar">
      	</activity>
      	<activityPatternBinding activityId="foobar">
      		<or>
      			<includePattern="org\.foo\.bar.*"/>
      			<excludePattern="org\.foo\.bar\.ui\.test/.*"/>
      		</or>
      		<activation>
      			<or>	
      				<includePattern="org\.foo\.bar\.ui/A"/>
      				<includePattern="org\.foo\.bar\.ui/B"/>
      				<includePattern="org\.foo\.bar\.ui/C"/>
      			</or>
      		</activation>
      	<activityPatterBinding/>
      </extension>	

In this example, I want bind all the foobar related components to the foobar 
activity, except for a few activation points (the A, B and C) , and the test 
plugin.  In the current activities implementation, in order to do this I would 
need to create several pattern bindings that would work around A, B and C and 
test.  You could argue that I should rename my IDs so they would work better 
with regular expressions, but this is not always an option because sometimes 
code heavily depends on these IDs; also many times I may not have access to 
the code (e.g. if I want to define my own java activity rather than using the 
one that comes with eclipse).

So, once I define my activities to include everything but the activation 
points, there is still the issue of making A, B, and C and actually trigger 
foobar.  Currently I need to do this in java code.  This is a problem, 
especially if different product offerings (each with some of the same plugins) 
wish for a different flavor of activities.  Now, instead of simpling switching 
activities plugins, we need to code to multiple activity sets to trigger the 
activations.  Also, there is no way to do this unless I own the code for A, B, 
C.

The above definition specifies that A, B, C and test are activation points for 
foobar.  This will automatically exclude A, B, and C from being filtered by 
the UI (so they are always visible).  Also, if a user stumbles upon A, B, or 
C, then foobar will automatically be enabled.

If another product comes along and wants to split foobar into foorbar1 and 
foobar2 and use A to activate foobar1 and B to activate foobar2, and always 
filter C, then no java code would need to be touched.  The current design 
makes this impossible.
Comment 1 Kim Horne CLA 2004-08-05 14:19:34 EDT
I agree we need to expand upon how the user may define bindings - we originally
had the notion of exclusion bindings but they were dropped for reasons that I
can no longer recall.  I wish they had remained.  

Given what you propose, there is still the requrirement of code that uses the
activation points.  I'm not sure how these additions would alleviate this need.
 Can you give further explanation?
Comment 2 Kim Horne CLA 2005-04-01 15:44:40 EST
This isn't going to happen for 3.1... deferring.
Comment 3 Kim Horne CLA 2007-06-05 13:39:19 EDT
Retrofitting something like this into the existing API would be prohibitively expensive.  Marking as WONTFIX unless you have have a valid case that can't currently be modeled with exiting APIs (irregardless of difficulty or verbosity).