Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    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 22:08 Go to next message
Stephen Jones is currently offline Stephen JonesFriend
Messages: 3
Registered: September 2012
Junior Member
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] Tue, 18 September 2012 02:49 Go to previous messageGo to next message
Jeeeyul Lee is currently offline Jeeeyul LeeFriend
Messages: 117
Registered: July 2009
Location: Seoul
Senior Member

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 09:40 Go to previous messageGo to next message
Stephen Jones is currently offline Stephen JonesFriend
Messages: 3
Registered: September 2012
Junior Member
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] Thu, 20 September 2012 02:01 Go to previous message
Jeeeyul Lee is currently offline Jeeeyul LeeFriend
Messages: 117
Registered: July 2009
Location: Seoul
Senior Member

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: Tue Mar 19 07:21:37 GMT 2024

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

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

Back to the top