Lines 46-53
Link Here
|
46 |
import java.awt.event.KeyEvent; |
46 |
import java.awt.event.KeyEvent; |
47 |
import java.io.IOException; |
47 |
import java.io.IOException; |
48 |
import java.io.OutputStream; |
48 |
import java.io.OutputStream; |
49 |
import java.util.Arrays; |
|
|
50 |
import java.util.Collections; |
51 |
import java.util.concurrent.atomic.AtomicReference; |
49 |
import java.util.concurrent.atomic.AtomicReference; |
52 |
import javax.swing.AbstractAction; |
50 |
import javax.swing.AbstractAction; |
53 |
import javax.swing.Action; |
51 |
import javax.swing.Action; |
Lines 92-104
Link Here
|
92 |
return FileUtil.createFolder(FileUtil.getConfigRoot(), path); |
90 |
return FileUtil.createFolder(FileUtil.getConfigRoot(), path); |
93 |
} |
91 |
} |
94 |
|
92 |
|
95 |
private void assertMapping(Keymap km, KeyStroke stroke, FileObject presenterDefinition, String actionName) throws Exception { |
93 |
private void assertMapping(NbKeymap km, KeyStroke stroke, FileObject presenterDefinition, String actionName) throws Exception { |
96 |
Action a = km.getAction(stroke); |
94 |
Action a = km.getAction(stroke); |
97 |
assertNotNull("for " + stroke, a); |
95 |
assertNotNull("for " + stroke, a); |
98 |
assertEquals(actionName, a.getValue(Action.NAME)); |
96 |
assertEquals(actionName, a.getValue(Action.NAME)); |
99 |
a.putValue("definingFile", presenterDefinition); |
|
|
100 |
assertEquals("for " + stroke + " from " + presenterDefinition.getPath(), |
97 |
assertEquals("for " + stroke + " from " + presenterDefinition.getPath(), |
101 |
Collections.singletonList(stroke), Arrays.asList(km.getKeyStrokesForAction(a))); |
98 |
stroke, km.keyStrokeForAction(a, presenterDefinition)); |
102 |
} |
99 |
} |
103 |
|
100 |
|
104 |
public void testAcceleratorMapping() throws Exception { |
101 |
public void testAcceleratorMapping() throws Exception { |
Lines 119-125
Link Here
|
119 |
FileObject menuitem2 = DataShadow.create(menu, "whatever2", DataObject.find(def2)).getPrimaryFile(); |
116 |
FileObject menuitem2 = DataShadow.create(menu, "whatever2", DataObject.find(def2)).getPrimaryFile(); |
120 |
FileObject menuitem3 = DataShadow.create(menu, "whatever3", DataObject.find(def3)).getPrimaryFile(); |
117 |
FileObject menuitem3 = DataShadow.create(menu, "whatever3", DataObject.find(def3)).getPrimaryFile(); |
121 |
FileObject menuitem4 = DataShadow.create(menu, "whatever4", DataObject.find(def4)).getPrimaryFile(); |
118 |
FileObject menuitem4 = DataShadow.create(menu, "whatever4", DataObject.find(def4)).getPrimaryFile(); |
122 |
Keymap km = new NbKeymap(); |
119 |
NbKeymap km = new NbKeymap(); |
123 |
assertMapping(km, KeyStroke.getKeyStroke(KeyEvent.VK_1, 0), menuitem1, "one"); |
120 |
assertMapping(km, KeyStroke.getKeyStroke(KeyEvent.VK_1, 0), menuitem1, "one"); |
124 |
assertMapping(km, KeyStroke.getKeyStroke(KeyEvent.VK_2, 0), menuitem2, "two"); |
121 |
assertMapping(km, KeyStroke.getKeyStroke(KeyEvent.VK_2, 0), menuitem2, "two"); |
125 |
assertMapping(km, KeyStroke.getKeyStroke(KeyEvent.VK_3, 0), menuitem3, "DummySystemAction1"); |
122 |
assertMapping(km, KeyStroke.getKeyStroke(KeyEvent.VK_3, 0), menuitem3, "DummySystemAction1"); |
Lines 132-138
Link Here
|
132 |
DataFolder shortcuts = DataFolder.findFolder(makeFolder("Shortcuts")); |
129 |
DataFolder shortcuts = DataFolder.findFolder(makeFolder("Shortcuts")); |
133 |
DataShadow.create(shortcuts, "C-V", DataObject.find(def)); |
130 |
DataShadow.create(shortcuts, "C-V", DataObject.find(def)); |
134 |
DataShadow.create(shortcuts, "PASTE", DataObject.find(def)); |
131 |
DataShadow.create(shortcuts, "PASTE", DataObject.find(def)); |
135 |
Keymap km = new NbKeymap(); |
132 |
NbKeymap km = new NbKeymap(); |
136 |
assertMapping(km, KeyStroke.getKeyStroke(KeyEvent.VK_V, KeyEvent.CTRL_MASK), def, "paste"); |
133 |
assertMapping(km, KeyStroke.getKeyStroke(KeyEvent.VK_V, KeyEvent.CTRL_MASK), def, "paste"); |
137 |
} |
134 |
} |
138 |
|
135 |
|
Lines 147-153
Link Here
|
147 |
DataFolder netbeans = DataFolder.findFolder(makeFolder("Keymaps/NetBeans")); |
144 |
DataFolder netbeans = DataFolder.findFolder(makeFolder("Keymaps/NetBeans")); |
148 |
DataShadow.create(netbeans, "C-F5", DataObject.find(def1)); |
145 |
DataShadow.create(netbeans, "C-F5", DataObject.find(def1)); |
149 |
DataShadow.create(netbeans, "F5", DataObject.find(def2)); |
146 |
DataShadow.create(netbeans, "F5", DataObject.find(def2)); |
150 |
Keymap km = new NbKeymap(); |
147 |
NbKeymap km = new NbKeymap(); |
151 |
assertMapping(km, KeyStroke.getKeyStroke(KeyEvent.VK_F5, KeyEvent.CTRL_MASK), def1, "start"); |
148 |
assertMapping(km, KeyStroke.getKeyStroke(KeyEvent.VK_F5, KeyEvent.CTRL_MASK), def1, "start"); |
152 |
assertMapping(km, KeyStroke.getKeyStroke(KeyEvent.VK_F5, 0), def2, "continue"); |
149 |
assertMapping(km, KeyStroke.getKeyStroke(KeyEvent.VK_F5, 0), def2, "continue"); |
153 |
} |
150 |
} |
Lines 162-168
Link Here
|
162 |
} |
159 |
} |
163 |
|
160 |
|
164 |
public void testAbstractModifiers() throws Exception { |
161 |
public void testAbstractModifiers() throws Exception { |
165 |
Keymap km = new NbKeymap(); |
162 |
NbKeymap km = new NbKeymap(); |
166 |
FileObject inst1 = make("Shortcuts/D-1.instance"); |
163 |
FileObject inst1 = make("Shortcuts/D-1.instance"); |
167 |
inst1.setAttribute("instanceCreate", new DummyAction("one")); |
164 |
inst1.setAttribute("instanceCreate", new DummyAction("one")); |
168 |
FileObject inst2 = make("Shortcuts/O-1.instance"); |
165 |
FileObject inst2 = make("Shortcuts/O-1.instance"); |
Lines 190-196
Link Here
|
190 |
def.setAttribute("instanceCreate", a); |
187 |
def.setAttribute("instanceCreate", a); |
191 |
DataShadow.create(DataFolder.findFolder(makeFolder("Keymaps/NetBeans")), "C-A", DataObject.find(def)); |
188 |
DataShadow.create(DataFolder.findFolder(makeFolder("Keymaps/NetBeans")), "C-A", DataObject.find(def)); |
192 |
DataShadow.create(DataFolder.findFolder(makeFolder("Keymaps/Eclipse")), "C-B", DataObject.find(def)); |
189 |
DataShadow.create(DataFolder.findFolder(makeFolder("Keymaps/Eclipse")), "C-B", DataObject.find(def)); |
193 |
Keymap km = new NbKeymap(); |
190 |
NbKeymap km = new NbKeymap(); |
194 |
assertMapping(km, KeyStroke.getKeyStroke(KeyEvent.VK_A, KeyEvent.CTRL_MASK), def, "one"); |
191 |
assertMapping(km, KeyStroke.getKeyStroke(KeyEvent.VK_A, KeyEvent.CTRL_MASK), def, "one"); |
195 |
assertEquals(null, a.getValue(Action.ACCELERATOR_KEY)); |
192 |
assertEquals(null, a.getValue(Action.ACCELERATOR_KEY)); |
196 |
FileUtil.getConfigFile("Keymaps").setAttribute("currentKeymap", "Eclipse"); |
193 |
FileUtil.getConfigFile("Keymaps").setAttribute("currentKeymap", "Eclipse"); |
Lines 264-271
Link Here
|
264 |
FileObject def = make("Menu/x.shadow"); |
261 |
FileObject def = make("Menu/x.shadow"); |
265 |
def.setAttribute("originalFile", "Action/nonexistent.instance"); |
262 |
def.setAttribute("originalFile", "Action/nonexistent.instance"); |
266 |
Action a = new DummyAction("x"); |
263 |
Action a = new DummyAction("x"); |
267 |
a.putValue("definingFile", def); |
264 |
new NbKeymap().keyStrokeForAction(a, def); |
268 |
new NbKeymap().getKeyStrokesForAction(a); |
|
|
269 |
} |
265 |
} |
270 |
|
266 |
|
271 |
private static final class DummyAction extends AbstractAction { |
267 |
private static final class DummyAction extends AbstractAction { |