コード例 #1
0
ファイル: NotesPopup.java プロジェクト: Bluelich/xmind
    private List<KeyStroke> generateKeyStrokes(Event event) {
      final List<KeyStroke> keyStrokes = new ArrayList<KeyStroke>(3);

      /*
       * If this is not a keyboard event, then there are no key strokes.
       * This can happen if we are listening to focus traversal events.
       */
      if ((event.stateMask == 0) && (event.keyCode == 0) && (event.character == 0)) {
        return keyStrokes;
      }

      // Add each unique key stroke to the list for consideration.
      final int firstAccelerator = SWTKeySupport.convertEventToUnmodifiedAccelerator(event);
      keyStrokes.add(SWTKeySupport.convertAcceleratorToKeyStroke(firstAccelerator));

      // We shouldn't allow delete to undergo shift resolution.
      if (event.character == SWT.DEL) {
        return keyStrokes;
      }

      final int secondAccelerator = SWTKeySupport.convertEventToUnshiftedModifiedAccelerator(event);
      if (secondAccelerator != firstAccelerator) {
        keyStrokes.add(SWTKeySupport.convertAcceleratorToKeyStroke(secondAccelerator));
      }

      final int thirdAccelerator = SWTKeySupport.convertEventToModifiedAccelerator(event);
      if ((thirdAccelerator != secondAccelerator) && (thirdAccelerator != firstAccelerator)) {
        keyStrokes.add(SWTKeySupport.convertAcceleratorToKeyStroke(thirdAccelerator));
      }

      return keyStrokes;
    }