I now have a pretty complete understanding of the "Pan and Zoom shortcut
keys problem".  I have attempted to fix it, but nothing seems to work.  To
reiterate the problem, when the arrow and page up/page down keys are used to
move the cursor while editing layer names, they continue to pan and zoom the
layer view.   This unexpected behavior also occurs during other arrow key
uses like menu selection.  I consider this a "must fix" problem because is
makes the UI unpredictable.  Here is what I've found out so far:

1) Pan and Zoom key shortcuts are implemented in a separate plugin written
by Ugo.
2) It uses the WorkBenchFrame#addKeyboardShortcut method (I'm doing this
from memory so don't quote me on the exact name).
3) It implements no checks to determine the context before executing the
shortcut commands.
4) It is possible to add an EnableCheck when the keyboard shortcut is
defined.
5)  I have tried several EnableCheck versions, but so far have not found a
way to restrict the pan and zoom behavior to only the layer view.  This
seems trivial, but isn't because the methods are called multiple times with
different panels "active".
6) The LayerNamePanel and the LayerViewPanel are implemented as JSplitPane
panels under the TaskFrame.
7) Here is the real problem: There doesn't seem to be a definition in Java
of "front most" component in a split pane, so both panels get all of the key
events.
8) In order to fix the problem it is necessary to restrict the scope of the
pan and zoom keyboard shortcuts.
9) I could not find a way to ensure that the LayerViewPanel is "not active"
when the task window active.  I'm not even sure if this would be a good
idea.
10) Unless someone can see a way out of this trap, it doesn't look like the
problem has a code solution.

The floor is open for alternative solutions.  We could, for instance, check
for less often used key combinations like control-arrow which might minimize
the conflicts.

regards,
Larry
-- 
http://amusingprogrammer.blogspot.com/
------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to