Пример #1
0
 def data(self):
     table = JTable()  # use an empty (default) table
     iMap = table.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT)
     # List of mapped keystrokes & actions
     keystrokes = [(key, iMap.get(key))
                   for key in table.getRegisteredKeyStrokes()]
     #------------------------------------------------------
     # Dict of key names & modified keystrokes
     #------------------------------------------------------
     keys = {}  # Dict, index = key name  -> modifiers
     acts = {}  # Dict, index = keyStroke -> actionName
     for key, act in keystrokes:
         val = str(key)  # e.g., shift ctrl pressed TAB
         acts[val] = act  # e.g., selectNextColumnCell
         pos = val.rfind(' ')
         prefix, name = val[:pos], val[pos + 1:]
         if keys.has_key(name):
             keys[name].append(prefix)
         else:
             keys[name] = [prefix]
     #------------------------------------------------------
     # The list of unique key names, in alphabetical order
     #------------------------------------------------------
     names = keys.keys()
     names.sort()
     prefixes = [
         'pressed',  # unmodified keystroke
         'ctrl pressed',  # Ctrl-<keystroke>
         'shift pressed',  # Shift-<keystroke>
         'shift ctrl pressed'  # Shift-Ctrl-<keystroke>
     ]
     #------------------------------------------------------
     # For each key name (in alphabetical order)
     #------------------------------------------------------
     result = []  # The 2D table of strings
     for name in names:  # For each key name (e.g., TAB)
         here = [name]  # Current table row
         #
         # columns are in a fixed order, based upon prefix
         #
         for prefix in prefixes:
             kName = ' '.join([prefix, name])
             here.append(acts.get(kName, ''))
         result.append(here)
     return result
Пример #2
0
# ISBN-13: 978-1-4824-0818-2 (paperback)
# ISBN-13: 978-1-4824-0817-5 (electronic)
# website: http://www.apress.com/978148420818
#    Role: Simple Jython Swing script showing JTable 'SPACE' KeyStrokes
#    Note: This is a "Swing" script only because it imports javax.swing JTable
#   Usage: wsadmin -f KeyStrokes.py
#            or
#          jython KeyStrokes.py
# History:
#   date    who  ver   Comment
# --------  ---  ---  ----------
# 14/10/27  rag  0.0  New - ...
#-------------------------------------------------------------------------------
from javax.swing import JTable

table = JTable()
keys  = [
            str( key )
            for key in table.getRegisteredKeyStrokes()
        ]
print 'Number of JTable KeyStrokes:', len( keys )

width = max( [ len( key ) for key in keys ] )

print 'JTable "Space" Keys:'
print '\n'.join(
                   [
                       '%*s' % ( width, key )
                       for key in keys if key.endswith( 'SPACE' )
                   ]
               )