Out of curiosity (as I may still be living in the past), here is one of the
documents I have written when attempting to (re)design the NetBeans action
system:

https://openide.netbeans.org/proposals/actions/index.html

In general my intention was to use [Action.callback](
http://bits.netbeans.org/8.2/javadoc/org-openide-awt/org/openide/awt/Actions.html#callback-java.lang.String-javax.swing.Action-boolean-java.lang.String-java.lang.String-boolean-)
actions to register a generic placeholder with a shortcut that can then do
whatever each component wants.

-jt


2018-02-27 20:44 GMT+01:00 cowwoc <cow...@bbs.darktech.org>:

> Unfortunately, I'm not too familiar with the internals. I filed
> https://issues.apache.org/jira/browse/NETBEANS-432 with a high-level
> overview of what a user expects. Hopefully someone who is familiar with
> this codebase can flesh out what this entails.
>
> Thank you,
> Gili
>
>
> On 2018-02-27 12:49 PM, Tim Boudreau wrote:
>
>> I'd say file an RFE, but best to get as specific as possible about what
>> mechanism needs to be changed and how.  I.e. Exactly the desired behavior,
>> what blocks it, and where the change would need to be.
>>
>> -Tim
>>
>> On Tue, Feb 27, 2018 at 11:00 AM cowwoc <cow...@bbs.darktech.org> wrote:
>>
>> Is it okay if I file a RFE for this, or do you feel it should stew a bit
>>> longer in the mailing list?
>>>
>>> Gili
>>>
>>> On 2018-02-26 3:47 PM, Christian Lenz wrote:
>>>
>>>> I figured out that problem too, but I don’t know whether this is window
>>>>
>>> specific or not.
>>>
>>>> Sure I think you can add a shortcut to your Code, which is already
>>>>
>>> taken. You got a warning after NetBeans started that says: „there is a
>>> duplicate“.
>>>
>>>> Maybe it overrides it or not, I don’t know atm. But if not and you
>>>>
>>> created an Action, where you can Change the shortcut via KeyMap Options,
>>> you sometimes overrides existing ones (Which Shows you a warning or error
>>> that another one has the same etc.), but yes they should work context
>>> sensitve, and some are still working context sensitive, afaik.
>>>
>>>> I set ctrl + b to Show the git browser for branches etc. This shortcut
>>>>
>>> only Woks, when I select a Project. If I’m in the Editor, it will set a
>>> bookmark or open the bookmark window. So there is smth like a context
>>> sensitive way to implement shortcuts but I don’t know the logic at all.
>>>
>>>> My 2 cents
>>>>
>>>>
>>>> Cheers
>>>>
>>>> Chris
>>>>
>>>> Von: Tim Boudreau
>>>> Gesendet: Montag, 26. Februar 2018 19:59
>>>> An: dev@netbeans.incubator.apache.org
>>>> Betreff: Re: Platform API: Context-sensitive keyboard accelerators
>>>>
>>>> It's been a long time since I worked on the code involved, so my
>>>> recollection may be a little fuzzy, but this may help point you in a
>>>> direction or two:
>>>>
>>>> There is a general problem that NetBeans supports, or at least used to
>>>> support, both single window pseudo-SDI mode and a multiple windows mode.
>>>> And keyboard shortcuts propagate down to the InputMap/KeyMap of the
>>>>
>>> window
>>>
>>>> in question.  My recollection is that this was originally handled with
>>>> an
>>>> AWTEventListener, because that was the one way to guarantee shortcuts
>>>> worked globally, no matter the windowing layout.  I *think* we migrated
>>>> that to something using InputMap/KeyMap around 2003 or so, but there may
>>>> still be workarounds to ensure things work globally.
>>>>
>>>> What I'd suggest to try is an experiment - create a dialog with the
>>>>
>>> dialogs
>>>
>>>> API and try binding a key you know is bound as a global shortcut.  Use
>>>> InputMap/KeyMap and attach it to, most likely, the root pane of the
>>>>
>>> dialog.
>>>
>>>> If it works, then it's just a matter of implementing shortcuts in the
>>>>
>>> right
>>>
>>>> places (make sure to call consume() on the event to stop it propagating
>>>> further).  If it doesn't, then some more fundamental work that's likely
>>>>
>>> to
>>>
>>>> touch how key bindings work globally may be needed.
>>>>
>>>> Also bear in mind that key bindings are different for different
>>>>
>>> platforms -
>>>
>>>> on Mac OS, the alt key is a compose key for international characters and
>>>> cannot have shortcuts bound to it (ctrl is used instead), and some
>>>> keybindings are mapped to different keys for consistency with other Mac
>>>>
>>> OS
>>>
>>>> apps (there's a syntax for defining keybindings in OS-neutral ways, for
>>>> declarative bindings).
>>>>
>>>> HTH,
>>>>
>>>> Tim
>>>>
>>>>
>>>> On Mon, Feb 26, 2018 at 9:11 AM, cowwoc <cow...@bbs.darktech.org>
>>>> wrote:
>>>>
>>>> Hi,
>>>>>
>>>>> Netbeans has an extremely long (and getting longer) list of keyboard
>>>>> shortcuts. Part of the problem is that (for the most part) keyboard
>>>>> shortcuts are not context-sensitive nor are they able to be
>>>>> context-sensitive. I'll give you a simple example I raised a few years
>>>>>
>>>> back:
>>>
>>>> When the editor Find & Replace dialog is focused, we have "Replace" and
>>>>> "Replace All" buttons. It would be nice if we could map ALT+A to
>>>>>
>>>> "Replace
>>>
>>>> All" as many other applications do. Unfortunately, ALT+A is already
>>>>>
>>>> mapped
>>>
>>>> to the Refactor pulldown menu. The platform API does not allow mapping
>>>>>
>>>> the
>>>
>>>> same keyboard accelerator to different UI actions depending on the
>>>>>
>>>> context.
>>>
>>>> As a result, we end up with akward combinations like ALT+P for Replace
>>>>>
>>>> All.
>>>
>>>> Please see https://netbeans.org/bugzilla/show_bug.cgi?id=222843 for
>>>>> additional context.
>>>>>
>>>>> Is anyone else interested in this issue? Is anyone interested in
>>>>> working
>>>>> on it?
>>>>>
>>>>> Thank you,
>>>>> Gili
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: dev-unsubscr...@netbeans.incubator.apache.org
>>>>> For additional commands, e-mail: dev-h...@netbeans.incubator.ap
>>>>> ache.org
>>>>>
>>>>> For further information about the NetBeans mailing lists, visit:
>>>>> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscr...@netbeans.incubator.apache.org
>>> For additional commands, e-mail: dev-h...@netbeans.incubator.apache.org
>>>
>>> For further information about the NetBeans mailing lists, visit:
>>> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
>>>
>>>
>>>
>>> --
>>>
>> http://timboudreau.com
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@netbeans.incubator.apache.org
> For additional commands, e-mail: dev-h...@netbeans.incubator.apache.org
>
> For further information about the NetBeans mailing lists, visit:
> https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists
>
>
>
>

Reply via email to