Skip to main content



      Home
Home » Eclipse Projects » Rich Client Platform (RCP) » Cut,Copy commands enabledWhen(How to disable when no text selected in Text control)
Cut,Copy commands enabledWhen [message #915235] Sun, 16 September 2012 18:08 Go to next message
Eclipse UserFriend
Hello,

I am trying to get my cut, copy main menu commands working in the same way that the default context menu works when focused on a Text widget. i.e. if no text is selected on the focused Text widget, cut and copy should not be enabled.

I am able to enable the handler when the activePartId is my editor, so far so good. However, the commands are always active in the main menu, where in the context menu they are disabled correctly.

I've tried using the selection variable and count with no success so far.

Could someone please point me in the right direction, or let me know if this is a limitation?

Thanks
Steve
Re: Cut,Copy commands enabledWhen [message #915823 is a reply to message #915235] Mon, 17 September 2012 22:49 Go to previous messageGo to next message
Eclipse UserFriend
Selection variable represents current selection of active part site's selection provider.
In this case, you should have to use legacy way. (IActionBars.setGlobalHandler() and Action, you can get actionbars from viewsite or editorsite)

Command and handler, menu extensions, core expressions are declarative and cost very low to create UI without code running.
But complex and dynamic situation, It's very hard to get you want.

You can also provide another variable which you need through service extensions.
Re: Cut,Copy commands enabledWhen [message #916664 is a reply to message #915823] Wed, 19 September 2012 05:40 Go to previous messageGo to next message
Eclipse UserFriend
Thanks very much for the pointers. It's a shame life isn't as easy as it should be for the cut,copy,paste retargetable actions.

I manged to work it out using the variable route, as this seems to be the most logical approach and still uses commands. Basically I create a variable, and used the mouse up and key up events to set the variable based on the getSelectionCount of each Text widget on my form. I also used the focus lost to reset the variable back to false.

Then bolted this variable on the enabledWhen of cut and copy, and woo hoo it works!!!


Re: Cut,Copy commands enabledWhen [message #917329 is a reply to message #916664] Wed, 19 September 2012 22:01 Go to previous message
Eclipse UserFriend
Yes, that should be most logical way.

But I want you to consider advantage of command/menuContribution/core-expression and it's cost.

Remarkable Advantages are:
* Lazy: Can creates UI(menu/toolbar) without class loading, so no plugin will be started, no dependencies are resolved till handler will work.
* Extensible: 3rd party can extends menu or can modify behavior of command in specific context.
* Ease to manage: You can list all actions from plugin.xml, it's pretty good entry point to manage or co-operate then hard coded.


If an action which should not have to be initialized lazy(Declarative UI from plugin.xml first and load business logic later, it prevents plugin starting to just create UI)
or it has globally same policy(there is no chance to extended by client or co-worker),
or actions are reasonable in some specific view or editors only (initializing part causes expensive plugin start),

then There is no advantage with command/menuContribution/core-expression.

In your case, ui context is much more complex then business logic.
And your variable provider from service extension should start your plugin. (it's expensive since it has own dependencies)
So, to make advantage real, you should isolate service plugin which provides variables.

And publishing new variables and teach them to your co-worker or client is not so small task.
Previous Topic:org.eclipse.e4.core.di.InjectionException: org.eclipse.core.runtime.AssertionFailedException:
Next Topic:disposing the Perspective
Goto Forum:
  


Current Time: Fri Jul 04 05:10:51 EDT 2025

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

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

Back to the top