Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [platform-ui-dev] Roles and activities


1)  This is vexing us as well.  We should have a suitable home for these accessors ironed out shortly.

2)  You can get the disabled activities by subtracting the enabled set from the defined set, but your point is taken.  Perhaps we can add getDisabledActivities()/getInactiveActivities() to IActivityManager.  Chris?  

Additionally, there is another way in which you can use this system at a slightly higher level.  Instead of comparing your contributions ID against the activities directly, you can instead populate an IObjectActivityManager with all of your contributions and simply ask it for the set of currently enabled contributions.  IObjectActivityManager was intended to hide away the pattern matching under the hood.  This would go something as follows:

// when you're loading the launch types extension point
IObjectActivityManager manager = workbench.getObjectActivityManager(LAUNCH_CONFIG_EXT_POINT_ID, true);

for (Iterator over launchTypes) {
        manager.addObject(launchType.ext_pluginID, launchType.ext_localID, launchType);
}
manager.applyPatternBindings();

// when you need to get the active types

Collection launchTypes = allTypes;
IObjectActivityManager manager = workbench.getObjectActivityManager(LAUNCH_CONFIG_EXT_POINT_ID, false);

if (manager != null) {
        launchTypes = manager.getActiveObjects();
}
show(launchTypes);

Concrete examples can be found within the workbench.

3)  Will discuss this with Chris.

4)  I'll add that idea to the mix - I've implemented and reimplemented a handful of different versions of these controls already, some of them quite arcane.  Your solution might do the trick.



Jared Burns <jaredburns@xxxxxxx>
Sent by: platform-ui-dev-admin@xxxxxxxxxxx

29/10/2003 03:14 PM

Please respond to
platform-ui-dev

To
platform-ui-dev@xxxxxxxxxxx
cc
Subject
Re: [platform-ui-dev] Roles and activities





Thanks for the reply, Kim. With the -activities parameter in place, I'm
rolling. I have a couple requests.

1. The activities manager is currently only accessible from the internal
implementation of Workbench. Can this be promoted to IWorkbench? We don't
need to maintain API compatibility within a release cycle, so it could always
be removed before 3.0 if it's decided to put it elsewhere. It would just save
us the work of having to go back through our code later and remove the
internal references.
https://bugs.eclipse.org/bugs/show_bug.cgi?id=45752

2. The activity manager doesn't seem to provide API for accessing the disabled
activities. This API is required for clients to do their own filtering. For
example, we want to filter launch configuration types out of the launch
config dialog if the type's ID matches a disabled activity.
We could go the other way and only show types from *enabled* activities, but
this would mean that we'd never show configuration types from contributors
who didn't also provide appropriate activities. Maybe this is how an
activities-driven workbench is intended to function? You snooze, you lose?
https://bugs.eclipse.org/bugs/show_bug.cgi?id=45753

3. The schema documentation for the patternBinding element's "inclusive"
attribute could use a little beefing up. Right now it just says, "Determines
whether this binding should be inclusive or exclusive". The name of the
attribute says this much. Could the description be extended to say something
like, "If true, this will happen. If false, this will happen"? The activity
element's "parentId" attribute has the same problem.
https://bugs.eclipse.org/bugs/show_bug.cgi?id=45754

4. On the topic of the configuration UI, I think I'd like something that
matched the idea of roles being a list of activities. I'm picturing something
that is basically just lists the active and disabled activities (like we have
today). You'd be able to add and remove individual activities, but you'd also
be able to add and remove "roles". Activating/deactivating a role would
add/remove all that role's activities. This would allow full customization
for the user and still provide the convenience of just
activating/deactivating entire roles.

- Jared

