Ignore:
Timestamp:
09/01/14 15:12:45 (10 years ago)
Author:
dmay
Message:

rudimentary keyboard support: typing works but no key modifiers possible yet

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/autoquest-plugin-jfc/src/main/java/de/ugoe/cs/autoquest/plugin/jfc/commands/CMDgenerateJacaretoReplay.java

    r1691 r1701  
    9191    private JFCGUIElement currentFocus; 
    9292    private StructureNode structure; 
     93    private StructureNode lastKeySequenceEvent; 
     94    private StructureNode lastKeyTypedEvent; 
    9395    private StructureNode lastMouseClickEvent; 
    9496    private StructureNode lastFocusChangeEvent; 
     
    180182 
    181183                if (event.getType() instanceof MouseButtonDown) { 
     184                    lastKeySequenceEvent = null; 
     185 
    182186                    lastMouseClickEvent = new StructureNode("MouseClick"); 
    183187                    writeMouseClickEvent(writer, event, 501); 
    184188                } 
    185189                else if (event.getType() instanceof MouseButtonUp) { 
     190                    lastKeySequenceEvent = null; 
     191 
    186192                    writeMouseClickEvent(writer, event, 502); 
    187193                } 
    188194                else if (event.getType() instanceof MouseClick) { 
     195                    lastKeySequenceEvent = null; 
     196 
    189197                    writeMouseClickEvent(writer, event, 500); 
    190198                    // FIXME: don't always write an item action 
     
    207215                } 
    208216                else if (event.getType() instanceof KeyboardFocusChange) { 
     217                    lastKeySequenceEvent = null; 
     218 
    209219                    writeFocusChangeEvent(writer, event); 
    210220                } 
    211221                else if (event.getType() instanceof KeyPressed) { 
    212                     // writeKeyEvent(writer, event, 401); 
     222                    if (lastKeySequenceEvent == null) { 
     223                        lastKeySequenceEvent = structure.add("KeySequence"); 
     224                    } 
     225                    lastKeyTypedEvent = lastKeySequenceEvent.add("KeyTyped"); 
     226                    writeKeyEvent(writer, event, 401); 
    213227                } 
    214228                else if (event.getType() instanceof KeyReleased) { 
    215                     // writeKeyEvent(writer, event, 402); 
     229                    writeKeyEvent(writer, event, 402); 
    216230                } 
    217231            } 
     
    445459        writeLine(writer, 
    446460            "<KeyInfo " 
    447             + "keyCode=\"" + getKeyCode(info.getKey()) + "\" " 
    448             + "keyChar=\"" + getKeyChar(info.getKey()) + "\" " 
     461            + "keyCode=\"" + info.getKey().getVirtualKeyCode() + "\" " 
     462            + "keyChar=\"" + getKeyChar(info.getKey().getVirtualKeyCode()) + "\" " 
    449463            + "modifiers=\"0\" />" 
    450464        ); 
     
    452466        writeLine(writer, "</KeyEvent>"); 
    453467         
    454         // TODO: keyevent structure part 
     468        lastKeyTypedEvent.addRecordable(); 
    455469    } 
    456470     
    457     private String getKeyChar (VirtualKey key) { 
    458         // TODO 
    459         return ""; 
    460     } 
    461      
    462     private int getKeyCode (VirtualKey key) { 
    463         // TODO 
    464         return -1; 
     471    private String getKeyChar (int keyCode) { 
     472        if (keyCode >= 32 && keyCode < 127) { 
     473            return String.valueOf((char)keyCode); 
     474        } 
     475        else { 
     476            return "_NO_LEGAL_XML_CHAR"; 
     477        } 
    465478    } 
    466479} 
Note: See TracChangeset for help on using the changeset viewer.