Changeset 1415 for trunk/src/org/expeditee/gio/swing/SwingInputManager.java
- Timestamp:
- 07/24/19 11:23:45 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/expeditee/gio/swing/SwingInputManager.java
r1248 r1415 4 4 import java.awt.Color; 5 5 import java.awt.Dimension; 6 import java.awt.KeyEventDispatcher; 7 import java.awt.KeyboardFocusManager; 6 8 import java.awt.MouseInfo; 7 9 import java.awt.Robot; … … 33 35 import org.expeditee.gio.input.InputEvent.InputType; 34 36 import org.expeditee.gio.input.KBMInputEvent; 37 import org.expeditee.gio.input.KBMInputEvent.Key; 38 import org.expeditee.gio.input.StandardInputEventListeners; 35 39 import org.expeditee.gui.Popup; 36 40 import org.expeditee.gui.PopupManager; … … 38 42 39 43 public class SwingInputManager extends InputManager implements ComponentListener, WindowListener, WindowStateListener, 40 KeyListener, MouseListener, MouseMotionListener, MouseWheelListener {44 KeyListener, MouseListener, MouseMotionListener, MouseWheelListener, KeyEventDispatcher { 41 45 /** Singleton instance. */ 42 46 private static SwingInputManager _instance; … … 73 77 // Sign up to receive input as events 74 78 SwingGraphicsManager graphicsManager = SwingMiscManager.getIfUsingSwingGraphicsManager(); 75 if (graphicsManager != null) { 79 if (graphicsManager != null) { 76 80 graphicsManager.addWindowListener(swingInputManager); 77 81 graphicsManager.addWindowStateListener(swingInputManager); … … 91 95 graphicsManager.getGlassPane().setVisible(true); 92 96 graphicsManager.getContentPane().setBackground(Color.WHITE); 93 graphicsManager.getContentPane().setFocusTraversalKeysEnabled(false);94 }97 } 98 graphicsManager.getContentPane().setFocusTraversalKeysEnabled(false); 95 99 96 100 // Set up the robot (for controlling the mouse) … … 111 115 }); 112 116 _timer.setRepeats(false); 117 118 // AWTEventListener[] listeners = Toolkit.getDefaultToolkit().getAWTEventListeners(); 119 // for (AWTEventListener listener: listeners) { 120 // System.err.println(listener); 121 // F10FriendlyKeyboardFocusManager keyboardManager = new F10FriendlyKeyboardFocusManager(listener); 122 // KeyboardFocusManager.setCurrentKeyboardFocusManager(keyboardManager); 123 // } 124 // 125 // F10FriendlyKeyboardFocusManager keyboardManager = new F10FriendlyKeyboardFocusManager(this); 126 // KeyboardFocusManager.setCurrentKeyboardFocusManager(keyboardManager); 127 128 KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(this); 113 129 } 114 130 … … 222 238 @Override 223 239 public void mouseWheelMoved(MouseWheelEvent e) { 240 //ensureShiftAltStateCorrect(e); 224 241 // Give widgets first whack at input 225 242 distributeNativeInput(e); … … 247 264 @Override 248 265 public void mouseMoved(MouseEvent e) { 266 //ensureShiftAltStateCorrect(e); 267 249 268 // Update the cursor position 250 269 updateCursorPosition(e.getX(), e.getY()); … … 271 290 @Override 272 291 public void mouseClicked(MouseEvent e) { 292 //ensureShiftAltStateCorrect(e); 273 293 // Give widgets first whack at input 274 294 distributeNativeInput(e); … … 282 302 @Override 283 303 public void mousePressed(MouseEvent e) { 304 //ensureShiftAltStateCorrect(e); 284 305 mouseAction(e, true); 285 306 } … … 287 308 @Override 288 309 public void mouseReleased(MouseEvent e) { 310 //ensureShiftAltStateCorrect(e); 289 311 mouseAction(e, false); 290 312 } … … 324 346 } catch (Exception exception) { 325 347 System.err.println("SwingInputManager::mouseAction: " + exception.getMessage()); 348 exception.printStackTrace(); 326 349 } 327 350 } … … 349 372 @Override 350 373 public void keyTyped(KeyEvent e) { 351 //System.err.println("SwingInputManager::keyTyped::KeyEvent: " + e.getKeyChar()); 374 //System.err.println("SwingInputManager::keyTyped::" + KeyEvent.getKeyText(e.getKeyCode())); 375 //ensureShiftAltStateCorrect(e); 376 352 377 // Give widgets first whack at input 353 378 distributeNativeInput(e); 354 379 if (e.isConsumed()) { 355 //System.err.println("SwingInputManager::keyTyped::Widget/Popup Consumed KeyEvent"); 356 return; 357 } 358 380 return; 381 } 382 359 383 try { 360 384 // Ignore escape character and control characters … … 376 400 @Override 377 401 public void keyPressed(KeyEvent e) { 402 //System.err.println("SwingInputManager::keyPressed::" + KeyEvent.getKeyText(e.getKeyCode())); 403 //ensureShiftAltStateCorrect(e); 378 404 keyAction(e, true); 379 405 } … … 381 407 @Override 382 408 public void keyReleased(KeyEvent e) { 409 //System.err.println("SwingInputManager::keyReleased::" + KeyEvent.getKeyText(e.getKeyCode())); 383 410 keyAction(e, false); 384 411 } 412 413 // private void ensureShiftAltStateCorrect(java.awt.event.InputEvent inputEvent) { 414 //// Component source = (Component) e.getSource(); 415 //// int id = KeyEvent.KEY_RELEASED; 416 //// long when = System.currentTimeMillis(); 417 //// int keyCode = KeyEvent.VK_UNDEFINED; 418 //// char keyChar = KeyEvent.CHAR_UNDEFINED; 419 // 420 //// int modifiers = (e.getModifiers() & ~KeyEvent.SHIFT_DOWN_MASK); 421 //// KeyEvent event = new KeyEvent(source, id, when, modifiers, keyCode, keyChar); 422 //// Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(event); 423 // 424 // boolean shiftIsDownInRecordedState = StandardInputEventListeners.kbmStateListener.isKeyDown(Key.SHIFT); 425 // boolean shiftIsDownEventState = inputEvent.isShiftDown(); 426 // if (shiftIsDownInRecordedState && !shiftIsDownEventState) { 427 // try { 428 // // Create an input event 429 // InputEvent event = new KBMInputEvent(KBMInputEvent.EventType.KEY_UP, KBMInputEvent.Key.SHIFT); 430 // System.err.println("SwingInputManager::ensureShiftAltStateCorrect::Sending followup Shift Up"); 431 // 432 // // Translate and perform the input 433 // distributeInputEvent(event); 434 // } catch (Exception exception) { 435 // System.err.println(exception.getMessage()); 436 // } 437 // } 438 439 // System.err.println("SwingInputManager::ensureShiftAltStateCorrect::datastructure shift down: " + shiftIsDownInRecordedState); 440 // if (shiftIsDownInRecordedState != e.isShiftDown() && !e.isShiftDown()) { 441 // System.err.println("SwingInputManager::ensureShiftAltStateCorrect::Sending shift up event."); 442 // int modifiers = (e.getModifiers() & ~KeyEvent.SHIFT_DOWN_MASK); 443 // KeyEvent event = new KeyEvent(source, id, when, modifiers, keyCode, keyChar); 444 // Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(event); 445 // } 446 447 // boolean altIsDown = StandardInputEventListeners.kbmStateListener.isKeyDown(Key.ALT); 448 // if (altIsDown != e.isAltDown() && !e.isAltDown()) { 449 // System.err.println("SwingInputManager::ensureShiftAltStateCorrect::Sending alt up event."); 450 // int modifiers = (e.getModifiers() & ~KeyEvent.ALT_DOWN_MASK); 451 // KeyEvent event = new KeyEvent(source, id, when, modifiers, keyCode, keyChar); 452 // Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(event); 453 // } 454 // } 385 455 386 456 /** Handles key pressed/released events. */ 387 457 private void keyAction(KeyEvent e, boolean down) { 388 //System.err.println("SwingInputManager::keyAction::KeyEvent: " + e.getKeyChar());389 458 // Give widgets first whack at input 390 459 distributeNativeInput(e); 391 460 if (e.isConsumed()) { 392 //System.err.println("SwingInputManager::keyAction::Was consumed: " + e.isConsumed()); 393 return; 394 } 395 //System.err.println("SwingInputManager::keyAction::Was consumed: " + e.isConsumed()); 396 461 return; 462 } 463 397 464 KBMInputEvent.Key key = SwingConversions.fromSwingVirtualKey(e.getKeyCode()); 398 465 if (key == null) { 399 466 return; 400 467 } 401 468 402 469 try { 403 470 // Create an input event … … 424 491 /** Forwards the given input event to the listener if it is listening for it. */ 425 492 private void forwardNativeInputToListener(Object listener, java.awt.event.InputEvent event) { 426 //System.err.println("SwingInputManager::forwardNativeInputToListener");427 493 if (listener == null || event == null) { 428 494 return; 429 495 } 430 //System.err.println("SwingInputManager::forwardNativeInputToListener::Recieving input: " + event.toString());496 431 497 if (listener instanceof KeyListener && event instanceof KeyEvent) { 432 498 433 499 KeyListener keyListener = (KeyListener) listener; 434 500 KeyEvent ke = (KeyEvent) event; 435 501 436 502 switch (event.getID()) { 437 503 case KeyEvent.KEY_PRESSED: … … 442 508 return; 443 509 case KeyEvent.KEY_TYPED: 444 //System.err.println("SwingInputManager::forwardNativeInputToListener::Recieving key typed: " + event.toString());445 510 keyListener.keyTyped(ke); 446 511 return; … … 632 697 633 698 } 699 700 @Override 701 public boolean dispatchKeyEvent(KeyEvent e) { 702 if (e.getKeyCode() == KeyEvent.VK_F10) { 703 if (KeyEvent.KEY_PRESSED == e.getID()) { 704 keyPressed(e); 705 } else if (KeyEvent.KEY_RELEASED == e.getID()) { 706 keyReleased(e); 707 } else if (KeyEvent.KEY_TYPED == e.getID()) { 708 keyTyped(e); 709 } else { 710 System.err.println("SwingInputManager::dispatchKeyEvent::Found Key that is not pressed, " 711 + "released or typed. What is it? " + e.getID()); 712 } 713 return true; 714 } 715 return false; 716 } 634 717 }
Note:
See TracChangeset
for help on using the changeset viewer.