On Tuesday 28 October 2003 08:33 am, Kim Horne wrote:
> The activities are being re-added to the enabled list because you aren't
> running with the command line parameter -activities.  Chris added this so
> that (by default) all activities would be enabled for the average user
> until we ironed out the progressive disclosure story.  If you add this
> parameter to your runtime workbench command line your state will be
> preserved correctly.  Note that if you don't use "-activities" you can
> still edit your enabled set for a given eclipse session (and you'll see
> the results of that enablement) - it just wont be preserved the next time
> you start your workbench.
>
> Also, the <roleActivityBinding> has been renamed to <activitybinding> and
> <activityPatternBinding> to <patternBinding>.  This is no doubt causing
> you headaches as well (if it wasn't when you posted your question).
>
> There is still some debate as to whether we'll be providing UI for
> configuring enabled roles.  Personally, I'd sooner see UI to
> enable/disable roles than activities since roles are meant to be a nice
> way of presenting groups of related activities to the user.  Additionally,
> there will be a section of the welcome page (or similar) that will allow
> you to define your initial role set when first activating eclipse.
>
>
>
>
> Jared Burns <jaredburns@xxxxxxx>
> Sent by: platform-ui-dev-admin@xxxxxxxxxxx
> 24/10/2003 06:04 PM
> Please respond to
> platform-ui-dev
>
>
> To
> platform-ui-dev@xxxxxxxxxxx
> cc
>
> Subject
> [platform-ui-dev] Roles and activites
>
>
>
>
>
>
> I'm trying to define my own activites, but I'm not having much luck. I
> removed
> the "Debugging" activity that's currently provided in org.eclipse.ui (I
> assume it's just there to play) and defined Debugging in the
> org.eclipse.debug.ui plug-in and Debugging Java in
> org.eclipse.jdt.debug.ui.
> I provided activity bindings to link these activities to
> org.eclipse.debug.*
> and org.eclipse.jdt.debug.* respectively. And I also provided role
> bindings
> to link these activities to the Java and PDE roles currently provided by
> the
> UI plug-in. The applicable excerpts from my plugin.xml files follow.
>
> When I launch my runtime-workspace, my activities appear in the dialog
> under
> the Help menu, but disabling them doesn't have any effect. If I close
> Eclipse
> and relaunch, the activities reappear in the "enabled" bucket in the
> dialog.
>
> Is there a bug here or am I doing something totally wrong? Also, I don't
> see
> anywhere to define your active roles. Am I missing something or is there
> no
> UI for configuring this yet?
>
> Thanks,
> - Jared
>
> ##########################
> # From org.eclipse.debug.ui.plugin.xml:
> ##########################
>    <extension
>          point="org.eclipse.ui.activities">
>       <activity
>             name="Debugging"
>             id="org.eclipse.debug.ui.debugging">
>       </activity>
>       <activityPatternBinding
>             inclusive="true"
>             activityId="org.eclipse.debug.ui.debugging"
>             pattern="org.eclipse.debug.*">
>       </activityPatternBinding>
>    </extension>
>    <extension
>          point="org.eclipse.ui.roles">
>       <roleActivityBinding
>             activityId="org.eclipse.debug.ui.debugging"
>             roleId="org.eclipse.roles.javaRole">
>       </roleActivityBinding>
>       <roleActivityBinding
>             activityId="org.eclipse.debug.ui.debugging"
>             roleId="org.eclipse.roles.pdeRole">
>       </roleActivityBinding>
>    </extension>
>
> ##########################
> # From org.eclipse.jdt.debug.ui.plugin.xml:
> ##########################
>    <extension
>          point="org.eclipse.ui.activities">
>       <activity
>             name="Debugging Java"
>             description="Debugging Java program(s)"
>             parentId="org.eclipse.debug.ui.debugging"
>             id="org.eclipse.jdt.debug.ui.debugging.java">
>       </activity>
>       <activityPatternBinding
>             inclusive="true"
>             activityId="org.eclipse.jdt.debug.ui.debugging.java"
>             pattern="org.eclipse.jdt.debug.*">
>       </activityPatternBinding>
>    </extension>
>    <extension
>          point="org.eclipse.ui.roles">
>       <roleActivityBinding
>             activityId="org.eclipse.jdt.debug.ui.debugging.java"
>             roleId="org.eclipse.roles.javaRole">
>       </roleActivityBinding>
>       <roleActivityBinding
>             activityId="org.eclipse.jdt.debug.ui.debugging.java"
>             roleId="org.eclipse.roles.pdeRole">
>       </roleActivityBinding>
>    </extension>
>
> _______________________________________________
> platform-ui-dev mailing list
> platform-ui-dev@xxxxxxxxxxx
> http://dev.eclipse.org/mailman/listinfo/platform-ui-dev

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


Back to the top