Implementing Event Listeners"

From Documentation
 
(11 intermediate revisions by the same user not shown)
Line 47: Line 47:
 
     public void showTooltip(CalendarsEvent event) {
 
     public void showTooltip(CalendarsEvent event) {
 
         tooltipText.setValue(event.getCalendarItem().getTitle() + "-" + event.getCalendarItem().getContent());
 
         tooltipText.setValue(event.getCalendarItem().getTitle() + "-" + event.getCalendarItem().getContent());
 +
    }
 +
</syntaxhighlight>
 +
 +
 +
<!--
 +
== [https://www.zkoss.org/javadoc/latest/zkcal/org/zkoss/calendar/event/CalendarsEvent.html#ON_DAY_CLICK CalendarsEvent.ON_DAY_CLICK]==
 +
TBD...
 +
-->
 +
 +
== [https://www.zkoss.org/javadoc/latest/zkcal/org/zkoss/calendar/event/CalendarsEvent.html#ON_WEEK_CLICK 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 [[ZK_Calendar_Essentials/Component_Attributes#weekOfYear | weekOfYear="true"]].
 +
 +
[[File:OnWeekClick.gif| center]]
 +
 +
An Event object is passed to your event listener.
 +
 +
== [https://www.zkoss.org/javadoc/latest/zkcal/org/zkoss/calendar/event/CalendarsEvent.html#ON_DAY_CLICK 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.
 +
 +
[[File:OnDayClick.gif| center]]
 +
 +
It passes an [https://www.zkoss.org/javadoc/latest/zk/org/zkoss/zk/ui/event/Event.html Event object], not CalendarsEvent, to your event listener, and you can get the clicked date:
 +
 +
<syntaxhighlight lang='java' highlight='5'>
 +
public class EventComposer extends SelectorComposer<Component> {
 +
...
 +
    @Listen(CalendarsEvent.ON_DAY_CLICK + "=calendars")
 +
    public void handleDayClick(Event event){
 +
        Date clickedDate = (Date) event.getData();
 
     }
 
     }
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 
= CalendarsEvent =
 
= CalendarsEvent =
ZK will call your event listener method with an <javadoc>org.zkoss.calendar.event.CalendarsEvent</javadoc> as a parameter when one of the supported events is triggered. So you should declare your method signature like:
+
ZK will call your event listener method with an <javadoc>org.zkoss.calendar.event.CalendarsEvent</javadoc> as a parameter when one of the <code> ON_ITEM_*</code> events is triggered. So you should declare your method signature like:
  
 
<source lang='java'>
 
<source lang='java'>

Latest revision as of 07:20, 2 October 2023


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.