Details
-
Type:
Improvement
-
Status:
Open
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: FEST-Swing 1.2a3
-
Fix Version/s: None
-
Component/s: Swing
-
Labels:None
-
Number of attachments :
Description
you cant speedup enterText with the delay settings.
robot.settings().delayBetweenEvents(10); robot.settings().eventPostingDelay(10); XXXXXXX.enterText(text);
Thas only works for keys without modifiers like Numbers.
Workaround (using awt.Robot, German Keybord and AltGr dont work):
public void setTextSim(String text, CommonComponentFixture component){ KeyStrokeMappingProvider_de provider= new KeyStrokeMappingProvider_de(); KeyStrokeMap.addKeyStrokesFrom(provider); java.awt.Robot awtRobot = null; try { awtRobot = new java.awt.Robot(); } catch (AWTException e) { e.printStackTrace(); } awtRobot.setAutoDelay(5); component.focus(); boolean shiftPressed=false; for (int i=0;i<text.length();i++){ char character = text.charAt(i); boolean needShift=((KeyStrokeMap.keyStrokeFor(character).getModifiers() & InputEvent.SHIFT_DOWN_MASK) != 0 ); if (needShift){ if (!shiftPressed){ awtRobot.keyPress(KeyEvent.VK_SHIFT); awtRobot.waitForIdle(); shiftPressed=true; } } else {//dont need shift if (shiftPressed){ awtRobot.keyRelease(KeyEvent.VK_SHIFT); awtRobot.waitForIdle(); shiftPressed=false; } } int keyCode=KeyStrokeMap.keyStrokeFor(character).getKeyCode(); awtRobot.keyRelease(keyCode); awtRobot.waitForIdle(); awtRobot.keyPress(keyCode); awtRobot.waitForIdle(); } if (shiftPressed){ robot.releaseKey(KeyEvent.VK_SHIFT); } }
with source tags: