├── .gitignore ├── .mvn └── wrapper │ ├── MavenWrapperDownloader.java │ ├── maven-wrapper.jar │ └── maven-wrapper.properties ├── Jenkinsfile ├── README.md ├── README ├── AccordionPane.png ├── BasicRoundDailGauge.png ├── CalendarPicker.png ├── CircularPane.png ├── CornerMenu.gif ├── PopupMenu.gif ├── SimpleMetroArcGauge.png ├── agenda.png ├── calendarTextField.png ├── spinner.png └── timepicker.png ├── jfxtras-agenda ├── .gitignore ├── mvnw_test.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ ├── jfxtras │ │ │ ├── internal │ │ │ │ └── scene │ │ │ │ │ └── control │ │ │ │ │ └── skin │ │ │ │ │ └── agenda │ │ │ │ │ ├── AgendaDayListSkin.java │ │ │ │ │ ├── AgendaDaySkin.java │ │ │ │ │ ├── AgendaDaysFromDisplayedSkin.java │ │ │ │ │ ├── AgendaMonthSkin.java │ │ │ │ │ ├── AgendaSkin.java │ │ │ │ │ ├── AgendaWeekSkin.java │ │ │ │ │ ├── AllAppointments.java │ │ │ │ │ ├── base24hour │ │ │ │ │ ├── AgendaSkinTimeScale24HourAbstract.java │ │ │ │ │ ├── AppointmentAbstractPane.java │ │ │ │ │ ├── AppointmentAbstractTrackedPane.java │ │ │ │ │ ├── AppointmentMenu.java │ │ │ │ │ ├── AppointmentRegularBodyPane.java │ │ │ │ │ ├── AppointmentTaskBodyPane.java │ │ │ │ │ ├── AppointmentWholedayBodyPane.java │ │ │ │ │ ├── AppointmentWholedayHeaderPane.java │ │ │ │ │ ├── DayBodyPane.java │ │ │ │ │ ├── DayHeaderPane.java │ │ │ │ │ ├── DragPane.java │ │ │ │ │ ├── DurationDragger.java │ │ │ │ │ ├── HistoricalVisualizer.java │ │ │ │ │ ├── LayoutHelp.java │ │ │ │ │ └── TimeScale24Hour.java │ │ │ │ │ └── basedaylist │ │ │ │ │ ├── DayPane.java │ │ │ │ │ ├── LayoutHelp.java │ │ │ │ │ └── MonthPane.java │ │ │ └── scene │ │ │ │ └── control │ │ │ │ └── agenda │ │ │ │ ├── Agenda.java │ │ │ │ ├── AgendaSkinSwitcher.java │ │ │ │ └── TemporalUtilities.java │ │ └── module-info.java │ └── resources │ │ ├── jfxtras │ │ └── internal │ │ │ └── scene │ │ │ └── control │ │ │ └── skin │ │ │ └── agenda │ │ │ ├── Agenda.css │ │ │ ├── AgendaSkinSwitcher.css │ │ │ ├── AgendaWeekSkinActionIcon.png │ │ │ ├── AgendaWeekSkinDeleteIcon.png │ │ │ ├── AgendaWeekSkinPopupCloseWindowIcon.png │ │ │ ├── SkinDay.png │ │ │ ├── SkinDayDynamic.png │ │ │ ├── SkinMonth.png │ │ │ └── SkinWeek.png │ │ └── roboto │ │ ├── Apache License.txt │ │ └── RobotoCondensed-Light.ttf │ └── test │ ├── java │ └── jfxtras │ │ └── scene │ │ └── control │ │ └── agenda │ │ ├── test │ │ ├── AbstractAgendaTestBase.java │ │ ├── AgendaFXMLTest.java │ │ ├── AgendaMenuTest.java │ │ ├── AgendaMouseManipulateTest.java │ │ ├── AgendaRenderDaysFromDisplayedDateTest.java │ │ ├── AgendaRenderTest.java │ │ ├── AgendaSelectTest.java │ │ ├── AgendaTemporalConversionTest.java │ │ ├── AllAppointmentsTest.java │ │ ├── AllTests.java │ │ └── OSInfo.java │ │ └── trial │ │ ├── AgendaTrial1.java │ │ ├── AgendaTrial2.css │ │ └── AgendaTrial2.java │ └── resources │ ├── jfxtras │ └── scene │ │ └── control │ │ └── agenda │ │ └── test │ │ └── AgendaFXMLTest.fxml │ └── placeholder.txt ├── jfxtras-common ├── .gitignore ├── mvnw_test.cmd ├── pom.xml └── src │ ├── main │ └── java │ │ ├── jfxtras │ │ ├── animation │ │ │ └── Timer.java │ │ ├── css │ │ │ ├── CssMetaDataForSkinProperty.java │ │ │ └── converters │ │ │ │ ├── DoubleConverter.java │ │ │ │ ├── IntegerConverter.java │ │ │ │ └── SimpleDateFormatConverter.java │ │ ├── scene │ │ │ └── layout │ │ │ │ ├── CircularPane.java │ │ │ │ ├── GenericLayoutConstraints.java │ │ │ │ ├── GridPane.java │ │ │ │ ├── HBox.java │ │ │ │ ├── VBox.java │ │ │ │ └── responsivepane │ │ │ │ ├── Device.java │ │ │ │ ├── Diagonal.java │ │ │ │ ├── Layout.java │ │ │ │ ├── Orientation.java │ │ │ │ ├── Ref.java │ │ │ │ ├── ResponsivePane.java │ │ │ │ ├── Size.java │ │ │ │ ├── Stylesheet.java │ │ │ │ ├── Unit.java │ │ │ │ └── Width.java │ │ └── util │ │ │ ├── Implements.java │ │ │ ├── NodeUtil.java │ │ │ ├── PlatformUtil.java │ │ │ └── StringConverterFactory.java │ │ └── module-info.java │ └── test │ ├── java │ └── jfxtras │ │ └── scene │ │ └── layout │ │ ├── responsivepane │ │ ├── ResponsivePaneFXMLDemo.java │ │ ├── ResponsivePaneFXMLTest.java │ │ ├── ResponsivePaneFXMLTestBasicController.java │ │ ├── ResponsivePaneTest.java │ │ └── SimpleController.java │ │ ├── test │ │ ├── AllTests.java │ │ ├── CircularPaneTest.java │ │ ├── GridPaneTest.java │ │ ├── HBoxTest.java │ │ └── VBoxTest.java │ │ └── trial │ │ ├── CircularPaneTrail.css │ │ ├── CircularPaneTrail.java │ │ ├── CircularPaneTrail2.css │ │ ├── CircularPaneTrail2.java │ │ ├── CircularPaneTrail3.css │ │ ├── CircularPaneTrail3.java │ │ ├── CircularPaneTrail4.css │ │ ├── CircularPaneTrail4.java │ │ ├── CircularPaneTrail5.css │ │ ├── CircularPaneTrail5.java │ │ ├── CircularPaneTrail6.css │ │ ├── CircularPaneTrail6.java │ │ ├── CircularPaneTrail7.java │ │ ├── CircularPaneTrail8.java │ │ ├── GridPaneTrial1.java │ │ ├── HBoxTrial1.java │ │ └── VBoxTrial1.java │ └── resources │ ├── Roboto-Medium.ttf │ └── jfxtras │ └── scene │ └── layout │ └── responsivepane │ ├── ResponsivePaneFXMLDemo.fxml │ ├── ResponsivePaneFXMLTest_basic.fxml │ ├── ResponsivePaneFXMLTest_empty.fxml │ ├── desktop.css │ ├── phone.css │ └── tablet.css ├── jfxtras-controls ├── .gitignore ├── mvnw_test.cmd ├── pom.xml └── src │ ├── main │ ├── asciidoc │ │ └── scene │ │ │ └── control │ │ │ ├── CalendarPicker_callbacks.adoc │ │ │ ├── CalendarPicker_modeProperty.adoc │ │ │ ├── CalendarPicker_properties.adoc │ │ │ ├── CalendarTextField_callbacks.adoc │ │ │ ├── CalendarTextField_icon.adoc │ │ │ ├── CalendarTextField_properties.adoc │ │ │ └── Calendar_immutability.adoc │ ├── java │ │ ├── jfxtras │ │ │ ├── internal │ │ │ │ └── scene │ │ │ │ │ └── control │ │ │ │ │ └── skin │ │ │ │ │ ├── AccordionSkin.java │ │ │ │ │ ├── CalendarPickerControlSkin.java │ │ │ │ │ ├── CalendarPickerMonthlySkinAbstract.java │ │ │ │ │ ├── CalendarTextFieldSkin.java │ │ │ │ │ ├── CalendarTimePickerSkin.java │ │ │ │ │ ├── CalendarTimeTextFieldSkin.java │ │ │ │ │ ├── DateTimeToCalendarHelper.java │ │ │ │ │ ├── ListSpinnerSkin.java │ │ │ │ │ ├── ListViewSkinJFXtras.java │ │ │ │ │ ├── LocalDatePickerSkin.java │ │ │ │ │ ├── LocalDateTextFieldSkin.java │ │ │ │ │ ├── LocalDateTimePickerSkin.java │ │ │ │ │ ├── LocalDateTimeTextFieldSkin.java │ │ │ │ │ ├── LocalTimePickerSkin.java │ │ │ │ │ ├── LocalTimeTextFieldSkin.java │ │ │ │ │ └── TextFieldSkin.java │ │ │ └── scene │ │ │ │ └── control │ │ │ │ ├── AccordionPane.java │ │ │ │ ├── CalendarPicker.java │ │ │ │ ├── CalendarTextField.java │ │ │ │ ├── CalendarTimePicker.java │ │ │ │ ├── CalendarTimeTextField.java │ │ │ │ ├── ImageViewButton.java │ │ │ │ ├── ListSpinner.java │ │ │ │ ├── ListSpinnerBigIntegerList.java │ │ │ │ ├── ListSpinnerIntegerList.java │ │ │ │ ├── ListView.java │ │ │ │ ├── LocalDatePicker.java │ │ │ │ ├── LocalDateTextField.java │ │ │ │ ├── LocalDateTimePicker.java │ │ │ │ ├── LocalDateTimeTextField.java │ │ │ │ ├── LocalTimePicker.java │ │ │ │ ├── LocalTimeTextField.java │ │ │ │ ├── ToggleGroupValue.java │ │ │ │ └── builders │ │ │ │ ├── AbstractBuilder.java │ │ │ │ ├── AbstractLocalDateTimeAPITextFieldBuilder.java │ │ │ │ ├── CalendarPickerBuilder.java │ │ │ │ ├── CalendarTextFieldBuilder.java │ │ │ │ ├── CalendarTimePickerBuilder.java │ │ │ │ ├── CalendarTimeTextFieldBuilder.java │ │ │ │ ├── LocalDatePickerBuilder.java │ │ │ │ ├── LocalDateTextFieldBuilder.java │ │ │ │ ├── LocalDateTimePickerBuilder.java │ │ │ │ ├── LocalDateTimeTextFieldBuilder.java │ │ │ │ ├── LocalTimePickerBuilder.java │ │ │ │ └── LocalTimeTextFieldBuilder.java │ │ └── module-info.java │ └── resources │ │ ├── META-INF │ │ └── services │ │ │ └── jfxtras.fxml.BuilderService │ │ └── jfxtras │ │ └── internal │ │ └── scene │ │ └── control │ │ ├── AccordionPane.css │ │ ├── CalendarPicker.css │ │ ├── CalendarTextField.css │ │ ├── CalendarTimePicker.css │ │ ├── CalendarTimeTextField.css │ │ ├── ListSpinner.css │ │ └── skin │ │ ├── accept.png │ │ ├── cancel.png │ │ ├── clock-grey.png │ │ └── clock.png │ └── test │ ├── java │ └── jfxtras │ │ └── scene │ │ └── control │ │ ├── test │ │ ├── AccordionTest.java │ │ ├── AllTests.java │ │ ├── CalendarPickerExtendedTest.java │ │ ├── CalendarPickerFXMLTest.java │ │ ├── CalendarPickerNoInitTest.java │ │ ├── CalendarPickerTest.java │ │ ├── CalendarTextFieldExtendedTest.java │ │ ├── CalendarTextFieldFXMLTest.java │ │ ├── CalendarTextFieldTest.java │ │ ├── CalendarTimePickerExtendedTest.java │ │ ├── CalendarTimePickerFXMLTest.java │ │ ├── CalendarTimePickerTest.java │ │ ├── ListSpinnerArrowTest.java │ │ ├── ListSpinnerEditableNumericTest.java │ │ ├── ListSpinnerEditableTest.java │ │ ├── ListSpinnerExtendedTest.java │ │ ├── ListViewTest.java │ │ ├── LocalDatePickerFXMLTest.java │ │ ├── LocalDatePickerTest.java │ │ ├── LocalDateTextFieldTest.java │ │ ├── LocalDateTimePickerFXMLTest.java │ │ ├── LocalDateTimePickerTest.java │ │ ├── LocalDateTimeTextFieldTest.java │ │ ├── LocalTimePickerFXMLTest.java │ │ ├── LocalTimePickerTest.java │ │ └── ToggleGroupValueTest.java │ │ └── trial │ │ ├── AccordionDemo.java │ │ ├── AlternateCalendarIcon.jpg │ │ ├── AlternateCalendarIconDisabled.jpg │ │ ├── CalendarPickerTrial.java │ │ ├── CalendarTextFieldTrial1.java │ │ ├── CalendarTimePickerTrial.java │ │ ├── CalendarTimeTextFieldTrial.java │ │ ├── ListSpinnerTrial1.css │ │ ├── ListSpinnerTrial1.java │ │ ├── LocalDateTextFieldTrial1.java │ │ ├── LocalDateTimeTextFieldTrial1.java │ │ └── LocalTimeTextFieldTrial1.java │ └── resources │ └── jfxtras │ └── scene │ └── control │ └── test │ ├── CalendarPickerFXMLTest.fxml │ ├── CalendarTextFieldFXMLTest.fxml │ ├── CalendarTimePickerFXMLTest.fxml │ ├── LocalDatePickerFXMLTest.fxml │ ├── LocalDateTimePickerFXMLTest.fxml │ └── LocalTimePickerFXMLTest.fxml ├── jfxtras-font-roboto ├── .gitignore ├── mvnw_test.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ ├── jfxtras │ │ │ └── resources │ │ │ │ └── JFXtrasFontRoboto.java │ │ └── module-info.java │ └── resources │ │ ├── Apache License.txt │ │ ├── Roboto-Black.ttf │ │ ├── Roboto-BlackItalic.ttf │ │ ├── Roboto-Bold.ttf │ │ ├── Roboto-BoldItalic.ttf │ │ ├── Roboto-Italic.ttf │ │ ├── Roboto-Light.ttf │ │ ├── Roboto-LightItalic.ttf │ │ ├── Roboto-Medium.ttf │ │ ├── Roboto-MediumItalic.ttf │ │ ├── Roboto-Regular.ttf │ │ ├── Roboto-Thin.ttf │ │ ├── Roboto-ThinItalic.ttf │ │ ├── RobotoCondensed-Bold.ttf │ │ ├── RobotoCondensed-BoldItalic.ttf │ │ ├── RobotoCondensed-Italic.ttf │ │ ├── RobotoCondensed-Light.ttf │ │ ├── RobotoCondensed-LightItalic.ttf │ │ └── RobotoCondensed-Regular.ttf │ └── test │ └── java │ └── jfxtras │ └── resources │ ├── JFXtrasFontRobotoTest.java │ └── JFXtrasFontRobotoTrial.java ├── jfxtras-fxml ├── .gitignore ├── mvnw_test.cmd ├── pom.xml └── src │ └── main │ └── java │ ├── jfxtras │ └── fxml │ │ ├── BuilderService.java │ │ └── JFXtrasBuilderFactory.java │ └── module-info.java ├── jfxtras-gauge-linear ├── .gitignore ├── mvnw_test.cmd ├── pom.xml └── src │ ├── main │ ├── asciidoc │ │ └── scene │ │ │ └── control │ │ │ └── gauge │ │ │ └── linear │ │ │ ├── cssProperties.adoc │ │ │ ├── disclaimer.adoc │ │ │ ├── indicators.adoc │ │ │ ├── labels.adoc │ │ │ ├── markers.adoc │ │ │ ├── segments.adoc │ │ │ └── segmentsColorscheme.adoc │ ├── java │ │ ├── jfxtras │ │ │ ├── internal │ │ │ │ └── scene │ │ │ │ │ └── control │ │ │ │ │ └── gauge │ │ │ │ │ └── linear │ │ │ │ │ └── skin │ │ │ │ │ ├── AbstractLinearGaugeSkin.java │ │ │ │ │ ├── BasicRoundDailGaugeSkin.java │ │ │ │ │ └── SimpleMetroArcGaugeSkin.java │ │ │ └── scene │ │ │ │ └── control │ │ │ │ └── gauge │ │ │ │ └── linear │ │ │ │ ├── AbstractLinearGauge.java │ │ │ │ ├── BasicRoundDailGauge.java │ │ │ │ ├── SimpleMetroArcGauge.java │ │ │ │ └── elements │ │ │ │ ├── AbsoluteLabel.java │ │ │ │ ├── AbsoluteMarker.java │ │ │ │ ├── AbsoluteSegment.java │ │ │ │ ├── CompleteSegment.java │ │ │ │ ├── Indicator.java │ │ │ │ ├── Label.java │ │ │ │ ├── Marker.java │ │ │ │ ├── PercentMarker.java │ │ │ │ ├── PercentSegment.java │ │ │ │ └── Segment.java │ │ └── module-info.java │ └── resources │ │ ├── jfxtras │ │ └── internal │ │ │ └── scene │ │ │ └── control │ │ │ └── gauge │ │ │ └── linear │ │ │ ├── BasicRoundDailGauge.css │ │ │ ├── SimpleMetroArcGauge.css │ │ │ └── _segment.css │ │ └── roboto │ │ ├── Apache License.txt │ │ └── Roboto-Medium.ttf │ └── test │ ├── java │ └── jfxtras │ │ └── scene │ │ └── control │ │ └── gauge │ │ └── linear │ │ ├── AbstractLinearGaugeTrial.java │ │ ├── AbstractLinearGaugeTrial1.java │ │ ├── AllTests.java │ │ ├── BasicRoundDailGaugeTrial1.java │ │ ├── BasicRoundDailGaugeTrial2.java │ │ ├── BasicRoundDialGaugeTest.java │ │ ├── SimpleMetroArcGaugeTest.java │ │ ├── SimpleMetroArcGaugeTrial1.java │ │ └── SimpleMetroArcGaugeTrial2.java │ └── resources │ └── jfxtras │ └── scene │ └── control │ └── gauge │ └── linear │ └── AbstractLinearGaugeTrial1.css ├── jfxtras-icalendaragenda ├── .gitignore ├── mvnw_test.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ ├── jfxtras │ │ │ ├── internal │ │ │ │ └── scene │ │ │ │ │ └── control │ │ │ │ │ └── skin │ │ │ │ │ └── agenda │ │ │ │ │ └── icalendar │ │ │ │ │ └── base24hour │ │ │ │ │ ├── AgendaDateTimeUtilities.java │ │ │ │ │ ├── CategorySelectionGridPane.java │ │ │ │ │ ├── ComponentChangeDialog.java │ │ │ │ │ ├── DeleteChoiceDialog.java │ │ │ │ │ ├── EditChoiceDialog.java │ │ │ │ │ ├── EditWithRecurrencesChoiceDialog.java │ │ │ │ │ ├── FXMLUtilities.java │ │ │ │ │ ├── NewAppointmentDialog.java │ │ │ │ │ ├── OneAppointmentSelectedAlert.java │ │ │ │ │ ├── Settings.java │ │ │ │ │ └── popup │ │ │ │ │ ├── EditDescriptiveLocatableVBox.java │ │ │ │ │ ├── EditDescriptiveVBox.java │ │ │ │ │ ├── EditDescriptiveVEventVBox.java │ │ │ │ │ ├── EditDescriptiveVJournalVBox.java │ │ │ │ │ ├── EditDescriptiveVTodoVBox.java │ │ │ │ │ ├── EditDisplayableScene.java │ │ │ │ │ ├── EditDisplayableTabPane.java │ │ │ │ │ ├── EditLocatableTabPane.java │ │ │ │ │ ├── EditNotifications.java │ │ │ │ │ ├── EditRecurrenceRuleVBox.java │ │ │ │ │ ├── EditRecurrenceRuleVEventVBox.java │ │ │ │ │ ├── EditRecurrenceRuleVJournalVBox.java │ │ │ │ │ ├── EditRecurrenceRuleVTodoVBox.java │ │ │ │ │ ├── EditVEventScene.java │ │ │ │ │ ├── EditVEventTabPane.java │ │ │ │ │ ├── EditVJournalScene.java │ │ │ │ │ ├── EditVJournalTabPane.java │ │ │ │ │ ├── EditVTodoScene.java │ │ │ │ │ ├── EditVTodoTabPane.java │ │ │ │ │ └── SimpleEditSceneFactory.java │ │ │ └── scene │ │ │ │ └── control │ │ │ │ └── agenda │ │ │ │ └── icalendar │ │ │ │ ├── ICalendarAgenda.java │ │ │ │ ├── editors │ │ │ │ ├── ChangeDialogOption.java │ │ │ │ ├── deleters │ │ │ │ │ ├── Deleter.java │ │ │ │ │ ├── DeleterDisplayable.java │ │ │ │ │ ├── DeleterVEvent.java │ │ │ │ │ ├── DeleterVJournal.java │ │ │ │ │ ├── DeleterVTodo.java │ │ │ │ │ └── SimpleDeleterFactory.java │ │ │ │ └── revisors │ │ │ │ │ ├── Reviser.java │ │ │ │ │ ├── ReviserDaylightSavingTime.java │ │ │ │ │ ├── ReviserDisplayable.java │ │ │ │ │ ├── ReviserLocatable.java │ │ │ │ │ ├── ReviserStandardTime.java │ │ │ │ │ ├── ReviserVAlarm.java │ │ │ │ │ ├── ReviserVEvent.java │ │ │ │ │ ├── ReviserVFreeBusy.java │ │ │ │ │ ├── ReviserVJournal.java │ │ │ │ │ ├── ReviserVTimeZone.java │ │ │ │ │ ├── ReviserVTodo.java │ │ │ │ │ └── SimpleRevisorFactory.java │ │ │ │ └── factories │ │ │ │ ├── DefaultRecurrenceFactory.java │ │ │ │ ├── DefaultVComponentFactory.java │ │ │ │ ├── RecurrenceFactory.java │ │ │ │ └── VComponentFactory.java │ │ └── module-info.java │ └── resources │ │ └── jfxtras │ │ ├── ICalendarAgenda.properties │ │ ├── internal │ │ └── scene │ │ │ └── control │ │ │ └── skin │ │ │ └── agenda │ │ │ └── icalendar │ │ │ └── base24hour │ │ │ └── popup │ │ │ ├── EditDescriptive.fxml │ │ │ ├── EditDisplayable.fxml │ │ │ ├── PopupStyles.css │ │ │ └── RecurrenceRule.fxml │ │ └── scene │ │ └── control │ │ └── agenda │ │ └── icalendar │ │ ├── ICalendarAgenda.css │ │ └── check.png │ └── test │ └── java │ └── jfxtras │ ├── AllTests.java │ ├── internal │ └── scene │ │ └── control │ │ └── skin │ │ └── agenda │ │ └── icalendar │ │ └── base24hour │ │ └── popup │ │ ├── ChangeDialogOptionsTest.java │ │ ├── ExceptionDateTests.java │ │ ├── MiscPopupTest.java │ │ ├── PopupDeleteAllTest.java │ │ ├── PopupReviseAllTest.java │ │ ├── PopupReviseOneTest.java │ │ ├── PopupReviseThisAndFutureTest.java │ │ ├── RecurrenceRuleDescriptionTest.java │ │ ├── VEventPopupTestBase.java │ │ ├── VJournalMakeiTIPTest.java │ │ └── VTodoMakeiTIPTest.java │ └── scene │ └── control │ └── agenda │ └── icalendar │ ├── ICalendarStaticComponents.java │ ├── OSInfo.java │ ├── agenda │ ├── AgendaTestAbstract.java │ ├── DeleteVEventTest.java │ ├── GraphicallyChangeTest.java │ ├── MakeNewVEventsTest.java │ ├── NotifyCalendarUpdate.java │ ├── RenderVEventsTest.java │ ├── RevisePopupTest.java │ └── VEventDisplayPopupTest.java │ ├── editors │ ├── deletor │ │ ├── DeleteAllTest.java │ │ ├── DeleteOneTest.java │ │ └── DeleteThisAndFutureTest.java │ └── revisor │ │ ├── CancelRevisionTest.java │ │ ├── ReviseAllTest.java │ │ ├── ReviseNonRepeatingTest.java │ │ ├── ReviseOneTest.java │ │ └── ReviseThisAndFutureTest.java │ ├── misc │ ├── ComponentChangeDialogTest.java │ └── MakeAppointmentsTest.java │ └── trial │ ├── EditComponentPopupTrial.java │ ├── ICalendarAgendaAdvancedTrial.java │ ├── ICalendarAgendaSimpleTrial1.java │ ├── ICalendarAgendaSimpleTrial2.java │ ├── ImportICSFileTrial.java │ ├── controller │ └── CalendarController.java │ ├── main.css │ └── view │ └── Calendar.fxml ├── jfxtras-icalendarfx ├── .gitignore ├── mvnw_test.cmd ├── pom.xml └── src │ ├── main │ └── java │ │ ├── jfxtras │ │ └── icalendarfx │ │ │ ├── VCalendar.java │ │ │ ├── VChild.java │ │ │ ├── VElement.java │ │ │ ├── VElementBase.java │ │ │ ├── VParent.java │ │ │ ├── VParentBase.java │ │ │ ├── components │ │ │ ├── Available.java │ │ │ ├── DaylightSavingTime.java │ │ │ ├── NonStandardComponent.java │ │ │ ├── StandardOrDaylight.java │ │ │ ├── StandardTime.java │ │ │ ├── VAlarm.java │ │ │ ├── VAttendee.java │ │ │ ├── VAvailability.java │ │ │ ├── VCommon.java │ │ │ ├── VComponent.java │ │ │ ├── VComponentBase.java │ │ │ ├── VComponentElement.java │ │ │ ├── VDateTimeEnd.java │ │ │ ├── VDescribable.java │ │ │ ├── VDescribable2.java │ │ │ ├── VDescribableBase.java │ │ │ ├── VDisplayable.java │ │ │ ├── VDuration.java │ │ │ ├── VEvent.java │ │ │ ├── VFreeBusy.java │ │ │ ├── VJournal.java │ │ │ ├── VLastModified.java │ │ │ ├── VLocatable.java │ │ │ ├── VPersonal.java │ │ │ ├── VPrimary.java │ │ │ ├── VRepeatable.java │ │ │ ├── VRepeatableBase.java │ │ │ ├── VTimeZone.java │ │ │ └── VTodo.java │ │ │ ├── content │ │ │ ├── ContentLineBase.java │ │ │ ├── ContentLineStrategy.java │ │ │ ├── MultiLineContent.java │ │ │ ├── Orderer.java │ │ │ ├── OrdererBase.java │ │ │ ├── PushbackIterator.java │ │ │ ├── SingleLineContent.java │ │ │ ├── UnfoldingBufferedReader.java │ │ │ └── UnfoldingStringIterator.java │ │ │ ├── itip │ │ │ ├── AbstractITIPFactory.java │ │ │ ├── DefaultITIPFactory.java │ │ │ ├── ProcessCancel.java │ │ │ ├── ProcessPublish.java │ │ │ ├── ProcessRequest.java │ │ │ └── Processable.java │ │ │ ├── parameters │ │ │ ├── AlarmTriggerRelationship.java │ │ │ ├── AlternateText.java │ │ │ ├── CalendarUser.java │ │ │ ├── CommonName.java │ │ │ ├── Delegatees.java │ │ │ ├── Delegators.java │ │ │ ├── DirectoryEntry.java │ │ │ ├── Encoding.java │ │ │ ├── FormatType.java │ │ │ ├── FreeBusyType.java │ │ │ ├── GroupMembership.java │ │ │ ├── Language.java │ │ │ ├── NonStandardParameter.java │ │ │ ├── ParameterEnumBasedWithUnknown.java │ │ │ ├── ParticipationRole.java │ │ │ ├── ParticipationStatus.java │ │ │ ├── RSVP.java │ │ │ ├── Range.java │ │ │ ├── Relationship.java │ │ │ ├── SentBy.java │ │ │ ├── TimeZoneIdentifierParameter.java │ │ │ ├── VParameter.java │ │ │ ├── VParameterBase.java │ │ │ ├── VParameterElement.java │ │ │ └── ValueParameter.java │ │ │ ├── properties │ │ │ ├── PropAlarmTrigger.java │ │ │ ├── PropAltText.java │ │ │ ├── PropAttachment.java │ │ │ ├── PropAttendee.java │ │ │ ├── PropBaseAltText.java │ │ │ ├── PropBaseDateTime.java │ │ │ ├── PropBaseLanguage.java │ │ │ ├── PropBaseUTC.java │ │ │ ├── PropCalendarUser.java │ │ │ ├── PropDateTime.java │ │ │ ├── PropFreeBusy.java │ │ │ ├── PropLanguage.java │ │ │ ├── PropRecurrenceID.java │ │ │ ├── PropRelationship.java │ │ │ ├── VProperty.java │ │ │ ├── VPropertyBase.java │ │ │ ├── VPropertyElement.java │ │ │ ├── ValueType.java │ │ │ ├── calendar │ │ │ │ ├── CalendarScale.java │ │ │ │ ├── Method.java │ │ │ │ ├── ProductIdentifier.java │ │ │ │ └── Version.java │ │ │ └── component │ │ │ │ ├── alarm │ │ │ │ ├── Action.java │ │ │ │ ├── RepeatCount.java │ │ │ │ └── Trigger.java │ │ │ │ ├── change │ │ │ │ ├── DateTimeCreated.java │ │ │ │ ├── DateTimeStamp.java │ │ │ │ ├── LastModified.java │ │ │ │ └── Sequence.java │ │ │ │ ├── descriptive │ │ │ │ ├── Attachment.java │ │ │ │ ├── Categories.java │ │ │ │ ├── Classification.java │ │ │ │ ├── Comment.java │ │ │ │ ├── Description.java │ │ │ │ ├── GeographicPosition.java │ │ │ │ ├── Location.java │ │ │ │ ├── PercentComplete.java │ │ │ │ ├── Priority.java │ │ │ │ ├── Resources.java │ │ │ │ ├── Status.java │ │ │ │ └── Summary.java │ │ │ │ ├── misc │ │ │ │ ├── NonStandardProperty.java │ │ │ │ ├── RequestStatus.java │ │ │ │ └── UnknownProperty.java │ │ │ │ ├── recurrence │ │ │ │ ├── ExceptionDates.java │ │ │ │ ├── PropertyBaseRecurrence.java │ │ │ │ ├── RecurrenceDates.java │ │ │ │ ├── RecurrenceRule.java │ │ │ │ ├── RecurrenceRuleCache.java │ │ │ │ └── rrule │ │ │ │ │ ├── Count.java │ │ │ │ │ ├── Frequency.java │ │ │ │ │ ├── FrequencyType.java │ │ │ │ │ ├── Interval.java │ │ │ │ │ ├── RRuleElement.java │ │ │ │ │ ├── RRulePart.java │ │ │ │ │ ├── RRulePartBase.java │ │ │ │ │ ├── RecurrenceRuleValue.java │ │ │ │ │ ├── Until.java │ │ │ │ │ ├── WeekStart.java │ │ │ │ │ └── byxxx │ │ │ │ │ ├── ByDay.java │ │ │ │ │ ├── ByHour.java │ │ │ │ │ ├── ByMinute.java │ │ │ │ │ ├── ByMonth.java │ │ │ │ │ ├── ByMonthDay.java │ │ │ │ │ ├── ByRule.java │ │ │ │ │ ├── ByRuleAbstract.java │ │ │ │ │ ├── ByRuleIntegerAbstract.java │ │ │ │ │ ├── BySecond.java │ │ │ │ │ ├── BySetPosition.java │ │ │ │ │ ├── ByWeekNumber.java │ │ │ │ │ └── ByYearDay.java │ │ │ │ ├── relationship │ │ │ │ ├── Attendee.java │ │ │ │ ├── Contact.java │ │ │ │ ├── Organizer.java │ │ │ │ ├── PropertyBaseAttendee.java │ │ │ │ ├── PropertyBaseCalendarUser.java │ │ │ │ ├── RecurrenceId.java │ │ │ │ ├── RelatedTo.java │ │ │ │ ├── UniformResourceLocator.java │ │ │ │ └── UniqueIdentifier.java │ │ │ │ ├── time │ │ │ │ ├── DateTimeCompleted.java │ │ │ │ ├── DateTimeDue.java │ │ │ │ ├── DateTimeEnd.java │ │ │ │ ├── DateTimeStart.java │ │ │ │ ├── DurationProp.java │ │ │ │ ├── FreeBusyTime.java │ │ │ │ └── TimeTransparency.java │ │ │ │ └── timezone │ │ │ │ ├── PropertyBaseZoneOffset.java │ │ │ │ ├── TimeZoneIdentifier.java │ │ │ │ ├── TimeZoneName.java │ │ │ │ ├── TimeZoneOffsetFrom.java │ │ │ │ ├── TimeZoneOffsetTo.java │ │ │ │ └── TimeZoneURL.java │ │ │ └── utilities │ │ │ ├── Callback.java │ │ │ ├── DateTimeUtilities.java │ │ │ ├── DefaultStringConverter.java │ │ │ ├── DoubleStringConverter.java │ │ │ ├── ICalendarUtilities.java │ │ │ ├── IntegerStringConverter.java │ │ │ ├── Pair.java │ │ │ ├── StringConverter.java │ │ │ └── StringConverters.java │ │ └── module-info.java │ └── test │ ├── java │ └── jfxtras │ │ └── icalendarfx │ │ ├── AllTests.java │ │ ├── ICalendarStaticComponents.java │ │ ├── ICalendarTestAbstract.java │ │ ├── calendar │ │ ├── CalendarScaleTest.java │ │ ├── CopyCalendarTest.java │ │ ├── GeneralCalendarTest.java │ │ ├── ParseCalendarTest.java │ │ ├── ReadICSFileTest.java │ │ ├── RecurrenceIDParentValidTest.java │ │ ├── VCalendarRecurrenceIDTest.java │ │ └── ValidateCalendarTest.java │ │ ├── component │ │ ├── BaseTest.java │ │ ├── ComponentStatusTest.java │ │ ├── CopyComponentTest.java │ │ ├── DateTimeEndComponentTest.java │ │ ├── DaylightSavingsTimeTest.java │ │ ├── DescribableTest.java │ │ ├── DisplayableTest.java │ │ ├── EqualsTest.java │ │ ├── ErrorCatchTest.java │ │ ├── GeneralComponentTest.java │ │ ├── LastModifiedTest.java │ │ ├── LocatableTest.java │ │ ├── NonStandardComponentTest.java │ │ ├── ParseComponentTest.java │ │ ├── PersonalTest.java │ │ ├── PrimaryTest.java │ │ ├── RepeatableTest.java │ │ ├── ScheduleConflictTest.java │ │ ├── StandardOrDaylightTimeTest.java │ │ ├── VAlarmTest.java │ │ ├── VEventTest.java │ │ ├── VFreeBusyTest.java │ │ ├── VJournalTest.java │ │ ├── VTimeZoneTest.java │ │ └── VTodoTest.java │ │ ├── itip │ │ ├── CancelRecurrenceTest.java │ │ ├── ComboMessageTest.java │ │ ├── HandleRecurrencesTest.java │ │ ├── RequestTest.java │ │ ├── SimpleCancelTest.java │ │ ├── SimplePublishTest.java │ │ └── WholeDayTest.java │ │ ├── misc │ │ ├── AddAndRemoveChildrenTests.java │ │ ├── CreateElementsTests.java │ │ ├── ErrorDetectingTest.java │ │ ├── FoldingAndUnfoldingTest.java │ │ ├── MiscICalendarTests.java │ │ └── OrdererTest.java │ │ ├── parameter │ │ ├── AlternateTextRepresentationTest.java │ │ ├── CalendarUserTest.java │ │ ├── CommonNameTest.java │ │ ├── DelegateesTest.java │ │ ├── DirectoryEntryReferenceTest.java │ │ ├── FormatTypeTest.java │ │ ├── NonstandardParameterTest.java │ │ ├── ParseDateTest.java │ │ ├── ParseParameterTest.java │ │ ├── ParticipationRoleTest.java │ │ ├── RelationshipTypeTest.java │ │ ├── ValueTypeTest.java │ │ └── rrule │ │ │ ├── ByDayTest.java │ │ │ ├── ByHourTest.java │ │ │ ├── ByMinuteTest.java │ │ │ ├── ByMonthDayTest.java │ │ │ ├── ByMonthTest.java │ │ │ ├── ByRuleTest.java │ │ │ ├── BySecondTest.java │ │ │ ├── BySetPositionTest.java │ │ │ ├── ByWeekNumberTest.java │ │ │ ├── ByYearDayTest.java │ │ │ ├── FrequencyTest.java │ │ │ ├── IntervalTest.java │ │ │ ├── RRuleErrorTest.java │ │ │ ├── RecurrenceRuleParseTest.java │ │ │ └── RecurrenceRuleStreamTest.java │ │ └── property │ │ ├── calendar │ │ └── MethodTest.java │ │ └── component │ │ ├── ActionTest.java │ │ ├── AttachmentTest.java │ │ ├── AttendeeTest.java │ │ ├── CategoriesTest.java │ │ ├── ClassificationTest.java │ │ ├── CommentTest.java │ │ ├── ContactTest.java │ │ ├── DateTimeCompletedTest.java │ │ ├── DateTimeCreatedTest.java │ │ ├── DateTimeDueTest.java │ │ ├── DateTimeEndTest.java │ │ ├── DateTimeStampTest.java │ │ ├── DateTimeStartTest.java │ │ ├── DescriptionTest.java │ │ ├── DurationTest.java │ │ ├── ExceptionDatesTest.java │ │ ├── FreeBusyTimeTest.java │ │ ├── GeneralPropertyTest.java │ │ ├── GeographicPositionTest.java │ │ ├── LastModifiedTest.java │ │ ├── LocationTest.java │ │ ├── NonStandardTest.java │ │ ├── OrganizerTest.java │ │ ├── PriorityTest.java │ │ ├── RecurrenceIdTest.java │ │ ├── RecurrenceRuleTest.java │ │ ├── RecurrencesTest.java │ │ ├── RelatedToTest.java │ │ ├── RepeatCountTest.java │ │ ├── RequestStatusTest.java │ │ ├── ResourcesTest.java │ │ ├── SequenceTest.java │ │ ├── StatusTest.java │ │ ├── SummaryTest.java │ │ ├── TimeTransparencyTest.java │ │ ├── TimeZoneIdentifierTest.java │ │ ├── TimeZoneNameTest.java │ │ ├── TimeZoneOffsetTest.java │ │ ├── TimeZoneURLTest.java │ │ ├── TriggerTest.java │ │ ├── URLTest.java │ │ └── UniqueIdentifierTest.java │ └── resources │ └── jfxtras │ └── icalendarfx │ └── calendar │ ├── Yahoo_Sample_Calendar.ics │ └── mathBirthdays.ics ├── jfxtras-menu ├── .gitignore ├── mvnw_test.cmd ├── pom.xml └── src │ ├── main │ └── java │ │ ├── jfxtras │ │ └── scene │ │ │ └── menu │ │ │ ├── CirclePopupMenu.java │ │ │ └── CornerMenu.java │ │ └── module-info.java │ └── test │ ├── java │ └── jfxtras │ │ └── scene │ │ └── menu │ │ └── test │ │ ├── AllTests.java │ │ ├── CirclePopupMenuTest.java │ │ ├── CirclePopupMenuTrail.java │ │ ├── CornerMenuTest.java │ │ └── CornerMenuTrail.java │ └── resources │ └── jfxtras │ └── scene │ └── menu │ └── test │ ├── social_facebook_button_blue.png │ ├── social_google_button_blue.png │ ├── social_skype_button_blue.png │ ├── social_twitter_button_blue.png │ └── social_windows_button.png ├── jfxtras-test-support ├── .gitignore ├── pom.xml └── src │ └── main │ └── java │ ├── jfxtras │ └── test │ │ ├── AssertNode.java │ │ ├── JFXtrasGuiTest.java │ │ ├── JFXtrasTest.java │ │ └── TestUtil.java │ └── module-info.java ├── jfxtras-window ├── .gitignore ├── mvnw_test.cmd ├── pom.xml └── src │ ├── main │ ├── java │ │ ├── jfxtras │ │ │ ├── internal │ │ │ │ └── scene │ │ │ │ │ └── control │ │ │ │ │ └── skin │ │ │ │ │ └── window │ │ │ │ │ ├── DefaultWindowIconSkin.java │ │ │ │ │ └── DefaultWindowSkin.java │ │ │ └── scene │ │ │ │ └── control │ │ │ │ └── window │ │ │ │ ├── Clipboard.java │ │ │ │ ├── CloseIcon.java │ │ │ │ ├── MinimizeIcon.java │ │ │ │ ├── RotateIcon.java │ │ │ │ ├── SelectableNode.java │ │ │ │ ├── Window.java │ │ │ │ └── WindowIcon.java │ │ └── module-info.java │ └── resources │ │ └── jfxtras │ │ └── scene │ │ └── control │ │ └── window │ │ ├── default.css │ │ └── icons.svg │ └── test │ └── java │ └── jfxtras │ └── scene │ └── control │ └── window │ └── test │ ├── WindowMinimizeAndCloseTest.java │ └── WindowToFrontTest.java ├── license-template.txt ├── mvnw ├── mvnw.cmd ├── mvnw_cleanDeploy ├── mvnw_cleanInstall ├── mvnw_cleanInstall.cmd ├── mvnw_javadoc ├── mvnw_release ├── mvnw_setVersion ├── mvnw_test ├── mvnw_updateWrapper └── pom.xml /.gitignore: -------------------------------------------------------------------------------- 1 | .gradle 2 | .classpath 3 | .project 4 | .settings 5 | *.log 6 | build 7 | _lib 8 | screenshot*.png 9 | /gradle_localOverride.cmd 10 | /gradlew_build.cmd 11 | /gradlew_install.cmd 12 | /gradlew_javadoc.cmd 13 | /gradlew_lib.cmd 14 | /gradlew_release.cmd 15 | /gradlew_repairHeaders.cmd 16 | /gradlew_test.cmd 17 | /gradlew_updateWrapper.cmd 18 | 19 | /jfxtras-test-support/bin 20 | /gradlew_assemble.cmd 21 | /.nb-gradle/private/ 22 | /.nb-gradle/profiles/private/ 23 | .idea 24 | out 25 | /jfxtras-agenda/target 26 | /jfxtras-common/target 27 | /jfxtras-controls/target 28 | /jfxtras-font-roboto/target 29 | /jfxtras-fxml/target 30 | /jfxtras-gauge-linear/target 31 | /jfxtras-icalendaragenda/target 32 | /jfxtras-icalendarfx/target 33 | /jfxtras-menu/target 34 | /jfxtras-test-support/target 35 | /jfxtras-window/target 36 | 37 | # intellij files 38 | *.iml 39 | .idea 40 | /jfxtras-font-roboto/*.versionsBackup 41 | /build.gradle.out 42 | /gradle.properties.out 43 | /java_localOverride.cmd 44 | *.versionsBackup 45 | /target 46 | /bin 47 | .run 48 | 49 | release.properties 50 | pom.xml.releaseBackup 51 | -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFXtras/jfxtras/694a25b613b733350f8bce29a7702e50e7c10525/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright (c) 2011-2024, JFXtras 3 | # All rights reserved. 4 | # 5 | # Redistribution and use in source and binary forms, with or without 6 | # modification, are permitted provided that the following conditions are met: 7 | # Redistributions of source code must retain the above copyright 8 | # notice, this list of conditions and the following disclaimer. 9 | # Redistributions in binary form must reproduce the above copyright 10 | # notice, this list of conditions and the following disclaimer in the 11 | # documentation and/or other materials provided with the distribution. 12 | # Neither the name of the organization nor the 13 | # names of its contributors may be used to endorse or promote products 14 | # derived from this software without specific prior written permission. 15 | # 16 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | # DISCLAIMED. IN NO EVENT SHALL JFXTRAS BE LIABLE FOR ANY 20 | # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | # 27 | 28 | distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.1/apache-maven-3.8.1-bin.zip 29 | wrapperUrl=https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar 30 | -------------------------------------------------------------------------------- /Jenkinsfile: -------------------------------------------------------------------------------- 1 | pipeline { 2 | agent any 3 | tools { 4 | maven 'maven-3.5.3' 5 | jdk 'jdk-11' 6 | } 7 | stages { 8 | stage ('Initialize') { 9 | steps { 10 | sh ''' 11 | whoami 12 | echo "HOME = ${HOME}" 13 | echo "PATH = ${PATH}" 14 | echo "M2_HOME = ${M2_HOME}" 15 | gpg --list-keys 16 | ''' 17 | } 18 | } 19 | 20 | stage ('Build') { 21 | steps { 22 | // mvn activates the jfxtras profile, using that pgp can be setup in mvn's settings.xml, most notably gpg.passphrase and gpg.keyname 23 | // http://maven.apache.org/plugins/maven-gpg-plugin/sign-mojo.html 24 | // UI test don't well on Jenkins 25 | // Javadoc generation using asciidoclet is not working well 26 | sh 'mvn install -P jfxtras -DskipTests -Dmaven.javadoc.skip=true' 27 | } 28 | post { 29 | success { 30 | junit 'target/surefire-reports/**/*.xml' 31 | } 32 | } 33 | } 34 | } 35 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # JFXtras 2 | 3 | A supporting library for JavaFX, containing helper classes, extended layouts, controls and other interesting widgets. 4 | 5 | ## Examples 6 | JFXtras features an agenda control, mimicking Google Calendar with a few twists, 7 | like a "pole" on whole day appointments so they are visible through out the day. 8 | 9 | 10 | 11 | Also a date and time picker, plus associated text fields. 12 | 13 | 14 | 15 | Or a circular pane, aimed at those new round screen becoming more and more popular, 16 | which can animate the nodes into position. 17 | 18 | 19 | 20 | Which was used to create two menus: 21 | 22 | 23 | 24 | 25 | Some dials, inspired by Gerrit Grunwald's work: 26 | 27 | 28 | 29 | 30 | 31 | ## Project structure: 32 | 33 | Root project 'jfxtras-parent' 34 | +--- Module 'jfxtras-agenda' 35 | +--- Module 'jfxtras-common' 36 | +--- Module 'jfxtras-controls' 37 | +--- Module 'jfxtras-font-roboto' 38 | +--- Module 'jfxtras-fxml' 39 | +--- Module 'jfxtras-gauge-linear' 40 | +--- Module 'jfxtras-icalendaragenda' 41 | +--- Module 'jfxtras-icalendarfx' 42 | +--- Module 'jfxtras-menu' 43 | +--- Module 'jfxtras-test-support' 44 | \--- Module 'jfxtras-window' 45 | 46 | ## How to use 47 | 48 | The easiest way to use JFXtras is by using Maven or Gradle and access the [Maven central repository](https://search.maven.org/search?q=g:org.jfxtras). 49 | 50 | The `group-id` is `org.jfxtras`, the `artifact-id` is the module name. 51 | 52 | ###### Maven: 53 | 54 | 55 | org.jfxtras 56 | jfxtras-controls 57 | 11-r1-SNAPSHOT 58 | 59 | 60 | ###### Gradle: 61 | 62 | compile group: 'org.jfxtras', name: 'jfxtras-controls', version: '11-r1-SNAPSHOT' 63 | 64 | ## License 65 | 66 | JFXtras uses the [new BSD](http://en.wikipedia.org/wiki/BSD_licenses#3-clause_license_.28.22Revised_BSD_License.22.2C_.22New_BSD_License.22.2C_or_.22Modified_BSD_License.22.29) license 67 | -------------------------------------------------------------------------------- /README/AccordionPane.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFXtras/jfxtras/694a25b613b733350f8bce29a7702e50e7c10525/README/AccordionPane.png -------------------------------------------------------------------------------- /README/BasicRoundDailGauge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFXtras/jfxtras/694a25b613b733350f8bce29a7702e50e7c10525/README/BasicRoundDailGauge.png -------------------------------------------------------------------------------- /README/CalendarPicker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFXtras/jfxtras/694a25b613b733350f8bce29a7702e50e7c10525/README/CalendarPicker.png -------------------------------------------------------------------------------- /README/CircularPane.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFXtras/jfxtras/694a25b613b733350f8bce29a7702e50e7c10525/README/CircularPane.png -------------------------------------------------------------------------------- /README/CornerMenu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFXtras/jfxtras/694a25b613b733350f8bce29a7702e50e7c10525/README/CornerMenu.gif -------------------------------------------------------------------------------- /README/PopupMenu.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFXtras/jfxtras/694a25b613b733350f8bce29a7702e50e7c10525/README/PopupMenu.gif -------------------------------------------------------------------------------- /README/SimpleMetroArcGauge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFXtras/jfxtras/694a25b613b733350f8bce29a7702e50e7c10525/README/SimpleMetroArcGauge.png -------------------------------------------------------------------------------- /README/agenda.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFXtras/jfxtras/694a25b613b733350f8bce29a7702e50e7c10525/README/agenda.png -------------------------------------------------------------------------------- /README/calendarTextField.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFXtras/jfxtras/694a25b613b733350f8bce29a7702e50e7c10525/README/calendarTextField.png -------------------------------------------------------------------------------- /README/spinner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFXtras/jfxtras/694a25b613b733350f8bce29a7702e50e7c10525/README/spinner.png -------------------------------------------------------------------------------- /README/timepicker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFXtras/jfxtras/694a25b613b733350f8bce29a7702e50e7c10525/README/timepicker.png -------------------------------------------------------------------------------- /jfxtras-agenda/.gitignore: -------------------------------------------------------------------------------- 1 | /_build 2 | /bin 3 | -------------------------------------------------------------------------------- /jfxtras-agenda/mvnw_test.cmd: -------------------------------------------------------------------------------- 1 | call ..\java_localOverride.cmd 2 | call ..\mvnw test 3 | rem call ..\mvnw test -Dtest=AgendaSelectTest 4 | pause -------------------------------------------------------------------------------- /jfxtras-agenda/src/main/java/jfxtras/internal/scene/control/skin/agenda/base24hour/AppointmentWholedayBodyPane.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2011-2024, JFXtras 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | * notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * Neither the name of the organization nor the 13 | * names of its contributors may be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | * DISCLAIMED. IN NO EVENT SHALL JFXTRAS BE LIABLE FOR ANY 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | package jfxtras.internal.scene.control.skin.agenda.base24hour; 28 | 29 | import java.time.LocalDate; 30 | 31 | import jfxtras.scene.control.agenda.Agenda; 32 | 33 | /** 34 | * Responsible for rendering a wholeday appointment on a single day. 35 | * 36 | */ 37 | class AppointmentWholedayBodyPane extends AppointmentAbstractPane { 38 | 39 | /** 40 | * 41 | * @param calendar 42 | * @param appointment 43 | */ 44 | AppointmentWholedayBodyPane(LocalDate localDate, Agenda.Appointment appointment, LayoutHelp layoutHelp) { 45 | super(appointment, layoutHelp); 46 | } 47 | } 48 | 49 | -------------------------------------------------------------------------------- /jfxtras-agenda/src/main/java/jfxtras/internal/scene/control/skin/agenda/base24hour/DragPane.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2011-2024, JFXtras 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | * notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * Neither the name of the organization nor the 13 | * names of its contributors may be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | * DISCLAIMED. IN NO EVENT SHALL JFXTRAS BE LIABLE FOR ANY 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | package jfxtras.internal.scene.control.skin.agenda.base24hour; 28 | 29 | import javafx.scene.layout.Pane; 30 | 31 | class DragPane extends Pane { 32 | 33 | DragPane(LayoutHelp layoutHelp) { 34 | prefWidthProperty().bind(layoutHelp.skinnable.widthProperty()); // the drag pane is the same size as the whole skin 35 | prefHeightProperty().bind(layoutHelp.skinnable.heightProperty()); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /jfxtras-agenda/src/main/java/jfxtras/internal/scene/control/skin/agenda/basedaylist/LayoutHelp.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2011-2024, JFXtras 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | * notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * Neither the name of the organization nor the 13 | * names of its contributors may be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | * DISCLAIMED. IN NO EVENT SHALL JFXTRAS BE LIABLE FOR ANY 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | package jfxtras.internal.scene.control.skin.agenda.basedaylist; 28 | 29 | class LayoutHelp { 30 | 31 | } 32 | -------------------------------------------------------------------------------- /jfxtras-agenda/src/main/java/jfxtras/internal/scene/control/skin/agenda/basedaylist/MonthPane.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2011-2024, JFXtras 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | * notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * Neither the name of the organization nor the 13 | * names of its contributors may be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | * DISCLAIMED. IN NO EVENT SHALL JFXTRAS BE LIABLE FOR ANY 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | package jfxtras.internal.scene.control.skin.agenda.basedaylist; 28 | 29 | public class MonthPane { 30 | 31 | } 32 | -------------------------------------------------------------------------------- /jfxtras-agenda/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2011-2024, JFXtras 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | * notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * Neither the name of the organization nor the 13 | * names of its contributors may be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | * DISCLAIMED. IN NO EVENT SHALL JFXTRAS BE LIABLE FOR ANY 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | module jfxtras.agenda { 28 | exports jfxtras.scene.control.agenda; 29 | exports jfxtras.internal.scene.control.skin.agenda to jfxtras.icalendarfx, jfxtras.icalendaragenda; 30 | 31 | requires transitive jfxtras.controls; 32 | requires javafx.graphics; 33 | requires javafx.controls; 34 | requires jfxtras.common; 35 | } -------------------------------------------------------------------------------- /jfxtras-agenda/src/main/resources/jfxtras/internal/scene/control/skin/agenda/AgendaSkinSwitcher.css: -------------------------------------------------------------------------------- 1 | .AgendaSkinSwitcher .day-icon { 2 | -fx-image: url("SkinDay.png"); 3 | } 4 | 5 | .AgendaSkinSwitcher .dayDynamic-icon { 6 | -fx-image: url("SkinDayDynamic.png"); 7 | } 8 | 9 | .AgendaSkinSwitcher .week-icon { 10 | -fx-image: url("SkinWeek.png"); 11 | } 12 | 13 | .AgendaSkinSwitcher .month-icon { 14 | -fx-image: url("SkinMonth.png"); 15 | } 16 | 17 | -------------------------------------------------------------------------------- /jfxtras-agenda/src/main/resources/jfxtras/internal/scene/control/skin/agenda/AgendaWeekSkinActionIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFXtras/jfxtras/694a25b613b733350f8bce29a7702e50e7c10525/jfxtras-agenda/src/main/resources/jfxtras/internal/scene/control/skin/agenda/AgendaWeekSkinActionIcon.png -------------------------------------------------------------------------------- /jfxtras-agenda/src/main/resources/jfxtras/internal/scene/control/skin/agenda/AgendaWeekSkinDeleteIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFXtras/jfxtras/694a25b613b733350f8bce29a7702e50e7c10525/jfxtras-agenda/src/main/resources/jfxtras/internal/scene/control/skin/agenda/AgendaWeekSkinDeleteIcon.png -------------------------------------------------------------------------------- /jfxtras-agenda/src/main/resources/jfxtras/internal/scene/control/skin/agenda/AgendaWeekSkinPopupCloseWindowIcon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFXtras/jfxtras/694a25b613b733350f8bce29a7702e50e7c10525/jfxtras-agenda/src/main/resources/jfxtras/internal/scene/control/skin/agenda/AgendaWeekSkinPopupCloseWindowIcon.png -------------------------------------------------------------------------------- /jfxtras-agenda/src/main/resources/jfxtras/internal/scene/control/skin/agenda/SkinDay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFXtras/jfxtras/694a25b613b733350f8bce29a7702e50e7c10525/jfxtras-agenda/src/main/resources/jfxtras/internal/scene/control/skin/agenda/SkinDay.png -------------------------------------------------------------------------------- /jfxtras-agenda/src/main/resources/jfxtras/internal/scene/control/skin/agenda/SkinDayDynamic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFXtras/jfxtras/694a25b613b733350f8bce29a7702e50e7c10525/jfxtras-agenda/src/main/resources/jfxtras/internal/scene/control/skin/agenda/SkinDayDynamic.png -------------------------------------------------------------------------------- /jfxtras-agenda/src/main/resources/jfxtras/internal/scene/control/skin/agenda/SkinMonth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFXtras/jfxtras/694a25b613b733350f8bce29a7702e50e7c10525/jfxtras-agenda/src/main/resources/jfxtras/internal/scene/control/skin/agenda/SkinMonth.png -------------------------------------------------------------------------------- /jfxtras-agenda/src/main/resources/jfxtras/internal/scene/control/skin/agenda/SkinWeek.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFXtras/jfxtras/694a25b613b733350f8bce29a7702e50e7c10525/jfxtras-agenda/src/main/resources/jfxtras/internal/scene/control/skin/agenda/SkinWeek.png -------------------------------------------------------------------------------- /jfxtras-agenda/src/main/resources/roboto/RobotoCondensed-Light.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFXtras/jfxtras/694a25b613b733350f8bce29a7702e50e7c10525/jfxtras-agenda/src/main/resources/roboto/RobotoCondensed-Light.ttf -------------------------------------------------------------------------------- /jfxtras-agenda/src/test/java/jfxtras/scene/control/agenda/test/AllTests.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2011-2024, JFXtras 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | * notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * Neither the name of the organization nor the 13 | * names of its contributors may be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | * DISCLAIMED. IN NO EVENT SHALL JFXTRAS BE LIABLE FOR ANY 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | package jfxtras.scene.control.agenda.test; 28 | 29 | import org.junit.runner.RunWith; 30 | import org.junit.runners.Suite; 31 | import org.junit.runners.Suite.SuiteClasses; 32 | 33 | @RunWith(Suite.class) 34 | @SuiteClasses({ AgendaMouseManipulateTest.class 35 | , AgendaRenderTest.class 36 | , AgendaSelectTest.class 37 | , AgendaMenuTest.class 38 | , AgendaFXMLTest.class 39 | , AgendaFXMLTest.class 40 | , AgendaRenderDaysFromDisplayedDateTest.class 41 | , AgendaTemporalConversionTest.class 42 | }) 43 | public class AllTests { 44 | 45 | } 46 | -------------------------------------------------------------------------------- /jfxtras-agenda/src/test/resources/jfxtras/scene/control/agenda/test/AgendaFXMLTest.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /jfxtras-agenda/src/test/resources/placeholder.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFXtras/jfxtras/694a25b613b733350f8bce29a7702e50e7c10525/jfxtras-agenda/src/test/resources/placeholder.txt -------------------------------------------------------------------------------- /jfxtras-common/.gitignore: -------------------------------------------------------------------------------- 1 | /_build 2 | /bin 3 | -------------------------------------------------------------------------------- /jfxtras-common/mvnw_test.cmd: -------------------------------------------------------------------------------- 1 | call ..\java_localOverride.cmd 2 | call ..\mvnw test 3 | pause -------------------------------------------------------------------------------- /jfxtras-common/src/main/java/jfxtras/scene/layout/responsivepane/Device.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2011-2024, JFXtras 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | * notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * Neither the name of the organization nor the 13 | * names of its contributors may be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | * DISCLAIMED. IN NO EVENT SHALL JFXTRAS BE LIABLE FOR ANY 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | package jfxtras.scene.layout.responsivepane; 28 | 29 | /** 30 | * 31 | */ 32 | public enum Device { 33 | DESKTOP, 34 | TABLET, 35 | PHONE; 36 | } -------------------------------------------------------------------------------- /jfxtras-common/src/main/java/jfxtras/scene/layout/responsivepane/Orientation.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2011-2024, JFXtras 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | * notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * Neither the name of the organization nor the 13 | * names of its contributors may be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | * DISCLAIMED. IN NO EVENT SHALL JFXTRAS BE LIABLE FOR ANY 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | package jfxtras.scene.layout.responsivepane; 28 | 29 | /** 30 | * 31 | */ 32 | public enum Orientation { 33 | LANDSCAPE, 34 | PORTRAIT; 35 | } -------------------------------------------------------------------------------- /jfxtras-common/src/main/java/jfxtras/scene/layout/responsivepane/Unit.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2011-2024, JFXtras 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | * notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * Neither the name of the organization nor the 13 | * names of its contributors may be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | * DISCLAIMED. IN NO EVENT SHALL JFXTRAS BE LIABLE FOR ANY 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | package jfxtras.scene.layout.responsivepane; 28 | 29 | enum Unit { 30 | INCH("in"), CM("cm"); 31 | 32 | private Unit(String suffix){ 33 | this.suffix = suffix; 34 | } 35 | final String suffix; 36 | 37 | public double toInches(double value) { 38 | if (this.equals(CM)) { 39 | return value * 0.393701; 40 | } 41 | return value; 42 | } 43 | } -------------------------------------------------------------------------------- /jfxtras-common/src/main/java/jfxtras/util/Implements.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2011-2024, JFXtras 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | * notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * Neither the name of the organization nor the 13 | * names of its contributors may be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | * DISCLAIMED. IN NO EVENT SHALL JFXTRAS BE LIABLE FOR ANY 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | package jfxtras.util; 28 | 29 | import java.lang.annotation.ElementType; 30 | import java.lang.annotation.Retention; 31 | import java.lang.annotation.RetentionPolicy; 32 | import java.lang.annotation.Target; 33 | 34 | @Retention(RetentionPolicy.RUNTIME) 35 | @Target(ElementType.METHOD) 36 | public @interface Implements 37 | { 38 | /** 39 | * The set of interface that the specified method implements 40 | */ 41 | Class[] interfaces(); 42 | } 43 | -------------------------------------------------------------------------------- /jfxtras-common/src/main/java/module-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2011-2024, JFXtras 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | * notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * Neither the name of the organization nor the 13 | * names of its contributors may be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | * DISCLAIMED. IN NO EVENT SHALL JFXTRAS BE LIABLE FOR ANY 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | module jfxtras.common { 28 | exports jfxtras.animation; 29 | exports jfxtras.css; 30 | exports jfxtras.css.converters; 31 | exports jfxtras.scene.layout; 32 | exports jfxtras.scene.layout.responsivepane; 33 | exports jfxtras.util; 34 | 35 | requires transitive javafx.controls; 36 | requires transitive javafx.fxml; 37 | } -------------------------------------------------------------------------------- /jfxtras-common/src/test/java/jfxtras/scene/layout/responsivepane/SimpleController.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2011-2024, JFXtras 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | * notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * Neither the name of the organization nor the 13 | * names of its contributors may be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | * DISCLAIMED. IN NO EVENT SHALL JFXTRAS BE LIABLE FOR ANY 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | package jfxtras.scene.layout.responsivepane; 28 | 29 | import javafx.fxml.FXML; 30 | 31 | public class SimpleController { 32 | 33 | public SimpleController() { 34 | } 35 | 36 | @FXML 37 | public void initialize() { 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /jfxtras-common/src/test/java/jfxtras/scene/layout/test/AllTests.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2011-2024, JFXtras 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | * notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * Neither the name of the organization nor the 13 | * names of its contributors may be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | * DISCLAIMED. IN NO EVENT SHALL JFXTRAS BE LIABLE FOR ANY 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | package jfxtras.scene.layout.test; 28 | 29 | import org.junit.runner.RunWith; 30 | import org.junit.runners.Suite; 31 | import org.junit.runners.Suite.SuiteClasses; 32 | 33 | @RunWith(Suite.class) 34 | @SuiteClasses({ CircularPaneTest.class 35 | , GridPaneTest.class 36 | , HBoxTest.class 37 | , VBoxTest.class 38 | // TBEERNOT ResponsivePane tests break the others when run by maven 39 | // , jfxtras.scene.layout.responsivepane.ResponsivePaneTest.class 40 | // , jfxtras.scene.layout.responsivepane.ResponsivePaneFXMLTest.class 41 | }) 42 | public class AllTests { 43 | 44 | } 45 | -------------------------------------------------------------------------------- /jfxtras-common/src/test/java/jfxtras/scene/layout/trial/CircularPaneTrail.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2011-2024, JFXtras 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | * notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * Neither the name of the organization nor the 13 | * names of its contributors may be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | * DISCLAIMED. IN NO EVENT SHALL JFXTRAS BE LIABLE FOR ANY 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | .time { 28 | -fx-text-fill: gray; 29 | } 30 | 31 | .time:hover { 32 | -fx-text-fill: blue; 33 | } 34 | 35 | .timecircle:hover { 36 | -fx-fill: red; 37 | } 38 | 39 | .center { 40 | -fx-font-size: 16pt; 41 | } -------------------------------------------------------------------------------- /jfxtras-common/src/test/java/jfxtras/scene/layout/trial/CircularPaneTrail2.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2011-2024, JFXtras 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | * notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * Neither the name of the organization nor the 13 | * names of its contributors may be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | * DISCLAIMED. IN NO EVENT SHALL JFXTRAS BE LIABLE FOR ANY 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | .time { 28 | -fx-text-fill: white; 29 | } 30 | 31 | .time:hover { 32 | -fx-text-fill: red; 33 | } 34 | 35 | .center { 36 | -fx-font-size: 16pt; 37 | } -------------------------------------------------------------------------------- /jfxtras-common/src/test/java/jfxtras/scene/layout/trial/CircularPaneTrail3.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2011-2024, JFXtras 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | * notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * Neither the name of the organization nor the 13 | * names of its contributors may be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | * DISCLAIMED. IN NO EVENT SHALL JFXTRAS BE LIABLE FOR ANY 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | .time { 28 | -fx-text-fill: white; 29 | } 30 | 31 | .time:hover { 32 | -fx-text-fill: red; 33 | } 34 | 35 | .center { 36 | -fx-font-size: 16pt; 37 | } -------------------------------------------------------------------------------- /jfxtras-common/src/test/java/jfxtras/scene/layout/trial/CircularPaneTrail4.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2011-2024, JFXtras 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | * notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * Neither the name of the organization nor the 13 | * names of its contributors may be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | * DISCLAIMED. IN NO EVENT SHALL JFXTRAS BE LIABLE FOR ANY 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | .time { 28 | -fx-text-fill: white; 29 | } 30 | 31 | .time:hover { 32 | -fx-text-fill: red; 33 | } 34 | 35 | .center { 36 | -fx-font-size: 16pt; 37 | } -------------------------------------------------------------------------------- /jfxtras-common/src/test/java/jfxtras/scene/layout/trial/CircularPaneTrail5.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2011-2024, JFXtras 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | * notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * Neither the name of the organization nor the 13 | * names of its contributors may be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | * DISCLAIMED. IN NO EVENT SHALL JFXTRAS BE LIABLE FOR ANY 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | .time { 28 | -fx-text-fill: white; 29 | } 30 | 31 | .time:hover { 32 | -fx-text-fill: red; 33 | } 34 | 35 | .center { 36 | -fx-font-size: 16pt; 37 | } -------------------------------------------------------------------------------- /jfxtras-common/src/test/java/jfxtras/scene/layout/trial/CircularPaneTrail6.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2011-2024, JFXtras 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | * notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * Neither the name of the organization nor the 13 | * names of its contributors may be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | * DISCLAIMED. IN NO EVENT SHALL JFXTRAS BE LIABLE FOR ANY 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | .time { 28 | -fx-text-fill: white; 29 | } 30 | 31 | .time:hover { 32 | -fx-text-fill: red; 33 | } 34 | 35 | .center { 36 | -fx-font-size: 16pt; 37 | } -------------------------------------------------------------------------------- /jfxtras-common/src/test/resources/Roboto-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFXtras/jfxtras/694a25b613b733350f8bce29a7702e50e7c10525/jfxtras-common/src/test/resources/Roboto-Medium.ttf -------------------------------------------------------------------------------- /jfxtras-common/src/test/resources/jfxtras/scene/layout/responsivepane/ResponsivePaneFXMLTest_empty.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /jfxtras-common/src/test/resources/jfxtras/scene/layout/responsivepane/desktop.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFXtras/jfxtras/694a25b613b733350f8bce29a7702e50e7c10525/jfxtras-common/src/test/resources/jfxtras/scene/layout/responsivepane/desktop.css -------------------------------------------------------------------------------- /jfxtras-common/src/test/resources/jfxtras/scene/layout/responsivepane/phone.css: -------------------------------------------------------------------------------- 1 | .ListSpinner .left-arrow { 2 | -fx-shape: "M24,-8 L0,0 L24,8 Z"; 3 | -fx-scale-shape: false; 4 | -fx-padding: 10; 5 | -fx-background-color: white; 6 | } 7 | .ListSpinner .right-arrow { 8 | -fx-shape: "M0,-8 L24,0 L0,8 Z"; 9 | -fx-scale-shape: false; 10 | -fx-padding: 10; 11 | -fx-background-color: white; 12 | } 13 | 14 | .xxxCalendarPicker .toggle-button { 15 | -fx-padding: 5px 10px 5px 10px; 16 | -fx-min-width: 0; 17 | } -------------------------------------------------------------------------------- /jfxtras-common/src/test/resources/jfxtras/scene/layout/responsivepane/tablet.css: -------------------------------------------------------------------------------- 1 | .xxxCalendarPicker .toggle-button { 2 | -fx-padding: 5px 10px 5px 10px; 3 | -fx-min-width: 0; 4 | } -------------------------------------------------------------------------------- /jfxtras-controls/.gitignore: -------------------------------------------------------------------------------- 1 | /_build 2 | /bin 3 | -------------------------------------------------------------------------------- /jfxtras-controls/mvnw_test.cmd: -------------------------------------------------------------------------------- 1 | call ..\java_localOverride.cmd 2 | call ..\mvnw test -Dtest=!AllTests* 3 | pause -------------------------------------------------------------------------------- /jfxtras-controls/src/main/asciidoc/scene/control/CalendarPicker_callbacks.adoc: -------------------------------------------------------------------------------- 1 | 2 | === {calendar}RangeCallback 3 | The user is allowed to navigate through all eternity. 4 | So if there are many possible meaningful dates, all have to be fetched and populated in the {calendars}, disabledCalenders and highlighted{Calendars_class} lists. 5 | This could become quite a performance and memory issue. 6 | In order to deal with this situation, the {calendar}RangeCallback property can be used. 7 | 8 | The {calendar}RangeCallback is called each time a different range is shown in the picker and the {Calendar_class}Range parameter has the begin and end of the range that is going to be shown. 9 | By registering to the {calendar}RangeCallback, it is possible to populate the lists with the values relevant to the range. 10 | 11 | ==== Example 12 | [source,java,subs="attributes+"] 13 | -- 14 | {control_instance}.set{Calendar_class}RangeCallback( (range) -> { 15 | {calendar}Picker.disabledCalenders().clear; 16 | {calendar}Picker.disabledCalenders.addAll( BusinessModel.findDisabled{Calendars_class}In(range.getStart{Calendar_class}(), range.getEnd{Calendar_class}() ); 17 | }); 18 | -- 19 | 20 | === valueValidationCallback 21 | Using the disabled{Calendars_class} collection only makes sense in non-time mode. 22 | When time is shown, a lot of possibles times (up to milliseconds) can be selected on a single date, so populating the disabled{Calendars_class} list with all possible values is practically impossible. 23 | To still be able to prevent certain {Calendars_class} to be selected, the valueValidationCallback is an alternative. 24 | It allows, prior to a {Calendar_class} being selected, to check if it is allowed. 25 | 26 | ==== Example 27 | [source,java,subs="attributes+"] 28 | -- 29 | {control_instance}.valueValidationCallback( ({calendar}) -> { 30 | if (some_condition({calendar})) { 31 | return false; // not allowed 32 | } 33 | return true; // allowed 34 | }); 35 | -- 36 | -------------------------------------------------------------------------------- /jfxtras-controls/src/main/asciidoc/scene/control/CalendarPicker_modeProperty.adoc: -------------------------------------------------------------------------------- 1 | - Whether one, multiple or more dates can be selected is specified using the mode property. 2 | - The {calendars} list holds all selected dates. 3 | - In multiple or range mode, the {calendar} property holds the last selected {calendar}. 4 | -------------------------------------------------------------------------------- /jfxtras-controls/src/main/asciidoc/scene/control/CalendarPicker_properties.adoc: -------------------------------------------------------------------------------- 1 | 2 | - The {calendar} property holds the selected {calendar_class}. 3 | - The control can be set to allow no selection at all through the allowNull property. 4 | - There is a disabled{calendars_class} list that will allow specifying {calendars} that are not selectable (see callback below). 5 | - There is a highlighted{calendars_class} list that will allow specifying {calendars} that are hightlighted (see callback below). 6 | - The displayed{Calendar} property indicates what moment in time is displayed by the control. 7 | - The locale property configures which language but also first day of week, etc is used. 8 | -------------------------------------------------------------------------------- /jfxtras-controls/src/main/asciidoc/scene/control/CalendarTextField_callbacks.adoc: -------------------------------------------------------------------------------- 1 | A lot of the callbacks are mirrors of the ones in the {calendar_class}Picker. 2 | include::CalendarPicker_callbacks.adoc[] 3 | 4 | === parseErrorCallback 5 | The parseErrorCallback can be used to react to typed text that is not interpretable by the {dataFormats}. 6 | The control normally will print a stack dump on the console, but the callback can be used to show an error message. 7 | 8 | ==== Example 9 | [source,java,subs="attributes+"] 10 | -- 11 | {control_instance}.parseErrorCallback( (throwable) -> { 12 | // show error here 13 | }); 14 | -- 15 | 16 | -------------------------------------------------------------------------------- /jfxtras-controls/src/main/asciidoc/scene/control/CalendarTextField_icon.adoc: -------------------------------------------------------------------------------- 1 | To change the icon use: 2 | 3 | [source,css,subs="attributes+"] 4 | ---- 5 | .{control} .icon { 6 | -fx-image: url("AlternateCalendarIcon.jpg"); 7 | } 8 | ---- 9 | -------------------------------------------------------------------------------- /jfxtras-controls/src/main/asciidoc/scene/control/CalendarTextField_properties.adoc: -------------------------------------------------------------------------------- 1 | 2 | A textField which displays a {calendar_class} (date) with a icon to pop up a {calendar_class}Picker. 3 | Features relative mutation options, like typing -1 or -1d for plus or minus a day, -1m for minus one month, +1w, +2y, etc. 4 | Typing # will set now / today. 5 | 6 | This control allows selecting of one {calendar}. 7 | A lot of the properties are mirrors of the ones in the {calendar_class}Picker. 8 | include::CalendarPicker_properties.adoc[] 9 | 10 | - The {dateFormat} property specifies how a date is rendered in the textfield. 11 | - The {dateFormats} list contains all formats how a typed text is interpreted to convert to a {calendar_class} 12 | - The pickerShowing property is an indicator if the picker is currently active or not. 13 | - The promptText property specifies the text that is shown when nothing is typed in the textfield. 14 | - The text property returns the content of the textfield as-is (as opposed to the {calendar} property). 15 | - The immediate property causes values selected in the popup (in show time mode) to be written to the textfield immediately (without confirming or closing the popup). -------------------------------------------------------------------------------- /jfxtras-controls/src/main/asciidoc/scene/control/Calendar_immutability.adoc: -------------------------------------------------------------------------------- 1 | Important note: 2 | The calendar is treated (and should have been implemented in Java) as immutable. 3 | That means the properties of Calendar are not used to modify its value or listen for changes. 4 | {control} will create a new instance (clone) each time a new value is put in the calendar property. 5 | -------------------------------------------------------------------------------- /jfxtras-controls/src/main/java/jfxtras/internal/scene/control/skin/ListViewSkinJFXtras.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2011-2024, JFXtras 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | * notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * Neither the name of the organization nor the 13 | * names of its contributors may be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | * DISCLAIMED. IN NO EVENT SHALL JFXTRAS BE LIABLE FOR ANY 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | package jfxtras.internal.scene.control.skin; 28 | 29 | /** 30 | * We need to use a custom skin, so we can access the protected flow variable. 31 | * @author Tom Eugelink 32 | * 33 | */ 34 | public class ListViewSkinJFXtras // TODOJAVA9 extends ListViewSkin 35 | { 36 | public ListViewSkinJFXtras(javafx.scene.control.ListView skinnable) 37 | { 38 | // TODOJAVA9 super(skinnable); 39 | } 40 | 41 | public void refresh() 42 | { 43 | // make the skin recreate all the cells 44 | // TODOJAVA9 flow.recreateCells(); 45 | } 46 | } -------------------------------------------------------------------------------- /jfxtras-controls/src/main/java/jfxtras/internal/scene/control/skin/TextFieldSkin.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2011-2024, JFXtras 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | * notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * Neither the name of the organization nor the 13 | * names of its contributors may be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | * DISCLAIMED. IN NO EVENT SHALL JFXTRAS BE LIABLE FOR ANY 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | package jfxtras.internal.scene.control.skin; 28 | 29 | import javafx.scene.control.TextField; 30 | 31 | /** 32 | * Interface for all skin using a TextField in order to allow controls to select 33 | * all characters. 34 | * 35 | * @author samir.hadzic 36 | */ 37 | public interface TextFieldSkin { 38 | 39 | /** 40 | * Make the call to {@link TextField#selectAll() }. 41 | */ 42 | public void selectAll(); 43 | } 44 | -------------------------------------------------------------------------------- /jfxtras-controls/src/main/java/jfxtras/scene/control/builders/AbstractBuilder.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2011-2024, JFXtras 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | * notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * Neither the name of the organization nor the 13 | * names of its contributors may be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | * DISCLAIMED. IN NO EVENT SHALL JFXTRAS BE LIABLE FOR ANY 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | package jfxtras.scene.control.builders; 28 | 29 | import javafx.scene.Node; 30 | 31 | /** 32 | * @author Tom Eugelink 33 | * 34 | */ 35 | public class AbstractBuilder 36 | { 37 | /** Id */ 38 | public String getId() { return null; } // dummy, just to make it Java Bean compatible 39 | public void setId(String value) { this.id = value; } 40 | private String id = null; 41 | 42 | 43 | /** 44 | * Implementation of Builder interface 45 | */ 46 | public void applyCommonProperties(Node node) 47 | { 48 | if (id != null) { 49 | node.setId(id); 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /jfxtras-controls/src/main/resources/META-INF/services/jfxtras.fxml.BuilderService: -------------------------------------------------------------------------------- 1 | jfxtras.scene.control.builders.CalendarPickerBuilder 2 | jfxtras.scene.control.builders.CalendarTextFieldBuilder 3 | jfxtras.scene.control.builders.CalendarTimePickerBuilder 4 | jfxtras.scene.control.builders.CalendarTimeTextFieldBuilder 5 | jfxtras.scene.control.builders.LocalDatePickerBuilder 6 | jfxtras.scene.control.builders.LocalDateTextFieldBuilder 7 | jfxtras.scene.control.builders.LocalDateTimePickerBuilder 8 | jfxtras.scene.control.builders.LocalDateTimeTextFieldBuilder 9 | jfxtras.scene.control.builders.LocalTimePickerBuilder 10 | jfxtras.scene.control.builders.LocalTimeTextFieldBuilder 11 | -------------------------------------------------------------------------------- /jfxtras-controls/src/main/resources/jfxtras/internal/scene/control/AccordionPane.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFXtras/jfxtras/694a25b613b733350f8bce29a7702e50e7c10525/jfxtras-controls/src/main/resources/jfxtras/internal/scene/control/AccordionPane.css -------------------------------------------------------------------------------- /jfxtras-controls/src/main/resources/jfxtras/internal/scene/control/CalendarPicker.css: -------------------------------------------------------------------------------- 1 | /* basic settings */ 2 | .CalendarPicker { 3 | } 4 | 5 | .CalendarPickerControlSkin { 6 | } 7 | 8 | 9 | 10 | .CalendarPickerControlSkin .weeknumber { 11 | } 12 | 13 | .CalendarPickerControlSkin .non-weekend { 14 | } 15 | 16 | .CalendarPickerControlSkin .weekend { 17 | -fx-text-fill: -fx-accent; 18 | } 19 | 20 | .CalendarPickerControlSkin .day-button { 21 | } 22 | 23 | /* highlight today */ 24 | .CalendarPickerControlSkin .today { 25 | -fx-color: DARKGRAY; 26 | } 27 | 28 | .CalendarPickerControlSkin .today-button { 29 | -fx-cursor: hand; 30 | -fx-background-color: transparent; 31 | -fx-padding: 0 0 0 0; 32 | } 33 | 34 | /* highlight today */ 35 | .CalendarPickerControlSkin .highlight { 36 | -fx-font-weight: bold; 37 | -fx-font-style: italic; 38 | } 39 | 40 | .CalendarPicker .ListSpinner { 41 | /* -fxx-arrow-position:SPLIT; */ 42 | /* -fxx-arrow-direction:VERTICAL; */ 43 | /* -fxx-value-alignment:CENTER; */ 44 | } 45 | -------------------------------------------------------------------------------- /jfxtras-controls/src/main/resources/jfxtras/internal/scene/control/CalendarTextField.css: -------------------------------------------------------------------------------- 1 | /* basic settings */ 2 | .CalendarTextField { 3 | } 4 | 5 | .CalendarTextFieldSkin .icon { 6 | -fx-image: url("skin/clock.png"); 7 | } 8 | 9 | .CalendarTextFieldSkin .icon:disabled { 10 | -fx-image: url("skin/clock-grey.png"); 11 | } 12 | 13 | .CalendarTextFieldSkin_popup { 14 | -fx-background-color: -fx-shadow-highlight-color, -fx-outer-border, -fx-inner-border, -fx-body-color; 15 | -fx-background-insets: 0 0 -1 0,0,1,2; 16 | -fx-background-radius: 5,5,4,3; 17 | -fx-padding: 0.766667em 0.733333em 0.75em 0.733333em; 18 | -fx-text-fill: -fx-text-base-color; 19 | } 20 | 21 | .CalendarTextFieldSkin_popup .close-icon { 22 | -fx-image: url("skin/cancel.png"); 23 | } 24 | 25 | .CalendarTextFieldSkin_popup .accept-icon { 26 | -fx-image: url("skin/accept.png"); 27 | } 28 | -------------------------------------------------------------------------------- /jfxtras-controls/src/main/resources/jfxtras/internal/scene/control/CalendarTimePicker.css: -------------------------------------------------------------------------------- 1 | /* basic settings */ 2 | .CalendarTimePicker { 3 | } 4 | 5 | /* skin level 6 | .CalendarTimePickerSkin { 7 | } 8 | */ 9 | 10 | .CalendarTimePickerSkin .timeLabel { 11 | -fx-font-size: 2.0em; 12 | -fx-opacity: 0.5; 13 | } 14 | 15 | -------------------------------------------------------------------------------- /jfxtras-controls/src/main/resources/jfxtras/internal/scene/control/CalendarTimeTextField.css: -------------------------------------------------------------------------------- 1 | /* basic settings */ 2 | .CalendarTimeTextField { 3 | } 4 | 5 | .CalendarTimeTextFieldSkin .icon { 6 | -fx-image: url("skin/clock.png"); 7 | } 8 | 9 | .CalendarTimeTextFieldSkin .icon:disabled { 10 | -fx-image: url("skin/clock-grey.png"); 11 | } 12 | 13 | .CalendarTimeTextFieldSkin_popup { 14 | -fx-background-color: -fx-shadow-highlight-color, -fx-outer-border, -fx-inner-border, -fx-body-color; 15 | -fx-background-insets: 0 0 -1 0,0,1,2; 16 | -fx-background-radius: 5,5,4,3; 17 | -fx-padding: 0.766667em 0.733333em 0.75em 0.733333em; 18 | -fx-text-fill: -fx-text-base-color; 19 | } 20 | 21 | .CalendarTimeTextFieldSkin_popup .close-icon { 22 | -fx-image: url("skin/accept.png"); 23 | } -------------------------------------------------------------------------------- /jfxtras-controls/src/main/resources/jfxtras/internal/scene/control/ListSpinner.css: -------------------------------------------------------------------------------- 1 | /* basic settings */ 2 | .ListSpinner { 3 | -fx-background-color: -fx-shadow-highlight-color, -fx-outer-border, -fx-inner-border, -fx-body-color; 4 | -fx-background-insets: 0 0 -1 0, 0, 1, 2; 5 | -fx-background-radius: 5, 5, 4, 3; 6 | -fx-padding: 0.266667em 0.233333em 0.25em 0.233333em; 7 | -fx-text-fill: -fx-text-base-color; 8 | } 9 | 10 | .ListSpinner:hover { 11 | -fx-color: -fx-hover-base; 12 | } 13 | 14 | .ListSpinner:focused { 15 | -fx-color: -fx-base; 16 | -fx-background-color: -fx-focus-color, -fx-outer-border, -fx-inner-border, -fx-body-color; 17 | -fx-background-insets: -1.4, 0, 1, 2; 18 | -fx-background-radius: 6.4, 5, 4, 3; 19 | } 20 | 21 | .ListSpinner .valuePane { 22 | -fx-padding: 0.0em 0.2em 0.0em 0.2em; 23 | } 24 | 25 | .ListSpinner .left-arrow { 26 | -fx-shape: "M4,-4 L0,0 L4,4 Z"; 27 | -fx-scale-shape: false; 28 | -fx-padding: 8; 29 | } 30 | .ListSpinner .right-arrow { 31 | -fx-shape: "M0,-4 L4,0 L0,4 Z"; 32 | -fx-scale-shape: false; 33 | -fx-padding: 8; 34 | } 35 | .ListSpinner .down-arrow { 36 | -fx-shape: "M-4,-2 L0,2 L4,-2 Z"; 37 | -fx-scale-shape: false; 38 | -fx-padding: 8; 39 | } 40 | .ListSpinner .up-arrow { 41 | -fx-shape: "M4,2 L-4,2 L0,-2 Z"; 42 | -fx-scale-shape: false; 43 | -fx-padding: 8; 44 | } 45 | .ListSpinner .idle { 46 | -fx-background-color: -fx-mark-color; 47 | } 48 | .ListSpinner .clicked { 49 | -fx-background-color: -fx-focus-color; 50 | } 51 | -------------------------------------------------------------------------------- /jfxtras-controls/src/main/resources/jfxtras/internal/scene/control/skin/accept.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFXtras/jfxtras/694a25b613b733350f8bce29a7702e50e7c10525/jfxtras-controls/src/main/resources/jfxtras/internal/scene/control/skin/accept.png -------------------------------------------------------------------------------- /jfxtras-controls/src/main/resources/jfxtras/internal/scene/control/skin/cancel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFXtras/jfxtras/694a25b613b733350f8bce29a7702e50e7c10525/jfxtras-controls/src/main/resources/jfxtras/internal/scene/control/skin/cancel.png -------------------------------------------------------------------------------- /jfxtras-controls/src/main/resources/jfxtras/internal/scene/control/skin/clock-grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFXtras/jfxtras/694a25b613b733350f8bce29a7702e50e7c10525/jfxtras-controls/src/main/resources/jfxtras/internal/scene/control/skin/clock-grey.png -------------------------------------------------------------------------------- /jfxtras-controls/src/main/resources/jfxtras/internal/scene/control/skin/clock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFXtras/jfxtras/694a25b613b733350f8bce29a7702e50e7c10525/jfxtras-controls/src/main/resources/jfxtras/internal/scene/control/skin/clock.png -------------------------------------------------------------------------------- /jfxtras-controls/src/test/java/jfxtras/scene/control/trial/AlternateCalendarIcon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFXtras/jfxtras/694a25b613b733350f8bce29a7702e50e7c10525/jfxtras-controls/src/test/java/jfxtras/scene/control/trial/AlternateCalendarIcon.jpg -------------------------------------------------------------------------------- /jfxtras-controls/src/test/java/jfxtras/scene/control/trial/AlternateCalendarIconDisabled.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JFXtras/jfxtras/694a25b613b733350f8bce29a7702e50e7c10525/jfxtras-controls/src/test/java/jfxtras/scene/control/trial/AlternateCalendarIconDisabled.jpg -------------------------------------------------------------------------------- /jfxtras-controls/src/test/java/jfxtras/scene/control/trial/ListSpinnerTrial1.css: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (c) 2011-2024, JFXtras 3 | * All rights reserved. 4 | * 5 | * Redistribution and use in source and binary forms, with or without 6 | * modification, are permitted provided that the following conditions are met: 7 | * Redistributions of source code must retain the above copyright 8 | * notice, this list of conditions and the following disclaimer. 9 | * Redistributions in binary form must reproduce the above copyright 10 | * notice, this list of conditions and the following disclaimer in the 11 | * documentation and/or other materials provided with the distribution. 12 | * Neither the name of the organization nor the 13 | * names of its contributors may be used to endorse or promote products 14 | * derived from this software without specific prior written permission. 15 | * 16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 | * DISCLAIMED. IN NO EVENT SHALL JFXTRAS BE LIABLE FOR ANY 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 | */ 27 | #TheSpinner .value { 28 | -fx-text-fill: RED; 29 | } 30 | 31 | #TheEditableSpinner .value { 32 | -fx-text-fill: RED; 33 | } 34 | 35 | #TheSpinner .readonly { 36 | -fx-font-size: 16px; 37 | } 38 | 39 | #TheEditableSpinner .editable { 40 | -fx-font-weight: bold; 41 | } 42 | -------------------------------------------------------------------------------- /jfxtras-controls/src/test/resources/jfxtras/scene/control/test/CalendarPickerFXMLTest.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /jfxtras-controls/src/test/resources/jfxtras/scene/control/test/CalendarTextFieldFXMLTest.fxml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 19 |