Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Eclipse Platform » ShowViewMenu and activities
ShowViewMenu and activities [message #336239] Tue, 02 June 2009 19:41 Go to next message
Albert Choi is currently offline Albert ChoiFriend
Messages: 4
Registered: July 2009
Junior Member
Hi,

I have a question about the behaviour of the Show View Menu in conjunction
with
activities, a.k.a. capabilities. I have a plugin (say pluginB) which
contributes a viewShortcut and a perspectiveShortcut to a custom
perspective,
which exists in pluginA:

<extension point="org.eclipse.ui.perspectiveExtensions">
<perspectiveExtension targetID="pluginA.myPerspective">
<viewShortcut id="pluginB.myView">
</viewShortcut>
</perspectiveExtension>
<perspectiveExtension targetID="pluginA.myPerspective">
<perspectiveShortcut id="pluginB.myOtherPerspective">
</perspectiveShortcut>
</perspectiveExtension>
</extension>

I also have a extension for org.eclipse.ui.activities. pluginA is mapped
to one
activity, and pluginB and mapped to another activity. E.g.

<extension point="org.eclipse.ui.activities">
<activity id="activityA" name="Activity A">
</activity>
<activity id="activityB" name="Activity B">
</activity>
<activityPatternBinding activityId="activityA" pattern="pluginA/.*">
</activityPatternBinding>
<activityPatternBinding activityId="activityB" pattern="pluginB/.*">
</activityPatternBinding>
</extension>

If I have pluginA.myPerspective open, I see pluginB.myOtherPerspective in
the
Open Perspective menu, and pluginB.myView in the Show View menu, as
expected.
When I go to disable activityB in the Capabilities preference page,
pluginB.myOtherPerspective disappears from the Open Perspective menu
(good), but
pluginB.myView remains in the Show View menu (bad).

I was able to trace the issue to the internal class
org.eclipse.ui.internal.ShowViewMenu. In particular, it executes the
following
when it populates the menu:

for (Iterator i = actions.iterator(); i.hasNext();) {
CommandContributionItem item =
new CommandContributionItem(
(CommandContributionItemParameter) i.next());
if (WorkbenchActivityHelper.filterItem(item)) {
item.dispose();
continue;
}
innerMgr.add(item);
}

This is the right idea, but WorkbenchActivityHelper has the following
filterItem
implementation:

public static final boolean filterItem(Object object) {
if (object instanceof IPluginContribution) {
...snip...
}
return false;
}

Trouble is, CommandContributionItem is not derived from
IPluginContribution.
Therefore, the items are never filtered out.

Am I reading this right? Are there any workarounds for this issue? Any
help
would be appreciated.

Thanks
Albert Choi
Re: ShowViewMenu and activities [message #336265 is a reply to message #336239] Thu, 04 June 2009 12:54 Go to previous message
Paul Webster is currently offline Paul WebsterFriend
Messages: 6859
Registered: July 2009
Location: Ottawa
Senior Member

Please open a bug at
https://bugs.eclipse.org/bugs/enter_bug.cgi?product=Platform &component=UI
that CommandContributionItems aren't filtered correctly

PW


--
Paul Webster
http://wiki.eclipse.org/Platform_Command_Framework
http://wiki.eclipse.org/Command_Core_Expressions
http://wiki.eclipse.org/Menu_Contributions
http://wiki.eclipse.org/Menus_Extension_Mapping
http://help.eclipse.org/ganymede/index.jsp?topic=/org.eclips e.platform.doc.isv/guide/workbench.htm


Previous Topic:Dual Display - Global SelectionService
Next Topic:Migrating a Europa custom installer to Galileo P2
Goto Forum:
  


Current Time: Sun Nov 23 00:12:26 GMT 2014

Powered by FUDForum. Page generated in 0.05052 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software