Nice work, I like the approach.

Did you inspire your work in how Dolphin and VAST implements menu
creation, command execution, and so on?
I find your solution similar to how Dolphin implements it, where even
each Presenter is even queried about each command by using a command
query and routing solution.

Will you use this in the context of Calypso and friends?

Regards!


Esteban A. Maringolo


2017-04-11 11:49 GMT-03:00 Denis Kudriashov <dionisi...@gmail.com>:
> Hi.
>
> I am glad to announce Commander library which implements command pattern
> based on first class objects.
> In Commander every application action is implemented as separate class with
> #execute method and all state required for execution.
>
> Commands are reusable objects and applications provide various ways to
> access them: shortcuts, context menu, buttons, etc.. This information is
> attached to command classes as activator objects. Currently there are three
> types of activators:
>
> - CmdShortcutCommandActivator
> - CmdContextMenuCommandActivator
> - CmdDragAndDropCommandActivator
>
> Activators are declared in command class side methods marked with pragma
> #commandActivator. For example following method will allow
> RenamePackageCommand to be executed by shortcut in possible system browser:
>
> RenamePackageCommand class>>packageBrowserShortcutActivator
>
>       <commandActivator>
>       ^CmdShortcutCommandActivator by: $r meta for: PackageBrowserContext
>
>
> And for context menu it will be:
>
>
> RenamePackageCommand class>>packageBrowserMenuActivator
>        <commandActivator>
>        ^CmdContextMenuCommandActivator byRootGroupItemFor:
> PackageBrowserContext
>
>
> Activators are always declared with application context where they can be
> applied (PackageBrowserContext in example). Application should provide such
> contexts with information about application state. Every widget can bring
> own context to interact with application as separate tool. For example
> system browser shows multiple panes which provide package context, class
> context and method context. And depending on context browser shows different
> menu and provides different shortcuts.
>
> For more details look at my blog
> http://dionisiydk.blogspot.fr/2017/04/commander-command-pattern-library.html
> and read docs here.
>
> Best regards,
> Denis
>
>

Reply via email to