package com.github.lgooddatepicker.ysandbox; import com.github.lgooddatepicker.components.CalendarPanel; import java.util.Locale; import com.github.lgooddatepicker.components.DatePicker; import com.github.lgooddatepicker.components.DatePickerSettings; import com.github.lgooddatepicker.optionalusertools.DateHighlightPolicy; import com.github.lgooddatepicker.optionalusertools.DateVetoPolicy; import com.github.lgooddatepicker.zinternaltools.HighlightInformation; import java.awt.Color; import java.awt.GraphicsEnvironment; import java.time.DayOfWeek; import java.time.LocalDate; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.LineBorder; /** * testStart, This is a class used to test various functions while programming. This class is not * involved with the normal operation of the date pickers. */ public class TestStart { public static void main(String[] args) { /////////////////////////////////////////////////////////////////////////////////////////// // Create a frame, a panel, and our demo buttons. JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel panel = new JPanel(); frame.getContentPane().add(panel); DatePicker datePicker; DatePickerSettings dateSettings; // Create a CalendarPanel: With highlight policy. dateSettings = new DatePickerSettings(); datePicker = new DatePicker(dateSettings); dateSettings.setVisibleDateTextField(false); dateSettings.setGapBeforeButtonPixels(0); datePicker.setBorder(LineBorder.createBlackLineBorder()); panel.add(datePicker); /* datePicker = new DatePicker(dateSettings); panel.add(datePicker); datePicker.setDateToToday(); datePicker.setLocale(Locale.CANADA_FRENCH); DatePickerSettings dateSettings2 = new DatePickerSettings(Locale.CHINESE); datePicker.setSettings(dateSettings2); CalendarPanel calendarPanel; calendarPanel = new CalendarPanel(dateSettings); panel.add(calendarPanel); calendarPanel.setSelectedDate(LocalDate.now()); dateSettings.setLocale(Locale.CANADA_FRENCH); DatePickerSettings dateSettings2 = new DatePickerSettings(Locale.CHINESE); calendarPanel.setSettings(dateSettings2); */ // Display the frame. frame.pack(); frame.validate(); int maxWidth = GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().width; int maxHeight = GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds().height; frame.setSize(640, 480); frame.setLocation(maxWidth / 2, maxHeight / 2); frame.setVisible(true); } /** * SampleDateVetoPolicy, A veto policy is a way to disallow certain dates from being selected in * calendar. A vetoed date cannot be selected by using the keyboard or the mouse. */ private static class SampleDateVetoPolicy implements DateVetoPolicy { /** * isDateAllowed, Return true if a date should be allowed, or false if a date should be * vetoed. */ @Override public boolean isDateAllowed(LocalDate date) { // Disallow days 7 to 11. if ((date.getDayOfMonth() >= 7) && (date.getDayOfMonth() <= 11)) { return false; } // Disallow odd numbered saturdays. if ((date.getDayOfWeek() == DayOfWeek.SATURDAY) && ((date.getDayOfMonth() % 2) == 1)) { return false; } // Allow all other days. return true; } } /** * SampleHighlightPolicy, A highlight policy is a way to visually highlight certain dates in the * calendar. These may be holidays, or weekends, or other significant dates. */ private static class SampleHighlightPolicy implements DateHighlightPolicy { /** * getHighlightInformationOrNull, Implement this function to indicate if a date should be * highlighted, and what highlighting details should be used for the highlighted date. * * If a date should be highlighted, then return an instance of HighlightInformation. If the * date should not be highlighted, then return null. * * You may (optionally) fill out the fields in the HighlightInformation class to give any * particular highlighted day a unique foreground color, background color, or tooltip text. * If the color fields are null, then the default highlighting colors will be used. If the * tooltip field is null (or empty), then no tooltip will be displayed. * * Dates that are passed to this function will never be null. */ @Override public HighlightInformation getHighlightInformationOrNull(LocalDate date) { // Highlight a chosen date, with a tooltip and a red background color. if (date.getDayOfMonth() == 25) { return new HighlightInformation(Color.red, null, "It's the 25th!"); } // Highlight all Saturdays with a unique background and foreground color. if (date.getDayOfWeek() == DayOfWeek.SATURDAY) { return new HighlightInformation(Color.orange, Color.yellow, "It's Saturday!"); } // Highlight all Sundays with default colors and a tooltip. if (date.getDayOfWeek() == DayOfWeek.SUNDAY) { return new HighlightInformation(null, null, "It's Sunday!"); } // All other days should not be highlighted. return null; } } }