Implementing Event Listeners

From Documentation


DocumentationZK Calendar EssentialsImplementing Event Listeners
Implementing Event Listeners





Event Listener

ZK supports to add an event listener on zul or in Java, please refer to ZK Developer's Reference/Event Handling/Event Listening.


Supported Events

Since 3.0.0

The ZK Calendar will fire events below:

Icon info.png Notice: Event names change since version 3.0.0

CalendarsEvent.ON_ITEM_CREATE

This event is triggered when a user clicks an empty cell in the time cell.

Onitemcreate.gif

Event name in 2.1: ON_EVENT_CREATE (onEventCreate)

CalendarsEvent.ON_ITEM_EDIT

This event is triggered when a user clicks on an existing calendar item.

Onitemedit.gif

Event name in 2.1: ON_EVENT_EDIT(onEventEdit)

CalendarsEvent.ON_ITEM_UPDATE

This event is triggered when a user drags to change a calendar item's time span or drags to move the item to a different date.

Onitemupdate.gif
Onitemupdate2.gif

Event name in 2.1: ON_EVENT_UPDATE(onEventUpdate)

CalendarsEvent.ON_ITEM_TOOLTIP

It's fired when you hover a mouse on a calendar item. Listen to this event to show a tooltip for an item.

Onitemtooltip.jpg
    @Listen(CalendarsEvent.ON_ITEM_TOOLTIP +"= calendars")
    public void showTooltip(CalendarsEvent event) {
        tooltipText.setValue(event.getCalendarItem().getTitle() + "-" + event.getCalendarItem().getContent());
    }


CalendarsEvent.ON_WEEK_CLICK

Calendars fires this event when you click the week number of the year on the left-hand side when you set weekOfYear="true".

OnWeekClick.gif

An Event object is passed to your event listener.

CalendarsEvent.ON_DAY_CLICK

Calendars fires this event when you click when a user clicks on the date texts (TUE 10/3) on the top of the component.

OnDayClick.gif

It passes an Event object, not CalendarsEvent, to your event listener, and you can get the clicked date:

public class EventComposer extends SelectorComposer<Component> {
...
    @Listen(CalendarsEvent.ON_DAY_CLICK + "=calendars")
    public void handleDayClick(Event event){
        Date clickedDate = (Date) event.getData();
    }

CalendarsEvent

ZK will call your event listener method with an CalendarsEvent as a parameter when one of the ON_ITEM_* events is triggered. So you should declare your method signature like:

    @Listen(CalendarsEvent.ON_ITEM_CREATE + " = #calendars")
    public void showCreationBox(CalendarsEvent event) {...}


Then you can call getBeginDate(), getEndDate(),or getCalendarItem() to implement your application logic. Please refer to javadoc for complete methods and their details.



The example project is at Github


Last Update : 2023/10/02

Copyright © Potix Corporation. This article is licensed under GNU Free Documentation License.