package jfxtras.scene.control.agenda.icalendar.trial; import java.io.IOException; import java.time.LocalDate; import java.time.temporal.WeekFields; import java.util.Locale; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.TransformerException; import org.xml.sax.SAXException; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Scene; import javafx.scene.layout.BorderPane; import javafx.stage.Stage; import jfxtras.scene.control.agenda.icalendar.trial.controller.CalendarController; /** * Demo of ICalendarAgenda with multiple events added and other controls to change displayed dates * * @author David Bal * */ public class ICalendarAgendaAdvancedTrial extends Application { private static LocalDate firstDayOfWeekLocalDate = getFirstDayOfWeekLocalDate(); private static LocalDate getFirstDayOfWeekLocalDate() { // copied from AgendaWeekSkin Locale.setDefault(Locale.US); Locale myLocale = Locale.getDefault(); WeekFields lWeekFields = WeekFields.of(myLocale); int lFirstDayOfWeek = lWeekFields.getFirstDayOfWeek().getValue(); LocalDate lDisplayedDateTime = LocalDate.now(); int lCurrentDayOfWeek = lDisplayedDateTime.getDayOfWeek().getValue(); if (lFirstDayOfWeek <= lCurrentDayOfWeek) { lDisplayedDateTime = lDisplayedDateTime.plusDays(-lCurrentDayOfWeek + lFirstDayOfWeek); } else { lDisplayedDateTime = lDisplayedDateTime.plusDays(-lCurrentDayOfWeek - (7-lFirstDayOfWeek)); } return lDisplayedDateTime; } public static void main(String[] args) { launch(args); } @Override public void start(Stage primaryStage) throws IOException, TransformerException, ParserConfigurationException, SAXException { // ROOT PANE FXMLLoader mainLoader = new FXMLLoader(); mainLoader.setLocation(ICalendarAgendaAdvancedTrial.class.getResource("view/Calendar.fxml")); BorderPane root = mainLoader.load(); CalendarController controller = mainLoader.getController(); Scene scene = new Scene(root, 1366, 768); primaryStage.setScene(scene); primaryStage.setTitle("ICalendar Agenda Demo"); primaryStage.show(); controller.setupData(firstDayOfWeekLocalDate, firstDayOfWeekLocalDate.plusDays(7)); } }