package jfxtras.scene.control.agenda.icalendar.trial;
import java.time.LocalDateTime;
import java.time.Period;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
import jfxtras.icalendarfx.VCalendar;
import jfxtras.scene.control.agenda.icalendar.ICalendarAgenda;
import jfxtras.scene.layout.HBox;
/**
* Simple Demo of {@link ICalendarAgenda} with weekly increase/decrease buttons
*
* @author David Bal
*
*/
public class ICalendarAgendaSimpleTrial2 extends Application
{
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) {
// setup control
BorderPane root = new BorderPane();
VCalendar vCalendar = new VCalendar(); // iCalendarFx model - contains calendaring information
ICalendarAgenda agenda = new ICalendarAgenda(vCalendar); // Agenda - displays and edits the VCalendar information
agenda.setOrganizer("ORGANIZER;CN=David Bal:mailto:david.bal37@gmail.com");
root.setCenter(agenda);
// weekly increase/decrease buttons
Button increaseWeek = new Button(">");
Button decreaseWeek = new Button("<");
HBox buttonHBox = new HBox(decreaseWeek, increaseWeek);
root.setTop(buttonHBox);
// weekly increase/decrease event handlers
increaseWeek.setOnAction((e) ->
{
LocalDateTime newDisplayedLocalDateTime = agenda.getDisplayedLocalDateTime().plus(Period.ofWeeks(1));
agenda.setDisplayedLocalDateTime(newDisplayedLocalDateTime);
});
decreaseWeek.setOnAction((e) ->
{
LocalDateTime newDisplayedLocalDateTime = agenda.getDisplayedLocalDateTime().minus(Period.ofWeeks(1));
agenda.setDisplayedLocalDateTime(newDisplayedLocalDateTime);
});
Scene scene = new Scene(root, 1366, 768);
primaryStage.setScene(scene);
primaryStage.setTitle("ICalendar Agenda Simple Demo");
primaryStage.setOnCloseRequest(e -> System.out.println(vCalendar.toString())); // prints resulting VCALENDAR on close
primaryStage.show();
}
}