parent
93a99676c1
commit
eaf55dc452
@ -0,0 +1,100 @@ |
|||||||
|
package de.kreth.vaadin.clubhelper.vaadinclubhelper.ui.components; |
||||||
|
|
||||||
|
import java.time.LocalDateTime; |
||||||
|
import java.time.Month; |
||||||
|
import java.time.ZonedDateTime; |
||||||
|
import java.time.format.DateTimeFormatter; |
||||||
|
import java.util.Collection; |
||||||
|
|
||||||
|
import org.vaadin.addon.calendar.Calendar; |
||||||
|
import org.vaadin.addon.calendar.item.BasicItemProvider; |
||||||
|
import org.vaadin.addon.calendar.ui.CalendarComponentEvents.BackwardEvent; |
||||||
|
import org.vaadin.addon.calendar.ui.CalendarComponentEvents.BackwardHandler; |
||||||
|
import org.vaadin.addon.calendar.ui.CalendarComponentEvents.DateClickHandler; |
||||||
|
import org.vaadin.addon.calendar.ui.CalendarComponentEvents.ForwardEvent; |
||||||
|
import org.vaadin.addon.calendar.ui.CalendarComponentEvents.ForwardHandler; |
||||||
|
import org.vaadin.addon.calendar.ui.CalendarComponentEvents.ItemClickHandler; |
||||||
|
|
||||||
|
import com.vaadin.shared.Registration; |
||||||
|
import com.vaadin.ui.CustomComponent; |
||||||
|
import com.vaadin.ui.Label; |
||||||
|
import com.vaadin.ui.VerticalLayout; |
||||||
|
|
||||||
|
import de.kreth.clubhelperbackend.google.calendar.ClubEvent; |
||||||
|
|
||||||
|
public class CalendarComponent extends CustomComponent { |
||||||
|
|
||||||
|
private static final long serialVersionUID = -9152173211931554059L; |
||||||
|
|
||||||
|
private DateTimeFormatter dfMonth = DateTimeFormatter.ofPattern("MMMM uu"); |
||||||
|
|
||||||
|
private Label monthName; |
||||||
|
|
||||||
|
private ClubEventProvider dataProvider; |
||||||
|
private Calendar<ClubEvent> calendar; |
||||||
|
|
||||||
|
public CalendarComponent() { |
||||||
|
|
||||||
|
monthName = new Label(); |
||||||
|
monthName.setStyleName("title_label"); |
||||||
|
|
||||||
|
dataProvider = new ClubEventProvider(); |
||||||
|
calendar = new Calendar<>(dataProvider) |
||||||
|
.withMonth(Month.from(LocalDateTime.now())); |
||||||
|
calendar.setCaption("Events"); |
||||||
|
calendar.setSizeFull(); |
||||||
|
// calendar.setHandler(this::onNextMonth);
|
||||||
|
// calendar.setHandler(this::onPrevMonth);
|
||||||
|
|
||||||
|
updateMonthText(calendar.getStartDate()); |
||||||
|
|
||||||
|
VerticalLayout layout = new VerticalLayout(monthName, calendar); |
||||||
|
layout.setSizeFull(); |
||||||
|
setCompositionRoot(layout); |
||||||
|
} |
||||||
|
|
||||||
|
private void onNextMonth(ForwardEvent h) { |
||||||
|
updateMonthText(h.getComponent().getStartDate()); |
||||||
|
} |
||||||
|
|
||||||
|
private void onPrevMonth(BackwardEvent h) { |
||||||
|
updateMonthText(h.getComponent().getStartDate()); |
||||||
|
} |
||||||
|
|
||||||
|
private void updateMonthText(ZonedDateTime startDate) { |
||||||
|
monthName.setValue(dfMonth.format(startDate)); |
||||||
|
} |
||||||
|
|
||||||
|
public Registration setHandler(ForwardHandler listener) { |
||||||
|
return calendar.setHandler(listener); |
||||||
|
} |
||||||
|
|
||||||
|
public Registration setHandler(BackwardHandler listener) { |
||||||
|
return calendar.setHandler(listener); |
||||||
|
} |
||||||
|
|
||||||
|
public Registration setHandler(DateClickHandler listener) { |
||||||
|
return calendar.setHandler(listener); |
||||||
|
} |
||||||
|
|
||||||
|
public Registration setHandler(ItemClickHandler listener) { |
||||||
|
return calendar.setHandler(listener); |
||||||
|
} |
||||||
|
|
||||||
|
public void setItems(Collection<ClubEvent> items) { |
||||||
|
dataProvider.setItems(items); |
||||||
|
} |
||||||
|
|
||||||
|
class ClubEventProvider extends BasicItemProvider<ClubEvent> { |
||||||
|
|
||||||
|
private static final long serialVersionUID = -5415397258827236704L; |
||||||
|
|
||||||
|
@Override |
||||||
|
public void setItems(Collection<ClubEvent> items) { |
||||||
|
super.setItems(items); |
||||||
|
fireItemSetChanged(); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
Loading…
Reference in new issue