Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: com/trapezium/chisel/ChiselKeys.java


1   /*
2    * @(#)ChiselKeys.java
3    *
4    * Copyright (c) 1998 by Trapezium Development LLC.  All Rights Reserved.
5    *
6    * The information in this file is the property of Trapezium Development LLC
7    * and may be used only in accordance with the terms of the license granted
8    * by Trapezium.
9    *
10   */
11  package com.trapezium.chisel;
12  
13  import java.util.*;
14  import java.io.*;
15  import java.awt.*;
16  import java.awt.event.*;
17  
18  public class ChiselKeys {
19    private static Hashtable keys = new Hashtable();
20    static {
21      setKeyAction("anchor-drop", Event.ALT_MASK, KeyEvent.VK_A);
22      setKeyAction("anchor-goto-last", Event.ALT_MASK, KeyEvent.VK_J);
23      setKeyAction("brace-match-backward", Event.ALT_MASK, 219); // '['
24      setKeyAction("brace-match-forward", Event.ALT_MASK, 221); // ']'
25      setKeyAction("buffer-paste", Event.CTRL_MASK, KeyEvent.VK_V);
26      setKeyAction("character-delete-backward", 0, KeyEvent.VK_BACK_SPACE);
27      setKeyAction("character-delete-forward", 0, KeyEvent.VK_DELETE);
28      setKeyAction("cursor-backward", 0, KeyEvent.VK_LEFT);
29      setKeyAction("cursor-document-begin", KeyEvent.CTRL_MASK, KeyEvent.VK_PAGE_UP);
30      setKeyAction("cursor-document-end", KeyEvent.CTRL_MASK, KeyEvent.VK_PAGE_DOWN);
31      setKeyAction("cursor-down", 0, KeyEvent.VK_DOWN);
32      setKeyAction("cursor-forward", 0, KeyEvent.VK_RIGHT);
33      setKeyAction("cursor-line-begin", 0, KeyEvent.VK_HOME);
34      setKeyAction("cursor-line-end", 0, KeyEvent.VK_END);
35      setKeyAction("cursor-select-backward", Event.SHIFT_MASK, KeyEvent.VK_LEFT);
36      setKeyAction("cursor-select-document-begin", Event.SHIFT_MASK | KeyEvent.CTRL_MASK, KeyEvent.VK_HOME);
37      setKeyAction("cursor-select-document-end", Event.SHIFT_MASK | KeyEvent.CTRL_MASK, KeyEvent.VK_END);
38      setKeyAction("cursor-select-down", Event.SHIFT_MASK | Event.SHIFT_MASK, KeyEvent.VK_DOWN);
39      setKeyAction("cursor-select-forward", Event.SHIFT_MASK, KeyEvent.VK_RIGHT);
40      setKeyAction("cursor-select-line-begin", Event.SHIFT_MASK, KeyEvent.VK_HOME);
41      setKeyAction("cursor-select-line-end", Event.SHIFT_MASK, KeyEvent.VK_END);
42      setKeyAction("cursor-select-up", Event.SHIFT_MASK, KeyEvent.VK_UP);
43      setKeyAction("cursor-select-word-backward", Event.SHIFT_MASK | Event.CTRL_MASK, KeyEvent.VK_LEFT);
44      setKeyAction("cursor-select-word-forward", Event.SHIFT_MASK | Event.CTRL_MASK, KeyEvent.VK_RIGHT);
45      setKeyAction("cursor-page-begin", KeyEvent.CTRL_MASK, KeyEvent.VK_HOME);
46      setKeyAction("cursor-page-end", KeyEvent.CTRL_MASK, KeyEvent.VK_END);
47      setKeyAction("cursor-up", 0, KeyEvent.VK_UP);
48      setKeyAction("cursor-word-backward", Event.CTRL_MASK, KeyEvent.VK_LEFT);
49      setKeyAction("cursor-word-forward", Event.CTRL_MASK, KeyEvent.VK_RIGHT);
50      setKeyAction("find-dialog", Event.CTRL_MASK, KeyEvent.VK_F);
51      setKeyAction("find-next-backward", Event.ALT_MASK, KeyEvent.VK_UP);
52      setKeyAction("find-next-forward", Event.ALT_MASK, KeyEvent.VK_DOWN);
53      setKeyAction("frame-close", Event.CTRL_MASK, KeyEvent.VK_W);
54      setKeyAction("goto-dialog", Event.CTRL_MASK, KeyEvent.VK_G);
55      setKeyAction("line-break", 0, KeyEvent.VK_ENTER);
56      setKeyAction("line-clone", Event.ALT_MASK, KeyEvent.VK_O);
57      setKeyAction("line-delete", Event.ALT_MASK, KeyEvent.VK_D);
58      setKeyAction("line-swap", Event.ALT_MASK, KeyEvent.VK_S);
59      setKeyAction("mode-autoindent-switch", Event.ALT_MASK, KeyEvent.VK_F3);
60      setKeyAction("page-down", 0, KeyEvent.VK_PAGE_DOWN);
61      setKeyAction("page-up", 0, KeyEvent.VK_PAGE_UP);
62      setKeyAction("redo", Event.CTRL_MASK, KeyEvent.VK_Y);
63      setKeyAction("replace-dialog", Event.CTRL_MASK, KeyEvent.VK_H);
64      setKeyAction("selection-copy", Event.CTRL_MASK, KeyEvent.VK_C);
65      setKeyAction("selection-cut", Event.CTRL_MASK, KeyEvent.VK_X);
66      setKeyAction("selection-indent", Event.CTRL_MASK, KeyEvent.VK_TAB );
67      setKeyAction("selection-unindent", Event.SHIFT_MASK, KeyEvent.VK_TAB );
68      setKeyAction("undo", Event.CTRL_MASK, KeyEvent.VK_Z);
69      setKeyAction("undo", Event.ALT_MASK, KeyEvent.VK_BACK_SPACE);
70    }
71  
72    protected ChiselKeys() {
73    }
74  
75    public static void setKeyAction(String action, int modifiers, int key) {
76      keys.put(new KeyObject(modifiers, key), action);
77    }
78  
79    public static String getKeyAction(int modifiers, int key) {
80      return (String)keys.get(new KeyObject(modifiers, key));
81    }
82  }
83  
84  /* This is doubly a "key object".  It holds a keystroke and serves as
85   * a hashtable key for the keystroke to action-string mapping
86   */
87  class KeyObject {
88    public int key;
89  
90    public KeyObject(int m, int k) {
91      key = (k & 0xFFFF) | (m & 0x7FFF) << 16;
92    }
93  
94    public int getMod() {
95      return (key & 0x7FFF0000) >> 16;
96    }
97  
98    public int getCode() {
99      return (key & 0x0000FFFF);
100   }
101 
102   public int hashCode() {
103     return key;
104   }
105 
106     public boolean equals(Object obj) {
107     return obj instanceof KeyObject && ((KeyObject)obj).key == this.key;
108     }
109 }