Key Events"
From Documentation
Line 4: | Line 4: | ||
Users can write key event listeners for key events such as ctrl+C, ctrl+V and so on. | Users can write key event listeners for key events such as ctrl+C, ctrl+V and so on. | ||
− | ==Purpose== | + | ===Purpose=== |
Implement onCtrlKey event listener. | Implement onCtrlKey event listener. | ||
− | ==Key event== | + | ===Key event=== |
Key event represents a key pressed by user. | Key event represents a key pressed by user. | ||
* '''onCtrlKey''' - This event is fired when user presses a key along with a ctrl key. Event listeners are provided with <code>org.zkoss.zk.ui.event.KeyEvent</code> in the event listener. | * '''onCtrlKey''' - This event is fired when user presses a key along with a ctrl key. Event listeners are provided with <code>org.zkoss.zk.ui.event.KeyEvent</code> in the event listener. | ||
Line 23: | Line 23: | ||
'''Note''': Here instead of onCtrlKey a corresponding static constant declared in <code>org.zkoss.zk.ui.event.Events</code> class is used. | '''Note''': Here instead of onCtrlKey a corresponding static constant declared in <code>org.zkoss.zk.ui.event.Events</code> class is used. | ||
− | == | + | ===ZUML=== |
Here is a sample example ZUL file. | Here is a sample example ZUL file. | ||
<source lang="xml" high="10"> | <source lang="xml" high="10"> | ||
Line 29: | Line 29: | ||
<zk> | <zk> | ||
<window title="ZSS Key Events" border="normal" width="100%" | <window title="ZSS Key Events" border="normal" width="100%" | ||
− | height="100%" apply="org.zkoss. | + | height="100%" |
+ | apply="org.zkoss.zssessentials.events.KeyEventsComposer"> | ||
<hlayout> | <hlayout> | ||
− | + | <label value="Key code:"></label> | |
− | + | <textbox id="editBox"></textbox> | |
</hlayout> | </hlayout> | ||
<spreadsheet id="ss" width="800px" height="800px" maxrows="20" | <spreadsheet id="ss" width="800px" height="800px" maxrows="20" | ||
− | maxcolumns="10" src="/ | + | maxcolumns="10" src="/WEB-INF/excel/events/events.xlsx" |
+ | ctrlKeys="^c^x^v"> | ||
</spreadsheet> | </spreadsheet> | ||
</window> | </window> | ||
</zk> | </zk> | ||
</source> | </source> | ||
− | + | ||
+ | Above we register ctrl+c,ctrl+x and ctrl+v key events. | ||
+ | |||
+ | ===Composer=== | ||
+ | Here is the composer code | ||
+ | |||
<source lang="java" high="8,18"> | <source lang="java" high="8,18"> | ||
− | public class | + | public class KeyEventsComposer extends GenericForwardComposer { |
private transient Spreadsheet ss; | private transient Spreadsheet ss; | ||
Line 74: | Line 81: | ||
} | } | ||
} | } | ||
+ | } | ||
</source> | </source> | ||
Revision as of 11:01, 23 November 2010
Users can write key event listeners for key events such as ctrl+C, ctrl+V and so on.
Purpose
Implement onCtrlKey event listener.
Key event
Key event represents a key pressed by user.
- onCtrlKey - This event is fired when user presses a key along with a ctrl key. Event listeners are provided with
org.zkoss.zk.ui.event.KeyEvent
in the event listener.
Registering Key Events
Key event can be registered to ZK Spreadsheet by calling AbstractComponent.addEventListener(String, EventListener) as shown below.
...
ss.addEventListener(org.zkoss.zk.ui.event.Events.ON_CTRL_KEY,
new EventListener() {
public void onEvent(Event event) throws Exception {
doCtrlKeyEvent((KeyEvent) event);
}
});
...
Note: Here instead of onCtrlKey a corresponding static constant declared in org.zkoss.zk.ui.event.Events
class is used.
ZUML
Here is a sample example ZUL file.
<?page title="ZSS" contentType="text/html;charset=UTF-8"?>
<zk>
<window title="ZSS Key Events" border="normal" width="100%"
height="100%"
apply="org.zkoss.zssessentials.events.KeyEventsComposer">
<hlayout>
<label value="Key code:"></label>
<textbox id="editBox"></textbox>
</hlayout>
<spreadsheet id="ss" width="800px" height="800px" maxrows="20"
maxcolumns="10" src="/WEB-INF/excel/events/events.xlsx"
ctrlKeys="^c^x^v">
</spreadsheet>
</window>
</zk>
Above we register ctrl+c,ctrl+x and ctrl+v key events.
Composer
Here is the composer code
public class KeyEventsComposer extends GenericForwardComposer {
private transient Spreadsheet ss;
private transient Textbox editBox;
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
ss.addEventListener(org.zkoss.zk.ui.event.Events.ON_CTRL_KEY,
new EventListener() {
public void onEvent(Event event) throws Exception {
doCtrlKeyEvent((KeyEvent) event);
}
});
}
private void doCtrlKeyEvent(KeyEvent event) {
editBox.setValue("" + event.getKeyCode());
char c = (char) event.getKeyCode();
switch (c) {
case 'X':
// do cut operation
break;
case 'C':
// do copy operation
break;
case 'V':
// do paste operation
break;
default:
return;
}
}
}
You can retrieve key pressed from KeyEvent using getKeyCode()
.
Version History
Version | Date | Content |
---|---|---|
All source code listed in this book is at Github.