Lines 36-60
Link Here
|
36 |
* should make your component implement {@link ExplorerManager.Provider} and |
36 |
* should make your component implement {@link ExplorerManager.Provider} and |
37 |
* {@link org.openide.util.Lookup.Provider} and register actions in your component's {@link ActionMap}: |
37 |
* {@link org.openide.util.Lookup.Provider} and register actions in your component's {@link ActionMap}: |
38 |
<pre> |
38 |
<pre> |
39 |
<span class="keyword">public</span> <span class="keyword">class</span> <span class="type">YourComponent</span> <span class="keyword">extends</span> <span class="type">TopComponent</span> <span class="comment">// or JPanel, etc. |
39 |
<span class="keyword">public</span> <span class="keyword">class</span> <span class="type">YourComponent</span> <span class="keyword">extends</span> <span class="type">TopComponent</span> |
40 |
</span> <span class="keyword">implements</span> <span class="type">ExplorerManager.Provider</span>, <span class="type">Lookup.Provider</span> { |
40 |
<span class="keyword">implements</span> <span class="type">ExplorerManager.Provider</span>, <span class="type">Lookup.Provider</span> { |
41 |
<span class="keyword">private</span> <span class="type">ExplorerManager</span> <span class="variable-name">manager</span>; |
41 |
<span class="keyword">private</span> <span class="type">ExplorerManager</span> <span class="variable-name">manager</span>; |
42 |
<span class="keyword">private</span> <span class="type">Lookup</span> <span class="variable-name">lookup</span>; |
|
|
43 |
<span class="keyword">public</span> <span class="type">YourComponent</span>() { |
42 |
<span class="keyword">public</span> <span class="type">YourComponent</span>() { |
44 |
manager = <span class="keyword">new</span> <span class="type">ExplorerManager</span>(); |
43 |
<span class="keyword">this</span> (<span class="keyword">new</span> <span class="type">ExplorerManager</span>(), <span class="keyword">new</span> <span class="type">ActionMap</span>()); |
45 |
<span class="type">ActionMap</span> <span class="variable-name">map</span> = getActionMap(); |
44 |
} |
|
|
45 |
<span class="keyword">private</span> <span class="type">YourComponent</span>(ExplorerManager em, ActionMap map) { |
46 |
<span class="comment">// following line tells the top component which lookup should be associated with it</span> |
47 |
<span class="keyword">super </span> (ExplorerUtils.createLookup (em, map)); |
48 |
<span class="keyword">this</span>.manager = em; |
46 |
map.put(DefaultEditorKit.copyAction, ExplorerUtils.actionCopy(manager)); |
49 |
map.put(DefaultEditorKit.copyAction, ExplorerUtils.actionCopy(manager)); |
47 |
map.put(DefaultEditorKit.cutAction, ExplorerUtils.actionCut(manager)); |
50 |
map.put(DefaultEditorKit.cutAction, ExplorerUtils.actionCut(manager)); |
48 |
map.put(DefaultEditorKit.pasteAction, ExplorerUtils.actionPaste(manager)); |
51 |
map.put(DefaultEditorKit.pasteAction, ExplorerUtils.actionPaste(manager)); |
49 |
map.put(<span class="string">"delete"</span>, ExplorerUtils.actionDelete(manager, <span class="constant">true</span>)); <span class="comment">// or false |
52 |
map.put(<span class="string">"delete"</span>, ExplorerUtils.actionDelete(manager, <span class="constant">true</span>)); <span class="comment">// or false |
50 |
</span> lookup = ExplorerUtils.createLookup (manager, map); |
53 |
</span> } |
51 |
} |
|
|
52 |
<span class="keyword">public</span> <span class="type">ExplorerManager</span> <span class="function-name">getExplorerManager</span>() { |
54 |
<span class="keyword">public</span> <span class="type">ExplorerManager</span> <span class="function-name">getExplorerManager</span>() { |
53 |
<span class="keyword">return</span> manager; |
55 |
<span class="keyword">return</span> manager; |
54 |
} |
56 |
} |
55 |
<span class="keyword">public</span> <span class="type">Lookup</span> <span class="function-name">getLookup</span>() { |
|
|
56 |
<span class="keyword">return</span> lookup; |
57 |
} |
58 |
<span class="comment">// It is good idea to switch all listeners on and off when the |
57 |
<span class="comment">// It is good idea to switch all listeners on and off when the |
59 |
</span> <span class="comment">// component is shown or hidden. In the case of TopComponent use: |
58 |
</span> <span class="comment">// component is shown or hidden. In the case of TopComponent use: |
60 |
</span> <span class="keyword">protected</span> <span class="type">void</span> <span class="function-name">componentActivated</span>() { |
59 |
</span> <span class="keyword">protected</span> <span class="type">void</span> <span class="function-name">componentActivated</span>() { |
Lines 70-84
Link Here
|
70 |
* turn the listeners on and off: |
69 |
* turn the listeners on and off: |
71 |
<pre> |
70 |
<pre> |
72 |
<span class="keyword">public</span> <span class="keyword">class</span> <span class="type">YourComponent</span> <span class="keyword">extends</span> <span class="type">JPanel</span> |
71 |
<span class="keyword">public</span> <span class="keyword">class</span> <span class="type">YourComponent</span> <span class="keyword">extends</span> <span class="type">JPanel</span> |
73 |
<span class="keyword">implements</span> <span class="type">ExplorerManager.Provider</span>, <span class="type">Lookup.Provider</span> { |
72 |
<span class="keyword">implements</span> <span class="type">ExplorerManager.Provider</span>, <span class="type">Lookup.Provider</span> { |
74 |
<span class="comment">// fields as before... |
73 |
<span class="keyword">private</span> <span class="type">ExplorerManager</span> <span class="variable-name">manager</span>; |
|
|
74 |
<span class="keyword">private</span> <span class="type">Lookup</span> <span class="variable-name">lookup</span>; |
75 |
</span> <span class="keyword">public</span> <span class="type">YourComponent</span>() { |
75 |
</span> <span class="keyword">public</span> <span class="type">YourComponent</span>() { |
76 |
<span class="comment">// ...as before, but add e.g.: |
76 |
<span class="comment">// same as before...</span> |
|
|
77 |
manager = <span class="keyword">new</span> <span class="type">ExplorerManager</span>(); |
78 |
<span class="type">ActionMap</span> <span class="variable-name">map</span> = getActionMap(); |
79 |
map.put(DefaultEditorKit.copyAction, ExplorerUtils.actionCopy(manager)); |
80 |
map.put(DefaultEditorKit.cutAction, ExplorerUtils.actionCut(manager)); |
81 |
map.put(DefaultEditorKit.pasteAction, ExplorerUtils.actionPaste(manager)); |
82 |
map.put(<span class="string">"delete"</span>, ExplorerUtils.actionDelete(manager, <span class="constant">true</span>)); <span class="comment">// or false |
83 |
</span> |
84 |
<span class="comment">// ...but add e.g.: |
77 |
</span> <span class="type">InputMap</span> <span class="variable-name">keys</span> = getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); |
85 |
</span> <span class="type">InputMap</span> <span class="variable-name">keys</span> = getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT); |
78 |
keys.put(KeyStroke.getKeyStroke(<span class="string">"control c"</span>), DefaultEditorKit.copyAction); |
86 |
keys.put(KeyStroke.getKeyStroke(<span class="string">"control c"</span>), DefaultEditorKit.copyAction); |
79 |
keys.put(KeyStroke.getKeyStroke(<span class="string">"control x"</span>), DefaultEditorKit.cutAction); |
87 |
keys.put(KeyStroke.getKeyStroke(<span class="string">"control x"</span>), DefaultEditorKit.cutAction); |
80 |
keys.put(KeyStroke.getKeyStroke(<span class="string">"control v"</span>), DefaultEditorKit.pasteAction); |
88 |
keys.put(KeyStroke.getKeyStroke(<span class="string">"control v"</span>), DefaultEditorKit.pasteAction); |
81 |
keys.put(KeyStroke.getKeyStroke(<span class="string">"DELETE"</span>), <span class="string">"delete"</span>); |
89 |
keys.put(KeyStroke.getKeyStroke(<span class="string">"DELETE"</span>), <span class="string">"delete"</span>); |
|
|
90 |
|
91 |
<span class="comment">// ...and initialization of lookup variable</span> |
92 |
lookup = ExplorerUtils.createLookup (manager, map); |
93 |
} |
94 |
<span class="comment">// ...method as before and getLookup</span> |
95 |
<span class="keyword">public</span> <span class="type">ExplorerManager</span> <span class="function-name">getExplorerManager</span>() { |
96 |
<span class="keyword">return</span> manager; |
97 |
} |
98 |
<span class="keyword">public</span> <span class="type">Lookup</span> <span class="function-name">getLookup</span>() { |
99 |
<span class="keyword">return</span> lookup; |
82 |
} |
100 |
} |
83 |
<span class="comment">// ...methods as before, but replace componentActivated and |
101 |
<span class="comment">// ...methods as before, but replace componentActivated and |
84 |
</span> <span class="comment">// componentDeactivated with e.g.: |
102 |
</span> <span class="comment">// componentDeactivated with e.g.: |