Showing preview only (2,633K chars total). Download the full file or copy to clipboard to get everything.
Repository: dlemmermann/CalendarFX
Branch: master
Commit: 4ce59a8e4ee1
Files: 347
Total size: 2.4 MB
Directory structure:
gitextract_uppttoi3/
├── .github/
│ └── workflows/
│ ├── build.yml
│ ├── codeql.yml
│ └── release.yml
├── .gitignore
├── .mvn/
│ └── wrapper/
│ ├── maven-wrapper.jar
│ └── maven-wrapper.properties
├── CHANGELOG.md
├── CHANGES.txt
├── CODE_OF_CONDUCT.md
├── CalendarFXApp/
│ ├── .gitignore
│ ├── pom.xml
│ └── src/
│ └── main/
│ └── java/
│ ├── com/
│ │ └── calendarfx/
│ │ └── app/
│ │ ├── CalendarApp.java
│ │ ├── CalendarAppAtlantaFX.java
│ │ ├── CalendarAppLauncher.java
│ │ └── MonthViewApp.java
│ └── module-info.java
├── CalendarFXGoogle/
│ ├── .gitignore
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ ├── com/
│ │ │ │ └── calendarfx/
│ │ │ │ └── google/
│ │ │ │ ├── GoogleCalendarApp.java
│ │ │ │ ├── converter/
│ │ │ │ │ ├── BeanConverter.java
│ │ │ │ │ ├── BidirectionalBeanConverter.java
│ │ │ │ │ ├── CalendarListEntryToGoogleCalendarConverter.java
│ │ │ │ │ ├── EventToGoogleEntryConverter.java
│ │ │ │ │ ├── GoogleCalendarToCalendarConverter.java
│ │ │ │ │ ├── GoogleCalendarToCalendarListEntryConverter.java
│ │ │ │ │ └── GoogleEntryToEventConverter.java
│ │ │ │ ├── model/
│ │ │ │ │ ├── GoogleAccount.java
│ │ │ │ │ ├── GoogleCalendar.java
│ │ │ │ │ ├── GoogleCalendarEvent.java
│ │ │ │ │ ├── GoogleEntry.java
│ │ │ │ │ ├── GoogleEntryReminder.java
│ │ │ │ │ └── IGoogleCalendarSearchTextProvider.java
│ │ │ │ ├── service/
│ │ │ │ │ ├── BeanConverterService.java
│ │ │ │ │ ├── GoogleCalendarService.java
│ │ │ │ │ ├── GoogleConnector.java
│ │ │ │ │ ├── GoogleGeocoderService.java
│ │ │ │ │ └── SecurityService.java
│ │ │ │ └── view/
│ │ │ │ ├── GoogleCalendarAppView.java
│ │ │ │ ├── data/
│ │ │ │ │ ├── GoogleCalendarData.java
│ │ │ │ │ ├── IGoogleCalendarDataProvider.java
│ │ │ │ │ └── Slice.java
│ │ │ │ ├── log/
│ │ │ │ │ ├── ActionType.java
│ │ │ │ │ ├── LogItem.java
│ │ │ │ │ ├── LogPane.java
│ │ │ │ │ └── StatusType.java
│ │ │ │ ├── popover/
│ │ │ │ │ ├── GoogleEntryAttendeesView.java
│ │ │ │ │ ├── GoogleEntryDetailsView.java
│ │ │ │ │ ├── GoogleEntryGMapsFXView.java
│ │ │ │ │ └── GoogleEntryPopOverContentPane.java
│ │ │ │ ├── task/
│ │ │ │ │ ├── DeleteEntryTask.java
│ │ │ │ │ ├── GoogleTask.java
│ │ │ │ │ ├── InsertCalendarTask.java
│ │ │ │ │ ├── InsertEntryTask.java
│ │ │ │ │ ├── LoadAllCalendarsTask.java
│ │ │ │ │ ├── LoadEntriesBySliceTask.java
│ │ │ │ │ ├── LoadEntriesByTextTask.java
│ │ │ │ │ ├── MoveEntryTask.java
│ │ │ │ │ ├── RefreshCalendarsTask.java
│ │ │ │ │ └── UpdateEntryTask.java
│ │ │ │ └── thread/
│ │ │ │ ├── CalendarViewTimeUpdateThread.java
│ │ │ │ ├── GoogleAutoRefreshThread.java
│ │ │ │ ├── GoogleNotificationPopupThread.java
│ │ │ │ └── GoogleTaskExecutor.java
│ │ │ ├── impl/
│ │ │ │ └── com/
│ │ │ │ └── calendarfx/
│ │ │ │ └── google/
│ │ │ │ └── view/
│ │ │ │ ├── GoogleCalendarAppViewSkin.java
│ │ │ │ ├── GoogleCalendarCreateView.java
│ │ │ │ ├── GoogleCalendarDataManager.java
│ │ │ │ ├── GoogleCalendarSearchTextManager.java
│ │ │ │ ├── GoogleSyncManager.java
│ │ │ │ └── log/
│ │ │ │ └── LogPaneSkin.java
│ │ │ └── module-info.java
│ │ └── resources/
│ │ └── com/
│ │ └── calendarfx/
│ │ └── google/
│ │ ├── service/
│ │ │ ├── StoredCredential
│ │ │ └── client-secrets.json
│ │ └── view/
│ │ └── popover/
│ │ └── google-popover.css
│ └── test/
│ └── java/
│ └── com/
│ └── calendarfx/
│ └── google/
│ └── view/
│ └── popover/
│ └── HelloGoogleEntryPopOverContentPane.java
├── CalendarFXResourceApp/
│ ├── .gitignore
│ ├── pom.xml
│ └── src/
│ └── main/
│ └── java/
│ ├── com/
│ │ └── calendarfx/
│ │ └── resource/
│ │ └── app/
│ │ ├── ResourceCalendarApp.java
│ │ └── ResourceCalendarAppLauncher.java
│ └── module-info.java
├── CalendarFXSampler/
│ ├── .gitignore
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ ├── com/
│ │ │ └── calendarfx/
│ │ │ └── demo/
│ │ │ ├── CalendarFXDateControlSample.java
│ │ │ ├── CalendarFXSample.java
│ │ │ ├── CalendarFXSampler.java
│ │ │ ├── CalendarFXSamplerProject.java
│ │ │ ├── CalendarFXSamplerWelcome.java
│ │ │ ├── entries/
│ │ │ │ ├── HelloAllDayEntryView.java
│ │ │ │ ├── HelloDayEntryView.java
│ │ │ │ ├── HelloEntryViewBase.java
│ │ │ │ └── HelloMonthEntryView.java
│ │ │ ├── pages/
│ │ │ │ ├── HelloDayPage.java
│ │ │ │ ├── HelloMonthPage.java
│ │ │ │ ├── HelloWeekPage.java
│ │ │ │ └── HelloYearPage.java
│ │ │ ├── performance/
│ │ │ │ └── HelloPerformance.java
│ │ │ ├── popover/
│ │ │ │ ├── HelloEntryDetailsView.java
│ │ │ │ ├── HelloEntryHeaderView.java
│ │ │ │ └── HelloPopOverContentPane.java
│ │ │ ├── print/
│ │ │ │ ├── HelloOptionsView.java
│ │ │ │ ├── HelloPaperView.java
│ │ │ │ ├── HelloPreviewPane.java
│ │ │ │ ├── HelloPrintView.java
│ │ │ │ ├── HelloSettingsView.java
│ │ │ │ ├── HelloTimeRangeField.java
│ │ │ │ └── HelloTimeRangeView.java
│ │ │ └── views/
│ │ │ ├── HelloAgendaView.java
│ │ │ ├── HelloAllDayView.java
│ │ │ ├── HelloAvailabilityCalendar.java
│ │ │ ├── HelloCalendar.java
│ │ │ ├── HelloCalendarHeaderView.java
│ │ │ ├── HelloCalendarSelector.java
│ │ │ ├── HelloCalendarView.java
│ │ │ ├── HelloDayView.java
│ │ │ ├── HelloDetailedDayView.java
│ │ │ ├── HelloDetailedWeekView.java
│ │ │ ├── HelloMonthSheetView.java
│ │ │ ├── HelloMonthView.java
│ │ │ ├── HelloRecurrenceView.java
│ │ │ ├── HelloResourcesCalendarView.java
│ │ │ ├── HelloScrollingDayView.java
│ │ │ ├── HelloScrollingTimeScaleView.java
│ │ │ ├── HelloSourceGridView.java
│ │ │ ├── HelloSourceView.java
│ │ │ ├── HelloTimeField.java
│ │ │ ├── HelloTimeScaleView.java
│ │ │ ├── HelloTimezones.java
│ │ │ ├── HelloTopLayer.java
│ │ │ ├── HelloVisualBounds.java
│ │ │ ├── HelloWeekDayHeaderView.java
│ │ │ ├── HelloWeekDayView.java
│ │ │ ├── HelloWeekFieldsView.java
│ │ │ ├── HelloWeekTimeScaleView.java
│ │ │ ├── HelloWeekView.java
│ │ │ ├── HelloYearMonthView.java
│ │ │ ├── HelloYearView.java
│ │ │ └── resources/
│ │ │ └── HelloResourcesView.java
│ │ └── module-info.java
│ └── resources/
│ └── META-INF/
│ └── services/
│ └── fxsampler.FXSamplerProject
├── CalendarFXSchedulerApp/
│ ├── .gitignore
│ ├── pom.xml
│ └── src/
│ └── main/
│ └── java/
│ ├── com/
│ │ └── calendarfx/
│ │ └── scheduler/
│ │ ├── SchedulerApp.java
│ │ └── SchedulerAppLauncher.java
│ └── module-info.java
├── CalendarFXView/
│ ├── .gitignore
│ ├── logging.properties
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── asciidoc/
│ │ │ └── manual.adoc
│ │ ├── java/
│ │ │ ├── com/
│ │ │ │ └── calendarfx/
│ │ │ │ ├── model/
│ │ │ │ │ ├── Calendar.java
│ │ │ │ │ ├── CalendarEvent.java
│ │ │ │ │ ├── CalendarSource.java
│ │ │ │ │ ├── Entry.java
│ │ │ │ │ ├── Interval.java
│ │ │ │ │ ├── IntervalTree.java
│ │ │ │ │ ├── LoadEvent.java
│ │ │ │ │ ├── Marker.java
│ │ │ │ │ ├── Resource.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── util/
│ │ │ │ │ ├── CalendarFX.java
│ │ │ │ │ ├── LoggingDomain.java
│ │ │ │ │ ├── LoggingFormatter.java
│ │ │ │ │ ├── ViewHelper.java
│ │ │ │ │ ├── WeakList.java
│ │ │ │ │ └── package-info.java
│ │ │ │ └── view/
│ │ │ │ ├── AgendaView.java
│ │ │ │ ├── AllDayEntryView.java
│ │ │ │ ├── AllDayView.java
│ │ │ │ ├── ButtonBar.java
│ │ │ │ ├── CalendarFXControl.java
│ │ │ │ ├── CalendarHeaderView.java
│ │ │ │ ├── CalendarSelector.java
│ │ │ │ ├── CalendarView.java
│ │ │ │ ├── ContextMenuProvider.java
│ │ │ │ ├── CreateAndDeleteHandler.java
│ │ │ │ ├── DateControl.java
│ │ │ │ ├── DateSelectionModel.java
│ │ │ │ ├── DayEntryView.java
│ │ │ │ ├── DayView.java
│ │ │ │ ├── DayViewBase.java
│ │ │ │ ├── DeleteHandler.java
│ │ │ │ ├── DetailedDayView.java
│ │ │ │ ├── DetailedWeekView.java
│ │ │ │ ├── DeveloperConsole.java
│ │ │ │ ├── DraggedEntry.java
│ │ │ │ ├── EntryViewBase.java
│ │ │ │ ├── Messages.java
│ │ │ │ ├── MonthEntryView.java
│ │ │ │ ├── MonthSheetView.java
│ │ │ │ ├── MonthView.java
│ │ │ │ ├── MonthViewBase.java
│ │ │ │ ├── RecurrenceView.java
│ │ │ │ ├── RequestEvent.java
│ │ │ │ ├── ResourceCalendarView.java
│ │ │ │ ├── ResourcesView.java
│ │ │ │ ├── SearchResultView.java
│ │ │ │ ├── SourceGridView.java
│ │ │ │ ├── SourceView.java
│ │ │ │ ├── TimeField.java
│ │ │ │ ├── TimeScaleView.java
│ │ │ │ ├── VirtualGrid.java
│ │ │ │ ├── WeekDayHeaderView.java
│ │ │ │ ├── WeekDayView.java
│ │ │ │ ├── WeekFieldsView.java
│ │ │ │ ├── WeekTimeScaleView.java
│ │ │ │ ├── WeekView.java
│ │ │ │ ├── YearMonthView.java
│ │ │ │ ├── YearView.java
│ │ │ │ ├── ZonedDateTimeProvider.java
│ │ │ │ ├── package-info.java
│ │ │ │ ├── page/
│ │ │ │ │ ├── DayPage.java
│ │ │ │ │ ├── MonthPage.java
│ │ │ │ │ ├── PageBase.java
│ │ │ │ │ ├── WeekPage.java
│ │ │ │ │ ├── YearPage.java
│ │ │ │ │ └── package-info.java
│ │ │ │ ├── popover/
│ │ │ │ │ ├── DatePopOver.java
│ │ │ │ │ ├── EntriesPane.java
│ │ │ │ │ ├── EntryDetailsView.java
│ │ │ │ │ ├── EntryHeaderView.java
│ │ │ │ │ ├── EntryMapView.java
│ │ │ │ │ ├── EntryPopOverContentPane.java
│ │ │ │ │ ├── EntryPopOverPane.java
│ │ │ │ │ ├── EntryPropertiesView.java
│ │ │ │ │ ├── PopOverContentPane.java
│ │ │ │ │ ├── PopOverTitledPane.java
│ │ │ │ │ ├── RecurrencePopup.java
│ │ │ │ │ ├── ZoneIdComparator.java
│ │ │ │ │ └── package-info.java
│ │ │ │ └── print/
│ │ │ │ ├── OptionsView.java
│ │ │ │ ├── PaperView.java
│ │ │ │ ├── PreviewPane.java
│ │ │ │ ├── PrintView.java
│ │ │ │ ├── PrintablePage.java
│ │ │ │ ├── SettingsView.java
│ │ │ │ ├── TimeRangeField.java
│ │ │ │ ├── TimeRangeView.java
│ │ │ │ ├── ViewType.java
│ │ │ │ ├── ViewTypeControl.java
│ │ │ │ ├── ZoomPane.java
│ │ │ │ └── package-info.java
│ │ │ ├── impl/
│ │ │ │ └── com/
│ │ │ │ └── calendarfx/
│ │ │ │ └── view/
│ │ │ │ ├── AgendaViewSkin.java
│ │ │ │ ├── AllDayEntryViewSkin.java
│ │ │ │ ├── AllDayViewSkin.java
│ │ │ │ ├── AutoScrollPane.java
│ │ │ │ ├── ButtonBarSkin.java
│ │ │ │ ├── CalendarHeaderViewSkin.java
│ │ │ │ ├── CalendarPropertySheet.java
│ │ │ │ ├── CalendarSelectorSkin.java
│ │ │ │ ├── CalendarViewSkin.java
│ │ │ │ ├── DataLoader.java
│ │ │ │ ├── DateControlSkin.java
│ │ │ │ ├── DayEntryViewSkin.java
│ │ │ │ ├── DayViewBaseSkin.java
│ │ │ │ ├── DayViewEditController.java
│ │ │ │ ├── DayViewScrollPane.java
│ │ │ │ ├── DayViewSkin.java
│ │ │ │ ├── DetailedDayViewSkin.java
│ │ │ │ ├── DetailedWeekViewSkin.java
│ │ │ │ ├── DeveloperConsoleSkin.java
│ │ │ │ ├── LoadDataSettingsProvider.java
│ │ │ │ ├── MonthEntryViewSkin.java
│ │ │ │ ├── MonthSheetViewSkin.java
│ │ │ │ ├── MonthViewSkin.java
│ │ │ │ ├── NavigateDateView.java
│ │ │ │ ├── NumericTextField.java
│ │ │ │ ├── RecurrenceViewSkin.java
│ │ │ │ ├── ResourceCalendarViewSkin.java
│ │ │ │ ├── ResourcesViewContainer.java
│ │ │ │ ├── ResourcesViewContainerSkin.java
│ │ │ │ ├── ResourcesViewSkin.java
│ │ │ │ ├── SearchResultViewSkin.java
│ │ │ │ ├── SourceGridViewSkin.java
│ │ │ │ ├── SourceViewSkin.java
│ │ │ │ ├── TimeFieldSkin.java
│ │ │ │ ├── TimeScaleViewSkin.java
│ │ │ │ ├── WeekDayHeaderViewSkin.java
│ │ │ │ ├── WeekDayViewSkin.java
│ │ │ │ ├── WeekFieldsViewSkin.java
│ │ │ │ ├── WeekTimeScaleViewSkin.java
│ │ │ │ ├── WeekViewSkin.java
│ │ │ │ ├── YearMonthViewSkin.java
│ │ │ │ ├── YearViewSkin.java
│ │ │ │ ├── ZoneIdStringConverter.java
│ │ │ │ ├── page/
│ │ │ │ │ ├── DayPageSkin.java
│ │ │ │ │ ├── MonthPageSkin.java
│ │ │ │ │ ├── PageBaseSkin.java
│ │ │ │ │ ├── WeekPageSkin.java
│ │ │ │ │ └── YearPageSkin.java
│ │ │ │ ├── popover/
│ │ │ │ │ └── RecurrencePopupSkin.java
│ │ │ │ ├── print/
│ │ │ │ │ ├── OptionsViewSkin.java
│ │ │ │ │ ├── PaperViewSkin.java
│ │ │ │ │ ├── PreviewPaneSkin.java
│ │ │ │ │ ├── PrintViewSkin.java
│ │ │ │ │ ├── PrintablePageSkin.java
│ │ │ │ │ ├── SettingsViewSkin.java
│ │ │ │ │ ├── TimeRangeFieldSkin.java
│ │ │ │ │ ├── TimeRangeViewSkin.java
│ │ │ │ │ └── ZoomPaneSkin.java
│ │ │ │ └── util/
│ │ │ │ ├── Placement.java
│ │ │ │ ├── TimeBoundsCluster.java
│ │ │ │ ├── TimeBoundsColumn.java
│ │ │ │ ├── TimeBoundsResolver.java
│ │ │ │ ├── Util.java
│ │ │ │ ├── VisualBoundsCluster.java
│ │ │ │ ├── VisualBoundsColumn.java
│ │ │ │ └── VisualBoundsResolver.java
│ │ │ └── module-info.java
│ │ └── resources/
│ │ └── com/
│ │ └── calendarfx/
│ │ ├── util/
│ │ │ ├── public_key.properties
│ │ │ └── version.properties
│ │ └── view/
│ │ ├── atlantafx.css
│ │ ├── calendar.css
│ │ ├── messages.properties
│ │ ├── messages_de.properties
│ │ ├── messages_es.properties
│ │ ├── messages_fr.properties
│ │ ├── messages_it.properties
│ │ ├── messages_pt_BR.properties
│ │ └── messages_sk.properties
│ └── test/
│ └── java/
│ └── com/
│ └── calendarfx/
│ ├── model/
│ │ ├── CalendarTest.java
│ │ ├── EntryTest.java
│ │ └── IntervalTest.java
│ └── view/
│ └── DateSelectionModelTests.java
├── CalendarFXWeather/
│ ├── .gitignore
│ ├── pom.xml
│ └── src/
│ └── main/
│ └── java/
│ ├── com/
│ │ └── calendarfx/
│ │ └── weather/
│ │ ├── WeatherApp.java
│ │ └── WeatherAppLauncher.java
│ └── module-info.java
├── CalendarFXiCal/
│ ├── .gitignore
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ ├── com/
│ │ │ └── calendarfx/
│ │ │ └── ical/
│ │ │ ├── ICalCalendarApp.java
│ │ │ ├── ICalCalendarAppLauncher.java
│ │ │ ├── ICalRepository.java
│ │ │ ├── model/
│ │ │ │ ├── ICalCalendar.java
│ │ │ │ └── ICalCalendarEntry.java
│ │ │ └── view/
│ │ │ ├── ICalWebSourceFactory.java
│ │ │ └── ICalWebSourcePane.java
│ │ └── module-info.java
│ └── resources/
│ └── com/
│ └── calendarfx/
│ └── ical/
│ └── dialog.css
├── LICENSE
├── README.md
├── docs/
│ └── index.html
├── formatter-settings.xml
├── jreleaser.yml
├── mvnw
├── mvnw.cmd
├── pom.xml
├── scenicView.properties
└── settings.xml
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/workflows/build.yml
================================================
name: Build
on:
push:
branches:
- master-11
pull_request:
types: [opened, synchronize, reopened]
jobs:
build:
name: Build
runs-on: ubuntu-latest
if: startsWith(github.event.head_commit.message, '🏁 Releasing version') != true
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: 21
distribution: 'zulu'
- name: Cache Maven packages
uses: actions/cache@v4
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: Build and analyze
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
run: ./mvnw -B verify
================================================
FILE: .github/workflows/codeql.yml
================================================
name: "CodeQL"
on:
push:
branches: [ "master-11" ]
pull_request:
branches: [ "master-11" ]
schedule:
- cron: "46 7 * * 1"
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ java ]
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
queries: +security-and-quality
- name: Autobuild
uses: github/codeql-action/autobuild@v2
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2
with:
category: "/language:${{ matrix.language }}"
================================================
FILE: .github/workflows/release.yml
================================================
name: Release
on:
workflow_dispatch:
inputs:
version:
description: "Release version"
required: true
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- name: 'Set up Java'
uses: actions/setup-java@v4
with:
java-version: 21
distribution: 'zulu'
server-id: central
server-username: MAVEN_USERNAME
server-password: MAVEN_CENTRAL_TOKEN
gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }}
gpg-passphrase: MAVEN_GPG_PASSPHRASE
- name: 'Cache Maven packages'
uses: actions/cache@v4
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: Update version
id: version
run: |
VERSION=${{ github.event.inputs.version }}
echo "Updating POMs to version $VERSION"
./mvnw -B versions:set versions:commit -DnewVersion=$VERSION
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
git config --global user.name "GitHub Action"
git commit -a -m "🏁 Releasing version $VERSION"
git push origin HEAD:master-11
- name: Release to Maven Central
env:
MAVEN_USERNAME: ${{ secrets.PUBLISHER_PORTAL_USERNAME }}
MAVEN_CENTRAL_TOKEN: ${{ secrets.PUBLISHER_PORTAL_TOKEN }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
run: |
export GPG_TTY=$(tty)
./mvnw --no-transfer-progress -B --file pom.xml \
-Drepository.url=https://${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git \
-Dmaven.site.skip=true -Drelease=true deploy -s ./settings.xml
- name: Release to GitHub
env:
JRELEASER_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: ./mvnw -B --file pom.xml -Prelease -pl :calendar jreleaser:full-release
- name: JReleaser output
if: always()
uses: actions/upload-artifact@v4
with:
name: jreleaser-logs
path: |
target/jreleaser/trace.log
target/jreleaser/output.properties
================================================
FILE: .gitignore
================================================
/target/
.idea
*.iml
.project
*.prefs
CalendarFXApp/.classpath
*.classpath
*.log
================================================
FILE: .mvn/wrapper/maven-wrapper.properties
================================================
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.10/apache-maven-3.9.10-bin.zip
wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.3.2/maven-wrapper-3.3.2.jar
================================================
FILE: CHANGELOG.md
================================================
# Change Log
## [11.8.3](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/tree/11.8.3) (2019-10-23)
[Full Changelog](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/compare/11.8.2...11.8.3)
**Closed issues:**
- Missing icons [\#57](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/issues/57)
- Adapt iCal4j recurrence [\#50](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/issues/50)
**Merged pull requests:**
- Fix StringIndexOutOfBoundsException [\#63](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/pull/63) ([saarmbruster](https://github.com/saarmbruster))
- Fix page without transition [\#61](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/pull/61) ([saarmbruster](https://github.com/saarmbruster))
- Improve start-up performance [\#60](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/pull/60) ([saarmbruster](https://github.com/saarmbruster))
## [11.8.2](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/tree/11.8.2) (2019-10-08)
[Full Changelog](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/compare/11.8.1...11.8.2)
**Closed issues:**
- Merge updates from master into master-11 [\#59](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/issues/59)
## [11.8.1](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/tree/11.8.1) (2019-10-01)
[Full Changelog](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/compare/11.8.0...11.8.1)
## [11.8.0](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/tree/11.8.0) (2019-09-27)
[Full Changelog](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/compare/11.7.0...11.8.0)
**Merged pull requests:**
- Add missing German translation [\#58](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/pull/58) ([saarmbruster](https://github.com/saarmbruster))
- Fix typo in private method name [\#56](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/pull/56) ([saarmbruster](https://github.com/saarmbruster))
- Add listener to dayPageLayout [\#55](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/pull/55) ([saarmbruster](https://github.com/saarmbruster))
- iCal4j recurrence [\#51](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/pull/51) ([mwkroening](https://github.com/mwkroening))
## [11.7.0](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/tree/11.7.0) (2019-09-25)
[Full Changelog](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/compare/11.6.4...11.7.0)
## [11.6.4](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/tree/11.6.4) (2019-09-01)
[Full Changelog](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/compare/11.6.3...11.6.4)
## [11.6.3](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/tree/11.6.3) (2019-08-28)
[Full Changelog](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/compare/8.6.1...11.6.3)
## [8.6.1](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/tree/8.6.1) (2019-08-28)
[Full Changelog](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/compare/8.6.0...8.6.1)
## [8.6.0](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/tree/8.6.0) (2019-08-28)
[Full Changelog](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/compare/11.6.2...8.6.0)
## [11.6.2](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/tree/11.6.2) (2019-08-28)
[Full Changelog](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/compare/8.5.1...11.6.2)
## [8.5.1](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/tree/8.5.1) (2019-08-28)
[Full Changelog](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/compare/11.6.1...8.5.1)
## [11.6.1](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/tree/11.6.1) (2019-08-19)
[Full Changelog](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/compare/11.6.0...11.6.1)
## [11.6.0](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/tree/11.6.0) (2019-08-19)
[Full Changelog](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/compare/v11.5.0...11.6.0)
**Implemented enhancements:**
- Add Continuous Delivery to Maven Central [\#54](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/pull/54) ([martinfrancois](https://github.com/martinfrancois))
**Closed issues:**
- Using CalendarFx 11.5.0 with openJFx 12 facing problem of Module not found [\#47](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/issues/47)
- 11.5.0 Unable to change event behavior [\#46](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/issues/46)
- Save Entries into database [\#45](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/issues/45)
- Issues figuring out scene builder [\#43](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/issues/43)
- \[11.5.0\] Remove snapshot dependency on controlsfx 9.0.1-SNAPSHOT once released [\#41](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/issues/41)
- Data Save [\#40](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/issues/40)
- JavaDocs Errors [\#31](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/issues/31)
- Memory-Leak in DateControl/PopOver [\#29](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/issues/29)
- Drag and drop functionality [\#28](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/issues/28)
**Merged pull requests:**
- Replace Joda-Time with java.time in CalendarFXView [\#49](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/pull/49) ([mwkroening](https://github.com/mwkroening))
- Upgrade dependencies [\#48](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/pull/48) ([mwkroening](https://github.com/mwkroening))
## [v11.5.0](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/tree/v11.5.0) (2018-09-15)
[Full Changelog](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/compare/v8.5.0...v11.5.0)
**Closed issues:**
- Day view multiple selection not working [\#39](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/issues/39)
- Could not find artifact com.calendarfx:google:jar:8.5.0 [\#36](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/issues/36)
- Data Save and Google [\#35](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/issues/35)
- Miscount of Seconds [\#32](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/issues/32)
- Calendar is not visible [\#22](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/issues/22)
- Create a Java 10 branch and release. [\#14](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/issues/14)
**Merged pull requests:**
- Fixed issues regarding the Drag and Drop of the entry at the start and end of it [\#37](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/pull/37) ([arias9306](https://github.com/arias9306))
- pt\_BR messages [\#34](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/pull/34) ([GabrielZulian](https://github.com/GabrielZulian))
## [v8.5.0](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/tree/v8.5.0) (2018-08-08)
[Full Changelog](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/compare/v8.4.2-maven-central...v8.5.0)
**Closed issues:**
- Disable drag and drop Entry [\#30](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/issues/30)
- calendarfx.com [\#27](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/issues/27)
- Use CalendarFX in Scene Builder [\#25](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/issues/25)
- Tests fails when building 8.4.1 [\#17](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/issues/17)
- Publish artefacts to Maven central. [\#12](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/issues/12)
**Merged pull requests:**
- Enhancement on GUI, user/development experience and bugfixing [\#33](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/pull/33) ([arias9306](https://github.com/arias9306))
## [v8.4.2-maven-central](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/tree/v8.4.2-maven-central) (2018-01-24)
[Full Changelog](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/compare/v8.4.2...v8.4.2-maven-central)
**Closed issues:**
- Issue with maven 8.4.1 and 8.4.2 [\#21](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/issues/21)
- Maven repository failing [\#20](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/issues/20)
- Update to latest ControlsFX and remove CustomMasterDetailPane [\#13](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/issues/13)
## [v8.4.2](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/tree/v8.4.2) (2018-01-10)
[Full Changelog](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/compare/v8.4.1...v8.4.2)
**Closed issues:**
- Can't create CalendarView in own Project [\#16](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/issues/16)
**Merged pull requests:**
- fixes a bug and make DayEntryViewSkin more reusable [\#19](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/pull/19) ([teymourlouie](https://github.com/teymourlouie))
- DetailedWeekView adjustToFirstDayOfWeek and Entry equation [\#18](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/pull/18) ([imario42](https://github.com/imario42))
- Update ControlsFx version [\#15](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/pull/15) ([sanaehirotaka](https://github.com/sanaehirotaka))
## [v8.4.1](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/tree/v8.4.1) (2017-10-23)
**Closed issues:**
- Reusability of DayEntryViewSkin [\#9](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/issues/9)
**Merged pull requests:**
- optimized imports to single line imports [\#11](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/pull/11) ([imario42](https://github.com/imario42))
- reformat and copyright header. no code changes. [\#10](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/pull/10) ([imario42](https://github.com/imario42))
- additional drag/drop enhancements [\#8](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/pull/8) ([imario42](https://github.com/imario42))
- drag/drop issues [\#7](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/pull/7) ([imario42](https://github.com/imario42))
- immediately update UI if just the calendar of an entry changes [\#6](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/pull/6) ([imario42](https://github.com/imario42))
- renamed CalendarFXView to CalendarFXExperimental [\#4](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/pull/4) ([imario42](https://github.com/imario42))
- removed invalid relative parent path [\#3](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/pull/3) ([imario42](https://github.com/imario42))
- Create LICENSE [\#2](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/pull/2) ([dlemmermann](https://github.com/dlemmermann))
- Create CODE\_OF\_CONDUCT.md [\#1](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/pull/1) ([dlemmermann](https://github.com/dlemmermann))
\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
================================================
FILE: CHANGES.txt
================================================
-------------------------------------------------------------------------------
RELEASE NOTES, VERSION 11.12.x (October 2022)
-------------------------------------------------------------------------------
*** NEW FEATURES
DayView / WeekDayView / WeekView
--------------------------------
It is now possible to create new entries via press and drag. It is also
possible to configure whether new entries shall be created after a single or
a double click. We also changed the behaviour to automatically bring up the
popover for newly created entries as this is what most people would expect.
This can be configured by calling DateControl.setShowDetailsUponEntryCreation.
ResourcesView
-------------
A new view called "ResourcesView" was added. It can be used to add allocations
to one or more resources / people. A typical use case would be a personal that
is working at a barber / hairdresser. The calendar entries would represent
customer appointments. This view can either display "dates over resources" or
"resources over dates". As part of the development of we added the "Resource"
model class. This class stores a regular calendar and a special one called the
"availability calendar". The availability of a resource can be edited when the
view's "editAvailability" property is set to true.
BackgroundCanvas (mainly private API)
---------------------------------
To visualize the availability of a resource we decided to use a canvas instead
of scene graph nodes. The performance is just much better and availability is
usually expressed by greying out the background of a resource. For controlling
the availability granularity and color please see DateControl.availabilityGrid
and DateControl#availabilityColor.
The background canvas also renders new light-weight grid lines. This is needed
as the availability grid could lead to the creation of many more grid lines
compared to the previous full- and half-hour grid lines. However, these light-
weight grid lines can not be styled via CSS. See the DateControl.gridLineColor
property.
DayEntryView
------------
It is now possible to set a "click count" number for showing the details of an
entry view. In the past the user always had to double-click on the entry. Now
a single or a tripple-click can also be configured.
Google Map View
---------------
A new view class has been added that is capable of looking up a static map
image from Google based on a given address / location string. The class is
called EntryMapView and is part of the EntryDetailsView. The map view will
only be visible if an address and a Google Maps API key exist.
*** ENHANCEMENTS
DayViewEditController
---------------------
With the addition of the availability feature we had to revisit the logic for
editing day entry views. The code became too messy and had to be refactored.
When comparing the before and after of this class one will notice that the new
code is much more structured.
Calendar
--------
A new "user object" property was added to the calendar so that a link can be
created between the calendar and its data source or its business object.
Interval
--------
A new "with" method has been added to derive a new interval from an existing
interval by passing in a new duration. Interval.withDuration(...).
*** FIXES
Recurrence
----------
Recurrence entries were not updated correctly in certain circumstances. This
has been fixed.
Memory Leaks
------------
Memory leaks were recently introduced after we started using the ListProperty
class, e.g. for "available time zones" and for "resources". There seems to be
a known issue when applications try to "unbind" from a ListProperty. This seems
to fail and objects in the collection are not being collected.
================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at dlemmermann@gmail.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/
================================================
FILE: CalendarFXApp/.gitignore
================================================
/target
*.iml
================================================
FILE: CalendarFXApp/pom.xml
================================================
<!--
~ Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>application</artifactId>
<name>CalendarFXApp</name>
<parent>
<groupId>com.calendarfx</groupId>
<artifactId>calendar</artifactId>
<version>12.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<properties>
<maven.deploy.skip>true</maven.deploy.skip>
</properties>
<dependencies>
<dependency>
<groupId>io.github.mkpaz</groupId>
<artifactId>atlantafx-base</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>com.calendarfx</groupId>
<artifactId>view</artifactId>
</dependency>
<dependency>
<groupId>fr.brouillard.oss</groupId>
<artifactId>cssfx</artifactId>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-web</artifactId>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-swing</artifactId>
</dependency>
<dependency>
<groupId>net.raumzeitfalle.fx</groupId>
<artifactId>scenic-view</artifactId>
<version>11.0.2</version>
<exclusions>
<exclusion>
<groupId>org.openjfx</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.openjfx</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>${javafx.maven.plugin.version}</version>
<configuration>
<mainClass>com.calendarfx.app.CalendarApp</mainClass>
</configuration>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: CalendarFXApp/src/main/java/com/calendarfx/app/CalendarApp.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.app;
import com.calendarfx.model.Calendar;
import com.calendarfx.model.Calendar.Style;
import com.calendarfx.model.CalendarSource;
import com.calendarfx.view.CalendarView;
import fr.brouillard.oss.cssfx.CSSFX;
import javafx.application.Application;
import javafx.application.Platform;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
import org.scenicview.ScenicView;
import java.time.LocalDate;
import java.time.LocalTime;
import java.util.Objects;
public class CalendarApp extends Application {
@Override
public void start(Stage primaryStage) {
CalendarView calendarView = new CalendarView();
calendarView.setEnableTimeZoneSupport(true);
Calendar katja = new Calendar("Katja");
Calendar dirk = new Calendar("Dirk");
Calendar philip = new Calendar("Philip");
Calendar jule = new Calendar("Jule");
Calendar armin = new Calendar("Armin");
Calendar birthdays = new Calendar("Birthdays");
Calendar holidays = new Calendar("Holidays");
katja.setShortName("K");
dirk.setShortName("D");
philip.setShortName("P");
jule.setShortName("J");
armin.setShortName("A");
birthdays.setShortName("B");
holidays.setShortName("H");
katja.setStyle(Style.STYLE1);
dirk.setStyle(Style.STYLE2);
philip.setStyle(Style.STYLE3);
jule.setStyle(Style.STYLE4);
armin.setStyle(Style.STYLE5);
birthdays.setStyle(Style.STYLE6);
holidays.setStyle(Style.STYLE7);
CalendarSource familyCalendarSource = new CalendarSource("Family");
familyCalendarSource.getCalendars().addAll(birthdays, holidays, katja, dirk, philip, jule, armin);
calendarView.getCalendarSources().setAll(familyCalendarSource);
calendarView.setRequestedTime(LocalTime.now());
StackPane stackPane = new StackPane();
stackPane.getChildren().addAll(calendarView); // introPane);
Thread updateTimeThread = new Thread("Calendar: Update Time Thread") {
@Override
public void run() {
while (true) {
Platform.runLater(() -> {
calendarView.setToday(LocalDate.now());
calendarView.setTime(LocalTime.now());
});
try {
// update every 10 seconds
sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
updateTimeThread.setPriority(Thread.MIN_PRIORITY);
updateTimeThread.setDaemon(true);
updateTimeThread.start();
Scene scene = new Scene(stackPane);
if (Boolean.getBoolean("atlantafx")) {
scene.getStylesheets().add(Objects.requireNonNull(CalendarView.class.getResource("atlantafx.css")).toExternalForm());
}
scene.focusOwnerProperty().addListener(it -> System.out.println("focus owner: " + scene.getFocusOwner()));
CSSFX.start(scene);
primaryStage.setTitle("Calendar");
primaryStage.setScene(scene);
primaryStage.setWidth(1300);
primaryStage.setHeight(1000);
primaryStage.centerOnScreen();
primaryStage.show();
// ScenicView.show(scene);
}
public static void main(String[] args) {
launch(args);
}
}
================================================
FILE: CalendarFXApp/src/main/java/com/calendarfx/app/CalendarAppAtlantaFX.java
================================================
package com.calendarfx.app;
import atlantafx.base.theme.NordDark;
import atlantafx.base.theme.NordLight;
public class CalendarAppAtlantaFX extends CalendarApp {
public static void main(String[] args) {
System.setProperty("atlantafx", "true");
setUserAgentStylesheet(new NordDark().getUserAgentStylesheet());
launch(args);
}
}
================================================
FILE: CalendarFXApp/src/main/java/com/calendarfx/app/CalendarAppLauncher.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.app;
public class CalendarAppLauncher {
public static void main(String[] args) {
System.setProperty("calendarfx.developer", "true");
CalendarApp.main(args);
}
}
================================================
FILE: CalendarFXApp/src/main/java/com/calendarfx/app/MonthViewApp.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.app;
import com.calendarfx.view.MonthView;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class MonthViewApp extends Application {
@Override
public void start(Stage primaryStage) {
MonthView monthView = new MonthView();
StackPane stackPane = new StackPane();
stackPane.getChildren().addAll(monthView); // introPane);
Scene scene = new Scene(stackPane);
primaryStage.setTitle("Month View");
primaryStage.setScene(scene);
primaryStage.sizeToScene();
primaryStage.centerOnScreen();
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
================================================
FILE: CalendarFXApp/src/main/java/module-info.java
================================================
module com.calendarfx.app {
requires transitive javafx.graphics;
requires fr.brouillard.oss.cssfx;
requires javafx.controls;
requires com.calendarfx.view;
requires atlantafx.base;
requires org.scenicview.scenicview;
exports com.calendarfx.app;
}
================================================
FILE: CalendarFXGoogle/.gitignore
================================================
/target
*.iml
/bin/
================================================
FILE: CalendarFXGoogle/pom.xml
================================================
<!--
~ Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
~
~ Licensed under the Apache License, Version 2.0 (the "License");
~ you may not use this file except in compliance with the License.
~ You may obtain a copy of the License at
~
~ http://www.apache.org/licenses/LICENSE-2.0
~
~ Unless required by applicable law or agreed to in writing, software
~ distributed under the License is distributed on an "AS IS" BASIS,
~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
~ See the License for the specific language governing permissions and
~ limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<name>CalendarFXGoogle</name>
<artifactId>google</artifactId>
<parent>
<groupId>com.calendarfx</groupId>
<artifactId>calendar</artifactId>
<version>12.0.1</version>
<relativePath>../pom.xml</relativePath>
</parent>
<properties>
<maven.deploy.skip>true</maven.deploy.skip>
</properties>
<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-web</artifactId>
</dependency>
<dependency>
<groupId>com.dlsc</groupId>
<artifactId>GMapsFX</artifactId>
</dependency>
<!-- Required for GMapsFX -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
</dependency>
<dependency>
<groupId>com.calendarfx</groupId>
<artifactId>view</artifactId>
</dependency>
<dependency>
<groupId>com.google.api-client</groupId>
<artifactId>google-api-client</artifactId>
</dependency>
<dependency>
<groupId>com.google.api-client</groupId>
<artifactId>google-api-client-java6</artifactId>
</dependency>
<dependency>
<groupId>com.google.api-client</groupId>
<artifactId>google-api-client-jackson2</artifactId>
</dependency>
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-calendar</artifactId>
</dependency>
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-oauth2</artifactId>
</dependency>
<dependency>
<groupId>com.google.code.geocoder-java</groupId>
<artifactId>geocoder-java</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.openjfx</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>${javafx.maven.plugin.version}</version>
<configuration>
<mainClass>com.calendarfx.google.GoogleCalendarApp</mainClass>
</configuration>
</plugin>
</plugins>
</build>
</project>
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/GoogleCalendarApp.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google;
import com.calendarfx.google.view.GoogleCalendarAppView;
import com.calendarfx.view.CalendarView;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.stage.Stage;
import java.time.LocalDate;
import java.time.LocalTime;
public class GoogleCalendarApp extends Application {
@Override
public void start(Stage primaryStage) {
CalendarView calendarView = new CalendarView();
calendarView.setToday(LocalDate.now());
calendarView.setTime(LocalTime.now());
calendarView.setShowDeveloperConsole(Boolean.getBoolean("calendarfx.developer"));
GoogleCalendarAppView appView = new GoogleCalendarAppView(calendarView);
appView.getStylesheets().add(CalendarView.class.getResource("calendar.css").toExternalForm());
primaryStage.setTitle("Google Calendar");
primaryStage.setScene(new Scene(appView));
primaryStage.setWidth(1400);
primaryStage.setHeight(950);
primaryStage.centerOnScreen();
primaryStage.show();
}
public static void main(String[] args) {
launch(args);
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/converter/BeanConverter.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.converter;
/**
* Interface representing a converter from/to a single bean.
*
* Created by gdiaz on 20/02/2017.
*/
public interface BeanConverter<S, T> {
/**
* Converts the given source into an object of type defined by the target.
*
* @param source The object source to be converted.
* @return The target result of the convertion.
*/
T convert(S source);
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/converter/BidirectionalBeanConverter.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.converter;
/**
* Converter in both directions.
*
* Created by gdiaz on 28/04/2017.
*/
public interface BidirectionalBeanConverter<L, R> extends BeanConverter<L, R> {
R leftToRight(L left);
L rightToLeft(R right);
@Override
default R convert(L source) {
return leftToRight(source);
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/converter/CalendarListEntryToGoogleCalendarConverter.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.converter;
import com.calendarfx.google.model.GoogleCalendar;
import com.calendarfx.google.model.GoogleEntryReminder;
import com.google.api.services.calendar.model.CalendarListEntry;
import com.google.api.services.calendar.model.EventReminder;
import java.util.ArrayList;
import java.util.List;
/**
* Converts from google api to calendarfx api.
*
* Created by gdiaz on 20/02/2017.
*/
public final class CalendarListEntryToGoogleCalendarConverter implements BeanConverter<CalendarListEntry, GoogleCalendar> {
@Override
public GoogleCalendar convert(CalendarListEntry source) {
GoogleCalendar calendar = new GoogleCalendar();
calendar.setId(source.getId());
calendar.setName(source.getSummary());
calendar.setShortName(source.getSummary());
calendar.setPrimary(source.isPrimary());
calendar.setReadOnly(GoogleCalendar.isReadOnlyAccessRole(source.getAccessRole()));
List<GoogleEntryReminder> reminders = new ArrayList<>();
if (source.getDefaultReminders() != null) {
for (EventReminder r : source.getDefaultReminders()) {
reminders.add(new GoogleEntryReminder(r));
}
}
calendar.getDefaultReminders().setAll(reminders);
return calendar;
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/converter/EventToGoogleEntryConverter.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.converter;
import com.calendarfx.google.model.GoogleEntry;
import com.calendarfx.google.model.GoogleEntryReminder;
import com.calendarfx.model.Interval;
import com.google.api.client.util.DateTime;
import com.google.api.services.calendar.model.Event;
import com.google.api.services.calendar.model.EventReminder;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.OffsetDateTime;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.TimeZone;
/**
* BeanConverter between event (google api) and entry (calendarfx api).
*
* Created by gdiaz on 20/02/2017.
*/
public final class EventToGoogleEntryConverter implements BeanConverter<Event, GoogleEntry> {
@Override
public GoogleEntry convert(Event source) {
Objects.requireNonNull(source.getStart());
Objects.requireNonNull(source.getEnd());
GoogleEntry entry = new GoogleEntry();
/*
* TimeZone : Although Google allows different Start/End TimeZone, we
* always assume that start/end are in the TimeZone of the startDate.
*/
ZoneId zoneId;
String stTimeZone = source.getStart().getTimeZone();
if (stTimeZone == null) {
zoneId = ZoneId.systemDefault();
} else {
zoneId = TimeZone.getTimeZone(stTimeZone).toZoneId();
}
// Start Time
DateTime stdt = source.getStart().getDate();
if (stdt == null) {
stdt = source.getStart().getDateTime();
}
ZoneOffset stOffset = ZoneOffset.ofTotalSeconds(stdt.getTimeZoneShift() * 60);
OffsetDateTime offsetSt = Instant.ofEpochMilli(stdt.getValue()).atOffset(stOffset);
// End Time
DateTime etdt = source.getEnd().getDate();
if (etdt == null) {
etdt = source.getEnd().getDateTime();
}
ZoneOffset etoffset = ZoneOffset.ofTotalSeconds(etdt.getTimeZoneShift() * 60);
OffsetDateTime offsetEt = Instant.ofEpochMilli(etdt.getValue()).atOffset(etoffset);
LocalDateTime startDateTime = offsetSt.toLocalDateTime();
if (stdt.isDateOnly() || offsetEt.toLocalTime().equals(LocalTime.MIDNIGHT)) {
offsetEt = offsetEt.minusDays(1);
entry.setInterval(new Interval(startDateTime.toLocalDate(), startDateTime.toLocalTime(), offsetEt.toLocalDate(), LocalTime.MAX));
} else {
entry.setInterval(new Interval(startDateTime, offsetEt.toLocalDateTime()));
}
if (source.getRecurrence() != null && !source.getRecurrence().isEmpty()) {
entry.setRecurrenceRule(source.getRecurrence().get(0));
}
if (source.getAttendees() != null) {
entry.getAttendees().setAll(source.getAttendees());
}
if (source.getReminders() != null) {
Event.Reminders reminders = source.getReminders();
if (Boolean.TRUE.equals(reminders.getUseDefault())) {
entry.setUseDefaultReminder(true);
} else if (reminders.getOverrides() != null) {
List<GoogleEntryReminder> entryReminders = new ArrayList<>();
for (EventReminder reminder : reminders.getOverrides()) {
entryReminders.add(new GoogleEntryReminder(reminder));
}
entry.getReminders().setAll(entryReminders);
}
}
entry.setId(source.getId());
entry.setTitle(source.getSummary());
entry.setLocation(source.getLocation());
entry.setZoneId(zoneId);
entry.setFullDay(stdt.isDateOnly());
entry.setAttendeesCanModify(source.isGuestsCanModify());
entry.setAttendeesCanInviteOthers(source.isGuestsCanInviteOthers());
entry.setAttendeesCanSeeOthers(source.isGuestsCanSeeOtherGuests());
entry.setStatus(GoogleEntry.Status.fromName(source.getStatus()));
entry.setUserObject(source);
return entry;
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/converter/GoogleCalendarToCalendarConverter.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.converter;
import com.calendarfx.google.model.GoogleCalendar;
import com.google.api.services.calendar.model.Calendar;
import java.time.ZoneId;
/**
* BeanConverter between calendarfx and google api.
*
* Created by gdiaz on 26/03/2017.
*/
public class GoogleCalendarToCalendarConverter implements BeanConverter<GoogleCalendar, Calendar> {
@Override
public Calendar convert(GoogleCalendar source) {
Calendar target = new Calendar();
target.setSummary(source.getName());
target.setTimeZone(ZoneId.systemDefault().getId());
return target;
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/converter/GoogleCalendarToCalendarListEntryConverter.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.converter;
import com.calendarfx.google.model.GoogleCalendar;
import com.calendarfx.google.model.GoogleEntryReminder;
import com.google.api.services.calendar.model.CalendarListEntry;
import com.google.api.services.calendar.model.EventReminder;
import java.util.ArrayList;
import java.util.List;
/**
* Converts from calendar (calendarfx api) to calendar list entry (google api).
*
* Created by gdiaz on 20/02/2017.
*/
public final class GoogleCalendarToCalendarListEntryConverter implements BeanConverter<GoogleCalendar, CalendarListEntry> {
@Override
public CalendarListEntry convert(GoogleCalendar source) {
CalendarListEntry calendarListEntry = new CalendarListEntry();
calendarListEntry.setId(source.getId());
calendarListEntry.setSummary(source.getName());
calendarListEntry.setPrimary(source.isPrimary());
List<EventReminder> reminders = new ArrayList<>();
for (GoogleEntryReminder reminder : source.getDefaultReminders()) {
EventReminder er = new EventReminder();
er.setMethod(reminder.getMethod().getId());
er.setMinutes(reminder.getMinutes());
reminders.add(er);
}
calendarListEntry.setDefaultReminders(reminders);
return calendarListEntry;
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/converter/GoogleEntryToEventConverter.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.converter;
import com.calendarfx.google.model.GoogleEntry;
import com.calendarfx.google.model.GoogleEntryReminder;
import com.google.api.client.util.DateTime;
import com.google.api.services.calendar.model.Event;
import com.google.api.services.calendar.model.EventDateTime;
import com.google.api.services.calendar.model.EventReminder;
import java.time.LocalTime;
import java.time.ZonedDateTime;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.TimeZone;
/**
* BeanConverter between entry (calendarfx api) and event (google api).
*
* Created by gdiaz on 20/02/2017.
*/
public final class GoogleEntryToEventConverter implements BeanConverter<GoogleEntry, Event> {
@Override
public Event convert(GoogleEntry source) {
EventDateTime startTime = new EventDateTime();
EventDateTime endTime = new EventDateTime();
ZonedDateTime st = source.getStartAsZonedDateTime();
ZonedDateTime et = source.getEndAsZonedDateTime();
TimeZone timeZone = TimeZone.getTimeZone(source.getZoneId());
if (source.getEndTime().equals(LocalTime.MAX)) {
et = et.plusDays(1).truncatedTo(ChronoUnit.DAYS);
}
if (source.isFullDay()) {
startTime.setDate(new DateTime(true, st.toInstant().toEpochMilli(), 0));
startTime.setTimeZone(timeZone.getID());
endTime.setDate(new DateTime(true, et.toInstant().toEpochMilli(), 0));
endTime.setTimeZone(timeZone.getID());
} else {
startTime.setDateTime(new DateTime(Date.from(st.toInstant())));
startTime.setTimeZone(timeZone.getID());
endTime.setDateTime(new DateTime(Date.from(et.toInstant())));
endTime.setTimeZone(timeZone.getID());
}
Event event = new Event();
if (source.getRecurrenceRule() != null) {
List<String> recurrence = new ArrayList<>();
recurrence.add(source.getRecurrenceRule());
event.setRecurrence(recurrence);
}
Event.Reminders reminders = new Event.Reminders();
reminders.setUseDefault(source.isUseDefaultReminder());
if (source.getReminders() != null) {
List<EventReminder> overrides = new ArrayList<>();
for (GoogleEntryReminder reminder : source.getReminders()) {
EventReminder override = new EventReminder();
override.setMethod(reminder.getMethod().getId());
override.setMinutes(reminder.getMinutes());
overrides.add(override);
}
reminders.setOverrides(overrides);
}
event.setId(source.existsInGoogle() ? source.getId() : null);
event.setSummary(source.getTitle());
event.setStart(startTime);
event.setEnd(endTime);
event.setAttendees(source.getAttendees());
event.setGuestsCanModify(source.isAttendeesCanModify());
event.setGuestsCanInviteOthers(source.isAttendeesCanInviteOthers());
event.setGuestsCanSeeOtherGuests(source.isAttendeesCanSeeOthers());
event.setLocation(source.getLocation());
event.setReminders(reminders);
return event;
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/model/GoogleAccount.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.model;
import com.calendarfx.model.Calendar;
import com.calendarfx.model.CalendarSource;
import javafx.collections.ListChangeListener;
import java.util.ArrayList;
import java.util.List;
/**
* Class representing a Google account of a determinate user, which is owner of
* the Calendars information.
*
* @author Gabriel Diaz, 03.03.2015.
*/
public class GoogleAccount extends CalendarSource {
private String id;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
/**
* Creates one single calendar with the given name and style.
*
* @param name The name of the calendar.
* @param style The style of the calendar.
* @return The new google calendar.
*/
public final GoogleCalendar createCalendar(String name, Calendar.Style style) {
GoogleCalendar calendar = new GoogleCalendar();
calendar.setName(name);
calendar.setStyle(style);
return calendar;
}
/**
* Gets the calendar marked as primary calendar for the google account.
*
* @return The primary calendar, {@code null} if not loaded.
*/
public GoogleCalendar getPrimaryCalendar() {
return (GoogleCalendar) getCalendars().stream()
.filter(calendar -> ((GoogleCalendar) calendar).isPrimary())
.findFirst()
.orElse(null);
}
/**
* Gets all the google calendars hold by this source.
*
* @return The list of google calendars, always a new list.
*/
public List<GoogleCalendar> getGoogleCalendars() {
List<GoogleCalendar> googleCalendars = new ArrayList<>();
for (Calendar calendar : getCalendars()) {
if (!(calendar instanceof GoogleCalendar)) {
continue;
}
googleCalendars.add((GoogleCalendar) calendar);
}
return googleCalendars;
}
/**
* Adds the given calendar listener in order to get notified when any calendar/entry changes.
*
* @param listeners The listener.
*/
@SafeVarargs
public final void addCalendarListeners(ListChangeListener<Calendar>... listeners) {
if (listeners != null) {
for (ListChangeListener<Calendar> listener : listeners) {
getCalendars().addListener(listener);
}
}
}
/**
* Removes the listener from the ones being notified.
*
* @param listeners The listener
*/
@SafeVarargs
public final void removeCalendarListeners(ListChangeListener<Calendar>... listeners) {
if (listeners != null) {
for (ListChangeListener<Calendar> listener : listeners) {
getCalendars().removeListener(listener);
}
}
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/model/GoogleCalendar.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.model;
import com.calendarfx.model.Calendar;
import com.calendarfx.model.Entry;
import com.calendarfx.model.Interval;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import java.time.ZonedDateTime;
import java.util.List;
import java.util.Objects;
/**
* Calendar class that encapsulates the logic of a Google Calendar Entry.
*
* @author Gabriel Diaz, 10.02.2015.
*/
public class GoogleCalendar extends Calendar {
private static final String ACCESS_ROLE_READER = "reader";
private static final String ACCESS_ROLE_FREE_BUSY_READER = "freeBusyReader";
/**
* Static field used to enumerate the entries created in this calendar.
*/
private static int entryConsecutive = 1;
/**
* Constructs a calendar using the given calendar service.
*/
public GoogleCalendar() {
super();
}
/**
* Generates a new consecutive number each time is called. This always
* starts at 1.
*
* @return The consecutive generated.
*/
private static int generateEntryConsecutive() {
return entryConsecutive++;
}
/**
* Represents the ID of the backend calendar entry, this field is generated
* only by Google.
*/
private String id;
/**
* Gets the ID of the backend calendar entry, can be null if this calendar
* has not been saved in Google.
*
* @return The ID of the backend calendar entry.
*/
public final String getId() {
return id;
}
/**
* Sets the ID for client side use; this is supposed to be called when this
* calendar is associated with its backend calendar entry.
*
* @param id
* The new ID.
*/
public final void setId(String id) {
this.id = id;
}
/**
* Indicating this calendar is the primary of the google account.
*/
private boolean primary;
/**
* Gets the flag that indicates whether this calendar is primary or not. A
* primary calendar can be seen as the default calendar of the account.
*
* @return {@code true} when this calendar is primary, otherwise
* {@code false}.
*/
public final boolean isPrimary() {
return primary;
}
/**
* Sets the primary flag, supposed to be called when this calendar is
* associated with a backend calendar entry.
*
* @param primary
* The value for the flag.
*/
public final void setPrimary(boolean primary) {
this.primary = primary;
}
/**
* List storing the default reminders of the calendar, represents the
* default configuration for all the entries of this calendar and is
* supposed to be inherited.
*/
private final ObservableList<GoogleEntryReminder> defaultReminders = FXCollections.observableArrayList();
/**
* Gets the list of default reminders configured for this calendar.
*
* @return The default remind configuration.
*/
public final ObservableList<GoogleEntryReminder> getDefaultReminders() {
return defaultReminders;
}
/**
* Creates a new google entry by using the given parameters, this assigns a
* default name by using a consecutive number. The entry is of course
* associated to this calendar, but it is not sent to google for storing.
*
* @param start
* The start date/time of the new entry.
* @param fullDay
* A flag indicating if the new entry is going to be full day.
* @return The new google entry created, this is not send to server side.
* @see #generateEntryConsecutive()
*/
public final GoogleEntry createEntry(ZonedDateTime start, boolean fullDay) {
GoogleEntry entry = new GoogleEntry();
entry.setTitle("New Entry " + generateEntryConsecutive());
entry.setInterval(new Interval(start.toLocalDate(), start.toLocalTime(), start.toLocalDate(), start.toLocalTime().plusHours(1)));
entry.setFullDay(fullDay);
entry.setAttendeesCanInviteOthers(true);
entry.setAttendeesCanSeeOthers(true);
return entry;
}
/**
* Indicates whether the calendar exist in google calendar or not.
*
* @return a flag saying whether this calendar was already persisted or not.
*/
public final boolean existsInGoogle() {
return id != null;
}
/**
* Checks whether the given access role means the calendar is read only.
*
* @param accessRole The access role to be analyzed.
* @return {@code true} if the access role matches {@link #ACCESS_ROLE_READER}
* or {@link #ACCESS_ROLE_FREE_BUSY_READER}.
*/
public static boolean isReadOnlyAccessRole(String accessRole) {
return ACCESS_ROLE_READER.equals(accessRole) || ACCESS_ROLE_FREE_BUSY_READER.equals(accessRole);
}
/**
* Consumer to delegate the loading of entries to an external provider.
*/
private IGoogleCalendarSearchTextProvider searchTextProvider;
public void setSearchTextProvider(IGoogleCalendarSearchTextProvider searchTextProvider) {
this.searchTextProvider = searchTextProvider;
}
@Override
public List<Entry<?>> findEntries(String text) {
if (searchTextProvider != null) {
searchTextProvider.search(this, text);
}
return super.findEntries(text);
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
GoogleCalendar that = (GoogleCalendar) o;
return Objects.equals(id, that.id);
}
@Override
public int hashCode() {
return id != null ? id.hashCode() : 0;
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/model/GoogleCalendarEvent.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.model;
import com.calendarfx.model.CalendarEvent;
import javafx.event.EventType;
/**
* Extension of the {@link CalendarEvent} which allows to know externally about
* changes in {@link GoogleCalendar calendars}.
*
* @author Gabriel Diaz, 07.03.2015.
*/
public class GoogleCalendarEvent extends CalendarEvent {
private static final long serialVersionUID = 8064360122175452019L;
/**
* Event type saying that attendees of the google entry have been changed.
*/
public static final EventType<GoogleCalendarEvent> ENTRY_ATTENDEES_CHANGED = new EventType<>(
ENTRY_CHANGED, "ENTRY_ATTENDEES_CHANGED");
/**
* Event type saying whether attendees can see others or not.
*/
public static final EventType<GoogleCalendarEvent> ENTRY_ATTENDEES_CAN_SEE_OTHERS_CHANGED = new EventType<>(
ENTRY_CHANGED, "ENTRY_ATTENDEES_CAN_SEE_OTHERS_CHANGED");
/**
* Event type saying whether attendees can invite others or not.
*/
public static final EventType<GoogleCalendarEvent> ENTRY_ATTENDEES_CAN_INVITE_CHANGED = new EventType<>(
ENTRY_CHANGED, "ENTRY_ATTENDEES_CAN_INVITE_CHANGED");
/**
* Event type saying whether attendees can edit the google entry others or
* not.
*/
public static final EventType<GoogleCalendarEvent> ENTRY_ATTENDEES_CAN_MODIFY_CHANGED = new EventType<>(
ENTRY_CHANGED, "ENTRY_ATTENDEES_CAN_MODIFY_CHANGED");
/**
* Event type saying that reminders of the google entry have been changed.
*/
public static final EventType<GoogleCalendarEvent> ENTRY_REMINDERS_CHANGED = new EventType<>(
ENTRY_CHANGED, "ENTRY_REMINDERS_CHANGED");
/**
* Creates a google calendar event to notify some changes in the given
* google entry.
*
* @param eventType
* The type of event.
* @param calendar
* The calendar which the entry belongs to.
* @param entry
* The entry affected.
*/
GoogleCalendarEvent(EventType<GoogleCalendarEvent> eventType, GoogleCalendar calendar, GoogleEntry entry) {
super(eventType, calendar, entry);
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/model/GoogleEntry.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.model;
import com.calendarfx.model.Entry;
import com.google.api.services.calendar.model.Event;
import com.google.api.services.calendar.model.EventAttendee;
import javafx.beans.InvalidationListener;
import javafx.beans.Observable;
import javafx.beans.property.BooleanProperty;
import javafx.beans.property.ObjectProperty;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.beans.property.SimpleObjectProperty;
import javafx.collections.FXCollections;
import javafx.collections.ListChangeListener;
import javafx.collections.ObservableList;
import java.util.Objects;
/**
* Custom entry representing a google event. This contains all the required
* information for a single event of google calendar.
*
* @author Gabriel Diaz, 07.03.2015.
*/
public class GoogleEntry extends Entry<Event> {
public GoogleEntry() {
super();
reminders.addListener((ListChangeListener<GoogleEntryReminder>) c -> {
while (c.next()) {
if (c.wasAdded()) {
for (GoogleEntryReminder r : c.getAddedSubList()) {
r.addListener(remindersListener);
}
}
if (c.wasRemoved()) {
for (GoogleEntryReminder r : c.getRemoved()) {
r.removeListener(remindersListener);
}
}
}
});
reminders.addListener(remindersListener);
attendees.addListener((Observable obs) -> {
if (getCalendar() instanceof GoogleCalendar) {
getCalendar().fireEvent(new GoogleCalendarEvent(
GoogleCalendarEvent.ENTRY_ATTENDEES_CHANGED, (GoogleCalendar) getCalendar(), GoogleEntry.this));
}
});
}
private final ObjectProperty<Status> status = new SimpleObjectProperty<>(this, "status");
public final ObjectProperty<Status> statusProperty() {
return status;
}
public final Status getStatus() {
return statusProperty().get();
}
public final void setStatus(Status status) {
statusProperty().set(status);
}
private final BooleanProperty attendeesCanModify = new SimpleBooleanProperty(this, "attendeesCanModify") {
@Override
public void set(boolean newValue) {
boolean oldValue = get();
if (!Objects.equals(oldValue, newValue)) {
super.set(newValue);
if (getCalendar() instanceof GoogleCalendar) {
getCalendar().fireEvent(new GoogleCalendarEvent(
GoogleCalendarEvent.ENTRY_ATTENDEES_CAN_MODIFY_CHANGED,
(GoogleCalendar) getCalendar(), GoogleEntry.this));
}
if (newValue) {
setAttendeesCanInviteOthers(true);
setAttendeesCanSeeOthers(true);
}
}
}
};
public final BooleanProperty attendeesCanModifyProperty() {
return attendeesCanModify;
}
public final boolean isAttendeesCanModify() {
return attendeesCanModifyProperty().get();
}
public final void setAttendeesCanModify(boolean attendeesCanModify) {
attendeesCanModifyProperty().set(attendeesCanModify);
}
private final BooleanProperty attendeesCanInviteOthers = new SimpleBooleanProperty(
this, "attendeesCanInviteOthers", true) {
@Override
public void set(boolean newValue) {
boolean oldValue = get();
if (!Objects.equals(oldValue, newValue)) {
super.set(newValue);
if (getCalendar() instanceof GoogleCalendar) {
getCalendar().fireEvent(new GoogleCalendarEvent(
GoogleCalendarEvent.ENTRY_ATTENDEES_CAN_INVITE_CHANGED,
(GoogleCalendar) getCalendar(), GoogleEntry.this));
}
}
}
};
public final BooleanProperty attendeesCanInviteOthersProperty() {
return attendeesCanInviteOthers;
}
public final boolean isAttendeesCanInviteOthers() {
return attendeesCanInviteOthersProperty().get();
}
public final void setAttendeesCanInviteOthers(
boolean attendeesCanInviteOthers) {
attendeesCanInviteOthersProperty().set(attendeesCanInviteOthers);
}
private final BooleanProperty attendeesCanSeeOthers = new SimpleBooleanProperty(
this, "attendeesCanSeeOthers", true) {
@Override
public void set(boolean newValue) {
boolean oldValue = get();
if (!Objects.equals(oldValue, newValue)) {
super.set(newValue);
if (getCalendar() instanceof GoogleCalendar) {
getCalendar().fireEvent(new GoogleCalendarEvent(
GoogleCalendarEvent.ENTRY_ATTENDEES_CAN_SEE_OTHERS_CHANGED,
(GoogleCalendar) getCalendar(), GoogleEntry.this));
}
}
}
};
public final BooleanProperty attendeesCanSeeOthersProperty() {
return attendeesCanSeeOthers;
}
public final boolean isAttendeesCanSeeOthers() {
return attendeesCanSeeOthersProperty().get();
}
public final void setAttendeesCanSeeOthers(boolean attendeesCanSeeOthers) {
attendeesCanSeeOthersProperty().set(attendeesCanSeeOthers);
}
private final BooleanProperty useDefaultReminder = new SimpleBooleanProperty(this, "useDefaultReminder");
public final BooleanProperty useDefaultReminderProperty() {
return useDefaultReminder;
}
public final boolean isUseDefaultReminder() {
return useDefaultReminderProperty().get();
}
public final void setUseDefaultReminder(boolean useDefaultReminder) {
useDefaultReminderProperty().set(useDefaultReminder);
}
private final ObservableList<EventAttendee> attendees = FXCollections.observableArrayList();
public ObservableList<EventAttendee> getAttendees() {
return attendees;
}
private final InvalidationListener remindersListener = obs -> {
if (getCalendar() instanceof GoogleCalendar) {
GoogleCalendar calendar = (GoogleCalendar) getCalendar();
calendar.fireEvent(new GoogleCalendarEvent(GoogleCalendarEvent.ENTRY_REMINDERS_CHANGED, calendar, GoogleEntry.this));
}
};
private final ObservableList<GoogleEntryReminder> reminders = FXCollections.observableArrayList();
public ObservableList<GoogleEntryReminder> getReminders() {
return reminders;
}
@Override
public GoogleEntry createRecurrence() {
GoogleEntry entry = new GoogleEntry();
entry.setStatus(getStatus());
entry.setAttendeesCanModify(isAttendeesCanModify());
entry.setAttendeesCanInviteOthers(isAttendeesCanInviteOthers());
entry.setAttendeesCanSeeOthers(isAttendeesCanSeeOthers());
entry.getAttendees().setAll(getAttendees());
entry.getReminders().setAll(getReminders());
return entry;
}
/**
* Indicates whether the entry exist in google calendar or not.
*
* @return a flag saying whether this entry was already persisted or not.
*/
public final boolean existsInGoogle() {
return getUserObject() != null;
}
@Override
public String toString() {
return "Google Entry: " + getTitle();
}
/**
* Enumeration representing the status of the google entry.
*
* @author Gabriel Diaz, 22.03.2015.
*/
public enum Status {
CONFIRMED("confirmed"),
TENTATIVE("tentative"),
CANCELLED("cancelled");
private final String name;
Status(String name) {
this.name = name;
}
public String getName() {
return name;
}
public static Status fromName(String name) {
for (Status status : values()) {
if (status.getName().equals(name)) {
return status;
}
}
return null;
}
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/model/GoogleEntryReminder.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.model;
import com.google.api.services.calendar.model.EventReminder;
import javafx.beans.InvalidationListener;
import javafx.beans.property.ObjectProperty;
import javafx.beans.property.SimpleObjectProperty;
/**
* Remind method.
*
* Created by gdiaz on 28/04/2017.
*/
public class GoogleEntryReminder {
public GoogleEntryReminder() {
super();
}
public GoogleEntryReminder(EventReminder reminder) {
super();
setMethod(RemindMethod.fromId(reminder.getMethod()));
setMinutes(reminder.getMinutes());
}
public void addListener(InvalidationListener listener) {
methodProperty().addListener(listener);
minutesProperty().addListener(listener);
}
public void removeListener(InvalidationListener listener) {
methodProperty().removeListener(listener);
minutesProperty().addListener(listener);
}
private final ObjectProperty<RemindMethod> method = new SimpleObjectProperty<>(this, "method");
public final ObjectProperty<RemindMethod> methodProperty() {
return method;
}
public final RemindMethod getMethod() {
return methodProperty().get();
}
public final void setMethod(RemindMethod method) {
methodProperty().set(method);
}
private final ObjectProperty<Integer> minutes = new SimpleObjectProperty<>(this, "minutes");
public final ObjectProperty<Integer> minutesProperty() {
return minutes;
}
public final Integer getMinutes() {
return minutesProperty().get();
}
public final void setMinutes(Integer minutes) {
minutesProperty().set(minutes);
}
/**
* Enumeration representing the available notification types.
*
* @author Gabriel Diaz, 07.03.2015.
*/
public enum RemindMethod {
POPUP("popup", "Popup"), EMAIL("email", "Email");
private final String id;
private final String name;
RemindMethod(String id, String name) {
this.id = id;
this.name = name;
}
public String getId() {
return id;
}
public String getName() {
return name;
}
@Override
public String toString() {
return getName();
}
/**
* Gets a remind method.
*
* @param id The id of the remind method.
* @return The reminder method constant that matches the id.
*/
public static RemindMethod fromId(String id) {
if (id != null) {
for (RemindMethod method : values()) {
if (method.id.equals(id)) {
return method;
}
}
}
return POPUP;
}
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/model/IGoogleCalendarSearchTextProvider.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.model;
/**
* Objects that provides external searching of entries by a given text on a single calendar.
*
* Created by gdiaz on 5/05/2017.
*/
public interface IGoogleCalendarSearchTextProvider {
void search(GoogleCalendar calendar, String searchText);
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/service/BeanConverterService.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.service;
import com.calendarfx.google.converter.BeanConverter;
import com.calendarfx.google.converter.CalendarListEntryToGoogleCalendarConverter;
import com.calendarfx.google.converter.EventToGoogleEntryConverter;
import com.calendarfx.google.converter.GoogleCalendarToCalendarConverter;
import com.calendarfx.google.converter.GoogleCalendarToCalendarListEntryConverter;
import com.calendarfx.google.converter.GoogleEntryToEventConverter;
import com.calendarfx.google.model.GoogleCalendar;
import com.calendarfx.google.model.GoogleEntry;
import com.google.api.services.calendar.model.Calendar;
import com.google.api.services.calendar.model.CalendarListEntry;
import com.google.api.services.calendar.model.Event;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
/**
* Service that provides convertion from one object to another based on the class.
*
* Created by gdiaz on 22/02/2017.
*/
public class BeanConverterService {
private static BeanConverterService instance;
public static BeanConverterService getInstance() {
if (instance == null) {
instance = new BeanConverterService();
}
return instance;
}
private final Map<Pair<Class<?>, Class<?>>, BeanConverter<?, ?>> converters = new HashMap<>();
private BeanConverterService() {
converters.put(Pair.of(GoogleEntry.class, Event.class), new GoogleEntryToEventConverter());
converters.put(Pair.of(Event.class, GoogleEntry.class), new EventToGoogleEntryConverter());
converters.put(Pair.of(GoogleCalendar.class, CalendarListEntry.class), new GoogleCalendarToCalendarListEntryConverter());
converters.put(Pair.of(CalendarListEntry.class, GoogleCalendar.class), new CalendarListEntryToGoogleCalendarConverter());
converters.put(Pair.of(GoogleCalendar.class, Calendar.class), new GoogleCalendarToCalendarConverter());
}
<S, T> T convert(S source, Class<T> targetClass) {
if (canConvert(source.getClass(), targetClass)) {
BeanConverter<S, T> converter = getConverter((Class<S>) source.getClass(), targetClass);
return converter.convert(source);
}
throw new UnsupportedOperationException("The object " + source + " cannot be converted to " + targetClass);
}
private <S, T> boolean canConvert(Class<S> sourceClass, Class<T> targetClass) {
return getConverter(sourceClass, targetClass) != null;
}
private <S, T> BeanConverter<S, T> getConverter(Class<S> sourceClass, Class<T> targetClass) {
return (BeanConverter<S, T>) converters.get(Pair.of(sourceClass, targetClass));
}
private static class Pair<S, T> {
private S source;
private T target;
Pair(S source, T target) {
this.source = source;
this.target = target;
}
public S getSource() {
return source;
}
public void setSource(S source) {
this.source = source;
}
public T getTarget() {
return target;
}
public void setTarget(T target) {
this.target = target;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Pair<?, ?> pair = (Pair<?, ?>) o;
if (!Objects.equals(source, pair.source)) return false;
return Objects.equals(target, pair.target);
}
@Override
public int hashCode() {
int result = source != null ? source.hashCode() : 0;
result = 31 * result + (target != null ? target.hashCode() : 0);
return result;
}
public static <S, T> Pair<S, T> of(S source, T target) {
return new Pair<>(source, target);
}
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/service/GoogleCalendarService.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.service;
import com.calendarfx.google.model.GoogleCalendar;
import com.calendarfx.google.model.GoogleEntry;
import com.google.api.client.util.DateTime;
import com.google.api.services.calendar.Calendar;
import com.google.api.services.calendar.model.CalendarListEntry;
import com.google.api.services.calendar.model.Event;
import java.io.IOException;
import java.net.URLDecoder;
import java.nio.charset.StandardCharsets;
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Objects;
/**
* Encapsulation of the google calendar service that provides some methods for
* CRUD operations on calendars and events.
*
* @author Gabriel Diaz, 14.03.2015.
*/
public class GoogleCalendarService {
private final Calendar dao;
private final BeanConverterService converter;
GoogleCalendarService(Calendar dao) {
this.dao = Objects.requireNonNull(dao);
this.converter = BeanConverterService.getInstance();
}
/**
* Inserts a calendar into the google calendar.
*
* @param calendar The calendar to be inserted.
* @throws IOException For unexpected errors.
*/
public void insertCalendar(GoogleCalendar calendar) throws IOException {
com.google.api.services.calendar.model.Calendar cal;
cal = converter.convert(calendar, com.google.api.services.calendar.model.Calendar.class);
cal = dao.calendars().insert(cal).execute();
calendar.setId(cal.getId());
}
/**
* Saves the updates done on the calendar into google calendar api.
*
* @param calendar The calendar to be updated.
* @throws IOException For unexpected errors.
*/
public void updateCalendar(GoogleCalendar calendar) throws IOException {
CalendarListEntry calendarListEntry = converter.convert(calendar, CalendarListEntry.class);
dao.calendarList().update(calendarListEntry.getId(), calendarListEntry).execute();
}
/**
* Performs an immediate delete request on the google calendar api.
*
* @param calendar The calendar to be removed.
* @throws IOException For unexpected errors
*/
public void deleteCalendar(GoogleCalendar calendar) throws IOException {
dao.calendars().delete(calendar.getId()).execute();
}
/**
* Performs an immediate insert operation on google server by sending the
* information provided by the given google entry. The entry is associated
* to this calendar.
*
* @param entry The entry to be inserted in a backend google calendar.
* @param calendar The calendar in which the entry will be inserted.
* @return The same instance received.
* @throws IOException For unexpected errors
*/
public GoogleEntry insertEntry(GoogleEntry entry, GoogleCalendar calendar) throws IOException {
Event event = converter.convert(entry, Event.class);
event = dao.events().insert(calendar.getId(), event).execute();
entry.setId(event.getId());
entry.setUserObject(event);
return entry;
}
/**
* Performs an immediate update operation on google server by sending the
* information stored by the given google entry.
*
* @param entry The entry to be updated in a backend google calendar.
* @return The same instance received.
* @throws IOException For unexpected errors
*/
public GoogleEntry updateEntry(GoogleEntry entry) throws IOException {
GoogleCalendar calendar = (GoogleCalendar) entry.getCalendar();
Event event = converter.convert(entry, Event.class);
dao.events().update(calendar.getId(), event.getId(), event).execute();
return entry;
}
/**
* Sends a delete request to the google server for the given entry.
*
* @param entry The entry to be deleted from the backend google calendar.
* @param calendar The calendar from the entry was deleted.
* @throws IOException For unexpected errors.
*/
public void deleteEntry(GoogleEntry entry, GoogleCalendar calendar) throws IOException {
dao.events().delete(calendar.getId(), entry.getId()).execute();
}
/**
* Moves an entry from one calendar to another.
*
* @param entry The entry to be moved.
* @param from The current calendar.
* @param to The future calendar.
* @return The entry updated.
* @throws IOException For unexpected errors.
*/
public GoogleEntry moveEntry(GoogleEntry entry, GoogleCalendar from, GoogleCalendar to) throws IOException {
dao.events().move(from.getId(), entry.getId(), to.getId()).execute();
return entry;
}
/**
* Gets the list of all calendars available in the account.
*
* @return A non-null list of all calendars.
* @throws IOException For unexpected errors.
*/
public List<GoogleCalendar> getCalendars() throws IOException {
List<CalendarListEntry> calendarListEntries = dao.calendarList().list().execute().getItems();
List<GoogleCalendar> calendars = new ArrayList<>();
if (calendarListEntries != null && !calendarListEntries.isEmpty()) {
for (int i = 0; i < calendarListEntries.size(); i++) {
CalendarListEntry calendarListEntry = calendarListEntries.get(i);
GoogleCalendar calendar = converter.convert(calendarListEntry, GoogleCalendar.class);
calendar.setStyle(com.calendarfx.model.Calendar.Style.getStyle(i));
calendars.add(calendar);
}
}
return calendars;
}
/**
* Gets a list of entries belonging to the given calendar defined between the given range of time. Recurring events
* are not expanded, always recurrence is handled manually within the framework.
*
* @param calendar The calendar owner of the entries.
* @param startDate The start date, not nullable.
* @param endDate The end date, not nullable
* @param zoneId The timezone in which the dates are represented.
* @return A non-null list of entries.
* @throws IOException For unexpected errors
*/
public List<GoogleEntry> getEntries(GoogleCalendar calendar, LocalDate startDate, LocalDate endDate, ZoneId zoneId) throws IOException {
if (!calendar.existsInGoogle()) {
return new ArrayList<>(0);
}
ZonedDateTime st = ZonedDateTime.of(startDate, LocalTime.MIN, zoneId);
ZonedDateTime et = ZonedDateTime.of(endDate, LocalTime.MAX, zoneId);
String calendarId = URLDecoder.decode(calendar.getId(), StandardCharsets.UTF_8);
List<Event> events = dao.events()
.list(calendarId)
.setTimeMin(new DateTime(Date.from(st.toInstant())))
.setTimeMax(new DateTime(Date.from(et.toInstant())))
.setSingleEvents(false)
.setShowDeleted(false)
.execute()
.getItems();
return toGoogleEntries(events);
}
/**
* Gets a list of entries that matches the given text. Recurring events
* are not expanded, always recurrence is handled manually within the framework.
*
* @param calendar The calendar owner of the entries.
* @param searchText The search text
* @return A non-null list of entries.
* @throws IOException For unexpected errors
*/
public List<GoogleEntry> getEntries(GoogleCalendar calendar, String searchText) throws IOException {
if (!calendar.existsInGoogle()) {
return new ArrayList<>(0);
}
String calendarId = URLDecoder.decode(calendar.getId(), StandardCharsets.UTF_8);
List<Event> events = dao.events()
.list(calendarId)
.setQ(searchText)
.setSingleEvents(false)
.setShowDeleted(false)
.execute()
.getItems();
return toGoogleEntries(events);
}
private List<GoogleEntry> toGoogleEntries(List<Event> events) {
List<GoogleEntry> entries = new ArrayList<>();
if (events != null && !events.isEmpty()) {
for (Event event : events) {
entries.add(converter.convert(event, GoogleEntry.class));
}
}
return entries;
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/service/GoogleConnector.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.service;
import com.calendarfx.google.model.GoogleAccount;
import com.google.api.client.auth.oauth2.AuthorizationCodeFlow;
import com.google.api.client.auth.oauth2.Credential;
import com.google.api.client.auth.oauth2.StoredCredential;
import com.google.api.client.auth.oauth2.TokenResponse;
import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow;
import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets;
import com.google.api.client.googleapis.auth.oauth2.GoogleOAuthConstants;
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.client.util.store.DataStore;
import com.google.api.client.util.store.DataStoreFactory;
import com.google.api.client.util.store.FileDataStoreFactory;
import com.google.api.services.calendar.Calendar;
import com.google.api.services.calendar.CalendarScopes;
import com.google.api.services.oauth2.Oauth2;
import com.google.api.services.oauth2.Oauth2Scopes;
import com.google.api.services.oauth2.model.Userinfoplus;
import com.google.code.geocoder.Geocoder;
import com.google.common.collect.Lists;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.security.GeneralSecurityException;
import java.util.List;
/**
* Utility class used to connect to google services.
*
* @author Gabriel Diaz, 16.12.2014
*/
public final class GoogleConnector {
/** Application name for identification purposes. */
private static final String APPLICATION_NAME = "flexcalendarfxapp";
/** Directory used to store the user credentials. */
private static final File CREDENTIALS_DIRECTORY = new File(System.getProperty("user.home"), ".store/flexcalendarfx");
/** Default scopes used by the Google calendar application. */
private static final List<String> SCOPES = Lists.newArrayList(CalendarScopes.CALENDAR, Oauth2Scopes.USERINFO_PROFILE);
/** The instance of this singleton class. */
private static GoogleConnector instance;
/** JSON implementation. */
private final JsonFactory jsonFactory;
/** HTTP transport used for transferring data. */
private final HttpTransport httpTransport;
/** Secrets of the FX calendar application. */
private final GoogleClientSecrets secrets;
/** Factory to create the data store object. */
private final DataStoreFactory dataStoreFactory;
/** Flow to get the access token. */
private AuthorizationCodeFlow flow;
/** Service that allows to manipulate Google Calendars. */
private GoogleCalendarService calendarService;
/** Service that allows to use Google Geolocalization. */
private GoogleGeocoderService geoService;
/**
* Instances the google connector configuring all required resources.
*/
private GoogleConnector() throws IOException, GeneralSecurityException {
super();
// 1. JSON library
jsonFactory = JacksonFactory.getDefaultInstance();
// 2. Configure HTTP transport
httpTransport = GoogleNetHttpTransport.newTrustedTransport();
// 3. Load the credentials
secrets = GoogleClientSecrets.load(jsonFactory, new InputStreamReader(GoogleConnector.class.getResourceAsStream("client-secrets.json")));
// 4. Configure the authentication flow
dataStoreFactory = new FileDataStoreFactory(CREDENTIALS_DIRECTORY);
// 5. Create flow
imp_buildAuthorizationFlow();
}
/**
* On demand instance creator method used to get the single instance of this
* google authenticator class.
*
* @return The single instance of this class, if the instance does not exist,
* this is immediately created.
*/
public static GoogleConnector getInstance() {
if (instance == null) {
try {
instance = new GoogleConnector();
} catch (Exception e) {
throw new RuntimeException("The GoogleConnector could not be instanced!", e);
}
}
return instance;
}
/**
* Starts the authorization process but using the provided authorization
* code, so this will not attempt to get it from the user.
*
* @param accountId The account to be authorized.
* @param authorizationCode The code used as key of authorization.
* @throws IOException If storing the code fails.
*/
synchronized void authorize(String accountId, String authorizationCode) throws IOException {
impl_storeCredential(accountId, authorizationCode);
}
/**
* Deletes the stored credentials for the given account id. This means the
* next time the user must authorize the app to access his calendars.
*
* @param accountId
* The identifier of the account.
*/
synchronized void removeCredential(String accountId) throws IOException {
DataStore<StoredCredential> sc = StoredCredential.getDefaultDataStore(dataStoreFactory);
sc.delete(accountId);
calendarService = null;
geoService = null;
}
/**
* Checks if the given account id has already been authorized and the
* user granted access to his calendars info.
*
* @param accountId
* The identifier of the account used internally by the application.
* @return {@code true} if the account has already been set up, otherwise
* {@code false}.
*/
boolean isAuthorized(String accountId) {
try {
DataStore<StoredCredential> sc = StoredCredential.getDefaultDataStore(dataStoreFactory);
return sc.containsKey(accountId);
} catch (IOException e) {
return false;
}
}
/**
* Generates a valid URL to let the user authorize access his Google
* calendar information.
*
* @return The valid web URL.
*/
public String getAuthorizationURL() {
return flow.newAuthorizationUrl().setRedirectUri(GoogleOAuthConstants.OOB_REDIRECT_URI).build();
}
/**
* Gets the service to access geo localization methods; using this service does not require authentication.
*
* @return The service created, this is on demand created.
*/
public synchronized GoogleGeocoderService getGeocoderService() {
if (geoService == null) {
geoService = new GoogleGeocoderService(new Geocoder());
}
return geoService;
}
/**
* Instances a new calendar service for the given google account user name.
* This requires previous authorization to get the service, so if the user
* has not granted access to his data, this method will start the
* authorization process automatically; this attempts to open the login google page in the
* default browser.
*
* @param accountId
* The google account.
* @return The calendar service, this can be null if the account cannot be
* authenticated.
* @throws IOException If the account has not been authenticated.
*/
public synchronized GoogleCalendarService getCalendarService(String accountId) throws IOException {
if (calendarService == null) {
Credential credential = impl_getStoredCredential(accountId);
if (credential == null) {
throw new UnsupportedOperationException("The account has not been authorized yet!");
}
calendarService = new GoogleCalendarService(impl_createService(credential));
}
return calendarService;
}
/**
* Requests the user info for the given account. This requires previous
* authorization from the user, so this might start the process.
*
* @param accountId
* The id of the account to get the user info.
* @return The user info bean.
* @throws IOException If the account cannot be accessed.
*/
GoogleAccount getAccountInfo(String accountId) throws IOException {
Credential credential = impl_getStoredCredential(accountId);
if (credential == null) {
throw new UnsupportedOperationException("The account has not been authorized yet!");
}
Userinfoplus info = impl_requestUserInfo(credential);
GoogleAccount account = new GoogleAccount();
account.setId(accountId);
account.setName(info.getName());
return account;
}
// :::::::::::::::::: PRIVATE STUFF :::::::::::::::::::::
private Calendar impl_createService(Credential credentials) {
return new Calendar.Builder(httpTransport, jsonFactory, credentials).setApplicationName(APPLICATION_NAME).build();
}
private Credential impl_getStoredCredential(String accountId) throws IOException {
return flow.loadCredential(accountId);
}
private void impl_storeCredential(String accountId, String authorizationCode) throws IOException {
TokenResponse response = flow.newTokenRequest(authorizationCode).setRedirectUri(GoogleOAuthConstants.OOB_REDIRECT_URI).execute();
flow.createAndStoreCredential(response, accountId);
}
private Userinfoplus impl_requestUserInfo(Credential credentials) throws IOException {
Oauth2 userInfoService = new Oauth2.Builder(httpTransport, jsonFactory, credentials).setApplicationName(APPLICATION_NAME).build();
return userInfoService.userinfo().get().execute();
}
private void imp_buildAuthorizationFlow() throws IOException {
flow = new GoogleAuthorizationCodeFlow.Builder(httpTransport, jsonFactory, secrets, SCOPES).setDataStoreFactory(dataStoreFactory).build();
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/service/GoogleGeocoderService.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.service;
import com.google.code.geocoder.Geocoder;
import com.google.code.geocoder.model.GeocodeResponse;
import com.google.code.geocoder.model.GeocoderGeometry;
import com.google.code.geocoder.model.GeocoderRequest;
import com.google.code.geocoder.model.GeocoderResult;
import com.google.code.geocoder.model.GeocoderStatus;
import java.io.IOException;
import java.util.List;
/**
* BeanConverter class that allows to transform from a location (String) to a
* coordinate and vice versa. Uses the Google GeoService, which is responsible
* of the transformation.
*
* @author Gabriel Diaz, 17.02.2015.
*/
public final class GoogleGeocoderService {
private final Geocoder geocoder;
GoogleGeocoderService(Geocoder geocoder) {
this.geocoder = geocoder;
}
public GeocoderGeometry locationToCoordinate(String location) throws IOException {
GeocoderGeometry coordinate = null;
if (location != null && !location.isEmpty()) {
GeocoderRequest request = new GeocoderRequest();
request.setAddress(location);
GeocodeResponse response = geocoder.geocode(request);
if (response.getStatus() == GeocoderStatus.OK) {
List<GeocoderResult> results = response.getResults();
for (GeocoderResult result : results) {
GeocoderGeometry geometry = result.getGeometry();
coordinate = geometry;
break;
}
}
}
return coordinate;
}
public String coordinateToLocation(GeocoderGeometry coordinate) throws IOException {
String location = null;
if (coordinate != null) {
GeocoderRequest request = new GeocoderRequest();
request.setLocation(coordinate.getLocation());
request.setBounds(coordinate.getBounds());
GeocodeResponse response = geocoder.geocode(request);
if (response.getStatus() == GeocoderStatus.OK) {
List<GeocoderResult> results = response.getResults();
for (GeocoderResult result : results) {
location = result.getFormattedAddress();
break;
}
}
}
return location;
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/service/SecurityService.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.service;
import com.calendarfx.google.model.GoogleAccount;
import javafx.scene.control.Alert;
import java.io.IOException;
/**
* Class that holds the info about the user logged in.
*
* Created by gdiaz on 5/05/2017.
*/
public class SecurityService {
/**
* Default user account id, used internally by the application for authentication purposes.
*/
private static final String DEFAULT_ACCOUNT_ID = "Google-Calendar";
private static SecurityService instance;
public static SecurityService getInstance() {
if (instance == null) {
instance = new SecurityService();
}
return instance;
}
private GoogleAccount account;
public GoogleAccount getLoggedAccount() {
return account;
}
public boolean isLoggedIn() {
return account != null;
}
public boolean isAuthorized() {
return GoogleConnector.getInstance().isAuthorized(SecurityService.DEFAULT_ACCOUNT_ID);
}
public boolean authorize(String authorizationCode) {
try {
GoogleConnector.getInstance().authorize(SecurityService.DEFAULT_ACCOUNT_ID, authorizationCode);
return true;
} catch (IOException e) {
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setHeaderText("Unexpected error while authenticating into Google.");
alert.setContentText(e.getLocalizedMessage());
alert.show();
return false;
}
}
public GoogleAccount login() {
if (isLoggedIn()) {
logout();
}
try {
account = GoogleConnector.getInstance().getAccountInfo(SecurityService.DEFAULT_ACCOUNT_ID);
return account;
} catch (IOException e) {
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setHeaderText("Unexpected error while login into Google.");
alert.setContentText(e.getLocalizedMessage());
alert.show();
return null;
}
}
public void logout() {
account = null;
try {
GoogleConnector.getInstance().removeCredential(SecurityService.DEFAULT_ACCOUNT_ID);
} catch (IOException e) {
Alert alert = new Alert(Alert.AlertType.ERROR);
alert.setHeaderText("Unexpected error removing credentials");
alert.setContentText(e.getLocalizedMessage());
alert.show();
}
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/GoogleCalendarAppView.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.view;
import com.calendarfx.google.view.log.LogPane;
import com.calendarfx.view.CalendarFXControl;
import com.calendarfx.view.CalendarView;
import com.calendarfx.view.DateControl;
import impl.com.calendarfx.google.view.GoogleCalendarAppViewSkin;
import javafx.scene.control.Skin;
import java.util.Objects;
/**
* Control which allows to log in by using a Google account in order to get
* access to the user calendar data. Displays the Google Login web page and then
* lets the user authorize us to read/write his calendar information. After
* authorization this displays a {@link DateControl} configured externally.
*
* @author Gabriel Diaz, 14.02.2015.
*/
public class GoogleCalendarAppView extends CalendarFXControl {
private final CalendarView calendarView;
private final LogPane logPane;
public GoogleCalendarAppView(CalendarView calendarView) {
super();
this.calendarView = Objects.requireNonNull(calendarView);
this.logPane = new LogPane();
}
@Override
protected Skin<?> createDefaultSkin() {
return new GoogleCalendarAppViewSkin(this);
}
public CalendarView getCalendarView() {
return calendarView;
}
public LogPane getLogPane() {
return logPane;
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/data/GoogleCalendarData.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.view.data;
import com.calendarfx.google.model.GoogleEntry;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
/**
* Class storing data about the entries loaded from google for one single calendar.
*
* Created by gdiaz on 27/02/2017.
*/
public final class GoogleCalendarData {
/**
* Set of Ids already loaded.
*/
private final Set<String> loadedEntryIds = new HashSet<>();
/**
* Set of searchText already loaded.
*/
private final Set<String> loadedSearchText = new HashSet<>();
/**
* Set of slices already loaded for this calendar.
*/
private final Set<Slice> loadedSlices = new TreeSet<>();
/**
* Set of slices being loaded in background.
*/
private final Set<Slice> inProgressSlices = new TreeSet<>();
/**
* Takes the list of slices and removes those already loaded.
*
* @param slices the slices to be processed.
* @return A new list containing the unloaded slices.
*/
public List<Slice> getUnloadedSlices(List<Slice> slices) {
List<Slice> unloadedSlices = new ArrayList<>(slices);
unloadedSlices.removeAll(loadedSlices);
unloadedSlices.removeAll(inProgressSlices);
return unloadedSlices;
}
/**
* Adds the given list of slices to the ones being loaded. This produces the slices are not classified as not loaded but in progress loading.
*
* @param slices The list of slices to be added.
*/
public void addInProgressSlices(List<Slice> slices) {
inProgressSlices.addAll(slices);
}
/**
* Adds the given slice to the list of loaded ones. This also removes it from the list of being loaded ones, in case it was added.
*
* @param slice The slice to be added.
*/
public void addLoadedSlice(Slice slice) {
loadedSlices.add(slice);
inProgressSlices.remove(slice);
}
/**
* Checks whether an entry was already added or not.
*
* @param entry The entry to be loaded.
* @return True or false.
*/
public boolean isLoadedEntry(GoogleEntry entry) {
return loadedEntryIds.contains(entry.getId());
}
/**
* Puts the entry in the loaded ones.
*
* @param entry The entry loaded.
*/
public void addLoadedEntry(GoogleEntry entry) {
loadedEntryIds.add(entry.getId());
}
/**
* Checks whether the search text was already loaded or not.
*
* @param searchText The search text.
* @return True or false.
*/
public boolean isLoadedSearchText(String searchText) {
return loadedSearchText.contains(searchText);
}
/**
* Puts the text in the loaded ones.
*
* @param searchText The text to be added.
*/
public void addLoadedSearchText(String searchText) {
loadedSearchText.add(searchText);
}
/**
* Clears the data stored about the calendar.
*/
public void clear() {
loadedSlices.clear();
loadedSearchText.clear();
loadedEntryIds.clear();
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/data/IGoogleCalendarDataProvider.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.view.data;
import com.calendarfx.google.model.GoogleCalendar;
/**
* Provider of the google calendar data.
*
* Created by gdiaz on 5/05/2017.
*/
public interface IGoogleCalendarDataProvider {
default GoogleCalendarData getCalendarData(GoogleCalendar calendar) {
return getCalendarData(calendar, false);
}
GoogleCalendarData getCalendarData(GoogleCalendar calendar, boolean create);
void removeCalendarData(GoogleCalendar calendar);
void clearData();
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/data/Slice.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.view.data;
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import java.time.LocalDate;
import java.time.YearMonth;
import java.time.temporal.ChronoUnit;
import java.util.List;
import java.util.Objects;
/**
* Class representing a period for loading events from google.
*
* @author Gabriel Diaz, 20.03.2015.
*/
public final class Slice implements Comparable {
private final LocalDate start;
private final LocalDate end;
private Slice(LocalDate start, LocalDate end) {
this.start = Objects.requireNonNull(start);
this.end = Objects.requireNonNull(end);
}
public LocalDate getStart() {
return start;
}
public LocalDate getEnd() {
return end;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((start == null) ? 0 : start.hashCode());
result = prime * result + ((end == null) ? 0 : end.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null || getClass() != obj.getClass()) {
return false;
}
Slice other = (Slice) obj;
if (start == null) {
if (other.start != null) {
return false;
}
} else if (!start.equals(other.start)) {
return false;
}
if (end == null) {
return other.end == null;
} else return end.equals(other.end);
}
@Override
public String toString() {
return "Slice [" + getStart() + " | " + getEnd() + "]";
}
@Override
public int compareTo(Object o) {
if (o instanceof Slice) {
Slice other = (Slice) o;
if (start == null) {
return other.start == null ? 0 : -1;
}
return start.compareTo(other.start);
}
return 1;
}
/**
* Splits the given period into multiple slices of one month long.
*
* @param start the start of the period.
* @param end the end of the period.
* @return The list of slices result of the splitting.
*/
public static List<Slice> split(LocalDate start, LocalDate end) {
Objects.requireNonNull(start);
Objects.requireNonNull(end);
Preconditions.checkArgument(!start.isAfter(end));
List<Slice> slices = Lists.newArrayList();
LocalDate startOfMonth = start.withDayOfMonth(1);
LocalDate endOfMonth = YearMonth.from(end).atEndOfMonth();
do {
slices.add(new Slice(startOfMonth, YearMonth.from(startOfMonth).atEndOfMonth()));
startOfMonth = startOfMonth.plus(1, ChronoUnit.MONTHS);
}
while (startOfMonth.isBefore(endOfMonth) || startOfMonth.isEqual(endOfMonth));
return slices;
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/log/ActionType.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.view.log;
/**
* Action performed by the user.
*
* Created by gdiaz on 28/02/2017.
*/
public enum ActionType {
LOAD {
@Override
public String getDisplayName() {
return "Load";
}
},
INSERT {
@Override
public String getDisplayName() {
return "Insert";
}
},
UPDATE {
@Override
public String getDisplayName() {
return "Update";
}
},
DELETE {
@Override
public String getDisplayName() {
return "Delete";
}
},
MOVE {
@Override
public String getDisplayName() {
return "Move";
}
},
REFRESH {
@Override
public String getDisplayName() {
return "Refresh";
}
};
public abstract String getDisplayName();
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/log/LogItem.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.view.log;
import javafx.beans.property.ObjectProperty;
import javafx.beans.property.SimpleObjectProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;
import java.time.LocalDateTime;
/**
* Item of the log that provides information about one performed task.
*
* Created by gdiaz on 22/02/2017.
*/
public class LogItem {
private final ObjectProperty<LocalDateTime> time = new SimpleObjectProperty<>(this, "time");
public final ObjectProperty<LocalDateTime> timeProperty() {
return time;
}
public final LocalDateTime getTime() {
return timeProperty().get();
}
public final void setTime(LocalDateTime time) {
timeProperty().set(time);
}
private final ObjectProperty<ActionType> action = new SimpleObjectProperty<>(this, "action");
public final ObjectProperty<ActionType> actionProperty() {
return action;
}
public ActionType getAction() {
return actionProperty().get();
}
public void setAction(ActionType action) {
actionProperty().set(action);
}
private final StringProperty calendar = new SimpleStringProperty(this, "calendar");
public final StringProperty calendarProperty() {
return calendar;
}
public final String getCalendar() {
return calendarProperty().get();
}
public final void setCalendar(String calendar) {
calendarProperty().set(calendar);
}
private final ObjectProperty<Throwable> exception = new SimpleObjectProperty<>(this, "exception");
public final ObjectProperty<Throwable> exceptionProperty() {
return exception;
}
public final Throwable getException() {
return exceptionProperty().get();
}
public final void setException(Throwable exception) {
exceptionProperty().set(exception);
}
private final StringProperty description = new SimpleStringProperty(this, "description");
public final StringProperty descriptionProperty() {
return description;
}
public final String getDescription() {
return descriptionProperty().get();
}
public final void setDescription(String description) {
descriptionProperty().set(description);
}
private final ObjectProperty<StatusType> status = new SimpleObjectProperty<>(this, "status");
public final ObjectProperty<StatusType> statusProperty() {
return status;
}
public final StatusType getStatus() {
return statusProperty().get();
}
public final void setStatus(StatusType status) {
statusProperty().set(status);
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/log/LogPane.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.view.log;
import impl.com.calendarfx.google.view.log.LogPaneSkin;
import javafx.beans.binding.Bindings;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.collections.transformation.FilteredList;
import javafx.collections.transformation.SortedList;
import javafx.geometry.Pos;
import javafx.scene.control.ContentDisplay;
import javafx.scene.control.Control;
import javafx.scene.control.SelectionMode;
import javafx.scene.control.Skin;
import javafx.scene.control.TableCell;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.Tooltip;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.paint.Color;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.FormatStyle;
import java.util.Collection;
import java.util.function.Predicate;
/**
* Pane that displays a table with all log items registered by the app.
*
* Created by gdiaz on 22/02/2017.
*/
public class LogPane extends Control {
private final ObservableList<LogItem> items = FXCollections.observableArrayList();
private final FilteredList filteredData;
private final TableView<LogItem> table;
private LogTableFilter filter;
public LogPane() {
super();
table = new TableView<>();
TableColumn<LogItem, StatusType> statusColumn = new TableColumn<>("Status");
statusColumn.setCellValueFactory(new PropertyValueFactory<>("status"));
statusColumn.prefWidthProperty().bind(Bindings.multiply(0.1, table.widthProperty()));
statusColumn.setCellFactory(col -> new StatusTypeCell());
TableColumn<LogItem, ActionType> actionColumn = new TableColumn<>("Action");
actionColumn.setCellValueFactory(new PropertyValueFactory<>("action"));
actionColumn.prefWidthProperty().bind(Bindings.multiply(0.1, table.widthProperty()));
actionColumn.setCellFactory(col -> new ActionTypeCell());
TableColumn<LogItem, LocalDateTime> timeColumn = new TableColumn<>("Time");
timeColumn.setCellValueFactory(new PropertyValueFactory<>("time"));
timeColumn.prefWidthProperty().bind(Bindings.multiply(0.2, table.widthProperty()));
timeColumn.setCellFactory(col -> new TimeCell());
TableColumn<LogItem, String> calendarColumn = new TableColumn<>("Calendar");
calendarColumn.setCellValueFactory(new PropertyValueFactory<>("calendar"));
calendarColumn.prefWidthProperty().bind(Bindings.multiply(0.2, table.widthProperty()));
TableColumn<LogItem, String> descriptionColumn = new TableColumn<>("Description");
descriptionColumn.setCellValueFactory(new PropertyValueFactory<>("description"));
descriptionColumn.prefWidthProperty().bind(Bindings.multiply(0.4, table.widthProperty()));
filteredData = new FilteredList<>(items);
SortedList<LogItem> sortedData = new SortedList<>(filteredData);
sortedData.comparatorProperty().bind(table.comparatorProperty());
table.getColumns().add(statusColumn);
table.getColumns().add(actionColumn);
table.getColumns().add(timeColumn);
table.getColumns().add(calendarColumn);
table.getColumns().add(descriptionColumn);
table.setTableMenuButtonVisible(true);
table.setItems(sortedData);
table.getSelectionModel().setSelectionMode(SelectionMode.MULTIPLE);
}
@Override
protected Skin<?> createDefaultSkin() {
return new LogPaneSkin(this, table);
}
public final ObservableList<LogItem> getItems() {
return items;
}
public final void clearItems() {
items.clear();
table.getSelectionModel().clearSelection();
}
public final void removeItems(Collection<LogItem> items) {
this.items.removeAll(items);
table.getSelectionModel().clearSelection();
}
public final ObservableList<LogItem> getSelectedItems() {
return table.getSelectionModel().getSelectedItems();
}
public final void filter(Collection<StatusType> statuses) {
filter = new LogTableFilter(filter);
filter.setStatusTypes(statuses);
filteredData.setPredicate(filter);
}
public final void filter(String text) {
filter = new LogTableFilter(filter);
filter.setText(text);
filteredData.setPredicate(filter);
}
public final void filter(ActionType actionType) {
filter = new LogTableFilter(filter);
filter.setActionType(actionType);
filteredData.setPredicate(filter);
}
/**
* Filter used for the table.
*/
private static class LogTableFilter implements Predicate<LogItem> {
private Collection<StatusType> statuses;
private String text;
private ActionType actionType;
LogTableFilter(LogTableFilter oldFilter) {
if (oldFilter != null) {
this.statuses = oldFilter.statuses;
this.text = oldFilter.text;
this.actionType = oldFilter.actionType;
}
}
void setStatusTypes(Collection<StatusType> statuses) {
this.statuses = statuses;
}
void setText(String text) {
this.text = text;
}
void setActionType(ActionType actionType) {
this.actionType = actionType;
}
@Override
public boolean test(LogItem logItem) {
if (statuses != null && !statuses.contains(logItem.getStatus())) {
return false;
}
if (actionType != null && !actionType.equals(logItem.getAction())) {
return false;
}
if (text != null && !text.isEmpty()) {
String textLower = text.toLowerCase();
if (logItem.getDescription() != null) {
String descriptionLower = logItem.getDescription().toLowerCase();
if (descriptionLower.contains(textLower)) {
return true;
}
}
if (logItem.getCalendar() != null) {
String calendarLower = logItem.getCalendar().toLowerCase();
return calendarLower.contains(textLower);
}
return false;
}
return true;
}
}
/**
* Cell for the status column.
*/
private static class StatusTypeCell extends TableCell<LogItem, StatusType> {
@Override
protected void updateItem(StatusType item, boolean empty) {
super.updateItem(item, empty);
setText(null);
setTooltip(null);
setAlignment(Pos.CENTER);
setGraphic(null);
setContentDisplay(ContentDisplay.GRAPHIC_ONLY);
if (item != null && !empty) {
setGraphic(item.createView());
setTooltip(new Tooltip(item.getDisplayName()));
}
}
}
/**
* Cell for the action type column.
*/
private static class ActionTypeCell extends TableCell<LogItem, ActionType> {
@Override
protected void updateItem(ActionType item, boolean empty) {
super.updateItem(item, empty);
setText(null);
setTextFill(Color.BLACK);
if (item != null && !empty) {
setText(item.getDisplayName());
}
}
}
/**
* Cell for the time column.
*/
private static class TimeCell extends TableCell<LogItem, LocalDateTime> {
private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM, FormatStyle.SHORT);
@Override
protected void updateItem(LocalDateTime item, boolean empty) {
super.updateItem(item, empty);
setText(null);
if (item != null && !empty) {
setText(FORMATTER.format(item));
}
}
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/log/StatusType.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.view.log;
import javafx.scene.paint.Color;
import org.kordamp.ikonli.Ikon;
import org.kordamp.ikonli.fontawesome.FontAwesome;
import org.kordamp.ikonli.javafx.FontIcon;
/**
* Status of the google task.
*
* Created by gdiaz on 28/02/2017.
*/
public enum StatusType {
SUCCEEDED {
@Override
public String getDisplayName() {
return "Succeeded";
}
@Override
public Ikon getIcon() {
return FontAwesome.CHECK;
}
@Override
public Color getColor() {
return Color.GREEN;
}
},
PENDING {
@Override
public String getDisplayName() {
return "Pending";
}
@Override
public Ikon getIcon() {
return FontAwesome.EXCLAMATION_TRIANGLE;
}
@Override
public Color getColor() {
return Color.ORANGE;
}
},
FAILED {
@Override
public String getDisplayName() {
return "Failed";
}
@Override
public Ikon getIcon() {
return FontAwesome.CLOSE;
}
@Override
public Color getColor() {
return Color.RED;
}
},
CANCELLED {
@Override
public String getDisplayName() {
return "Cancelled";
}
@Override
public Ikon getIcon() {
return FontAwesome.EXCLAMATION_CIRCLE;
}
@Override
public Color getColor() {
return Color.BLUE;
}
};
public abstract String getDisplayName();
public abstract Ikon getIcon();
public abstract Color getColor();
public FontIcon createView() {
FontIcon view = new FontIcon(getIcon());
view.setFill(getColor());
return view;
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/popover/GoogleEntryAttendeesView.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.view.popover;
import com.calendarfx.google.model.GoogleEntry;
import com.calendarfx.view.popover.EntryPopOverPane;
import com.google.api.services.calendar.model.EventAttendee;
import com.google.common.collect.Lists;
import javafx.beans.Observable;
import javafx.beans.binding.Bindings;
import javafx.beans.property.BooleanProperty;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.css.PseudoClass;
import javafx.scene.control.Button;
import javafx.scene.control.CheckBox;
import javafx.scene.control.ContextMenu;
import javafx.scene.control.Label;
import javafx.scene.control.MenuItem;
import javafx.scene.control.SeparatorMenuItem;
import javafx.scene.control.TextField;
import javafx.scene.control.Tooltip;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import javafx.scene.layout.VBox;
import org.controlsfx.glyphfont.FontAwesome;
import org.controlsfx.glyphfont.Glyph;
import java.util.List;
import java.util.Objects;
import static java.util.Objects.requireNonNull;
import static javafx.scene.input.ContextMenuEvent.CONTEXT_MENU_REQUESTED;
/**
* Pane used to edit the attendees of a Google Entry.
*
* @author Gabriel Diaz, 21.02.2015.
*/
public class GoogleEntryAttendeesView extends EntryPopOverPane {
private static final PseudoClass INVALID = PseudoClass.getPseudoClass("invalid");
private final GoogleEntry entry;
private final TextField txtEmail;
private final Button btAdd;
public GoogleEntryAttendeesView(GoogleEntry entry) {
super();
this.entry = requireNonNull(entry);
txtEmail = new TextField();
txtEmail.getStyleClass().add("email-field");
txtEmail.textProperty().addListener(obs -> enableButton());
txtEmail.setOnAction(evt -> createAttendee());
btAdd = new Button("Add");
btAdd.setOnAction(evt -> createAttendee());
enableButton();
Label lblTitle = new Label("Attendees can:");
lblTitle.getStyleClass().add("title");
CheckBox chkEdit = new CheckBox("modify event");
chkEdit.selectedProperty().bindBidirectional(entry.attendeesCanModifyProperty());
chkEdit.disableProperty().bind(entry.getCalendar().readOnlyProperty());
CheckBox chkInvite = new CheckBox("invite others");
chkInvite.selectedProperty().bindBidirectional(entry.attendeesCanInviteOthersProperty());
chkInvite.disableProperty().bind(Bindings.or(entry.getCalendar().readOnlyProperty(), entry.attendeesCanModifyProperty()));
CheckBox chkSeeOthers = new CheckBox("see attendees list");
chkSeeOthers.selectedProperty().bindBidirectional(entry.attendeesCanSeeOthersProperty());
chkSeeOthers.disableProperty().bind(Bindings.or(entry.getCalendar().readOnlyProperty(), entry.attendeesCanModifyProperty()));
HBox checksParent = new HBox(chkEdit, chkInvite, chkSeeOthers);
checksParent.getStyleClass().add("checks-parent");
HBox.setHgrow(txtEmail, Priority.ALWAYS);
HBox.setHgrow(btAdd, Priority.NEVER);
HBox.setHgrow(chkEdit, Priority.ALWAYS);
HBox.setHgrow(chkInvite, Priority.ALWAYS);
HBox.setHgrow(chkSeeOthers, Priority.ALWAYS);
HBox top = new HBox(txtEmail, btAdd);
top.getStyleClass().add("top");
VBox center = new VBox();
center.getStyleClass().add("center");
VBox bottom = new VBox(lblTitle, checksParent);
bottom.getStyleClass().add("bottom");
BorderPane container = new BorderPane();
container.setTop(top);
container.setCenter(center);
container.setBottom(bottom);
getChildren().add(container);
getStyleClass().add("attendees-view");
entry.getAttendees().addListener((Observable obs) -> buildItems(center, entry.getAttendees()));
buildItems(center, entry.getAttendees());
}
private void createAttendee() {
createAttendee(txtEmail.getText());
txtEmail.setText("");
enableButton();
getScene().getWindow().sizeToScene();
}
private void enableButton() {
txtEmail.pseudoClassStateChanged(INVALID, false);
if (entry.getCalendar().isReadOnly()) {
btAdd.setDisable(true);
return;
}
if (txtEmail.getText() == null || txtEmail.getText().trim().isEmpty()) {
btAdd.setDisable(true);
return;
}
if (!isValidEmail(txtEmail.getText())) {
btAdd.setDisable(true);
txtEmail.pseudoClassStateChanged(INVALID, true);
return;
}
for (EventAttendee attendee : entry.getAttendees()) {
if (attendee.getEmail().equals(txtEmail.getText())) {
btAdd.setDisable(true);
return;
}
}
btAdd.setDisable(false);
}
private boolean isValidEmail(String email) {
String ePattern = "^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$";
java.util.regex.Pattern pattern = java.util.regex.Pattern.compile(ePattern);
java.util.regex.Matcher matcher = pattern.matcher(email);
return matcher.matches();
}
private void buildItems(VBox parent, List<EventAttendee> attendees) {
List<GoogleEntryAttendeeItem> attendeesNode = Lists.newArrayList();
for (EventAttendee attendee : attendees) {
attendeesNode.add(new GoogleEntryAttendeeItem(attendee));
}
parent.getChildren().setAll(attendeesNode);
}
private void createAttendee(String email) {
EventAttendee attendee = new EventAttendee();
attendee.setEmail(email);
attendee.setDisplayName(email);
entry.getAttendees().add(attendee);
}
private void removeAttendee(EventAttendee attendee) {
entry.getAttendees().remove(attendee);
}
/**
* Custom control to display an attendee of the Google Entry.
*
* @author Gabriel Diaz, 21.02.2015.
*/
private class GoogleEntryAttendeeItem extends HBox {
private final Label optionalIcon;
private final Label statusIcon;
private final Label name;
private final Label removeButton;
private final EventAttendee attendee;
public GoogleEntryAttendeeItem(EventAttendee attendee) {
this.attendee = Objects.requireNonNull(attendee);
optionalIcon = new Label();
optionalIcon.setOnMouseClicked(evt -> setOptional(!isOptional()));
optionalIcon.getStyleClass().add("button-icon");
optionalIcon.setTooltip(new Tooltip());
statusIcon = new Label();
name = new Label();
name.setMaxWidth(Double.MAX_VALUE);
setOptional(Boolean.TRUE.equals(attendee.getOptional()));
optionalProperty().addListener(obs -> updateIcon());
updateIcon();
removeButton = new Label();
removeButton.setGraphic(new FontAwesome().create(FontAwesome.Glyph.TRASH_ALT));
removeButton.getStyleClass().add("button-icon");
removeButton.setOnMouseClicked(evt -> removeAttendee(attendee));
HBox.setHgrow(optionalIcon, Priority.NEVER);
HBox.setHgrow(name, Priority.ALWAYS);
HBox.setHgrow(removeButton, Priority.NEVER);
getStyleClass().add("attendee-item");
getChildren().addAll(optionalIcon, statusIcon, name, removeButton);
ContextMenu menu = new ContextMenu();
MenuItem optionalItem = new MenuItem("Mark as optional");
optionalItem.setOnAction(evt -> setOptional(true));
MenuItem requiredItem = new MenuItem("Mark as required");
requiredItem.setOnAction(evt -> setOptional(false));
MenuItem removeItem = new MenuItem("Remove attendee");
removeItem.setOnAction(evt -> removeAttendee(attendee));
menu.getItems().addAll(optionalItem, requiredItem, new SeparatorMenuItem(), removeItem);
addEventHandler(CONTEXT_MENU_REQUESTED, evt -> menu.show(this, evt.getScreenX(), evt.getScreenY()));
}
private void updateIcon() {
FontAwesome fontAwesome = new FontAwesome();
Glyph img = fontAwesome.create(FontAwesome.Glyph.MALE);
img.setOpacity(isOptional() ? 0.4 : 1.0);
optionalIcon.setGraphic(img);
optionalIcon.getTooltip().setText(isOptional() ? "optional" : "required");
name.setText(attendee.getEmail() + (isOptional() ? " (optional)" : ""));
}
private final BooleanProperty optional = new SimpleBooleanProperty(this, "optional");
public final BooleanProperty optionalProperty() {
return optional;
}
public final boolean isOptional() {
return optionalProperty().get();
}
public final void setOptional(boolean optional) {
optionalProperty().set(optional);
}
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/popover/GoogleEntryDetailsView.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.view.popover;
import com.calendarfx.google.model.GoogleCalendar;
import com.calendarfx.google.model.GoogleEntry;
import com.calendarfx.google.model.GoogleEntryReminder;
import com.calendarfx.google.model.GoogleEntryReminder.RemindMethod;
import com.calendarfx.view.DateControl;
import com.calendarfx.view.popover.EntryDetailsView;
import com.google.common.collect.Lists;
import javafx.beans.Observable;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.geometry.Pos;
import javafx.geometry.VPos;
import javafx.scene.control.ComboBox;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.HBox;
import javafx.scene.layout.Priority;
import javafx.scene.layout.VBox;
import javafx.util.StringConverter;
import org.controlsfx.glyphfont.FontAwesome;
import java.util.List;
import java.util.concurrent.TimeUnit;
import static java.util.Objects.requireNonNull;
/**
* Custom details view which adds some additional controls to edit google entry
* specific info.
*
* @author Gabriel Diaz, 07.03.2015.
*/
public class GoogleEntryDetailsView extends EntryDetailsView {
private final GoogleEntry entry;
public GoogleEntryDetailsView(GoogleEntry entry, DateControl dateControl) {
super(requireNonNull(entry), dateControl);
this.entry = entry;
Label notificationLabel = new Label("Notification:");
Label addButton = new Label("Add a notification");
addButton.getStyleClass().add("link");
addButton.setOnMouseClicked(evt -> createReminder());
addButton.disableProperty().bind(entry.getCalendar().readOnlyProperty());
VBox center = new VBox();
BorderPane notificationPane = new BorderPane();
notificationPane.setCenter(center);
notificationPane.setBottom(addButton);
GridPane box = (GridPane) getChildren().get(0);
box.add(notificationLabel, 0, 5);
box.add(notificationPane, 1, 5);
GridPane.setValignment(notificationLabel, VPos.TOP);
getStyleClass().add("details-view");
if (entry.isUseDefaultReminder()) {
GoogleCalendar calendar = (GoogleCalendar) entry.getCalendar();
reminders.addAll(calendar.getDefaultReminders());
}
reminders.addAll(entry.getReminders());
reminders.addListener((Observable obs) -> buildItems(center));
buildItems(center);
}
private final ObservableList<GoogleEntryReminder> reminders = FXCollections.observableArrayList();
private void buildItems(VBox parent) {
List<GoogleEntryReminderItem> attendeesNode = Lists.newArrayList();
for (GoogleEntryReminder reminder : reminders) {
attendeesNode.add(new GoogleEntryReminderItem(reminder));
}
parent.getChildren().setAll(attendeesNode);
}
private void createReminder() {
GoogleEntryReminder reminder = new GoogleEntryReminder();
reminder.setMethod(RemindMethod.POPUP);
reminder.setMinutes(10);
reminders.add(reminder);
entry.getReminders().add(reminder);
}
private void removeReminder(GoogleEntryReminder reminder) {
reminders.remove(reminder);
entry.getReminders().remove(reminder);
}
/**
* Control that represents an event reminder item.
*
* @author Gabriel Diaz, 07.03.2015.
*/
private class GoogleEntryReminderItem extends HBox {
private final GoogleEntryReminder reminder;
private final ComboBox<RemindMethod> methodCombo;
private final ComboBox<TimeUnit> unitCombo;
private final TextField valueTxt;
private final Label removeIcon;
private GoogleEntryReminderItem(GoogleEntryReminder reminder) {
this.reminder = requireNonNull(reminder);
methodCombo = new ComboBox<>();
methodCombo.getItems().setAll(RemindMethod.values());
methodCombo.disableProperty().bind(entry.getCalendar().readOnlyProperty());
methodCombo.valueProperty().bindBidirectional(reminder.methodProperty());
methodCombo.setConverter(new StringConverter<RemindMethod>() {
@Override
public String toString(RemindMethod object) {
return object.getName();
}
@Override
public RemindMethod fromString(String string) {
for (RemindMethod method : RemindMethod.values()) {
if (method.getName().equals(string)) {
return method;
}
}
return null;
}
});
Integer minutes = reminder.getMinutes();
TimeUnit unit = TimeUnit.MINUTES;
if (minutes != null) {
if (minutes % 1440 == 0) {
unit = TimeUnit.DAYS;
minutes = minutes / 1400;
} else if (minutes % 60 == 0) {
unit = TimeUnit.HOURS;
minutes = minutes / 60;
}
}
valueTxt = new TextField();
valueTxt.disableProperty().bind(entry.getCalendar().readOnlyProperty());
valueTxt.setPrefColumnCount(5);
valueTxt.setText(minutes == null ? "" : minutes.toString());
valueTxt.textProperty().addListener(obs -> updateMinutes());
unitCombo = new ComboBox<>();
unitCombo.getItems().setAll(TimeUnit.MINUTES, TimeUnit.HOURS, TimeUnit.DAYS);
unitCombo.disableProperty().bind(entry.getCalendar().readOnlyProperty());
unitCombo.setValue(unit);
unitCombo.valueProperty().addListener(obs -> updateMinutes());
removeIcon = new Label();
removeIcon.getStyleClass().add("button-icon");
removeIcon.setGraphic(new FontAwesome().create(FontAwesome.Glyph.TRASH_ALT));
removeIcon.setOnMouseClicked(evt -> removeReminder(reminder));
removeIcon.disableProperty().bind(entry.getCalendar().readOnlyProperty());
HBox.setHgrow(removeIcon, Priority.NEVER);
setAlignment(Pos.CENTER_LEFT);
getChildren().addAll(methodCombo, valueTxt, unitCombo, removeIcon);
getStyleClass().add("notification-item");
}
private void updateMinutes() {
Integer minutes = null;
try {
Integer value = Integer.valueOf(valueTxt.getText());
if (unitCombo.getValue() == TimeUnit.DAYS) {
minutes = Math.toIntExact(TimeUnit.DAYS.toMinutes(value));
} else if (unitCombo.getValue() == TimeUnit.HOURS) {
minutes = Math.toIntExact(TimeUnit.HOURS.toMinutes(value));
} else {
minutes = value;
}
} catch (NumberFormatException e) {
// DO nothing
}
reminder.setMinutes(minutes);
}
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/popover/GoogleEntryGMapsFXView.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.view.popover;
import com.calendarfx.google.model.GoogleEntry;
import com.calendarfx.google.service.GoogleConnector;
import com.calendarfx.view.popover.EntryPopOverPane;
import com.google.code.geocoder.model.GeocoderGeometry;
import com.dlsc.gmapsfx.GoogleMapView;
import com.dlsc.gmapsfx.MapComponentInitializedListener;
import com.dlsc.gmapsfx.javascript.object.GoogleMap;
import com.dlsc.gmapsfx.javascript.object.LatLong;
import com.dlsc.gmapsfx.javascript.object.MapOptions;
import com.dlsc.gmapsfx.javascript.object.MapTypeIdEnum;
import com.dlsc.gmapsfx.javascript.object.Marker;
import com.dlsc.gmapsfx.javascript.object.MarkerOptions;
import javafx.application.Platform;
import javafx.concurrent.Service;
import javafx.concurrent.Task;
import javafx.scene.layout.StackPane;
/**
* Pane that shows in a map the location of the entry.
*
* Created by gdiaz on 13/01/2017.
*/
public class GoogleEntryGMapsFXView extends EntryPopOverPane implements MapComponentInitializedListener {
private final GoogleEntry entry;
private final GoogleMapView mapView = new GoogleMapView();
private final StackPane mapViewWrapper = new StackPane();
private final LocationFXService service = new LocationFXService();
GoogleEntryGMapsFXView(GoogleEntry entry) {
this.entry = entry;
this.entry.locationProperty().addListener(obs -> updateLocation());
this.mapView.addMapInitializedListener(this);
this.mapView.getStyleClass().add("map");
this.mapView.setMouseTransparent(true);
this.mapViewWrapper.getChildren().add(mapView);
this.mapViewWrapper.setVisible(false);
this.mapViewWrapper.managedProperty().bind(this.mapView.visibleProperty());
this.mapViewWrapper.setPrefSize(300, 300);
StackPane stackPane = new StackPane();
stackPane.getStyleClass().add("map-view-wrapper");
stackPane.getChildren().add(mapViewWrapper);
getChildren().add(stackPane);
}
@Override
public void mapInitialized() {
Platform.runLater(this::updateLocation);
}
private GoogleMap createMap() {
MapOptions options = new MapOptions();
options.zoom(15)
.overviewMapControl(false)
.mapTypeControl(false)
.panControl(false)
.rotateControl(false)
.scaleControl(false)
.streetViewControl(false)
.zoomControl(false)
.mapType(MapTypeIdEnum.ROADMAP);
return mapView.createMap(options, false);
}
private void updateLocation() {
service.restart();
}
private class LocationFXService extends Service<GeocoderGeometry> {
@Override
protected Task<GeocoderGeometry> createTask() {
return new Task<GeocoderGeometry>() {
@Override
protected GeocoderGeometry call() throws Exception {
Thread.sleep(1000);
return GoogleConnector.getInstance().getGeocoderService().locationToCoordinate(entry.getLocation());
}
};
}
@Override
public void start() {
super.start();
mapViewWrapper.setVisible(false);
}
@Override
protected void failed() {
super.failed();
mapViewWrapper.setVisible(false);
}
@Override
protected void succeeded() {
super.succeeded();
GeocoderGeometry geometry = getValue();
if (geometry != null) {
LatLong position = new LatLong(geometry.getLocation().getLat().doubleValue(), geometry.getLocation().getLng().doubleValue());
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(position);
markerOptions.title(entry.getTitle());
Marker marker = new Marker(markerOptions);
GoogleMap map = createMap();
map.addMarker(marker);
map.setCenter(position);
map.panTo(position);
mapViewWrapper.setVisible(true);
Platform.runLater(() -> Platform.runLater(() -> map.setCenter(position)));
}
}
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/popover/GoogleEntryPopOverContentPane.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.view.popover;
import com.calendarfx.google.model.GoogleEntry;
import com.calendarfx.model.Calendar;
import com.calendarfx.view.DateControl;
import com.calendarfx.view.popover.EntryHeaderView;
import com.calendarfx.view.popover.EntryPropertiesView;
import com.calendarfx.view.popover.PopOverContentPane;
import com.calendarfx.view.popover.PopOverTitledPane;
import javafx.collections.ObservableList;
import static java.util.Objects.requireNonNull;
/**
* Custom according Popover used to edit the information available in a google
* entry. This also allows to move the entry from a calendar to another.
*
* @author Gabriel Diaz, 07.03.2015.
*/
public class GoogleEntryPopOverContentPane extends PopOverContentPane {
public GoogleEntryPopOverContentPane(GoogleEntry entry, ObservableList<Calendar> allCalendars, DateControl dateControl) {
requireNonNull(entry);
getStylesheets().add(GoogleEntryPopOverContentPane.class.getResource("google-popover.css").toExternalForm());
EntryHeaderView header = new EntryHeaderView(entry, allCalendars);
GoogleEntryDetailsView details = new GoogleEntryDetailsView(entry, dateControl);
GoogleEntryAttendeesView attendees = new GoogleEntryAttendeesView(entry);
GoogleEntryGMapsFXView mapView = new GoogleEntryGMapsFXView(entry);
PopOverTitledPane detailsPane = new PopOverTitledPane("Details", details);
PopOverTitledPane attendeesPane = new PopOverTitledPane("Attendees", attendees);
if (Boolean.getBoolean("calendarfx.developer")) {
EntryPropertiesView properties = new EntryPropertiesView(entry);
PopOverTitledPane propertiesPane = new PopOverTitledPane("Properties", properties);
propertiesPane.getStyleClass().add("no-padding");
getPanes().addAll(detailsPane, attendeesPane, propertiesPane);
} else {
getPanes().addAll(detailsPane, attendeesPane);
}
setHeader(header);
setExpandedPane(detailsPane);
setFooter(mapView);
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/task/DeleteEntryTask.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.view.task;
import com.calendarfx.google.model.GoogleAccount;
import com.calendarfx.google.model.GoogleCalendar;
import com.calendarfx.google.model.GoogleEntry;
import com.calendarfx.google.service.GoogleConnector;
import com.calendarfx.google.view.log.ActionType;
/**
* Task that deletes one entry from google.
*
* Created by gdiaz on 12/03/2017.
*/
public final class DeleteEntryTask extends GoogleTask<Boolean> {
private final GoogleEntry entry;
private final GoogleCalendar calendar;
private final GoogleAccount account;
public DeleteEntryTask(GoogleEntry entry, GoogleCalendar calendar, GoogleAccount account) {
this.entry = entry;
this.calendar = calendar;
this.account = account;
this.logItem.setCalendar(calendar.getName());
this.logItem.setDescription(getDescription());
}
@Override
public ActionType getAction() {
return ActionType.DELETE;
}
@Override
public String getDescription() {
return "Delete " + entry;
}
@Override
protected Boolean call() throws Exception {
GoogleConnector.getInstance().getCalendarService(account.getId()).deleteEntry(entry, calendar);
return true;
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/task/GoogleTask.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.view.task;
import com.calendarfx.google.view.log.ActionType;
import com.calendarfx.google.view.log.LogItem;
import com.calendarfx.google.view.log.StatusType;
import javafx.concurrent.Task;
import java.time.LocalDateTime;
/**
* Base class for tasks executed for google calendar interaction.
*
* Created by gdiaz on 28/02/2017.
*/
public abstract class GoogleTask<V> extends Task<V> {
final LogItem logItem;
protected GoogleTask() {
super();
logItem = new LogItem();
logItem.setTime(LocalDateTime.now());
logItem.setStatus(StatusType.PENDING);
logItem.setDescription(getDescription());
logItem.setAction(getAction());
}
public LogItem getLogItem() {
return logItem;
}
public abstract ActionType getAction();
public abstract String getDescription();
@Override
protected void failed() {
logItem.setStatus(StatusType.FAILED);
logItem.setException(getException());
}
@Override
protected void cancelled() {
logItem.setStatus(StatusType.CANCELLED);
}
@Override
protected void succeeded() {
logItem.setStatus(StatusType.SUCCEEDED);
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/task/InsertCalendarTask.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.view.task;
import com.calendarfx.google.model.GoogleAccount;
import com.calendarfx.google.model.GoogleCalendar;
import com.calendarfx.google.service.GoogleConnector;
import com.calendarfx.google.view.log.ActionType;
/**
* Task that performs an insert operation into google.
*
* Created by gdiaz on 06.03.2017.
*/
public final class InsertCalendarTask extends GoogleTask<GoogleCalendar> {
private final GoogleCalendar calendar;
private final GoogleAccount account;
public InsertCalendarTask(GoogleCalendar calendar, GoogleAccount account) {
this.calendar = calendar;
this.account = account;
this.logItem.setDescription(getDescription());
}
@Override
public ActionType getAction() {
return ActionType.INSERT;
}
@Override
public String getDescription() {
return "Insert " + calendar;
}
@Override
protected GoogleCalendar call() throws Exception {
GoogleConnector.getInstance().getCalendarService(account.getId()).insertCalendar(calendar);
return calendar;
}
@Override
protected void succeeded() {
super.succeeded();
account.getCalendars().add(calendar);
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/task/InsertEntryTask.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.view.task;
import com.calendarfx.google.model.GoogleAccount;
import com.calendarfx.google.model.GoogleCalendar;
import com.calendarfx.google.model.GoogleEntry;
import com.calendarfx.google.service.GoogleConnector;
import com.calendarfx.google.view.log.ActionType;
/**
* Task that inserts an entry into google.
*
* Created by gdiaz on 12/03/2017.
*/
public final class InsertEntryTask extends GoogleTask<GoogleEntry> {
private final GoogleEntry entry;
private final GoogleCalendar calendar;
private final GoogleAccount account;
public InsertEntryTask(GoogleEntry entry, GoogleCalendar calendar, GoogleAccount account) {
this.entry = entry;
this.calendar = calendar;
this.account = account;
this.logItem.setCalendar(calendar.getName());
this.logItem.setDescription(getDescription());
}
@Override
public ActionType getAction() {
return ActionType.INSERT;
}
@Override
public String getDescription() {
return "Insert " + entry;
}
@Override
protected GoogleEntry call() throws Exception {
return GoogleConnector.getInstance().getCalendarService(account.getId()).insertEntry(entry, calendar);
}
@Override
protected void succeeded() {
super.succeeded();
calendar.addEntries(entry);
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/task/LoadAllCalendarsTask.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.view.task;
import com.calendarfx.google.model.GoogleAccount;
import com.calendarfx.google.model.GoogleCalendar;
import com.calendarfx.google.service.GoogleConnector;
import com.calendarfx.google.view.log.ActionType;
import java.util.List;
/**
* Task that queries all calendars from google and updates the google calendar source.
*
* Created by gdiaz on 28/02/2017.
*/
public final class LoadAllCalendarsTask extends GoogleTask<List<GoogleCalendar>> {
private final GoogleAccount account;
public LoadAllCalendarsTask(GoogleAccount account) {
super();
this.account = account;
}
@Override
public ActionType getAction() {
return ActionType.LOAD;
}
@Override
public String getDescription() {
return "Loading all calendars";
}
@Override
protected List<GoogleCalendar> call() throws Exception {
return GoogleConnector.getInstance().getCalendarService(account.getId()).getCalendars();
}
@Override
protected void succeeded() {
super.succeeded();
account.getCalendars().setAll(getValue());
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/task/LoadEntriesBySliceTask.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.view.task;
import com.calendarfx.google.model.GoogleAccount;
import com.calendarfx.google.model.GoogleCalendar;
import com.calendarfx.google.model.GoogleEntry;
import com.calendarfx.google.service.GoogleConnector;
import com.calendarfx.google.view.data.GoogleCalendarData;
import com.calendarfx.google.view.data.Slice;
import com.calendarfx.google.view.log.ActionType;
import java.time.ZoneId;
import java.util.List;
import static com.google.common.base.Preconditions.checkNotNull;
/**
* Task that loads some entries from google for one single calendar using the period provided by some slices.
*
* Created by gdiaz on 6/03/2017.
*/
public final class LoadEntriesBySliceTask extends GoogleTask<List<GoogleEntry>> {
private final GoogleAccount account;
private final GoogleCalendar calendar;
private final GoogleCalendarData entryData;
private final Slice slice;
private final ZoneId zoneId;
public LoadEntriesBySliceTask(GoogleAccount account, GoogleCalendar calendar, GoogleCalendarData entryData, Slice slice, ZoneId zoneId) {
super();
this.account = checkNotNull(account);
this.calendar = checkNotNull(calendar);
this.entryData = checkNotNull(entryData);
this.slice = checkNotNull(slice);
this.zoneId = checkNotNull(zoneId);
this.logItem.setCalendar(calendar.getName());
this.logItem.setDescription(getDescription());
}
@Override
public ActionType getAction() {
return ActionType.LOAD;
}
@Override
public String getDescription() {
return "Loading " + slice;
}
@Override
protected List<GoogleEntry> call() throws Exception {
return GoogleConnector.getInstance().getCalendarService(account.getId()).getEntries(calendar, slice.getStart(), slice.getEnd(), zoneId);
}
@Override
protected void succeeded() {
super.succeeded();
for (GoogleEntry entry : getValue()) {
if (!entryData.isLoadedEntry(entry)) {
calendar.addEntry(entry);
entryData.addLoadedEntry(entry);
}
}
entryData.addLoadedSlice(slice);
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/task/LoadEntriesByTextTask.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.view.task;
import com.calendarfx.google.model.GoogleAccount;
import com.calendarfx.google.model.GoogleCalendar;
import com.calendarfx.google.model.GoogleEntry;
import com.calendarfx.google.service.GoogleConnector;
import com.calendarfx.google.view.data.GoogleCalendarData;
import com.calendarfx.google.view.log.ActionType;
import java.util.List;
/**
* Search entries by text task.
*
* Created by gdiaz on 21/03/2017.
*/
public final class LoadEntriesByTextTask extends GoogleTask<List<GoogleEntry>> {
private final String searchText;
private final GoogleCalendar calendar;
private final GoogleCalendarData data;
private final GoogleAccount account;
public LoadEntriesByTextTask(String searchText, GoogleCalendar calendar, GoogleCalendarData data, GoogleAccount account) {
this.searchText = searchText;
this.calendar = calendar;
this.data = data;
this.account = account;
this.logItem.setCalendar(calendar.getName());
this.logItem.setDescription(getDescription());
}
@Override
public ActionType getAction() {
return ActionType.LOAD;
}
@Override
public String getDescription() {
return "Loading \"" + searchText + "\"";
}
@Override
protected List<GoogleEntry> call() throws Exception {
return GoogleConnector.getInstance().getCalendarService(account.getId()).getEntries(calendar, searchText);
}
@Override
protected void succeeded() {
super.succeeded();
for (GoogleEntry entry : getValue()) {
if (!data.isLoadedEntry(entry)) {
calendar.addEntry(entry);
data.addLoadedEntry(entry);
}
}
data.addLoadedSearchText(searchText);
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/task/MoveEntryTask.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.view.task;
import com.calendarfx.google.model.GoogleAccount;
import com.calendarfx.google.model.GoogleCalendar;
import com.calendarfx.google.model.GoogleEntry;
import com.calendarfx.google.service.GoogleConnector;
import com.calendarfx.google.view.log.ActionType;
/**
* Moves an entry from one calendar to another.
*
* Created by gdiaz on 19/03/2017.
*/
public final class MoveEntryTask extends GoogleTask<GoogleEntry> {
private final GoogleEntry entry;
private final GoogleCalendar from;
private final GoogleCalendar to;
private final GoogleAccount account;
public MoveEntryTask(GoogleEntry entry, GoogleCalendar from, GoogleCalendar to, GoogleAccount account) {
this.entry = entry;
this.from = from;
this.to = to;
this.account = account;
this.logItem.setCalendar(from.getName());
this.logItem.setDescription(getDescription());
}
@Override
public ActionType getAction() {
return ActionType.MOVE;
}
@Override
public String getDescription() {
return "Moving " + entry + " to " + to;
}
@Override
protected GoogleEntry call() throws Exception {
return GoogleConnector.getInstance().getCalendarService(account.getId()).moveEntry(entry, from, to);
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/task/RefreshCalendarsTask.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.view.task;
import com.calendarfx.google.model.GoogleAccount;
import com.calendarfx.google.model.GoogleCalendar;
import com.calendarfx.google.service.GoogleConnector;
import com.calendarfx.google.view.data.GoogleCalendarData;
import com.calendarfx.google.view.data.IGoogleCalendarDataProvider;
import com.calendarfx.google.view.log.ActionType;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* Task that allows to refresh the data of a single calendar.
*
* Created by gdiaz on 10/04/2017.
*/
public final class RefreshCalendarsTask extends GoogleTask<List<GoogleCalendar>> {
private final GoogleAccount account;
private final IGoogleCalendarDataProvider provider;
public RefreshCalendarsTask(GoogleAccount account, IGoogleCalendarDataProvider provider) {
this.account = account;
this.provider = provider;
}
@Override
public ActionType getAction() {
return ActionType.REFRESH;
}
@Override
public String getDescription() {
return "Refreshing all calendars";
}
@Override
protected List<GoogleCalendar> call() throws Exception {
return GoogleConnector.getInstance().getCalendarService(account.getId()).getCalendars();
}
@Override
protected void succeeded() {
super.succeeded();
List<GoogleCalendar> oldCalendars = account.getGoogleCalendars();
List<GoogleCalendar> newCalendars = getValue();
List<GoogleCalendar> updCalendars = new ArrayList<>();
for (Iterator<GoogleCalendar> newIterator = newCalendars.iterator(); newIterator.hasNext(); ) {
GoogleCalendar newCalendar = newIterator.next();
for (Iterator<GoogleCalendar> oldIterator = oldCalendars.iterator(); oldIterator.hasNext(); ) {
GoogleCalendar oldCalendar = oldIterator.next();
if (newCalendar.equals(oldCalendar)) {
oldIterator.remove();
newIterator.remove();
updCalendars.add(oldCalendar);
GoogleCalendarData data = provider.getCalendarData(oldCalendar);
if (data != null) {
data.clear();
}
break;
}
}
}
updCalendars.forEach(GoogleCalendar::clear);
account.getCalendars().removeAll(oldCalendars);
account.getCalendars().addAll(newCalendars);
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/task/UpdateEntryTask.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.view.task;
import com.calendarfx.google.model.GoogleAccount;
import com.calendarfx.google.model.GoogleEntry;
import com.calendarfx.google.service.GoogleConnector;
import com.calendarfx.google.view.log.ActionType;
import java.util.Map;
/**
* Task that updates one entry in google.
*
* Created by gdiaz on 12/03/2017.
*/
public final class UpdateEntryTask extends GoogleTask<GoogleEntry> {
private static final long TWO_SECONDS = 2 * 1000;
private GoogleEntry entry;
private final GoogleAccount account;
private final Map<GoogleEntry, UpdateEntryTask> updateTasks;
public UpdateEntryTask(GoogleEntry entry, GoogleAccount account, Map<GoogleEntry, UpdateEntryTask> updateTasks) {
this.entry = entry;
this.account = account;
this.updateTasks = updateTasks;
this.logItem.setCalendar(entry.getCalendar().getName());
this.logItem.setDescription(getDescription());
}
public void append(GoogleEntry newVersion) {
assert (entry.equals(newVersion));
this.entry = newVersion;
this.logItem.setDescription(getDescription());
}
@Override
public ActionType getAction() {
return ActionType.UPDATE;
}
@Override
public String getDescription() {
return "Update " + entry;
}
@Override
protected GoogleEntry call() throws Exception {
Thread.sleep(TWO_SECONDS);
return GoogleConnector.getInstance().getCalendarService(account.getId()).updateEntry(entry);
}
@Override
protected void succeeded() {
super.succeeded();
updateTasks.remove(entry);
}
@Override
protected void cancelled() {
super.cancelled();
updateTasks.remove(entry);
}
@Override
protected void failed() {
super.failed();
updateTasks.remove(entry);
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/thread/CalendarViewTimeUpdateThread.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.view.thread;
import com.calendarfx.view.CalendarView;
import javafx.application.Platform;
import java.time.LocalDate;
import java.time.LocalTime;
/**
* Thread that updates the current tine on the calendar view
*
* Created by gdiaz on 4/05/2017.
*/
public class CalendarViewTimeUpdateThread extends Thread {
private static final int TEN_SECONDS = 10000;
private final CalendarView calendarView;
public CalendarViewTimeUpdateThread(CalendarView calendarView) {
super("Google-Calendar-Update Current Time");
this.calendarView = calendarView;
setPriority(MIN_PRIORITY);
setDaemon(true);
}
@Override
@SuppressWarnings("InfiniteLoopStatement")
public void run() {
while (true) {
Platform.runLater(() -> {
calendarView.setToday(LocalDate.now());
calendarView.setTime(LocalTime.now());
});
try {
sleep(TEN_SECONDS);
} catch (InterruptedException e) {
// Do nothing
}
}
}
}
================================================
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/thread/GoogleAutoRefreshThread.java
================================================
/*
* Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.calendarfx.google.view.thread;
import com.calendarfx.google.service.SecurityService;
import com.calendarfx.google.view.data.IGoogleCalendarDataProvider;
import com.calendarfx.google.view.task.RefreshCalendarsTask;
import com.google.common.base.Preconditions;
/**
* Thread that performs the automatic refreshing.
*
* Created by gdiaz on 5/05/2017.
*/
public class GoogleAutoRefreshThread extends Thread {
private final Object LOCK = new Object();
private final IGoogleCalendarDataProvider provider;
private RefreshCalendarsTask task;
private long delay;
public GoogleAutoRefreshThread(IGoogleCalendarDataProvider provider) {
this.provider = provider;
this.delay = RefreshInterval.EVERY_5_MINUTES.getTime();
setName("Google-Calendar-Auto refresh Thread");
setPriority(NORM_PRIORITY);
setDaemon(true);
}
public long getDelay() {
return delay;
}
public void setDelay(long del
gitextract_uppttoi3/ ├── .github/ │ └── workflows/ │ ├── build.yml │ ├── codeql.yml │ └── release.yml ├── .gitignore ├── .mvn/ │ └── wrapper/ │ ├── maven-wrapper.jar │ └── maven-wrapper.properties ├── CHANGELOG.md ├── CHANGES.txt ├── CODE_OF_CONDUCT.md ├── CalendarFXApp/ │ ├── .gitignore │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ ├── com/ │ │ └── calendarfx/ │ │ └── app/ │ │ ├── CalendarApp.java │ │ ├── CalendarAppAtlantaFX.java │ │ ├── CalendarAppLauncher.java │ │ └── MonthViewApp.java │ └── module-info.java ├── CalendarFXGoogle/ │ ├── .gitignore │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── java/ │ │ │ ├── com/ │ │ │ │ └── calendarfx/ │ │ │ │ └── google/ │ │ │ │ ├── GoogleCalendarApp.java │ │ │ │ ├── converter/ │ │ │ │ │ ├── BeanConverter.java │ │ │ │ │ ├── BidirectionalBeanConverter.java │ │ │ │ │ ├── CalendarListEntryToGoogleCalendarConverter.java │ │ │ │ │ ├── EventToGoogleEntryConverter.java │ │ │ │ │ ├── GoogleCalendarToCalendarConverter.java │ │ │ │ │ ├── GoogleCalendarToCalendarListEntryConverter.java │ │ │ │ │ └── GoogleEntryToEventConverter.java │ │ │ │ ├── model/ │ │ │ │ │ ├── GoogleAccount.java │ │ │ │ │ ├── GoogleCalendar.java │ │ │ │ │ ├── GoogleCalendarEvent.java │ │ │ │ │ ├── GoogleEntry.java │ │ │ │ │ ├── GoogleEntryReminder.java │ │ │ │ │ └── IGoogleCalendarSearchTextProvider.java │ │ │ │ ├── service/ │ │ │ │ │ ├── BeanConverterService.java │ │ │ │ │ ├── GoogleCalendarService.java │ │ │ │ │ ├── GoogleConnector.java │ │ │ │ │ ├── GoogleGeocoderService.java │ │ │ │ │ └── SecurityService.java │ │ │ │ └── view/ │ │ │ │ ├── GoogleCalendarAppView.java │ │ │ │ ├── data/ │ │ │ │ │ ├── GoogleCalendarData.java │ │ │ │ │ ├── IGoogleCalendarDataProvider.java │ │ │ │ │ └── Slice.java │ │ │ │ ├── log/ │ │ │ │ │ ├── ActionType.java │ │ │ │ │ ├── LogItem.java │ │ │ │ │ ├── LogPane.java │ │ │ │ │ └── StatusType.java │ │ │ │ ├── popover/ │ │ │ │ │ ├── GoogleEntryAttendeesView.java │ │ │ │ │ ├── GoogleEntryDetailsView.java │ │ │ │ │ ├── GoogleEntryGMapsFXView.java │ │ │ │ │ └── GoogleEntryPopOverContentPane.java │ │ │ │ ├── task/ │ │ │ │ │ ├── DeleteEntryTask.java │ │ │ │ │ ├── GoogleTask.java │ │ │ │ │ ├── InsertCalendarTask.java │ │ │ │ │ ├── InsertEntryTask.java │ │ │ │ │ ├── LoadAllCalendarsTask.java │ │ │ │ │ ├── LoadEntriesBySliceTask.java │ │ │ │ │ ├── LoadEntriesByTextTask.java │ │ │ │ │ ├── MoveEntryTask.java │ │ │ │ │ ├── RefreshCalendarsTask.java │ │ │ │ │ └── UpdateEntryTask.java │ │ │ │ └── thread/ │ │ │ │ ├── CalendarViewTimeUpdateThread.java │ │ │ │ ├── GoogleAutoRefreshThread.java │ │ │ │ ├── GoogleNotificationPopupThread.java │ │ │ │ └── GoogleTaskExecutor.java │ │ │ ├── impl/ │ │ │ │ └── com/ │ │ │ │ └── calendarfx/ │ │ │ │ └── google/ │ │ │ │ └── view/ │ │ │ │ ├── GoogleCalendarAppViewSkin.java │ │ │ │ ├── GoogleCalendarCreateView.java │ │ │ │ ├── GoogleCalendarDataManager.java │ │ │ │ ├── GoogleCalendarSearchTextManager.java │ │ │ │ ├── GoogleSyncManager.java │ │ │ │ └── log/ │ │ │ │ └── LogPaneSkin.java │ │ │ └── module-info.java │ │ └── resources/ │ │ └── com/ │ │ └── calendarfx/ │ │ └── google/ │ │ ├── service/ │ │ │ ├── StoredCredential │ │ │ └── client-secrets.json │ │ └── view/ │ │ └── popover/ │ │ └── google-popover.css │ └── test/ │ └── java/ │ └── com/ │ └── calendarfx/ │ └── google/ │ └── view/ │ └── popover/ │ └── HelloGoogleEntryPopOverContentPane.java ├── CalendarFXResourceApp/ │ ├── .gitignore │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ ├── com/ │ │ └── calendarfx/ │ │ └── resource/ │ │ └── app/ │ │ ├── ResourceCalendarApp.java │ │ └── ResourceCalendarAppLauncher.java │ └── module-info.java ├── CalendarFXSampler/ │ ├── .gitignore │ ├── pom.xml │ └── src/ │ └── main/ │ ├── java/ │ │ ├── com/ │ │ │ └── calendarfx/ │ │ │ └── demo/ │ │ │ ├── CalendarFXDateControlSample.java │ │ │ ├── CalendarFXSample.java │ │ │ ├── CalendarFXSampler.java │ │ │ ├── CalendarFXSamplerProject.java │ │ │ ├── CalendarFXSamplerWelcome.java │ │ │ ├── entries/ │ │ │ │ ├── HelloAllDayEntryView.java │ │ │ │ ├── HelloDayEntryView.java │ │ │ │ ├── HelloEntryViewBase.java │ │ │ │ └── HelloMonthEntryView.java │ │ │ ├── pages/ │ │ │ │ ├── HelloDayPage.java │ │ │ │ ├── HelloMonthPage.java │ │ │ │ ├── HelloWeekPage.java │ │ │ │ └── HelloYearPage.java │ │ │ ├── performance/ │ │ │ │ └── HelloPerformance.java │ │ │ ├── popover/ │ │ │ │ ├── HelloEntryDetailsView.java │ │ │ │ ├── HelloEntryHeaderView.java │ │ │ │ └── HelloPopOverContentPane.java │ │ │ ├── print/ │ │ │ │ ├── HelloOptionsView.java │ │ │ │ ├── HelloPaperView.java │ │ │ │ ├── HelloPreviewPane.java │ │ │ │ ├── HelloPrintView.java │ │ │ │ ├── HelloSettingsView.java │ │ │ │ ├── HelloTimeRangeField.java │ │ │ │ └── HelloTimeRangeView.java │ │ │ └── views/ │ │ │ ├── HelloAgendaView.java │ │ │ ├── HelloAllDayView.java │ │ │ ├── HelloAvailabilityCalendar.java │ │ │ ├── HelloCalendar.java │ │ │ ├── HelloCalendarHeaderView.java │ │ │ ├── HelloCalendarSelector.java │ │ │ ├── HelloCalendarView.java │ │ │ ├── HelloDayView.java │ │ │ ├── HelloDetailedDayView.java │ │ │ ├── HelloDetailedWeekView.java │ │ │ ├── HelloMonthSheetView.java │ │ │ ├── HelloMonthView.java │ │ │ ├── HelloRecurrenceView.java │ │ │ ├── HelloResourcesCalendarView.java │ │ │ ├── HelloScrollingDayView.java │ │ │ ├── HelloScrollingTimeScaleView.java │ │ │ ├── HelloSourceGridView.java │ │ │ ├── HelloSourceView.java │ │ │ ├── HelloTimeField.java │ │ │ ├── HelloTimeScaleView.java │ │ │ ├── HelloTimezones.java │ │ │ ├── HelloTopLayer.java │ │ │ ├── HelloVisualBounds.java │ │ │ ├── HelloWeekDayHeaderView.java │ │ │ ├── HelloWeekDayView.java │ │ │ ├── HelloWeekFieldsView.java │ │ │ ├── HelloWeekTimeScaleView.java │ │ │ ├── HelloWeekView.java │ │ │ ├── HelloYearMonthView.java │ │ │ ├── HelloYearView.java │ │ │ └── resources/ │ │ │ └── HelloResourcesView.java │ │ └── module-info.java │ └── resources/ │ └── META-INF/ │ └── services/ │ └── fxsampler.FXSamplerProject ├── CalendarFXSchedulerApp/ │ ├── .gitignore │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ ├── com/ │ │ └── calendarfx/ │ │ └── scheduler/ │ │ ├── SchedulerApp.java │ │ └── SchedulerAppLauncher.java │ └── module-info.java ├── CalendarFXView/ │ ├── .gitignore │ ├── logging.properties │ ├── pom.xml │ └── src/ │ ├── main/ │ │ ├── asciidoc/ │ │ │ └── manual.adoc │ │ ├── java/ │ │ │ ├── com/ │ │ │ │ └── calendarfx/ │ │ │ │ ├── model/ │ │ │ │ │ ├── Calendar.java │ │ │ │ │ ├── CalendarEvent.java │ │ │ │ │ ├── CalendarSource.java │ │ │ │ │ ├── Entry.java │ │ │ │ │ ├── Interval.java │ │ │ │ │ ├── IntervalTree.java │ │ │ │ │ ├── LoadEvent.java │ │ │ │ │ ├── Marker.java │ │ │ │ │ ├── Resource.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── util/ │ │ │ │ │ ├── CalendarFX.java │ │ │ │ │ ├── LoggingDomain.java │ │ │ │ │ ├── LoggingFormatter.java │ │ │ │ │ ├── ViewHelper.java │ │ │ │ │ ├── WeakList.java │ │ │ │ │ └── package-info.java │ │ │ │ └── view/ │ │ │ │ ├── AgendaView.java │ │ │ │ ├── AllDayEntryView.java │ │ │ │ ├── AllDayView.java │ │ │ │ ├── ButtonBar.java │ │ │ │ ├── CalendarFXControl.java │ │ │ │ ├── CalendarHeaderView.java │ │ │ │ ├── CalendarSelector.java │ │ │ │ ├── CalendarView.java │ │ │ │ ├── ContextMenuProvider.java │ │ │ │ ├── CreateAndDeleteHandler.java │ │ │ │ ├── DateControl.java │ │ │ │ ├── DateSelectionModel.java │ │ │ │ ├── DayEntryView.java │ │ │ │ ├── DayView.java │ │ │ │ ├── DayViewBase.java │ │ │ │ ├── DeleteHandler.java │ │ │ │ ├── DetailedDayView.java │ │ │ │ ├── DetailedWeekView.java │ │ │ │ ├── DeveloperConsole.java │ │ │ │ ├── DraggedEntry.java │ │ │ │ ├── EntryViewBase.java │ │ │ │ ├── Messages.java │ │ │ │ ├── MonthEntryView.java │ │ │ │ ├── MonthSheetView.java │ │ │ │ ├── MonthView.java │ │ │ │ ├── MonthViewBase.java │ │ │ │ ├── RecurrenceView.java │ │ │ │ ├── RequestEvent.java │ │ │ │ ├── ResourceCalendarView.java │ │ │ │ ├── ResourcesView.java │ │ │ │ ├── SearchResultView.java │ │ │ │ ├── SourceGridView.java │ │ │ │ ├── SourceView.java │ │ │ │ ├── TimeField.java │ │ │ │ ├── TimeScaleView.java │ │ │ │ ├── VirtualGrid.java │ │ │ │ ├── WeekDayHeaderView.java │ │ │ │ ├── WeekDayView.java │ │ │ │ ├── WeekFieldsView.java │ │ │ │ ├── WeekTimeScaleView.java │ │ │ │ ├── WeekView.java │ │ │ │ ├── YearMonthView.java │ │ │ │ ├── YearView.java │ │ │ │ ├── ZonedDateTimeProvider.java │ │ │ │ ├── package-info.java │ │ │ │ ├── page/ │ │ │ │ │ ├── DayPage.java │ │ │ │ │ ├── MonthPage.java │ │ │ │ │ ├── PageBase.java │ │ │ │ │ ├── WeekPage.java │ │ │ │ │ ├── YearPage.java │ │ │ │ │ └── package-info.java │ │ │ │ ├── popover/ │ │ │ │ │ ├── DatePopOver.java │ │ │ │ │ ├── EntriesPane.java │ │ │ │ │ ├── EntryDetailsView.java │ │ │ │ │ ├── EntryHeaderView.java │ │ │ │ │ ├── EntryMapView.java │ │ │ │ │ ├── EntryPopOverContentPane.java │ │ │ │ │ ├── EntryPopOverPane.java │ │ │ │ │ ├── EntryPropertiesView.java │ │ │ │ │ ├── PopOverContentPane.java │ │ │ │ │ ├── PopOverTitledPane.java │ │ │ │ │ ├── RecurrencePopup.java │ │ │ │ │ ├── ZoneIdComparator.java │ │ │ │ │ └── package-info.java │ │ │ │ └── print/ │ │ │ │ ├── OptionsView.java │ │ │ │ ├── PaperView.java │ │ │ │ ├── PreviewPane.java │ │ │ │ ├── PrintView.java │ │ │ │ ├── PrintablePage.java │ │ │ │ ├── SettingsView.java │ │ │ │ ├── TimeRangeField.java │ │ │ │ ├── TimeRangeView.java │ │ │ │ ├── ViewType.java │ │ │ │ ├── ViewTypeControl.java │ │ │ │ ├── ZoomPane.java │ │ │ │ └── package-info.java │ │ │ ├── impl/ │ │ │ │ └── com/ │ │ │ │ └── calendarfx/ │ │ │ │ └── view/ │ │ │ │ ├── AgendaViewSkin.java │ │ │ │ ├── AllDayEntryViewSkin.java │ │ │ │ ├── AllDayViewSkin.java │ │ │ │ ├── AutoScrollPane.java │ │ │ │ ├── ButtonBarSkin.java │ │ │ │ ├── CalendarHeaderViewSkin.java │ │ │ │ ├── CalendarPropertySheet.java │ │ │ │ ├── CalendarSelectorSkin.java │ │ │ │ ├── CalendarViewSkin.java │ │ │ │ ├── DataLoader.java │ │ │ │ ├── DateControlSkin.java │ │ │ │ ├── DayEntryViewSkin.java │ │ │ │ ├── DayViewBaseSkin.java │ │ │ │ ├── DayViewEditController.java │ │ │ │ ├── DayViewScrollPane.java │ │ │ │ ├── DayViewSkin.java │ │ │ │ ├── DetailedDayViewSkin.java │ │ │ │ ├── DetailedWeekViewSkin.java │ │ │ │ ├── DeveloperConsoleSkin.java │ │ │ │ ├── LoadDataSettingsProvider.java │ │ │ │ ├── MonthEntryViewSkin.java │ │ │ │ ├── MonthSheetViewSkin.java │ │ │ │ ├── MonthViewSkin.java │ │ │ │ ├── NavigateDateView.java │ │ │ │ ├── NumericTextField.java │ │ │ │ ├── RecurrenceViewSkin.java │ │ │ │ ├── ResourceCalendarViewSkin.java │ │ │ │ ├── ResourcesViewContainer.java │ │ │ │ ├── ResourcesViewContainerSkin.java │ │ │ │ ├── ResourcesViewSkin.java │ │ │ │ ├── SearchResultViewSkin.java │ │ │ │ ├── SourceGridViewSkin.java │ │ │ │ ├── SourceViewSkin.java │ │ │ │ ├── TimeFieldSkin.java │ │ │ │ ├── TimeScaleViewSkin.java │ │ │ │ ├── WeekDayHeaderViewSkin.java │ │ │ │ ├── WeekDayViewSkin.java │ │ │ │ ├── WeekFieldsViewSkin.java │ │ │ │ ├── WeekTimeScaleViewSkin.java │ │ │ │ ├── WeekViewSkin.java │ │ │ │ ├── YearMonthViewSkin.java │ │ │ │ ├── YearViewSkin.java │ │ │ │ ├── ZoneIdStringConverter.java │ │ │ │ ├── page/ │ │ │ │ │ ├── DayPageSkin.java │ │ │ │ │ ├── MonthPageSkin.java │ │ │ │ │ ├── PageBaseSkin.java │ │ │ │ │ ├── WeekPageSkin.java │ │ │ │ │ └── YearPageSkin.java │ │ │ │ ├── popover/ │ │ │ │ │ └── RecurrencePopupSkin.java │ │ │ │ ├── print/ │ │ │ │ │ ├── OptionsViewSkin.java │ │ │ │ │ ├── PaperViewSkin.java │ │ │ │ │ ├── PreviewPaneSkin.java │ │ │ │ │ ├── PrintViewSkin.java │ │ │ │ │ ├── PrintablePageSkin.java │ │ │ │ │ ├── SettingsViewSkin.java │ │ │ │ │ ├── TimeRangeFieldSkin.java │ │ │ │ │ ├── TimeRangeViewSkin.java │ │ │ │ │ └── ZoomPaneSkin.java │ │ │ │ └── util/ │ │ │ │ ├── Placement.java │ │ │ │ ├── TimeBoundsCluster.java │ │ │ │ ├── TimeBoundsColumn.java │ │ │ │ ├── TimeBoundsResolver.java │ │ │ │ ├── Util.java │ │ │ │ ├── VisualBoundsCluster.java │ │ │ │ ├── VisualBoundsColumn.java │ │ │ │ └── VisualBoundsResolver.java │ │ │ └── module-info.java │ │ └── resources/ │ │ └── com/ │ │ └── calendarfx/ │ │ ├── util/ │ │ │ ├── public_key.properties │ │ │ └── version.properties │ │ └── view/ │ │ ├── atlantafx.css │ │ ├── calendar.css │ │ ├── messages.properties │ │ ├── messages_de.properties │ │ ├── messages_es.properties │ │ ├── messages_fr.properties │ │ ├── messages_it.properties │ │ ├── messages_pt_BR.properties │ │ └── messages_sk.properties │ └── test/ │ └── java/ │ └── com/ │ └── calendarfx/ │ ├── model/ │ │ ├── CalendarTest.java │ │ ├── EntryTest.java │ │ └── IntervalTest.java │ └── view/ │ └── DateSelectionModelTests.java ├── CalendarFXWeather/ │ ├── .gitignore │ ├── pom.xml │ └── src/ │ └── main/ │ └── java/ │ ├── com/ │ │ └── calendarfx/ │ │ └── weather/ │ │ ├── WeatherApp.java │ │ └── WeatherAppLauncher.java │ └── module-info.java ├── CalendarFXiCal/ │ ├── .gitignore │ ├── pom.xml │ └── src/ │ └── main/ │ ├── java/ │ │ ├── com/ │ │ │ └── calendarfx/ │ │ │ └── ical/ │ │ │ ├── ICalCalendarApp.java │ │ │ ├── ICalCalendarAppLauncher.java │ │ │ ├── ICalRepository.java │ │ │ ├── model/ │ │ │ │ ├── ICalCalendar.java │ │ │ │ └── ICalCalendarEntry.java │ │ │ └── view/ │ │ │ ├── ICalWebSourceFactory.java │ │ │ └── ICalWebSourcePane.java │ │ └── module-info.java │ └── resources/ │ └── com/ │ └── calendarfx/ │ └── ical/ │ └── dialog.css ├── LICENSE ├── README.md ├── docs/ │ └── index.html ├── formatter-settings.xml ├── jreleaser.yml ├── mvnw ├── mvnw.cmd ├── pom.xml ├── scenicView.properties └── settings.xml
Showing preview only (322K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3705 symbols across 280 files)
FILE: CalendarFXApp/src/main/java/com/calendarfx/app/CalendarApp.java
class CalendarApp (line 35) | public class CalendarApp extends Application {
method start (line 37) | @Override
method main (line 117) | public static void main(String[] args) {
FILE: CalendarFXApp/src/main/java/com/calendarfx/app/CalendarAppAtlantaFX.java
class CalendarAppAtlantaFX (line 6) | public class CalendarAppAtlantaFX extends CalendarApp {
method main (line 8) | public static void main(String[] args) {
FILE: CalendarFXApp/src/main/java/com/calendarfx/app/CalendarAppLauncher.java
class CalendarAppLauncher (line 19) | public class CalendarAppLauncher {
method main (line 21) | public static void main(String[] args) {
FILE: CalendarFXApp/src/main/java/com/calendarfx/app/MonthViewApp.java
class MonthViewApp (line 25) | public class MonthViewApp extends Application {
method start (line 27) | @Override
method main (line 42) | public static void main(String[] args) {
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/GoogleCalendarApp.java
class GoogleCalendarApp (line 28) | public class GoogleCalendarApp extends Application {
method start (line 30) | @Override
method main (line 48) | public static void main(String[] args) {
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/converter/BeanConverter.java
type BeanConverter (line 24) | public interface BeanConverter<S, T> {
method convert (line 32) | T convert(S source);
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/converter/BidirectionalBeanConverter.java
type BidirectionalBeanConverter (line 24) | public interface BidirectionalBeanConverter<L, R> extends BeanConverter<...
method leftToRight (line 26) | R leftToRight(L left);
method rightToLeft (line 28) | L rightToLeft(R right);
method convert (line 30) | @Override
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/converter/CalendarListEntryToGoogleCalendarConverter.java
class CalendarListEntryToGoogleCalendarConverter (line 32) | public final class CalendarListEntryToGoogleCalendarConverter implements...
method convert (line 33) | @Override
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/converter/EventToGoogleEntryConverter.java
class EventToGoogleEntryConverter (line 42) | public final class EventToGoogleEntryConverter implements BeanConverter<...
method convert (line 44) | @Override
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/converter/GoogleCalendarToCalendarConverter.java
class GoogleCalendarToCalendarConverter (line 29) | public class GoogleCalendarToCalendarConverter implements BeanConverter<...
method convert (line 30) | @Override
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/converter/GoogleCalendarToCalendarListEntryConverter.java
class GoogleCalendarToCalendarListEntryConverter (line 32) | public final class GoogleCalendarToCalendarListEntryConverter implements...
method convert (line 33) | @Override
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/converter/GoogleEntryToEventConverter.java
class GoogleEntryToEventConverter (line 39) | public final class GoogleEntryToEventConverter implements BeanConverter<...
method convert (line 40) | @Override
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/model/GoogleAccount.java
class GoogleAccount (line 32) | public class GoogleAccount extends CalendarSource {
method getId (line 36) | public String getId() {
method setId (line 40) | public void setId(String id) {
method createCalendar (line 51) | public final GoogleCalendar createCalendar(String name, Calendar.Style...
method getPrimaryCalendar (line 63) | public GoogleCalendar getPrimaryCalendar() {
method getGoogleCalendars (line 75) | public List<GoogleCalendar> getGoogleCalendars() {
method addCalendarListeners (line 91) | @SafeVarargs
method removeCalendarListeners (line 105) | @SafeVarargs
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/model/GoogleCalendar.java
class GoogleCalendar (line 34) | public class GoogleCalendar extends Calendar {
method GoogleCalendar (line 48) | public GoogleCalendar() {
method generateEntryConsecutive (line 58) | private static int generateEntryConsecutive() {
method getId (line 74) | public final String getId() {
method setId (line 85) | public final void setId(String id) {
method isPrimary (line 101) | public final boolean isPrimary() {
method setPrimary (line 112) | public final void setPrimary(boolean primary) {
method getDefaultReminders (line 128) | public final ObservableList<GoogleEntryReminder> getDefaultReminders() {
method createEntry (line 144) | public final GoogleEntry createEntry(ZonedDateTime start, boolean full...
method existsInGoogle (line 159) | public final boolean existsInGoogle() {
method isReadOnlyAccessRole (line 170) | public static boolean isReadOnlyAccessRole(String accessRole) {
method setSearchTextProvider (line 179) | public void setSearchTextProvider(IGoogleCalendarSearchTextProvider se...
method findEntries (line 183) | @Override
method equals (line 191) | @Override
method hashCode (line 199) | @Override
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/model/GoogleCalendarEvent.java
class GoogleCalendarEvent (line 28) | public class GoogleCalendarEvent extends CalendarEvent {
method GoogleCalendarEvent (line 74) | GoogleCalendarEvent(EventType<GoogleCalendarEvent> eventType, GoogleCa...
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/model/GoogleEntry.java
class GoogleEntry (line 40) | public class GoogleEntry extends Entry<Event> {
method GoogleEntry (line 42) | public GoogleEntry() {
method statusProperty (line 70) | public final ObjectProperty<Status> statusProperty() {
method getStatus (line 74) | public final Status getStatus() {
method setStatus (line 78) | public final void setStatus(Status status) {
method set (line 83) | @Override
method attendeesCanModifyProperty (line 104) | public final BooleanProperty attendeesCanModifyProperty() {
method isAttendeesCanModify (line 108) | public final boolean isAttendeesCanModify() {
method setAttendeesCanModify (line 112) | public final void setAttendeesCanModify(boolean attendeesCanModify) {
method set (line 119) | @Override
method attendeesCanInviteOthersProperty (line 135) | public final BooleanProperty attendeesCanInviteOthersProperty() {
method isAttendeesCanInviteOthers (line 139) | public final boolean isAttendeesCanInviteOthers() {
method setAttendeesCanInviteOthers (line 143) | public final void setAttendeesCanInviteOthers(
method set (line 151) | @Override
method attendeesCanSeeOthersProperty (line 167) | public final BooleanProperty attendeesCanSeeOthersProperty() {
method isAttendeesCanSeeOthers (line 171) | public final boolean isAttendeesCanSeeOthers() {
method setAttendeesCanSeeOthers (line 175) | public final void setAttendeesCanSeeOthers(boolean attendeesCanSeeOthe...
method useDefaultReminderProperty (line 181) | public final BooleanProperty useDefaultReminderProperty() {
method isUseDefaultReminder (line 185) | public final boolean isUseDefaultReminder() {
method setUseDefaultReminder (line 189) | public final void setUseDefaultReminder(boolean useDefaultReminder) {
method getAttendees (line 195) | public ObservableList<EventAttendee> getAttendees() {
method getReminders (line 208) | public ObservableList<GoogleEntryReminder> getReminders() {
method createRecurrence (line 212) | @Override
method existsInGoogle (line 229) | public final boolean existsInGoogle() {
method toString (line 233) | @Override
type Status (line 243) | public enum Status {
method Status (line 253) | Status(String name) {
method getName (line 257) | public String getName() {
method fromName (line 261) | public static Status fromName(String name) {
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/model/GoogleEntryReminder.java
class GoogleEntryReminder (line 29) | public class GoogleEntryReminder {
method GoogleEntryReminder (line 31) | public GoogleEntryReminder() {
method GoogleEntryReminder (line 35) | public GoogleEntryReminder(EventReminder reminder) {
method addListener (line 41) | public void addListener(InvalidationListener listener) {
method removeListener (line 46) | public void removeListener(InvalidationListener listener) {
method methodProperty (line 53) | public final ObjectProperty<RemindMethod> methodProperty() {
method getMethod (line 57) | public final RemindMethod getMethod() {
method setMethod (line 61) | public final void setMethod(RemindMethod method) {
method minutesProperty (line 67) | public final ObjectProperty<Integer> minutesProperty() {
method getMinutes (line 71) | public final Integer getMinutes() {
method setMinutes (line 75) | public final void setMinutes(Integer minutes) {
type RemindMethod (line 84) | public enum RemindMethod {
method RemindMethod (line 91) | RemindMethod(String id, String name) {
method getId (line 96) | public String getId() {
method getName (line 100) | public String getName() {
method toString (line 104) | @Override
method fromId (line 115) | public static RemindMethod fromId(String id) {
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/model/IGoogleCalendarSearchTextProvider.java
type IGoogleCalendarSearchTextProvider (line 24) | public interface IGoogleCalendarSearchTextProvider {
method search (line 26) | void search(GoogleCalendar calendar, String searchText);
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/service/BeanConverterService.java
class BeanConverterService (line 40) | public class BeanConverterService {
method getInstance (line 44) | public static BeanConverterService getInstance() {
method BeanConverterService (line 53) | private BeanConverterService() {
method convert (line 61) | <S, T> T convert(S source, Class<T> targetClass) {
method canConvert (line 69) | private <S, T> boolean canConvert(Class<S> sourceClass, Class<T> targe...
method getConverter (line 73) | private <S, T> BeanConverter<S, T> getConverter(Class<S> sourceClass, ...
class Pair (line 77) | private static class Pair<S, T> {
method Pair (line 82) | Pair(S source, T target) {
method getSource (line 87) | public S getSource() {
method setSource (line 91) | public void setSource(S source) {
method getTarget (line 95) | public T getTarget() {
method setTarget (line 99) | public void setTarget(T target) {
method equals (line 103) | @Override
method hashCode (line 114) | @Override
method of (line 121) | public static <S, T> Pair<S, T> of(S source, T target) {
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/service/GoogleCalendarService.java
class GoogleCalendarService (line 44) | public class GoogleCalendarService {
method GoogleCalendarService (line 49) | GoogleCalendarService(Calendar dao) {
method insertCalendar (line 60) | public void insertCalendar(GoogleCalendar calendar) throws IOException {
method updateCalendar (line 73) | public void updateCalendar(GoogleCalendar calendar) throws IOException {
method deleteCalendar (line 84) | public void deleteCalendar(GoogleCalendar calendar) throws IOException {
method insertEntry (line 98) | public GoogleEntry insertEntry(GoogleEntry entry, GoogleCalendar calen...
method updateEntry (line 114) | public GoogleEntry updateEntry(GoogleEntry entry) throws IOException {
method deleteEntry (line 128) | public void deleteEntry(GoogleEntry entry, GoogleCalendar calendar) th...
method moveEntry (line 141) | public GoogleEntry moveEntry(GoogleEntry entry, GoogleCalendar from, G...
method getCalendars (line 152) | public List<GoogleCalendar> getCalendars() throws IOException {
method getEntries (line 179) | public List<GoogleEntry> getEntries(GoogleCalendar calendar, LocalDate...
method getEntries (line 209) | public List<GoogleEntry> getEntries(GoogleCalendar calendar, String se...
method toGoogleEntries (line 227) | private List<GoogleEntry> toGoogleEntries(List<Event> events) {
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/service/GoogleConnector.java
class GoogleConnector (line 53) | public final class GoogleConnector {
method GoogleConnector (line 91) | private GoogleConnector() throws IOException, GeneralSecurityException {
method getInstance (line 116) | public static GoogleConnector getInstance() {
method authorize (line 135) | synchronized void authorize(String accountId, String authorizationCode...
method removeCredential (line 146) | synchronized void removeCredential(String accountId) throws IOException {
method isAuthorized (line 162) | boolean isAuthorized(String accountId) {
method getAuthorizationURL (line 177) | public String getAuthorizationURL() {
method getGeocoderService (line 186) | public synchronized GoogleGeocoderService getGeocoderService() {
method getCalendarService (line 206) | public synchronized GoogleCalendarService getCalendarService(String ac...
method getAccountInfo (line 226) | GoogleAccount getAccountInfo(String accountId) throws IOException {
method impl_createService (line 240) | private Calendar impl_createService(Credential credentials) {
method impl_getStoredCredential (line 244) | private Credential impl_getStoredCredential(String accountId) throws I...
method impl_storeCredential (line 248) | private void impl_storeCredential(String accountId, String authorizati...
method impl_requestUserInfo (line 253) | private Userinfoplus impl_requestUserInfo(Credential credentials) thro...
method imp_buildAuthorizationFlow (line 258) | private void imp_buildAuthorizationFlow() throws IOException {
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/service/GoogleGeocoderService.java
class GoogleGeocoderService (line 36) | public final class GoogleGeocoderService {
method GoogleGeocoderService (line 40) | GoogleGeocoderService(Geocoder geocoder) {
method locationToCoordinate (line 44) | public GeocoderGeometry locationToCoordinate(String location) throws I...
method coordinateToLocation (line 66) | public String coordinateToLocation(GeocoderGeometry coordinate) throws...
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/service/SecurityService.java
class SecurityService (line 29) | public class SecurityService {
method getInstance (line 38) | public static SecurityService getInstance() {
method getLoggedAccount (line 47) | public GoogleAccount getLoggedAccount() {
method isLoggedIn (line 51) | public boolean isLoggedIn() {
method isAuthorized (line 55) | public boolean isAuthorized() {
method authorize (line 59) | public boolean authorize(String authorizationCode) {
method login (line 72) | public GoogleAccount login() {
method logout (line 89) | public void logout() {
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/GoogleCalendarAppView.java
class GoogleCalendarAppView (line 36) | public class GoogleCalendarAppView extends CalendarFXControl {
method GoogleCalendarAppView (line 42) | public GoogleCalendarAppView(CalendarView calendarView) {
method createDefaultSkin (line 48) | @Override
method getCalendarView (line 53) | public CalendarView getCalendarView() {
method getLogPane (line 57) | public LogPane getLogPane() {
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/data/GoogleCalendarData.java
class GoogleCalendarData (line 32) | public final class GoogleCalendarData {
method getUnloadedSlices (line 60) | public List<Slice> getUnloadedSlices(List<Slice> slices) {
method addInProgressSlices (line 72) | public void addInProgressSlices(List<Slice> slices) {
method addLoadedSlice (line 81) | public void addLoadedSlice(Slice slice) {
method isLoadedEntry (line 92) | public boolean isLoadedEntry(GoogleEntry entry) {
method addLoadedEntry (line 101) | public void addLoadedEntry(GoogleEntry entry) {
method isLoadedSearchText (line 111) | public boolean isLoadedSearchText(String searchText) {
method addLoadedSearchText (line 120) | public void addLoadedSearchText(String searchText) {
method clear (line 127) | public void clear() {
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/data/IGoogleCalendarDataProvider.java
type IGoogleCalendarDataProvider (line 26) | public interface IGoogleCalendarDataProvider {
method getCalendarData (line 28) | default GoogleCalendarData getCalendarData(GoogleCalendar calendar) {
method getCalendarData (line 32) | GoogleCalendarData getCalendarData(GoogleCalendar calendar, boolean cr...
method removeCalendarData (line 34) | void removeCalendarData(GoogleCalendar calendar);
method clearData (line 36) | void clearData();
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/data/Slice.java
class Slice (line 33) | public final class Slice implements Comparable {
method Slice (line 38) | private Slice(LocalDate start, LocalDate end) {
method getStart (line 43) | public LocalDate getStart() {
method getEnd (line 47) | public LocalDate getEnd() {
method hashCode (line 51) | @Override
method equals (line 60) | @Override
method toString (line 84) | @Override
method compareTo (line 89) | @Override
method split (line 108) | public static List<Slice> split(LocalDate start, LocalDate end) {
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/log/ActionType.java
type ActionType (line 24) | public enum ActionType {
method getDisplayName (line 27) | @Override
method getDisplayName (line 34) | @Override
method getDisplayName (line 41) | @Override
method getDisplayName (line 48) | @Override
method getDisplayName (line 55) | @Override
method getDisplayName (line 62) | @Override
method getDisplayName (line 68) | public abstract String getDisplayName();
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/log/LogItem.java
class LogItem (line 31) | public class LogItem {
method timeProperty (line 35) | public final ObjectProperty<LocalDateTime> timeProperty() {
method getTime (line 39) | public final LocalDateTime getTime() {
method setTime (line 43) | public final void setTime(LocalDateTime time) {
method actionProperty (line 49) | public final ObjectProperty<ActionType> actionProperty() {
method getAction (line 53) | public ActionType getAction() {
method setAction (line 57) | public void setAction(ActionType action) {
method calendarProperty (line 63) | public final StringProperty calendarProperty() {
method getCalendar (line 67) | public final String getCalendar() {
method setCalendar (line 71) | public final void setCalendar(String calendar) {
method exceptionProperty (line 77) | public final ObjectProperty<Throwable> exceptionProperty() {
method getException (line 81) | public final Throwable getException() {
method setException (line 85) | public final void setException(Throwable exception) {
method descriptionProperty (line 91) | public final StringProperty descriptionProperty() {
method getDescription (line 95) | public final String getDescription() {
method setDescription (line 99) | public final void setDescription(String description) {
method statusProperty (line 105) | public final ObjectProperty<StatusType> statusProperty() {
method getStatus (line 109) | public final StatusType getStatus() {
method setStatus (line 113) | public final void setStatus(StatusType status) {
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/log/LogPane.java
class LogPane (line 48) | public class LogPane extends Control {
method LogPane (line 55) | public LogPane() {
method createDefaultSkin (line 96) | @Override
method getItems (line 101) | public final ObservableList<LogItem> getItems() {
method clearItems (line 105) | public final void clearItems() {
method removeItems (line 110) | public final void removeItems(Collection<LogItem> items) {
method getSelectedItems (line 115) | public final ObservableList<LogItem> getSelectedItems() {
method filter (line 119) | public final void filter(Collection<StatusType> statuses) {
method filter (line 125) | public final void filter(String text) {
method filter (line 131) | public final void filter(ActionType actionType) {
class LogTableFilter (line 140) | private static class LogTableFilter implements Predicate<LogItem> {
method LogTableFilter (line 146) | LogTableFilter(LogTableFilter oldFilter) {
method setStatusTypes (line 154) | void setStatusTypes(Collection<StatusType> statuses) {
method setText (line 158) | void setText(String text) {
method setActionType (line 162) | void setActionType(ActionType actionType) {
method test (line 166) | @Override
class StatusTypeCell (line 201) | private static class StatusTypeCell extends TableCell<LogItem, StatusT...
method updateItem (line 202) | @Override
class ActionTypeCell (line 221) | private static class ActionTypeCell extends TableCell<LogItem, ActionT...
method updateItem (line 222) | @Override
class TimeCell (line 236) | private static class TimeCell extends TableCell<LogItem, LocalDateTime> {
method updateItem (line 240) | @Override
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/log/StatusType.java
type StatusType (line 29) | public enum StatusType {
method getDisplayName (line 32) | @Override
method getIcon (line 37) | @Override
method getColor (line 42) | @Override
method getDisplayName (line 49) | @Override
method getIcon (line 54) | @Override
method getColor (line 59) | @Override
method getDisplayName (line 66) | @Override
method getIcon (line 71) | @Override
method getColor (line 76) | @Override
method getDisplayName (line 83) | @Override
method getIcon (line 88) | @Override
method getColor (line 93) | @Override
method getDisplayName (line 99) | public abstract String getDisplayName();
method getIcon (line 101) | public abstract Ikon getIcon();
method getColor (line 103) | public abstract Color getColor();
method createView (line 105) | public FontIcon createView() {
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/popover/GoogleEntryAttendeesView.java
class GoogleEntryAttendeesView (line 54) | public class GoogleEntryAttendeesView extends EntryPopOverPane {
method GoogleEntryAttendeesView (line 62) | public GoogleEntryAttendeesView(GoogleEntry entry) {
method createAttendee (line 121) | private void createAttendee() {
method enableButton (line 128) | private void enableButton() {
method isValidEmail (line 157) | private boolean isValidEmail(String email) {
method buildItems (line 164) | private void buildItems(VBox parent, List<EventAttendee> attendees) {
method createAttendee (line 172) | private void createAttendee(String email) {
method removeAttendee (line 179) | private void removeAttendee(EventAttendee attendee) {
class GoogleEntryAttendeeItem (line 188) | private class GoogleEntryAttendeeItem extends HBox {
method GoogleEntryAttendeeItem (line 196) | public GoogleEntryAttendeeItem(EventAttendee attendee) {
method updateIcon (line 237) | private void updateIcon() {
method optionalProperty (line 248) | public final BooleanProperty optionalProperty() {
method isOptional (line 252) | public final boolean isOptional() {
method setOptional (line 256) | public final void setOptional(boolean optional) {
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/popover/GoogleEntryDetailsView.java
class GoogleEntryDetailsView (line 53) | public class GoogleEntryDetailsView extends EntryDetailsView {
method GoogleEntryDetailsView (line 57) | public GoogleEntryDetailsView(GoogleEntry entry, DateControl dateContr...
method buildItems (line 94) | private void buildItems(VBox parent) {
method createReminder (line 102) | private void createReminder() {
method removeReminder (line 110) | private void removeReminder(GoogleEntryReminder reminder) {
class GoogleEntryReminderItem (line 120) | private class GoogleEntryReminderItem extends HBox {
method GoogleEntryReminderItem (line 128) | private GoogleEntryReminderItem(GoogleEntryReminder reminder) {
method updateMinutes (line 188) | private void updateMinutes() {
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/popover/GoogleEntryGMapsFXView.java
class GoogleEntryGMapsFXView (line 41) | public class GoogleEntryGMapsFXView extends EntryPopOverPane implements ...
method GoogleEntryGMapsFXView (line 48) | GoogleEntryGMapsFXView(GoogleEntry entry) {
method mapInitialized (line 67) | @Override
method createMap (line 72) | private GoogleMap createMap() {
method updateLocation (line 86) | private void updateLocation() {
class LocationFXService (line 90) | private class LocationFXService extends Service<GeocoderGeometry> {
method createTask (line 92) | @Override
method start (line 103) | @Override
method failed (line 109) | @Override
method succeeded (line 115) | @Override
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/popover/GoogleEntryPopOverContentPane.java
class GoogleEntryPopOverContentPane (line 36) | public class GoogleEntryPopOverContentPane extends PopOverContentPane {
method GoogleEntryPopOverContentPane (line 38) | public GoogleEntryPopOverContentPane(GoogleEntry entry, ObservableList...
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/task/DeleteEntryTask.java
class DeleteEntryTask (line 30) | public final class DeleteEntryTask extends GoogleTask<Boolean> {
method DeleteEntryTask (line 36) | public DeleteEntryTask(GoogleEntry entry, GoogleCalendar calendar, Goo...
method getAction (line 44) | @Override
method getDescription (line 49) | @Override
method call (line 54) | @Override
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/task/GoogleTask.java
class GoogleTask (line 31) | public abstract class GoogleTask<V> extends Task<V> {
method GoogleTask (line 35) | protected GoogleTask() {
method getLogItem (line 44) | public LogItem getLogItem() {
method getAction (line 48) | public abstract ActionType getAction();
method getDescription (line 50) | public abstract String getDescription();
method failed (line 52) | @Override
method cancelled (line 58) | @Override
method succeeded (line 63) | @Override
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/task/InsertCalendarTask.java
class InsertCalendarTask (line 29) | public final class InsertCalendarTask extends GoogleTask<GoogleCalendar> {
method InsertCalendarTask (line 34) | public InsertCalendarTask(GoogleCalendar calendar, GoogleAccount accou...
method getAction (line 40) | @Override
method getDescription (line 45) | @Override
method call (line 50) | @Override
method succeeded (line 56) | @Override
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/task/InsertEntryTask.java
class InsertEntryTask (line 30) | public final class InsertEntryTask extends GoogleTask<GoogleEntry> {
method InsertEntryTask (line 36) | public InsertEntryTask(GoogleEntry entry, GoogleCalendar calendar, Goo...
method getAction (line 44) | @Override
method getDescription (line 49) | @Override
method call (line 54) | @Override
method succeeded (line 59) | @Override
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/task/LoadAllCalendarsTask.java
class LoadAllCalendarsTask (line 31) | public final class LoadAllCalendarsTask extends GoogleTask<List<GoogleCa...
method LoadAllCalendarsTask (line 35) | public LoadAllCalendarsTask(GoogleAccount account) {
method getAction (line 40) | @Override
method getDescription (line 45) | @Override
method call (line 50) | @Override
method succeeded (line 55) | @Override
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/task/LoadEntriesBySliceTask.java
class LoadEntriesBySliceTask (line 37) | public final class LoadEntriesBySliceTask extends GoogleTask<List<Google...
method LoadEntriesBySliceTask (line 45) | public LoadEntriesBySliceTask(GoogleAccount account, GoogleCalendar ca...
method getAction (line 56) | @Override
method getDescription (line 61) | @Override
method call (line 66) | @Override
method succeeded (line 71) | @Override
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/task/LoadEntriesByTextTask.java
class LoadEntriesByTextTask (line 33) | public final class LoadEntriesByTextTask extends GoogleTask<List<GoogleE...
method LoadEntriesByTextTask (line 40) | public LoadEntriesByTextTask(String searchText, GoogleCalendar calenda...
method getAction (line 49) | @Override
method getDescription (line 54) | @Override
method call (line 59) | @Override
method succeeded (line 64) | @Override
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/task/MoveEntryTask.java
class MoveEntryTask (line 30) | public final class MoveEntryTask extends GoogleTask<GoogleEntry> {
method MoveEntryTask (line 37) | public MoveEntryTask(GoogleEntry entry, GoogleCalendar from, GoogleCal...
method getAction (line 46) | @Override
method getDescription (line 51) | @Override
method call (line 56) | @Override
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/task/RefreshCalendarsTask.java
class RefreshCalendarsTask (line 35) | public final class RefreshCalendarsTask extends GoogleTask<List<GoogleCa...
method RefreshCalendarsTask (line 40) | public RefreshCalendarsTask(GoogleAccount account, IGoogleCalendarData...
method getAction (line 45) | @Override
method getDescription (line 50) | @Override
method call (line 55) | @Override
method succeeded (line 60) | @Override
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/task/UpdateEntryTask.java
class UpdateEntryTask (line 31) | public final class UpdateEntryTask extends GoogleTask<GoogleEntry> {
method UpdateEntryTask (line 39) | public UpdateEntryTask(GoogleEntry entry, GoogleAccount account, Map<G...
method append (line 47) | public void append(GoogleEntry newVersion) {
method getAction (line 53) | @Override
method getDescription (line 58) | @Override
method call (line 63) | @Override
method succeeded (line 69) | @Override
method cancelled (line 75) | @Override
method failed (line 81) | @Override
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/thread/CalendarViewTimeUpdateThread.java
class CalendarViewTimeUpdateThread (line 30) | public class CalendarViewTimeUpdateThread extends Thread {
method CalendarViewTimeUpdateThread (line 36) | public CalendarViewTimeUpdateThread(CalendarView calendarView) {
method run (line 43) | @Override
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/thread/GoogleAutoRefreshThread.java
class GoogleAutoRefreshThread (line 29) | public class GoogleAutoRefreshThread extends Thread {
method GoogleAutoRefreshThread (line 37) | public GoogleAutoRefreshThread(IGoogleCalendarDataProvider provider) {
method getDelay (line 45) | public long getDelay() {
method setDelay (line 49) | public void setDelay(long delay) {
method restart (line 56) | public void restart() {
method run (line 66) | @Override
type RefreshInterval (line 96) | public enum RefreshInterval {
method RefreshInterval (line 113) | RefreshInterval(long time, String name) {
method getTime (line 118) | public long getTime() {
method getName (line 122) | public String getName() {
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/thread/GoogleNotificationPopupThread.java
class GoogleNotificationPopupThread (line 42) | public class GoogleNotificationPopupThread extends Thread {
method GoogleNotificationPopupThread (line 48) | public GoogleNotificationPopupThread(CalendarView calendarView) {
method run (line 55) | @SuppressWarnings("InfiniteLoopStatement")
method isSubjectOfNotification (line 87) | private boolean isSubjectOfNotification(GoogleEntry entry, LocalDateTi...
method showNotification (line 117) | private void showNotification(GoogleEntry entry) {
FILE: CalendarFXGoogle/src/main/java/com/calendarfx/google/view/thread/GoogleTaskExecutor.java
class GoogleTaskExecutor (line 41) | public final class GoogleTaskExecutor {
method getInstance (line 45) | public static GoogleTaskExecutor getInstance() {
method GoogleTaskExecutor (line 60) | private GoogleTaskExecutor() {
method getLog (line 70) | public ObservableList<LogItem> getLog() {
method clearLog (line 74) | public void clearLog() {
method progressProperty (line 80) | public ReadOnlyDoubleProperty progressProperty() {
method execute (line 84) | public void execute(GoogleTask<?> task) {
method executeImmediate (line 89) | public void executeImmediate(GoogleTask<?> task) {
method updatePendingTasks (line 94) | private void updatePendingTasks(GoogleTask<?> task) {
FILE: CalendarFXGoogle/src/main/java/impl/com/calendarfx/google/view/GoogleCalendarAppViewSkin.java
class GoogleCalendarAppViewSkin (line 75) | public class GoogleCalendarAppViewSkin extends SkinBase<GoogleCalendarAp...
method GoogleCalendarAppViewSkin (line 86) | public GoogleCalendarAppViewSkin(GoogleCalendarAppView control) {
method createMenuBar (line 141) | private MenuBar createMenuBar(GoogleAutoRefreshThread autoRefreshThrea...
method attemptAutoLogin (line 179) | private void attemptAutoLogin() {
method login (line 187) | private void login() {
method logout (line 199) | private void logout() {
method showLoginView (line 211) | private void showLoginView() {
method showCalendarPane (line 218) | private void showCalendarPane() {
class GoogleCalendarCreateCallback (line 230) | private static class GoogleCalendarCreateCallback implements
method GoogleCalendarCreateCallback (line 236) | GoogleCalendarCreateCallback(Window owner) {
method call (line 240) | @Override
method accept (line 249) | @Override
class GoogleEntryPopOverContentProvider (line 262) | private static class GoogleEntryPopOverContentProvider implements Call...
method call (line 274) | @Override
method getPopOver (line 285) | public PopOver getPopOver() {
method getEntry (line 289) | public GoogleEntry getEntry() {
class GoogleEntryCreateCallback (line 299) | private static class GoogleEntryCreateCallback implements Callback<Dat...
method call (line 301) | @Override
FILE: CalendarFXGoogle/src/main/java/impl/com/calendarfx/google/view/GoogleCalendarCreateView.java
class GoogleCalendarCreateView (line 48) | final class GoogleCalendarCreateView extends BorderPane {
method GoogleCalendarCreateView (line 56) | GoogleCalendarCreateView(Consumer<CalendarViewBean> onAccept) {
method show (line 106) | void show(Window owner) {
method close (line 119) | private void close() {
class StyleCell (line 127) | private static class StyleCell extends ListCell<Calendar.Style> {
method updateItem (line 128) | @Override
class CalendarViewBean (line 140) | static class CalendarViewBean {
method getStyle (line 145) | Calendar.Style getStyle() {
method setStyle (line 149) | void setStyle(Calendar.Style style) {
method getName (line 153) | String getName() {
method setName (line 157) | void setName(String name) {
FILE: CalendarFXGoogle/src/main/java/impl/com/calendarfx/google/view/GoogleCalendarDataManager.java
class GoogleCalendarDataManager (line 43) | final class GoogleCalendarDataManager implements IGoogleCalendarDataProv...
method GoogleCalendarDataManager (line 47) | GoogleCalendarDataManager() {
method getCalendarData (line 51) | @Override
method removeCalendarData (line 61) | @Override
method clearData (line 66) | @Override
method onChanged (line 71) | @Override
method handle (line 94) | @Override
FILE: CalendarFXGoogle/src/main/java/impl/com/calendarfx/google/view/GoogleCalendarSearchTextManager.java
class GoogleCalendarSearchTextManager (line 35) | final class GoogleCalendarSearchTextManager implements IGoogleCalendarSe...
method GoogleCalendarSearchTextManager (line 39) | GoogleCalendarSearchTextManager(IGoogleCalendarDataProvider provider) {
method search (line 43) | @Override
method onChanged (line 55) | @Override
FILE: CalendarFXGoogle/src/main/java/impl/com/calendarfx/google/view/GoogleSyncManager.java
class GoogleSyncManager (line 43) | final class GoogleSyncManager implements EventHandler<CalendarEvent>, Li...
method onChanged (line 47) | @Override
method handle (line 60) | @Override
method insertEntry (line 77) | private void insertEntry(CalendarEvent evt, GoogleAccount account) {
method updateEntry (line 83) | private void updateEntry(CalendarEvent evt, GoogleAccount account) {
method deleteEntry (line 95) | private void deleteEntry(CalendarEvent evt, GoogleAccount account) {
method moveEntry (line 101) | private void moveEntry(CalendarEvent evt, GoogleAccount account) {
method requiresInsertEntry (line 108) | private boolean requiresInsertEntry(CalendarEvent evt) {
method requiresDeleteEntry (line 118) | private boolean requiresDeleteEntry(CalendarEvent evt) {
method requiresUpdateEntry (line 128) | private boolean requiresUpdateEntry(CalendarEvent evt) {
method requiresMoveEntry (line 138) | private boolean requiresMoveEntry(CalendarEvent evt) {
FILE: CalendarFXGoogle/src/main/java/impl/com/calendarfx/google/view/log/LogPaneSkin.java
class LogPaneSkin (line 57) | public class LogPaneSkin extends SkinBase<LogPane> {
method LogPaneSkin (line 64) | public LogPaneSkin(LogPane control, TableView<LogItem> table) {
method createToolBar (line 97) | private ToolBar createToolBar() {
class ActionTypeWrapper (line 165) | private static class ActionTypeWrapper {
method ActionTypeWrapper (line 171) | ActionTypeWrapper() {
method ActionTypeWrapper (line 175) | ActionTypeWrapper(ActionType actionType) {
method getActionType (line 180) | ActionType getActionType() {
method values (line 184) | static List<ActionTypeWrapper> values() {
method toString (line 193) | @Override
FILE: CalendarFXGoogle/src/test/java/com/calendarfx/google/view/popover/HelloGoogleEntryPopOverContentPane.java
class HelloGoogleEntryPopOverContentPane (line 34) | public class HelloGoogleEntryPopOverContentPane extends Application {
method start (line 36) | @Override
FILE: CalendarFXResourceApp/src/main/java/com/calendarfx/resource/app/ResourceCalendarApp.java
class ResourceCalendarApp (line 50) | public class ResourceCalendarApp extends Application {
method start (line 56) | @Override
class HelloDayViewCalendar (line 245) | class HelloDayViewCalendar extends Calendar {
method HelloDayViewCalendar (line 249) | public HelloDayViewCalendar(long dataSeed) {
method generateBaseEntries (line 253) | public void generateBaseEntries() {
method generateTopEntries (line 261) | public void generateTopEntries() {
method createEntries (line 265) | private <T extends Entry<?>> void createEntries(LocalDate startDate,...
method main (line 288) | public static void main(String[] args) {
class TopEntry (line 292) | public static class TopEntry<T> extends Entry<T>
FILE: CalendarFXResourceApp/src/main/java/com/calendarfx/resource/app/ResourceCalendarAppLauncher.java
class ResourceCalendarAppLauncher (line 19) | public class ResourceCalendarAppLauncher {
method main (line 21) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/CalendarFXDateControlSample.java
class CalendarFXDateControlSample (line 31) | public abstract class CalendarFXDateControlSample extends CalendarFXSamp...
method getPanel (line 33) | @Override
method wrap (line 54) | @Override
method isSupportingDeveloperConsole (line 69) | protected boolean isSupportingDeveloperConsole() {
method createControl (line 73) | @Override
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/CalendarFXSample.java
class CalendarFXSample (line 34) | public abstract class CalendarFXSample extends SampleBase {
method getPanel (line 42) | @Override
method wrap (line 50) | protected Node wrap(Node node) {
method getProjectName (line 63) | @Override
method getProjectVersion (line 68) | @Override
method getControlPanelDividerPosition (line 73) | @Override
method getControlPanel (line 78) | @Override
method getControlStylesheetURL (line 86) | @Override
method getSampleSourceURL (line 91) | @Override
method getSampleSourceBase (line 96) | private final String getSampleSourceBase() {
method getJavaDocClass (line 102) | protected Class<?> getJavaDocClass() {
method getJavaDocBase (line 106) | private String getJavaDocBase() {
method getJavaDocURL (line 110) | @Override
method createControl (line 122) | protected abstract Node createControl();
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/CalendarFXSampler.java
class CalendarFXSampler (line 10) | public class CalendarFXSampler {
method main (line 12) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/CalendarFXSamplerProject.java
class CalendarFXSamplerProject (line 23) | public class CalendarFXSamplerProject implements FXSamplerProject {
method getProjectName (line 25) | @Override
method getSampleBasePackage (line 30) | @Override
method getWelcomePage (line 35) | @Override
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/CalendarFXSamplerWelcome.java
class CalendarFXSamplerWelcome (line 26) | public class CalendarFXSamplerWelcome extends WelcomePage {
method CalendarFXSamplerWelcome (line 28) | public CalendarFXSamplerWelcome() {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/entries/HelloAllDayEntryView.java
class HelloAllDayEntryView (line 24) | public class HelloAllDayEntryView extends HelloEntryViewBase {
method getSampleName (line 26) | @Override
method createEntryView (line 31) | @Override
method getSampleDescription (line 38) | @Override
method getJavaDocClass (line 43) | @Override
method main (line 48) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/entries/HelloDayEntryView.java
class HelloDayEntryView (line 28) | public class HelloDayEntryView extends HelloEntryViewBase {
method getSampleName (line 30) | @Override
method createEntryView (line 35) | @Override
method getSampleDescription (line 73) | @Override
method getJavaDocClass (line 78) | @Override
method main (line 83) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/entries/HelloEntryViewBase.java
class HelloEntryViewBase (line 28) | public abstract class HelloEntryViewBase extends CalendarFXSample {
method HelloEntryViewBase (line 33) | public HelloEntryViewBase() {
method createControl (line 39) | @Override
method createEntryView (line 46) | protected abstract EntryViewBase<?> createEntryView(Entry<?> entry);
method getControlPanel (line 48) | @Override
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/entries/HelloMonthEntryView.java
class HelloMonthEntryView (line 26) | public class HelloMonthEntryView extends HelloEntryViewBase {
method HelloMonthEntryView (line 28) | public HelloMonthEntryView() {
method createEntryView (line 34) | @Override
method getSampleName (line 41) | @Override
method getJavaDocClass (line 46) | @Override
method getSampleDescription (line 51) | @Override
method main (line 56) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/pages/HelloDayPage.java
class HelloDayPage (line 27) | public class HelloDayPage extends CalendarFXDateControlSample {
method createControl (line 31) | @Override
method getSampleName (line 45) | @Override
method getSampleDescription (line 50) | @Override
method getJavaDocClass (line 55) | @Override
method main (line 60) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/pages/HelloMonthPage.java
class HelloMonthPage (line 32) | public class HelloMonthPage extends CalendarFXDateControlSample {
method createControl (line 36) | @Override
method getSampleName (line 58) | @Override
method getJavaDocClass (line 63) | @Override
method getSampleDescription (line 68) | @Override
class HelloCalendar (line 73) | class HelloCalendar extends Calendar {
method HelloCalendar (line 75) | public HelloCalendar(YearMonth month) {
method createEntries (line 79) | private void createEntries(YearMonth month) {
method main (line 107) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/pages/HelloWeekPage.java
class HelloWeekPage (line 26) | public class HelloWeekPage extends CalendarFXDateControlSample {
method createControl (line 30) | @Override
method getJavaDocClass (line 41) | @Override
method getSampleName (line 46) | @Override
method getSampleDescription (line 51) | @Override
method main (line 56) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/pages/HelloYearPage.java
class HelloYearPage (line 26) | public class HelloYearPage extends CalendarFXDateControlSample {
method createControl (line 30) | @Override
method getSampleName (line 41) | @Override
method getJavaDocClass (line 46) | @Override
method getSampleDescription (line 51) | @Override
method main (line 56) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/performance/HelloPerformance.java
class HelloPerformance (line 40) | public class HelloPerformance extends CalendarFXDateControlSample {
method getSampleName (line 48) | @Override
method createControl (line 53) | @Override
method getControlPanel (line 64) | @Override
method createEntries (line 100) | public void createEntries() {
method getSampleDescription (line 132) | @Override
method getJavaDocClass (line 137) | @Override
class HelloCalendar (line 142) | class HelloCalendar extends Calendar {
method HelloCalendar (line 144) | public HelloCalendar() {
method main (line 148) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/popover/HelloEntryDetailsView.java
class HelloEntryDetailsView (line 27) | public class HelloEntryDetailsView extends CalendarFXSample {
method getSampleName (line 29) | @Override
method createControl (line 34) | @Override
method getJavaDocClass (line 42) | @Override
method getSampleDescription (line 47) | @Override
method main (line 52) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/popover/HelloEntryHeaderView.java
class HelloEntryHeaderView (line 30) | public class HelloEntryHeaderView extends CalendarFXSample {
method getSampleName (line 32) | @Override
method createControl (line 37) | @Override
method getJavaDocClass (line 61) | @Override
method getSampleDescription (line 66) | @Override
method main (line 71) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/popover/HelloPopOverContentPane.java
class HelloPopOverContentPane (line 29) | public class HelloPopOverContentPane extends Application {
method start (line 31) | @Override
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/print/HelloOptionsView.java
class HelloOptionsView (line 24) | public class HelloOptionsView extends CalendarFXSample {
method getJavaDocClass (line 28) | @Override
method createControl (line 33) | @Override
method getSampleName (line 38) | @Override
method getSampleDescription (line 43) | @Override
method main (line 48) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/print/HelloPaperView.java
class HelloPaperView (line 24) | public class HelloPaperView extends CalendarFXSample {
method createControl (line 26) | @Override
method getJavaDocClass (line 31) | @Override
method getSampleName (line 36) | @Override
method getSampleDescription (line 41) | @Override
method main (line 46) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/print/HelloPreviewPane.java
class HelloPreviewPane (line 27) | public class HelloPreviewPane extends CalendarFXSample {
method getSampleName (line 29) | @Override
method getSampleDescription (line 34) | @Override
method getJavaDocClass (line 39) | @Override
method createControl (line 44) | @Override
method main (line 75) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/print/HelloPrintView.java
class HelloPrintView (line 28) | public class HelloPrintView extends CalendarFXSample {
method getSampleName (line 30) | @Override
method getSampleDescription (line 35) | @Override
method getJavaDocClass (line 40) | @Override
method createControl (line 45) | @Override
method main (line 79) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/print/HelloSettingsView.java
class HelloSettingsView (line 27) | public class HelloSettingsView extends CalendarFXSample {
method createControl (line 29) | @Override
method getJavaDocClass (line 58) | @Override
method getSampleName (line 63) | @Override
method getSampleDescription (line 68) | @Override
method main (line 73) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/print/HelloTimeRangeField.java
class HelloTimeRangeField (line 24) | public class HelloTimeRangeField extends CalendarFXSample {
method getSampleName (line 26) | @Override
method getSampleDescription (line 31) | @Override
method getJavaDocClass (line 36) | @Override
method createControl (line 41) | @Override
method main (line 46) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/print/HelloTimeRangeView.java
class HelloTimeRangeView (line 29) | public class HelloTimeRangeView extends CalendarFXSample {
method getSampleName (line 31) | @Override
method getSampleDescription (line 36) | @Override
method getJavaDocClass (line 41) | @Override
method createControl (line 46) | @Override
method wrap (line 51) | @Override
method main (line 75) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloAgendaView.java
class HelloAgendaView (line 25) | public class HelloAgendaView extends CalendarFXDateControlSample {
method getSampleName (line 29) | @Override
method createControl (line 34) | @Override
method isSupportingDeveloperConsole (line 51) | @Override
method getJavaDocClass (line 56) | @Override
method getSampleDescription (line 61) | @Override
method main (line 66) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloAllDayView.java
class HelloAllDayView (line 30) | public class HelloAllDayView extends CalendarFXDateControlSample {
method getSampleName (line 34) | @Override
method createControl (line 39) | @Override
method getJavaDocClass (line 52) | @Override
method getSampleDescription (line 57) | @Override
class HelloCalendar (line 62) | class HelloCalendar extends Calendar {
method HelloCalendar (line 64) | public HelloCalendar() {
method main (line 91) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloAvailabilityCalendar.java
class HelloAvailabilityCalendar (line 33) | public class HelloAvailabilityCalendar extends CalendarFXSample {
method getSampleName (line 37) | @Override
method createControl (line 42) | protected Node createControl() {
method getControlPanel (line 50) | @Override
method getSampleDescription (line 77) | @Override
method getJavaDocClass (line 82) | @Override
class HelloDayViewCalendar (line 87) | class HelloDayViewCalendar extends Calendar {
method HelloDayViewCalendar (line 89) | public HelloDayViewCalendar() {
method main (line 93) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloCalendar.java
class HelloCalendar (line 30) | class HelloCalendar extends Calendar {
method HelloCalendar (line 32) | public HelloCalendar() {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloCalendarHeaderView.java
class HelloCalendarHeaderView (line 26) | public class HelloCalendarHeaderView extends CalendarFXSample {
method getSampleName (line 28) | @Override
method createControl (line 33) | @Override
method getJavaDocClass (line 60) | @Override
method getSampleDescription (line 65) | @Override
method main (line 70) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloCalendarSelector.java
class HelloCalendarSelector (line 28) | public class HelloCalendarSelector extends CalendarFXSample {
method getSampleName (line 30) | @Override
method createControl (line 35) | @Override
method getJavaDocClass (line 62) | @Override
method getSampleDescription (line 67) | @Override
method main (line 72) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloCalendarView.java
class HelloCalendarView (line 33) | public class HelloCalendarView extends CalendarFXDateControlSample {
method getSampleName (line 37) | @Override
method createControl (line 42) | @Override
method getSampleDescription (line 53) | @Override
method getJavaDocClass (line 58) | @Override
class HelloCalendar (line 63) | class HelloCalendar extends Calendar {
method HelloCalendar (line 65) | public HelloCalendar() {
method main (line 103) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloDayView.java
class HelloDayView (line 32) | public class HelloDayView extends CalendarFXSample {
method getSampleName (line 36) | @Override
method getControlPanel (line 41) | @Override
method createControl (line 46) | protected Node createControl() {
method getSampleDescription (line 56) | @Override
method getJavaDocClass (line 61) | @Override
class HelloDayViewCalendar (line 66) | class HelloDayViewCalendar extends Calendar {
method HelloDayViewCalendar (line 68) | public HelloDayViewCalendar() {
method createEntries (line 72) | private void createEntries(LocalDate startDate) {
method main (line 94) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloDetailedDayView.java
class HelloDetailedDayView (line 31) | public class HelloDetailedDayView extends CalendarFXDateControlSample {
method getSampleName (line 35) | @Override
method getSampleDescription (line 40) | @Override
method getJavaDocClass (line 45) | @Override
method createControl (line 50) | @Override
class HelloCalendar (line 88) | class HelloCalendar extends Calendar {
method HelloCalendar (line 90) | public HelloCalendar() {
method createData (line 93) | public void createData() {
method main (line 123) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloDetailedWeekView.java
class HelloDetailedWeekView (line 27) | public class HelloDetailedWeekView extends CalendarFXDateControlSample {
method getSampleName (line 31) | @Override
method createControl (line 36) | @Override
method getSampleDescription (line 59) | @Override
method getJavaDocClass (line 66) | @Override
method main (line 71) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloMonthSheetView.java
class HelloMonthSheetView (line 36) | public class HelloMonthSheetView extends CalendarFXDateControlSample {
method main (line 38) | public static void main(String[] args) {
method getSampleName (line 44) | @Override
method getJavaDocClass (line 49) | @Override
type CellType (line 54) | private enum CellType {
method getControlPanel (line 61) | @Override
method createControl (line 93) | @Override
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloMonthView.java
class HelloMonthView (line 32) | public class HelloMonthView extends CalendarFXDateControlSample {
method getSampleName (line 36) | @Override
method createControl (line 41) | @Override
method getJavaDocClass (line 68) | @Override
method getSampleDescription (line 73) | @Override
class HelloCalendar (line 78) | class HelloCalendar extends Calendar {
method HelloCalendar (line 80) | public HelloCalendar(YearMonth month) {
method createEntries (line 84) | private void createEntries(YearMonth month) {
method main (line 115) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloRecurrenceView.java
class HelloRecurrenceView (line 29) | public class HelloRecurrenceView extends CalendarFXSample {
method getSampleName (line 31) | @Override
method createControl (line 36) | @Override
method getJavaDocClass (line 56) | @Override
method getSampleDescription (line 61) | @Override
method main (line 66) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloResourcesCalendarView.java
class HelloResourcesCalendarView (line 40) | public class HelloResourcesCalendarView extends CalendarFXSample {
method getSampleName (line 44) | @Override
method createControl (line 49) | @Override
method getControlPanel (line 129) | @Override
method getSampleDescription (line 136) | @Override
method getJavaDocClass (line 141) | @Override
class HelloDayViewCalendar (line 146) | class HelloDayViewCalendar extends Calendar {
method HelloDayViewCalendar (line 148) | public HelloDayViewCalendar(String name) {
method createEntries (line 157) | private void createEntries(LocalDate startDate) {
method main (line 179) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloScrollingDayView.java
class HelloScrollingDayView (line 32) | public class HelloScrollingDayView extends CalendarFXSample {
method getSampleName (line 36) | @Override
method getControlPanel (line 41) | @Override
method createControl (line 46) | protected Node createControl() {
method getSampleDescription (line 59) | @Override
method getJavaDocClass (line 64) | @Override
class HelloDayViewCalendar (line 69) | class HelloDayViewCalendar extends Calendar {
method HelloDayViewCalendar (line 71) | public HelloDayViewCalendar() {
method createEntries (line 75) | private void createEntries(LocalDate startDate) {
method main (line 97) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloScrollingTimeScaleView.java
class HelloScrollingTimeScaleView (line 32) | public class HelloScrollingTimeScaleView extends CalendarFXSample {
method getSampleName (line 38) | @Override
method createControl (line 43) | @Override
method getPanel (line 48) | @Override
method wrap (line 58) | @Override
method getJavaDocClass (line 79) | @Override
method getSampleDescription (line 84) | @Override
method provideTimeStyle (line 89) | private String provideTimeStyle(LocalDateTime dateTime) {
method provideDateStyle (line 93) | private String provideDateStyle(LocalDateTime dateTime) {
method main (line 97) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloSourceGridView.java
class HelloSourceGridView (line 29) | public class HelloSourceGridView extends CalendarFXSample {
method getSampleName (line 33) | @Override
method getJavaDocClass (line 38) | @Override
method createControl (line 43) | @Override
method getControlPanel (line 75) | @Override
method main (line 94) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloSourceView.java
class HelloSourceView (line 31) | public class HelloSourceView extends CalendarFXSample {
method getSampleName (line 39) | @Override
method createControl (line 44) | @Override
method getControlPanel (line 79) | @Override
method addWorkCalendar (line 135) | private void addWorkCalendar() {
method removeWorkCalendar (line 141) | private void removeWorkCalendar() {
method addWorkCalendarSource (line 146) | private void addWorkCalendarSource() {
method removeWorkCalendarSource (line 150) | private void removeWorkCalendarSource() {
method addFamilyCalendar (line 154) | private void addFamilyCalendar() {
method addFamilyCalendarSource (line 160) | private void addFamilyCalendarSource() {
method removeFamilyCalendar (line 164) | private void removeFamilyCalendar() {
method removeFamilyCalendarSource (line 169) | private void removeFamilyCalendarSource() {
method getJavaDocClass (line 173) | @Override
method getSampleDescription (line 178) | @Override
method main (line 184) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloTimeField.java
class HelloTimeField (line 26) | public class HelloTimeField extends CalendarFXSample {
method getSampleName (line 28) | @Override
method createControl (line 33) | @Override
method getJavaDocClass (line 47) | @Override
method getSampleDescription (line 52) | @Override
method main (line 57) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloTimeScaleView.java
class HelloTimeScaleView (line 33) | public class HelloTimeScaleView extends CalendarFXSample {
method getSampleName (line 38) | @Override
method createControl (line 43) | @Override
method getPanel (line 48) | @Override
method wrap (line 58) | @Override
method getJavaDocClass (line 76) | @Override
method getSampleDescription (line 81) | @Override
method provideTimeStyle (line 86) | private String provideTimeStyle(LocalDateTime dateTime) {
method main (line 90) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloTimezones.java
class HelloTimezones (line 39) | public class HelloTimezones extends CalendarFXSample {
method getSampleName (line 43) | @Override
method getControlPanel (line 48) | @Override
method createControl (line 53) | protected Node createControl() {
method getSampleDescription (line 76) | @Override
method getJavaDocClass (line 81) | @Override
class LondonCalendar (line 86) | class LondonCalendar extends Calendar {
method LondonCalendar (line 87) | public LondonCalendar(ParisCalendar input) {
class ParisCalendar (line 102) | class ParisCalendar extends Calendar {
method ParisCalendar (line 104) | public ParisCalendar() {
method main (line 124) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloTopLayer.java
class HelloTopLayer (line 36) | public class HelloTopLayer extends CalendarFXSample {
method getSampleName (line 40) | @Override
method getControlPanel (line 45) | @Override
method createControl (line 50) | protected Node createControl() {
method createEntryView (line 65) | private DayEntryView createEntryView(Entry<?> entry) {
method getSampleDescription (line 75) | @Override
method getJavaDocClass (line 80) | @Override
class BaseLayerCalendar (line 85) | static class BaseLayerCalendar extends Calendar {
method BaseLayerCalendar (line 87) | public BaseLayerCalendar() {
class TopLayerCalendar (line 94) | static class TopLayerCalendar extends Calendar {
method TopLayerCalendar (line 96) | public TopLayerCalendar() {
method createCalendarEntries (line 103) | private static void createCalendarEntries(Calendar calendar, String ti...
method main (line 124) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloVisualBounds.java
class HelloVisualBounds (line 34) | public class HelloVisualBounds extends CalendarFXSample {
method getSampleName (line 38) | @Override
method getControlPanel (line 43) | @Override
method createControl (line 48) | protected Node createControl() {
method getSampleDescription (line 65) | @Override
method getJavaDocClass (line 70) | @Override
class HelloDayViewCalendar (line 75) | class HelloDayViewCalendar extends Calendar {
method HelloDayViewCalendar (line 77) | public HelloDayViewCalendar() {
method createEntries (line 81) | private void createEntries(LocalDate startDate) {
method main (line 103) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloWeekDayHeaderView.java
class HelloWeekDayHeaderView (line 29) | public class HelloWeekDayHeaderView extends CalendarFXDateControlSample {
method getSampleName (line 31) | @Override
method createControl (line 36) | @Override
method wrap (line 41) | @Override
method getSampleDescription (line 58) | @Override
method getJavaDocClass (line 63) | @Override
method main (line 68) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloWeekDayView.java
class HelloWeekDayView (line 30) | public class HelloWeekDayView extends CalendarFXDateControlSample {
method getSampleName (line 34) | @Override
method createControl (line 39) | @Override
method getSampleDescription (line 50) | @Override
method getJavaDocClass (line 55) | @Override
class HelloDayViewCalendar (line 60) | class HelloDayViewCalendar extends Calendar {
method HelloDayViewCalendar (line 62) | public HelloDayViewCalendar() {
method createEntries (line 66) | private void createEntries(LocalDate startDate) {
method main (line 89) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloWeekFieldsView.java
class HelloWeekFieldsView (line 25) | public class HelloWeekFieldsView extends CalendarFXSample {
method getSampleName (line 29) | @Override
method createControl (line 34) | @Override
method getJavaDocClass (line 40) | @Override
method getSampleDescription (line 45) | @Override
method main (line 52) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloWeekTimeScaleView.java
class HelloWeekTimeScaleView (line 29) | public class HelloWeekTimeScaleView extends CalendarFXDateControlSample {
method getSampleName (line 31) | @Override
method createControl (line 36) | @Override
method wrap (line 41) | @Override
method getJavaDocClass (line 59) | @Override
method getSampleDescription (line 64) | @Override
method main (line 69) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloWeekView.java
class HelloWeekView (line 32) | public class HelloWeekView extends CalendarFXSample {
method getSampleName (line 36) | @Override
method createControl (line 41) | @Override
method getControlPanel (line 46) | @Override
method getPanel (line 51) | @Override
method getSampleDescription (line 79) | @Override
method getJavaDocClass (line 86) | @Override
method main (line 91) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloYearMonthView.java
class HelloYearMonthView (line 31) | public class HelloYearMonthView extends CalendarFXDateControlSample {
method getSampleName (line 35) | @Override
method createControl (line 40) | @Override
method getSampleDescription (line 52) | @Override
method getJavaDocClass (line 57) | @Override
class HelloCalendar (line 62) | class HelloCalendar extends Calendar {
method HelloCalendar (line 64) | public HelloCalendar(YearMonth month) {
method createEntries (line 68) | private void createEntries(YearMonth month) {
method main (line 100) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloYearView.java
class HelloYearView (line 31) | public class HelloYearView extends CalendarFXDateControlSample {
method getSampleName (line 33) | @Override
method createControl (line 38) | @Override
method getSampleDescription (line 50) | @Override
method getJavaDocClass (line 55) | @Override
class HelloCalendar (line 60) | class HelloCalendar extends Calendar {
method HelloCalendar (line 62) | public HelloCalendar(Year year) {
method main (line 93) | public static void main(String[] args) {
FILE: CalendarFXSampler/src/main/java/com/calendarfx/demo/views/resources/HelloResourcesView.java
class HelloResourcesView (line 55) | public class HelloResourcesView extends CalendarFXDateControlSample {
method getSampleName (line 63) | @Override
method getSampleDescription (line 68) | @Override
method getJavaDocClass (line 73) | @Override
method isSupportingDeveloperConsole (line 78) | @Override
method getControlPanel (line 83) | @Override
method createControl (line 246) | @Override
method createResources (line 261) | private List<Resource<String>> createResources(int count) {
method create (line 284) | private Resource<String> create(String name, Style style) {
method fillAvailabilities (line 294) | private void fillAvailabilities(Calendar calendar) {
class HelloDayViewCalendar (line 311) | class HelloDayViewCalendar extends Calendar {
method HelloDayViewCalendar (line 315) | public HelloDayViewCalendar(long dataSeed) {
method generateBaseEntries (line 319) | public void generateBaseEntries() {
method generateTopEntries (line 327) | public void generateTopEntries() {
method createEntries (line 331) | private <T extends Entry<?>> void createEntries(LocalDate startDate,...
method main (line 354) | public static void main(String[] args) {
FILE: CalendarFXSchedulerApp/src/main/java/com/calendarfx/scheduler/SchedulerApp.java
class SchedulerApp (line 40) | public class SchedulerApp extends Application {
method start (line 42) | @Override
method main (line 128) | public static void main(String[] args) {
FILE: CalendarFXSchedulerApp/src/main/java/com/calendarfx/scheduler/SchedulerAppLauncher.java
class SchedulerAppLauncher (line 19) | public class SchedulerAppLauncher {
method main (line 21) | public static void main(String[] args) {
FILE: CalendarFXView/src/main/java/com/calendarfx/model/Calendar.java
class Calendar (line 83) | public class Calendar<T> implements EventTarget {
type Style (line 95) | public enum Style {
method getStyle (line 140) | public static Style getStyle(int ordinal) {
method Calendar (line 150) | public Calendar() {
method Calendar (line 166) | public Calendar(String name, T userObject) {
method Calendar (line 182) | public Calendar(String name) {
method updateRecurrenceSourceEntry (line 186) | @SuppressWarnings({"rawtypes", "unchecked"})
method calculateSourceBoundsFromRecurrenceBounds (line 208) | private Interval calculateSourceBoundsFromRecurrenceBounds(Entry<?> so...
method getEarliestTimeUsed (line 231) | public final Instant getEarliestTimeUsed() {
method getLatestTimeUsed (line 242) | public final Instant getLatestTimeUsed() {
method startBatchUpdates (line 255) | public final void startBatchUpdates() {
method stopBatchUpdates (line 265) | public final void stopBatchUpdates() {
method findEntries (line 283) | public final Map<LocalDate, List<Entry<?>>> findEntries(LocalDate star...
method doGetEntries (line 297) | @SuppressWarnings({"rawtypes", "unchecked"})
method addEntryToResult (line 376) | private void addEntryToResult(Map<LocalDate, List<Entry<?>>> result, E...
method lookAheadDurationProperty (line 411) | public final ObjectProperty<Duration> lookAheadDurationProperty() {
method setLookAheadDuration (line 420) | public final void setLookAheadDuration(Duration duration) {
method getLookAheadDuration (line 430) | public final Duration getLookAheadDuration() {
method lookBackDurationProperty (line 445) | public final ObjectProperty<Duration> lookBackDurationProperty() {
method setLookBackDuration (line 454) | public final void setLookBackDuration(Duration duration) {
method getLookBackDuration (line 464) | public final Duration getLookBackDuration() {
method findEntries (line 476) | public List<Entry<?>> findEntries(String searchText) {
method clear (line 512) | public final void clear() {
method addEntry (line 526) | public final void addEntry(Entry<?> entry) {
method addEntries (line 537) | public final void addEntries(Entry<?>... entries) {
method addEntries (line 552) | public final void addEntries(Collection<Entry<?>> entries) {
method addEntries (line 564) | public final void addEntries(Iterator<Entry<?>> entries) {
method addEntries (line 578) | public final void addEntries(Iterable<Entry<?>> entries) {
method removeEntry (line 593) | public final void removeEntry(Entry<?> entry) {
method removeEntries (line 604) | public final void removeEntries(Entry<?>... entries) {
method removeEntries (line 619) | public final void removeEntries(Collection<Entry<?>> entries) {
method removeEntries (line 631) | public final void removeEntries(Iterator<Entry<?>> entries) {
method removeEntries (line 645) | public final void removeEntries(Iterable<Entry<?>> entries) {
method impl_addEntry (line 651) | final void impl_addEntry(Entry<?> entry) {
method impl_removeEntry (line 661) | final void impl_removeEntry(Entry<?> entry) {
method nameProperty (line 680) | public final StringProperty nameProperty() {
method setName (line 689) | public final void setName(String name) {
method getName (line 698) | public final String getName() {
method shortNameProperty (line 711) | public final StringProperty shortNameProperty() {
method setShortName (line 720) | public final void setShortName(String name) {
method getShortName (line 729) | public final String getShortName() {
method styleProperty (line 747) | public final StringProperty styleProperty() {
method setStyle (line 760) | public final void setStyle(Style style) {
method setStyle (line 770) | public final void setStyle(String stylePrefix) {
method getStyle (line 781) | public final String getStyle() {
method readOnlyProperty (line 794) | public final BooleanProperty readOnlyProperty() {
method isReadOnly (line 803) | public final boolean isReadOnly() {
method setReadOnly (line 812) | public final void setReadOnly(boolean readOnly) {
method addEventHandler (line 825) | public final void addEventHandler(EventHandler<CalendarEvent> l) {
method removeEventHandler (line 839) | public final void removeEventHandler(EventHandler<CalendarEvent> l) {
method fireEvent (line 856) | public final void fireEvent(CalendarEvent evt) {
method buildEventDispatchChain (line 867) | @Override
method getUserObject (line 882) | public final T getUserObject() {
method userObjectProperty (line 892) | public final ObjectProperty<T> userObjectProperty() {
method setUserObject (line 896) | public final void setUserObject(T userObject) {
method toString (line 900) | @Override
FILE: CalendarFXView/src/main/java/com/calendarfx/model/CalendarEvent.java
class CalendarEvent (line 43) | public class CalendarEvent extends Event {
method CalendarEvent (line 131) | protected CalendarEvent(EventType<? extends CalendarEvent> eventType, ...
method CalendarEvent (line 144) | public CalendarEvent(EventType<? extends CalendarEvent> eventType, Cal...
method CalendarEvent (line 161) | public CalendarEvent(EventType<CalendarEvent> eventType, Calendar cale...
method CalendarEvent (line 176) | public CalendarEvent(EventType<CalendarEvent> eventType, Calendar cale...
method CalendarEvent (line 191) | public CalendarEvent(EventType<CalendarEvent> eventType, Calendar cale...
method CalendarEvent (line 206) | public CalendarEvent(EventType<CalendarEvent> eventType, Calendar cale...
method CalendarEvent (line 221) | public CalendarEvent(EventType<CalendarEvent> eventType, Calendar cale...
method getEntry (line 231) | public Entry<?> getEntry() {
method getCalendar (line 240) | public final Calendar getCalendar() {
method getOldUserObject (line 249) | public Object getOldUserObject() {
method getOldInterval (line 258) | public Interval getOldInterval() {
method getOldText (line 267) | public final String getOldText() {
method getOldFullDay (line 276) | public final boolean getOldFullDay() {
method getOldCalendar (line 285) | public final Calendar getOldCalendar() {
method isEntryAdded (line 296) | public final boolean isEntryAdded() {
method isEntryRemoved (line 311) | public final boolean isEntryRemoved() {
method isDayChange (line 327) | public final boolean isDayChange() {
method toString (line 347) | @Override
FILE: CalendarFXView/src/main/java/com/calendarfx/model/CalendarSource.java
class CalendarSource (line 42) | public class CalendarSource {
method CalendarSource (line 47) | public CalendarSource() {
method CalendarSource (line 72) | public CalendarSource(String name) {
method nameProperty (line 84) | public final StringProperty nameProperty() {
method setName (line 93) | public final void setName(String name) {
method getName (line 103) | public final String getName() {
method getCalendars (line 116) | public final ObservableList<Calendar> getCalendars() {
method toString (line 120) | @Override
FILE: CalendarFXView/src/main/java/com/calendarfx/model/Entry.java
class Entry (line 103) | public class Entry<T> implements Comparable<Entry<?>> {
method Entry (line 113) | public Entry() {
method Entry (line 123) | public Entry(String title) {
method Entry (line 134) | public Entry(String title, String id) {
method Entry (line 145) | public Entry(String title, Interval interval) {
method Entry (line 156) | public Entry(String title, Interval interval, String id) {
method getProperties (line 176) | public final ObservableMap<Object, Object> getProperties() {
method hasProperties (line 208) | public final boolean hasProperties() {
method hasStyleClass (line 223) | public final boolean hasStyleClass() {
method getStyleClass (line 234) | public final ObservableList<String> getStyleClass() {
method set (line 242) | @Override
method intervalProperty (line 305) | public final ObjectProperty<Interval> intervalProperty() {
method getInterval (line 314) | public final Interval getInterval() {
method setInterval (line 323) | public final void setInterval(Interval interval) {
method setInterval (line 330) | public final void setInterval(LocalDate date) {
method setInterval (line 334) | public final void setInterval(LocalDate date, ZoneId zoneId) {
method setInterval (line 338) | public final void setInterval(LocalDate startDate, LocalDate endDate) {
method setInterval (line 342) | public final void setInterval(LocalDate startDate, LocalDate endDate, ...
method setInterval (line 346) | public final void setInterval(LocalDate startDate, LocalTime startTime...
method setInterval (line 350) | public final void setInterval(LocalDate startDate, LocalTime startTime...
method setInterval (line 356) | public final void setInterval(LocalTime startTime, LocalTime endTime) {
method setInterval (line 360) | public final void setInterval(LocalTime startTime, LocalTime endTime, ...
method setInterval (line 366) | public final void setInterval(LocalDateTime dateTime) {
method setInterval (line 370) | public final void setInterval(LocalDateTime dateTime, ZoneId zoneId) {
method setInterval (line 374) | public final void setInterval(LocalDateTime startDateTime, LocalDateTi...
method setInterval (line 378) | public final void setInterval(LocalDateTime startDateTime, LocalDateTi...
method setInterval (line 384) | public final void setInterval(ZonedDateTime date) {
method setInterval (line 388) | public final void setInterval(ZonedDateTime startDate, ZonedDateTime e...
method changeStartDate (line 399) | public final void changeStartDate(LocalDate date) {
method changeStartDate (line 412) | public final void changeStartDate(LocalDate date, boolean keepDuration) {
method changeStartTime (line 443) | public final void changeStartTime(LocalTime time) {
method changeStartTime (line 456) | public final void changeStartTime(LocalTime time, boolean keepDuration) {
method changeEndDate (line 486) | public final void changeEndDate(LocalDate date) {
method changeEndDate (line 499) | public final void changeEndDate(LocalDate date, boolean keepDuration) {
method changeEndTime (line 529) | public final void changeEndTime(LocalTime time) {
method changeEndTime (line 542) | public final void changeEndTime(LocalTime time, boolean keepDuration) {
method changeZoneId (line 570) | public final void changeZoneId(ZoneId zoneId) {
method recurrenceSourceProperty (line 584) | public final ReadOnlyObjectProperty<Entry<T>> recurrenceSourceProperty...
method getRecurrenceSourceEntry (line 603) | public final Entry<T> getRecurrenceSourceEntry() {
method createRecurrence (line 618) | public Entry<T> createRecurrence() {
method recurrenceProperty (line 636) | public final ReadOnlyBooleanProperty recurrenceProperty() {
method isRecurrence (line 648) | public final boolean isRecurrence() {
method setRecurrence (line 652) | private void setRecurrence(boolean b) {
method isRecurring (line 666) | public final boolean isRecurring() {
method recurrenceRuleProperty (line 689) | public final StringProperty recurrenceRuleProperty() {
method setRecurrenceRule (line 741) | public final void setRecurrenceRule(String rec) {
method getRecurrenceRule (line 754) | public final String getRecurrenceRule() {
method recurrenceIdProperty (line 768) | public final ReadOnlyStringProperty recurrenceIdProperty() {
method getRecurrenceId (line 781) | public final String getRecurrenceId() {
method setRecurrenceId (line 785) | private void setRecurrenceId(String id) {
method recurrenceEndProperty (line 803) | public final ReadOnlyObjectProperty<LocalDate> recurrenceEndProperty() {
method getRecurrenceEnd (line 816) | public final LocalDate getRecurrenceEnd() {
method setRecurrenceEnd (line 820) | private void setRecurrenceEnd(LocalDate date) {
method setId (line 837) | public final void setId(String id) {
method getId (line 850) | public final String getId() {
method set (line 859) | @Override
method calendarProperty (line 893) | public final ObjectProperty<Calendar> calendarProperty() {
method setCalendar (line 902) | public final void setCalendar(Calendar cal) {
method getCalendar (line 911) | public final Calendar getCalendar() {
method removeFromCalendar (line 919) | public final void removeFromCalendar() {
method userObjectProperty (line 935) | public final ObjectProperty<T> userObjectProperty() {
method setUserObject (line 964) | public final void setUserObject(T object) {
method getUserObject (line 977) | public final T getUserObject() {
method zoneIdProperty (line 993) | public final ReadOnlyObjectProperty<ZoneId> zoneIdProperty() {
method setZoneId (line 1006) | public final void setZoneId(ZoneId zoneId) {
method getZoneId (line 1016) | public final ZoneId getZoneId() {
method set (line 1024) | @Override
method titleProperty (line 1044) | public final StringProperty titleProperty() {
method setTitle (line 1053) | public final void setTitle(String title) {
method getTitle (line 1062) | public final String getTitle() {
method locationProperty (line 1079) | public final StringProperty locationProperty() {
method setLocation (line 1107) | public final void setLocation(String loc) {
method getLocation (line 1120) | public final String getLocation() {
method startDateProperty (line 1133) | public final ReadOnlyObjectProperty<LocalDate> startDateProperty() {
method getStartDate (line 1146) | public final LocalDate getStartDate() {
method startTimeProperty (line 1159) | public final ReadOnlyObjectProperty<LocalTime> startTimeProperty() {
method getStartTime (line 1172) | public final LocalTime getStartTime() {
method endDateProperty (line 1185) | public final ReadOnlyObjectProperty<LocalDate> endDateProperty() {
method getEndDate (line 1199) | public final LocalDate getEndDate() {
method endTimeProperty (line 1212) | public final ReadOnlyObjectProperty<LocalTime> endTimeProperty() {
method getEndTime (line 1226) | public final LocalTime getEndTime() {
method set (line 1235) | @Override
method fullDayProperty (line 1260) | public final BooleanProperty fullDayProperty() {
method isFullDay (line 1269) | public final boolean isFullDay() {
method setFullDay (line 1278) | public final void setFullDay(boolean fullDay) {
method minimumDurationProperty (line 1296) | public final ObjectProperty<Duration> minimumDurationProperty() {
method getMinimumDuration (line 1308) | public final Duration getMinimumDuration() {
method setMinimumDuration (line 1317) | public final void setMinimumDuration(Duration duration) {
method matches (line 1339) | public boolean matches(String searchTerm) {
method getStartAsZonedDateTime (line 1358) | public final ZonedDateTime getStartAsZonedDateTime() {
method getStartMillis (line 1367) | public final long getStartMillis() {
method getStartAsLocalDateTime (line 1379) | public final LocalDateTime getStartAsLocalDateTime() {
method getEndAsZonedDateTime (line 1392) | public final ZonedDateTime getEndAsZonedDateTime() {
method getEndMillis (line 1401) | public final long getEndMillis() {
method getEndAsLocalDateTime (line 1413) | public final LocalDateTime getEndAsLocalDateTime() {
method updateMultiDay (line 1417) | private void updateMultiDay() {
method multiDayProperty (line 1435) | public final ReadOnlyBooleanProperty multiDayProperty() {
method isMultiDay (line 1447) | public final boolean isMultiDay() {
method setMultiDay (line 1451) | private void setMultiDay(boolean b) {
method intersects (line 1466) | public final boolean intersects(Entry<?> entry) {
method intersects (line 1478) | public final boolean intersects(ZonedDateTime startTime, ZonedDateTime...
method getDuration (line 1490) | public final Duration getDuration() {
method isShowing (line 1504) | public final boolean isShowing(LocalDate startDate, LocalDate endDate,...
method isShowing (line 1508) | private boolean isShowing(Entry<?> entry, LocalDate startDate, LocalDa...
method isHidden (line 1523) | public final boolean isHidden() {
method hiddenProperty (line 1527) | public final BooleanProperty hiddenProperty() {
method setHidden (line 1536) | public final void setHidden(boolean hidden) {
method isRecurrenceShowing (line 1540) | private boolean isRecurrenceShowing(Entry<?> entry, ZonedDateTime st, ...
method compareTo (line 1576) | @Override
method toString (line 1602) | @Override
method hashCode (line 1612) | @Override
method equals (line 1621) | @SuppressWarnings("rawtypes")
method getPropertySheetItems (line 1654) | public ObservableList<Item> getPropertySheetItems() {
FILE: CalendarFXView/src/main/java/com/calendarfx/model/Interval.java
class Interval (line 34) | public final class Interval {
method Interval (line 72) | public Interval() {
method Interval (line 86) | public Interval(LocalDate startDate, LocalTime startTime, LocalDate en...
method Interval (line 98) | public Interval(LocalDateTime startDateTime, LocalDateTime endDateTime) {
method Interval (line 113) | public Interval(ZonedDateTime zonedStartDateTime, ZonedDateTime zonedE...
method Interval (line 130) | public Interval(LocalDateTime startDateTime, LocalDateTime endDateTime...
method Interval (line 141) | public Interval(Instant startTime, Instant endTime, ZoneId zoneId) {
method Interval (line 155) | public Interval(LocalDate startDate, LocalTime startTime, LocalDate en...
method getZoneId (line 188) | public ZoneId getZoneId() {
method getStartDate (line 197) | public LocalDate getStartDate() {
method getStartTime (line 206) | public LocalTime getStartTime() {
method getStartZonedDateTime (line 216) | public ZonedDateTime getStartZonedDateTime() {
method getStartMillis (line 229) | public long getStartMillis() {
method getEndDate (line 242) | public LocalDate getEndDate() {
method getEndTime (line 251) | public LocalTime getEndTime() {
method getEndZonedDateTime (line 261) | public ZonedDateTime getEndZonedDateTime() {
method getEndMillis (line 274) | public long getEndMillis() {
method withDates (line 290) | public Interval withDates(LocalDate startDate, LocalDate endDate) {
method withDates (line 304) | public Interval withDates(LocalDateTime startDateTime, LocalDateTime e...
method withTimes (line 318) | public Interval withTimes(LocalTime startTime, LocalTime endTime) {
method withStartDate (line 331) | public Interval withStartDate(LocalDate date) {
method withEndDate (line 343) | public Interval withEndDate(LocalDate date) {
method withStartTime (line 355) | public Interval withStartTime(LocalTime time) {
method withStartDateTime (line 367) | public Interval withStartDateTime(LocalDateTime dateTime) {
method withEndTime (line 379) | public Interval withEndTime(LocalTime time) {
method withEndDateTime (line 391) | public Interval withEndDateTime(LocalDateTime dateTime) {
method withZoneId (line 403) | public Interval withZoneId(ZoneId zone) {
method withDuration (line 415) | public Interval withDuration(Duration duration) {
method getStartDateTime (line 429) | public LocalDateTime getStartDateTime() {
method getDuration (line 442) | public Duration getDuration() {
method getEndDateTime (line 454) | public LocalDateTime getEndDateTime() {
method hashCode (line 462) | @Override
method equals (line 474) | @Override
method toString (line 508) | @Override
FILE: CalendarFXView/src/main/java/com/calendarfx/model/IntervalTree.java
class IntervalTree (line 37) | class IntervalTree<E extends Entry<?>> {
method getEarliestTimeUsed (line 44) | public final Instant getEarliestTimeUsed() {
method getEarliestTimeUsed (line 52) | private long getEarliestTimeUsed(TreeEntry<E> entry) {
method getLatestTimeUsed (line 60) | public final Instant getLatestTimeUsed() {
method getLatestTimeUsed (line 68) | private long getLatestTimeUsed(TreeEntry<E> entry) {
method add (line 76) | public final boolean add(E entry) {
method remove (line 90) | public final boolean remove(E entry) {
method contains (line 109) | public final boolean contains(E entry) {
method removePeriod (line 114) | public final Collection<E> removePeriod(Instant start, Instant end) {
method getIntersectingObjects (line 124) | public final Collection<E> getIntersectingObjects(Instant start,
method searchIntersecting (line 136) | private void searchIntersecting(TreeEntry<E> entry,
method checkPLow (line 175) | private boolean checkPLow(TreeEntry<E> n, long pLow) {
method checkPHigh (line 179) | private boolean checkPHigh(TreeEntry<E> n, long pHigh) {
method size (line 183) | public final long size() {
method clear (line 187) | public final void clear() {
method getLow (line 192) | private long getLow(TimeInterval obj) {
method getHigh (line 201) | private long getHigh(TimeInterval interval) {
method getLow (line 210) | private long getLow(Entry<?> entry) {
method getHigh (line 218) | private long getHigh(Entry<?> entry) {
method fixUpMaxHigh (line 229) | private void fixUpMaxHigh(TreeEntry<E> entry) {
method getEntry (line 247) | private TreeEntry<E> getEntry(Entry<?> entry) {
method addEntry (line 268) | private TreeEntry<E> addEntry(E entry) {
method compareLongs (line 324) | private static int compareLongs(long val1, long val2) {
class TreeEntry (line 342) | private static final class TreeEntry<V> {
method TreeEntry (line 356) | TreeEntry(long low, long high, V value, TreeEntry<V> parent) {
method toString (line 364) | @Override
method getLeft (line 370) | public TreeEntry<V> getLeft() {
method getRight (line 374) | public TreeEntry<V> getRight() {
method successor (line 384) | private static <V> TreeEntry<V> successor(TreeEntry<V> t) {
method colorOf (line 414) | private static <V> boolean colorOf(TreeEntry<V> p) {
method parentOf (line 418) | private static <V> TreeEntry<V> parentOf(TreeEntry<V> p) {
method setColor (line 422) | private static <V> void setColor(TreeEntry<V> p, boolean c) {
method leftOf (line 428) | private static <V> TreeEntry<V> leftOf(TreeEntry<V> p) {
method rightOf (line 432) | private static <V> TreeEntry<V> rightOf(TreeEntry<V> p) {
method rotateLeft (line 437) | private void rotateLeft(TreeEntry<E> p) {
method rotateRight (line 470) | private void rotateRight(TreeEntry<E> p) {
method fixAfterInsertion (line 502) | private void fixAfterInsertion(TreeEntry<E> x) {
method deleteEntry (line 549) | private void deleteEntry(TreeEntry<E> p) {
method fixAfterDeletion (line 612) | private void fixAfterDeletion(TreeEntry<E> x) {
class TimeInterval (line 674) | private class TimeInterval {
method TimeInterval (line 680) | public TimeInterval(Instant startTime, Instant endTime) {
method getStartTime (line 694) | public Instant getStartTime() {
method getEndTime (line 698) | public Instant getEndTime() {
FILE: CalendarFXView/src/main/java/com/calendarfx/model/LoadEvent.java
class LoadEvent (line 63) | public final class LoadEvent extends Event {
method LoadEvent (line 101) | public LoadEvent(EventType<LoadEvent> eventType, String sourceName,
method getSourceName (line 119) | public String getSourceName() {
method getCalendarSources (line 128) | public List<CalendarSource> getCalendarSources() {
method getStartDate (line 137) | public LocalDate getStartDate() {
method getEndDate (line 146) | public LocalDate getEndDate() {
method getZoneId (line 155) | public ZoneId getZoneId() {
method getStartTime (line 165) | public ZonedDateTime getStartTime() {
method getEndTime (line 175) | public ZonedDateTime getEndTime() {
method toString (line 179) | @Override
FILE: CalendarFXView/src/main/java/com/calendarfx/model/Marker.java
class Marker (line 14) | public class Marker {
method Marker (line 16) | public Marker() {
method isMovable (line 21) | public final boolean isMovable() {
method movableProperty (line 25) | public final BooleanProperty movableProperty() {
method setMovable (line 29) | public final void setMovable(boolean movable) {
method getTime (line 35) | public ZonedDateTime getTime() {
method timeProperty (line 39) | public ObjectProperty<ZonedDateTime> timeProperty() {
method setTime (line 43) | public void setTime(ZonedDateTime time) {
method getTitle (line 49) | public String getTitle() {
method titleProperty (line 53) | public StringProperty titleProperty() {
method setTitle (line 57) | public void setTitle(String title) {
method getStyle (line 63) | public final String getStyle() {
method styleProperty (line 67) | public final StringProperty styleProperty() {
method setStyle (line 71) | public final void setStyle(String style) {
method getStyleClass (line 77) | public final ObservableList<String> getStyleClass() {
FILE: CalendarFXView/src/main/java/com/calendarfx/model/Resource.java
class Resource (line 32) | public class Resource<T> {
method Resource (line 38) | public Resource() {
method Resource (line 53) | public Resource(T userObject) {
method getUserObject (line 60) | public final T getUserObject() {
method userObjectProperty (line 69) | public final ObjectProperty<T> userObjectProperty() {
method setUserObject (line 73) | public final void setUserObject(T userObject) {
method getCalendarSources (line 85) | public final ObservableList<CalendarSource> getCalendarSources() {
method calendarsProperty (line 102) | public final ReadOnlyListProperty<Calendar> calendarsProperty() {
method getCalendars (line 113) | public final ObservableList<Calendar> getCalendars() {
method getAvailabilityCalendar (line 119) | public Calendar getAvailabilityCalendar() {
method availabilityCalendarProperty (line 133) | public ObjectProperty<Calendar> availabilityCalendarProperty() {
method setAvailabilityCalendar (line 137) | public void setAvailabilityCalendar(Calendar availabilityCalendar) {
method updateCalendarList (line 141) | private void updateCalendarList() {
method toString (line 160) | @Override
FILE: CalendarFXView/src/main/java/com/calendarfx/util/CalendarFX.java
class CalendarFX (line 26) | public final class CalendarFX {
method getVersion (line 36) | public static String getVersion() {
FILE: CalendarFXView/src/main/java/com/calendarfx/util/LoggingDomain.java
class LoggingDomain (line 24) | public final class LoggingDomain {
FILE: CalendarFXView/src/main/java/com/calendarfx/util/LoggingFormatter.java
class LoggingFormatter (line 36) | public class LoggingFormatter extends Formatter {
method format (line 67) | @Override
method truncate (line 113) | private CharSequence truncate(String s, int n) {
FILE: CalendarFXView/src/main/java/com/calendarfx/util/ViewHelper.java
class ViewHelper (line 36) | @SuppressWarnings("javadoc")
method getTimeLocation (line 39) | public static double getTimeLocation(DayViewBase view, LocalTime time) {
method getTimeLocation (line 43) | public static double getTimeLocation(DayViewBase view, LocalTime time,...
method getTimeLocation (line 47) | public static double getTimeLocation(DayViewBase view, ZonedDateTime t...
method getTimeLocation (line 51) | public static double getTimeLocation(DayViewBase view, Instant instant) {
method getTimeLocation (line 55) | public static double getTimeLocation(DayViewBase view, ZonedDateTime z...
method getInstantAt (line 148) | public static Instant getInstantAt(DayViewBase view, double y) {
method findPopOverArrowLocation (line 232) | public static ArrowLocation findPopOverArrowLocation(Node view) {
method findPopOverArrowPosition (line 265) | public static Point2D findPopOverArrowPosition(Node node, double scree...
method scrollToRequestedTime (line 280) | public static void scrollToRequestedTime(DateControl control, DayViewS...
FILE: CalendarFXView/src/main/java/com/calendarfx/util/WeakList.java
class WeakList (line 13) | public class WeakList<T> extends AbstractList<T> {
method WeakList (line 20) | public WeakList() {
method WeakList (line 24) | public WeakList(Collection c) {
method add (line 29) | public void add(int index, Object element) {
method iterator (line 33) | public Iterator<T> iterator() {
method size (line 37) | public int size() {
method get (line 42) | public T get(int index) {
method removeReleased (line 46) | private void removeReleased() {
class WeakListIterator (line 55) | private class WeakListIterator implements Iterator<T> {
method WeakListIterator (line 60) | public WeakListIterator() {
method hasNext (line 65) | public boolean hasNext() {
method next (line 69) | public T next() {
method remove (line 73) | public void remove() {
FILE: CalendarFXView/src/main/java/com/calendarfx/view/AgendaView.java
class AgendaView (line 68) | public class AgendaView extends DateControl {
method AgendaView (line 78) | public AgendaView() {
method getListView (line 90) | public final ListView<AgendaEntry> getListView() {
method createDefaultSkin (line 94) | @Override
method buildContextMenu (line 99) | private ContextMenu buildContextMenu() {
method lookBackPeriodInDaysProperty (line 138) | public final IntegerProperty lookBackPeriodInDaysProperty() {
method getLookBackPeriodInDays (line 147) | public final int getLookBackPeriodInDays() {
method setLookBackPeriodInDays (line 156) | public final void setLookBackPeriodInDays(int days) {
method lookAheadPeriodInDaysProperty (line 171) | public final IntegerProperty lookAheadPeriodInDaysProperty() {
method getLookAheadPeriodInDays (line 180) | public final int getLookAheadPeriodInDays() {
method setLookAheadPeriodInDays (line 189) | public final void setLookAheadPeriodInDays(int days) {
method showStatusLabelProperty (line 198) | public final BooleanProperty showStatusLabelProperty() {
method isShowStatusLabel (line 202) | public final boolean isShowStatusLabel() {
method setShowStatusLabel (line 206) | public final void setShowStatusLabel(boolean showStatusLabel) {
method set (line 211) | @Override
method cellFactoryProperty (line 217) | public final ObjectProperty<Callback<AgendaView, ? extends AgendaEntry...
method getCellFactory (line 221) | public final Callback<AgendaView, ? extends AgendaEntryCell> getCellFa...
method setCellFactory (line 225) | public final void setCellFactory(Callback<AgendaView, ? extends Agenda...
method dateTimeFormatterProperty (line 237) | public final ObjectProperty<DateTimeFormatter> dateTimeFormatterProper...
method getDateTimeFormatter (line 246) | public final DateTimeFormatter getDateTimeFormatter() {
method setDateTimeFormatter (line 255) | public final void setDateTimeFormatter(DateTimeFormatter formatter) {
class AgendaEntry (line 264) | public static class AgendaEntry implements Comparable<AgendaEntry> {
method AgendaEntry (line 268) | public AgendaEntry(LocalDate date) {
method getDate (line 272) | public LocalDate getDate() {
method getEntries (line 278) | public final List<Entry<?>> getEntries() {
method compareTo (line 282) | @Override
class AgendaEntryCell (line 297) | public static class AgendaEntryCell extends ListCell<AgendaEntry> {
method AgendaEntryCell (line 329) | public AgendaEntryCell(AgendaView view) {
method AgendaEntryCell (line 339) | public AgendaEntryCell(AgendaView view, boolean headerPaneVisible) {
method createBody (line 365) | protected Node createBody() {
method createHeader (line 397) | protected Node createHeader() {
method updateItem (line 417) | @Override
method createEntryTimeLabel (line 480) | protected Label createEntryTimeLabel(Entry<?> entry) {
method createEntryTitleLabel (line 497) | protected Label createEntryTitleLabel(Entry<?> entry) {
method createEntryGraphic (line 519) | protected Node createEntryGraphic(Entry<?> entry) {
method getTimeText (line 533) | protected String getTimeText(Entry<?> entry) {
method setWeekdayFormatter (line 581) | public void setWeekdayFormatter(DateTimeFormatter weekdayFormatter) {
method setMediumDateFormatter (line 591) | public void setMediumDateFormatter(DateTimeFormatter mediumDateForma...
method setShortDateFormatter (line 601) | public void setShortDateFormatter(DateTimeFormatter shortDateFormatt...
method setTimeFormatter (line 611) | public void setTimeFormatter(DateTimeFormatter timeFormatter) {
method getPropertySheetItems (line 616) | @Override
FILE: CalendarFXView/src/main/java/com/calendarfx/view/AllDayEntryView.java
class AllDayEntryView (line 26) | public class AllDayEntryView extends EntryViewBase<AllDayView> {
method AllDayEntryView (line 33) | public AllDayEntryView(Entry<?> entry) {
method createDefaultSkin (line 37) | @Override
FILE: CalendarFXView/src/main/java/com/calendarfx/view/AllDayView.java
class AllDayView (line 64) | public class AllDayView extends DateControl implements ZonedDateTimeProv...
method AllDayView (line 73) | public AllDayView(int numberOfDays) {
method AllDayView (line 87) | public AllDayView() {
method getZonedDateTimeAt (line 91) | @Override
method createDefaultSkin (line 107) | @Override
method extraPaddingProperty (line 121) | public final ObjectProperty<Insets> extraPaddingProperty() {
method getExtraPadding (line 150) | public final Insets getExtraPadding() {
method setExtraPadding (line 159) | public final void setExtraPadding(Insets padding) {
method rowHeightProperty (line 172) | public final DoubleProperty rowHeightProperty() {
method getRowHeight (line 201) | public final double getRowHeight() {
method setRowHeight (line 210) | public final void setRowHeight(double height) {
method rowSpacingProperty (line 221) | public final DoubleProperty rowSpacingProperty() {
method getRowSpacing (line 250) | public final double getRowSpacing() {
method setRowSpacing (line 259) | public final void setRowSpacing(double space) {
method columnSpacingProperty (line 273) | public final DoubleProperty columnSpacingProperty() {
method getColumnSpacing (line 302) | public final double getColumnSpacing() {
method setColumnSpacing (line 311) | public final void setColumnSpacing(double space) {
method adjustToFirstDayOfWeekProperty (line 327) | public final BooleanProperty adjustToFirstDayOfWeekProperty() {
method isAdjustToFirstDayOfWeek (line 336) | public final boolean isAdjustToFirstDayOfWeek() {
method setAdjustToFirstDayOfWeek (line 345) | public final void setAdjustToFirstDayOfWeek(boolean adjust) {
method numberOfDaysProperty (line 358) | public final IntegerProperty numberOfDaysProperty() {
method getNumberOfDays (line 367) | public final int getNumberOfDays() {
method setNumberOfDays (line 376) | public final void setNumberOfDays(int number) {
method entryViewFactoryProperty (line 392) | public final ObjectProperty<Callback<Entry<?>, AllDayEntryView>> entry...
method getEntryViewFactory (line 401) | public final Callback<Entry<?>, AllDayEntryView> getEntryViewFactory() {
method setEntryViewFactory (line 410) | public final void setEntryViewFactory(Callback<Entry<?>, AllDayEntryVi...
method getSeparatorFactory (line 422) | public final Callback<AllDayView, Region> getSeparatorFactory() {
method separatorFactoryProperty (line 431) | public final ObjectProperty<Callback<AllDayView, Region>> separatorFac...
method setSeparatorFactory (line 435) | public final void setSeparatorFactory(Callback<AllDayView, Region> sep...
class StyleableProperties (line 439) | private static class StyleableProperties {
method getInitialValue (line 446) | @Override
method isSettable (line 451) | @Override
method getStyleableProperty (line 456) | @SuppressWarnings("unchecked")
method getInitialValue (line 466) | @Override
method isSettable (line 471) | @Override
method getStyleableProperty (line 476) | @SuppressWarnings("unchecked")
method getInitialValue (line 486) | @Override
method isSettable (line 491) | @Override
method getStyleableProperty (line 496) | @SuppressWarnings("unchecked")
method getInitialValue (line 507) | @Override
method isSettable (line 512) | @Override
method getStyleableProperty (line 517) | @SuppressWarnings("unchecked")
method getClassCssMetaData (line 536) | public static List<CssMetaData<? extends Styleable, ?>> getClassCssMet...
method getControlCssMetaData (line 540) | @Override
method getPropertySheetItems (line 547) | @Override
FILE: CalendarFXView/src/main/java/com/calendarfx/view/ButtonBar.java
class ButtonBar (line 31) | public class ButtonBar extends CalendarFXControl {
method ButtonBar (line 38) | public ButtonBar() {
method ButtonBar (line 47) | public ButtonBar(Button... buttons) {
method ButtonBar (line 56) | public ButtonBar(ObservableList<Button> buttons) {
method createDefaultSkin (line 62) | protected Skin<?> createDefaultSkin() {
method getButtons (line 71) | public final ObservableList<Button> getButtons() {
FILE: CalendarFXView/src/main/java/com/calendarfx/view/CalendarFXControl.java
class CalendarFXControl (line 30) | public abstract class CalendarFXControl extends Control {
method CalendarFXControl (line 37) | protected CalendarFXControl() {
method getUserAgentStylesheet (line 40) | @Override
method getPropertySheetItems (line 58) | public ObservableList<Item> getPropertySheetItems() {
FILE: CalendarFXView/src/main/java/com/calendarfx/view/CalendarHeaderView.java
class CalendarHeaderView (line 48) | public class CalendarHeaderView extends CalendarFXControl {
method CalendarHeaderView (line 55) | public CalendarHeaderView() {
method createDefaultSkin (line 66) | @Override
method bind (line 71) | public final void bind(DateControl dateControl) {
method unbind (line 76) | public final void unbind(DateControl dateControl) {
method getCalendarVisibilityMap (line 86) | public final ObservableMap<Calendar, BooleanProperty> getCalendarVisib...
method getCalendarVisibilityProperty (line 90) | public final BooleanProperty getCalendarVisibilityProperty(Calendar ca...
method isCalendarVisible (line 94) | public final boolean isCalendarVisible(Calendar calendar) {
method setCalendarVisibility (line 99) | public final void setCalendarVisibility(Calendar calendar, boolean vis...
method cellFactoryProperty (line 112) | public final ObjectProperty<Callback<Calendar, Node>> cellFactoryPrope...
method setCellFactory (line 122) | public final void setCellFactory(Callback<Calendar, Node> factory) {
method getCellFactory (line 132) | public final Callback<Calendar, Node> getCellFactory() {
method getCalendars (line 143) | public final ObservableList<Calendar> getCalendars() {
method numberOfDaysProperty (line 158) | public final IntegerProperty numberOfDaysProperty() {
method getNumberOfDays (line 167) | public final int getNumberOfDays() {
method setNumberOfDays (line 177) | public final void setNumberOfDays(int number) {
FILE: CalendarFXView/src/main/java/com/calendarfx/view/CalendarSelector.java
class CalendarSelector (line 32) | public class CalendarSelector extends CalendarFXControl {
method CalendarSelector (line 37) | public CalendarSelector() {
method createDefaultSkin (line 40) | @Override
method getCalendars (line 52) | public final ObservableList<Calendar> getCalendars() {
method calendarProperty (line 67) | public final ObjectProperty<Calendar> calendarProperty() {
method setCalendar (line 76) | public final void setCalendar(Calendar calendar) {
method getCalendar (line 85) | public final Calendar getCalendar() {
FILE: CalendarFXView/src/main/java/com/calendarfx/view/CalendarView.java
class CalendarView (line 67) | public class CalendarView extends DateControl {
method CalendarView (line 93) | public CalendarView() {
method CalendarView (line 100) | public CalendarView(Page... availablePages) {
method createDefaultSkin (line 140) | @Override
method getPageView (line 145) | public PageBase getPageView(Page page) {
type Page (line 168) | public enum Page {
method getAvailablePages (line 183) | public final ObservableList<Page> getAvailablePages() {
method getDeveloperConsole (line 194) | public final DeveloperConsole getDeveloperConsole() {
method getDayPage (line 203) | public final DayPage getDayPage() {
method getWeekPage (line 216) | public final WeekPage getWeekPage() {
method getMonthPage (line 229) | public final MonthPage getMonthPage() {
method getYearPage (line 242) | public final YearPage getYearPage() {
method getSearchField (line 255) | public final SearchTextField getSearchField() {
method getSearchResultView (line 264) | public final SearchResultView getSearchResultView() {
method getSourceView (line 273) | public final SourceView getSourceView() {
method getYearMonthView (line 282) | public final YearMonthView getYearMonthView() {
method getPrintView (line 293) | public final PrintView getPrintView() {
method showDeveloperConsoleProperty (line 310) | public final BooleanProperty showDeveloperConsoleProperty() {
method setShowDeveloperConsole (line 319) | public final void setShowDeveloperConsole(boolean show) {
method isShowDeveloperConsole (line 328) | public final boolean isShowDeveloperConsole() {
method showSourceTrayProperty (line 339) | public final BooleanProperty showSourceTrayProperty() {
method setShowSourceTray (line 348) | public final void setShowSourceTray(boolean show) {
method isShowSourceTray (line 357) | public final boolean isShowSourceTray() {
method showSearchResultsTrayProperty (line 368) | public final BooleanProperty showSearchResultsTrayProperty() {
method setShowSearchResultsTray (line 377) | public final void setShowSearchResultsTray(boolean show) {
method isShowSearchResultsTray (line 386) | public final boolean isShowSearchResultsTray() {
method selectedPageProperty (line 397) | public final ReadOnlyObjectProperty<Page> selectedPageProperty() {
method getSelectedPage (line 406) | public final Page getSelectedPage() {
method getSelectedPageView (line 416) | public final PageBase getSelectedPageView() {
method headerProperty (line 429) | public final ObjectProperty<Node> headerProperty() {
method getHeader (line 438) | public final Node getHeader() {
method setHeader (line 447) | public final void setHeader(Node node) {
method footerProperty (line 460) | public final ObjectProperty<Node> footerProperty() {
method getFooter (line 469) | public final Node getFooter() {
method setFooter (line 478) | public final void setFooter(Node node) {
method traysAnimatedProperty (line 492) | public final BooleanProperty traysAnimatedProperty() {
method isTraysAnimated (line 501) | public final boolean isTraysAnimated() {
method setTraysAnimated (line 511) | public final void setTraysAnimated(boolean animated) {
method showSearchFieldProperty (line 525) | public final BooleanProperty showSearchFieldProperty() {
method isShowSearchField (line 534) | public final boolean isShowSearchField() {
method setShowSearchField (line 543) | public final void setShowSearchField(boolean show) {
method showSourceTrayButtonProperty (line 555) | public final BooleanProperty showSourceTrayButtonProperty() {
method isShowSourceTrayButton (line 564) | public final boolean isShowSourceTrayButton() {
method setShowSourceTrayButton (line 573) | public final void setShowSourceTrayButton(boolean show) {
method showAddCalendarButtonProperty (line 585) | public final BooleanProperty showAddCalendarButtonProperty() {
method isShowAddCalendarButton (line 594) | public final boolean isShowAddCalendarButton() {
method setShowAddCalendarButton (line 604) | public final void setShowAddCalendarButton(boolean show) {
method showPrintButtonProperty (line 616) | public final BooleanProperty showPrintButtonProperty() {
method isShowPrintButton (line 625) | public final boolean isShowPrintButton() {
method setShowPrintButton (line 634) | public final void setShowPrintButton(boolean show) {
method showPageToolBarControlsProperty (line 649) | public final BooleanProperty showPageToolBarControlsProperty() {
method isShowPageToolBarControls (line 660) | public final boolean isShowPageToolBarControls() {
method setShowPageToolBarControls (line 671) | public final void setShowPageToolBarControls(boolean show) {
method showPageSwitcherProperty (line 683) | public final BooleanProperty showPageSwitcherProperty() {
method isShowPageSwitcher (line 692) | public final boolean isShowPageSwitcher() {
method setShowPageSwitcher (line 701) | public final void setShowPageSwitcher(boolean show) {
method showToolBarProperty (line 712) | public final BooleanProperty showToolBarProperty() {
method isShowToolBar (line 721) | public final boolean isShowToolBar() {
method setShowToolBar (line 730) | public final void setShowToolBar(boolean show) {
method showDayPage (line 737) | public final void showDayPage() {
method showWeekPage (line 748) | public final void showWeekPage() {
method showMonthPage (line 759) | public final void showMonthPage() {
method showYearPage (line 770) | public final void showYearPage() {
method showDate (line 785) | public final void showDate(LocalDate date) {
method showWeek (line 808) | public final void showWeek(Year year, int weekOfYear) {
method showDateTime (line 832) | public final void showDateTime(LocalDateTime dateTime) {
method showYearMonth (line 856) | public final void showYearMonth(YearMonth yearMonth) {
method showYear (line 875) | public final void showYear(Year year) {
method getPropertySheetItems (line 885) | @Override
FILE: CalendarFXView/src/main/java/com/calendarfx/view/ContextMenuProvider.java
class ContextMenuProvider (line 49) | public class ContextMenuProvider implements Callback<ContextMenuParamete...
method call (line 51) | @Override
method getDayViewMenu (line 83) | protected ContextMenu getDayViewMenu(ContextMenuParameter param) {
method getWeekDayViewMenu (line 95) | protected ContextMenu getWeekDayViewMenu(ContextMenuParameter param) {
method getDayViewBaseMenu (line 114) | private ContextMenu getDayViewBaseMenu(ContextMenuParameter param) {
method getAllDayViewMenu (line 220) | protected ContextMenu getAllDayViewMenu(ContextMenuParameter param) {
FILE: CalendarFXView/src/main/java/com/calendarfx/view/CreateAndDeleteHandler.java
class CreateAndDeleteHandler (line 31) | class CreateAndDeleteHandler extends DeleteHandler {
method CreateAndDeleteHandler (line 34) | public CreateAndDeleteHandler(DateControl control) {
method createEntry (line 39) | private void createEntry(MouseEvent evt) {
FILE: CalendarFXView/src/main/java/com/calendarfx/view/DateControl.java
class DateControl (line 157) | public abstract class DateControl extends CalendarFXControl {
method DateControl (line 169) | protected DateControl() {
method getCalendarVisibilityMap (line 432) | public final ObservableMap<Calendar, BooleanProperty> getCalendarVisib...
method getCalendarVisibilityProperty (line 436) | public final BooleanProperty getCalendarVisibilityProperty(Calendar ca...
method isCalendarVisible (line 440) | public final boolean isCalendarVisible(Calendar calendar) {
method setCalendarVisibility (line 444) | public final void setCalendarVisibility(Calendar calendar, boolean vis...
type Layer (line 448) | public enum Layer {
method visibleLayersProperty (line 467) | public final ObservableSet<Layer> visibleLayersProperty() {
method refreshData (line 478) | public final void refreshData() {
method createCalendarSource (line 493) | public final void createCalendarSource() {
method draggedEntryProperty (line 518) | public final ObjectProperty<DraggedEntry> draggedEntryProperty() {
method getDraggedEntry (line 527) | public final DraggedEntry getDraggedEntry() {
method setDraggedEntry (line 536) | public final void setDraggedEntry(DraggedEntry entry) {
method createEntryAt (line 555) | public final Entry<?> createEntryAt(ZonedDateTime time) {
method createEntryAt (line 576) | public final Entry<?> createEntryAt(ZonedDateTime time, Calendar calen...
method createEntryAt (line 598) | public final Entry<?> createEntryAt(ZonedDateTime time, Calendar calen...
method getCalendarAt (line 669) | public Optional<Calendar> getCalendarAt(double x, double y) {
method showEntry (line 679) | public final void showEntry(Entry<?> entry) {
method editEntry (line 691) | public final void editEntry(Entry<?> entry) {
method editEntry (line 704) | public final void editEntry(Entry<?> entry, boolean changeDate) {
method doShowEntry (line 709) | private void doShowEntry(Entry<?> entry, boolean startEditing, boolean...
method doEditEntry (line 740) | private void doEditEntry(Entry<?> entry) {
method doBounceEntry (line 756) | private void doBounceEntry(Entry<?> entry) {
method showEntryDetails (line 766) | private void showEntryDetails(Entry<?> entry, Node node, Node owner, d...
method showDateDetails (line 822) | public void showDateDetails(Node owner, LocalDate date, double screenX...
class ContextMenuParameterBase (line 830) | private abstract static class ContextMenuParameterBase {
method ContextMenuParameterBase (line 835) | public ContextMenuParameterBase(ContextMenuEvent contextMenuEvent, D...
method getContextMenuEvent (line 840) | public ContextMenuEvent getContextMenuEvent() {
method getDateControl (line 844) | public DateControl getDateControl() {
class CreateEntryParameter (line 859) | public static final class CreateEntryParameter {
method CreateEntryParameter (line 873) | public CreateEntryParameter(DateControl control, Calendar calendar, ...
method getCalendar (line 885) | public Calendar getCalendar() {
method getZonedDateTime (line 894) | public ZonedDateTime getZonedDateTime() {
method getDateControl (line 903) | public DateControl getDateControl() {
method toString (line 907) | @Override
method entryFactoryProperty (line 958) | public final ObjectProperty<Callback<CreateEntryParameter, Entry<?>>> ...
method getEntryFactory (line 967) | public final Callback<CreateEntryParameter, Entry<?>> getEntryFactory() {
method setEntryFactory (line 976) | public final void setEntryFactory(Callback<CreateEntryParameter, Entry...
class CreateCalendarSourceParameter (line 990) | public static final class CreateCalendarSourceParameter {
method CreateCalendarSourceParameter (line 999) | public CreateCalendarSourceParameter(DateControl dateControl) {
method getDateControl (line 1008) | public DateControl getDateControl() {
method calendarSourceFactoryProperty (line 1040) | public final ObjectProperty<Callback<CreateCalendarSourceParameter, Ca...
method getCalendarSourceFactory (line 1049) | public final Callback<CreateCalendarSourceParameter, CalendarSource> g...
method setCalendarSourceFactory (line 1058) | public final void setCalendarSourceFactory(Callback<CreateCalendarSour...
class EntryContextMenuParameter (line 1071) | public static final class EntryContextMenuParameter extends ContextMen...
method EntryContextMenuParameter (line 1082) | public EntryContextMenuParameter(ContextMenuEvent evt, DateControl c...
method getEntryView (line 1092) | public EntryViewBase<?> getEntryView() {
method getEntry (line 1102) | public Entry<?> getEntry() {
method getCalendar (line 1112) | public Calendar getCalendar() {
method toString (line 1116) | @Override
type EditOperation (line 1131) | public enum EditOperation {
class EntryEditParameter (line 1159) | public static final class EntryEditParameter {
method EntryEditParameter (line 1176) | public EntryEditParameter(DateControl dateControl, Entry<?> entry, E...
method getDateControl (line 1187) | public DateControl getDateControl() {
method getEntry (line 1196) | public Entry<?> getEntry() {
method getEditOperation (line 1205) | public EditOperation getEditOperation() {
method toString (line 1209) | @Override
method entryEditPolicyProperty (line 1229) | public final ObjectProperty<Callback<EntryEditParameter, Boolean>> ent...
method getEntryEditPolicy (line 1239) | public final Callback<EntryEditParameter, Boolean> getEntryEditPolicy() {
method setEntryEditPolicy (line 1249) | public final void setEntryEditPolicy(Callback<EntryEditParameter, Bool...
method entryContextMenuCallbackProperty (line 1294) | public final ObjectProperty<Callback<EntryContextMenuParameter, Contex...
method getEntryContextMenuCallback (line 1304) | public final Callback<EntryContextMenuParameter, ContextMenu> getEntry...
method setEntryContextMenuCallback (line 1314) | public final void setEntryContextMenuCallback(Callback<EntryContextMen...
class ContextMenuParameter (line 1327) | public static final class ContextMenuParameter extends ContextMenuPara...
method ContextMenuParameter (line 1341) | public ContextMenuParameter(ContextMenuEvent evt, DateControl dateCo...
method getCalendar (line 1354) | public Calendar getCalendar() {
method getZonedDateTime (line 1363) | public ZonedDateTime getZonedDateTime() {
method toString (line 1367) | @Override
method contextMenuCallbackProperty (line 1399) | public final ObjectProperty<Callback<ContextMenuParameter, ContextMenu...
method getContextMenuCallback (line 1408) | public final Callback<ContextMenuParameter, ContextMenu> getContextMen...
method setContextMenuCallback (line 1417) | public final void setContextMenuCallback(Callback<ContextMenuParameter...
method defaultCalendarProviderProperty (line 1455) | public final ObjectProperty<Callback<DateControl, Calendar>> defaultCa...
method getDefaultCalendarProvider (line 1464) | public final Callback<DateControl, Calendar> getDefaultCalendarProvide...
method setDefaultCalendarProvider (line 1473) | public final void setDefaultCalendarProvider(Callback<DateControl, Cal...
method updateCalendarList (line 1478) | private void updateCalendarList() {
class DetailsParameter (line 1499) | private abstract static class DetailsParameter {
method DetailsParameter (line 1520) | public DetailsParameter(InputEvent inputEvent, DateControl control, ...
method getOwner (line 1537) | public Node getOwner() {
method getNode (line 1548) | public Node getNode() {
method getScreenX (line 1557) | public double getScreenX() {
method getScreenY (line 1566) | public double getScreenY() {
method getInputEvent (line 1576) | public InputEvent getInputEvent() {
method getDateControl (line 1585) | public DateControl getDateControl() {
class EntryDetailsParameter (line 1595) | public final static class EntryDetailsParameter extends DetailsParamet...
method EntryDetailsParameter (line 1613) | public EntryDetailsParameter(InputEvent inputEvent, DateControl cont...
method getEntry (line 1623) | public Entry<?> getEntry() {
class DateDetailsParameter (line 1633) | public final static class DateDetailsParameter extends DetailsParameter {
method DateDetailsParameter (line 1650) | public DateDetailsParameter(InputEvent inputEvent, DateControl contr...
method getLocalDate (line 1660) | public LocalDate getLocalDate() {
method dateDetailsCallbackProperty (line 1694) | public final ObjectProperty<Callback<DateDetailsParameter, Boolean>> d...
method setDateDetailsCallback (line 1703) | public final void setDateDetailsCallback(Callback<DateDetailsParameter...
method getDateDetailsCallback (line 1713) | public final Callback<DateDetailsParameter, Boolean> getDateDetailsCal...
method entryDetailsCallbackProperty (line 1749) | public final ObjectProperty<Callback<EntryDetailsParameter, Boolean>> ...
method setEntryDetailsCallback (line 1758) | public final void setEntryDetailsCallback(Callback<EntryDetailsParamet...
method getEntryDetailsCallback (line 1768) | public final Callback<EntryDetailsParameter, Boolean> getEntryDetailsC...
class EntryDetailsPopOverContentParameter (line 1780) | public final static class EntryDetailsPopOverContentParameter {
method EntryDetailsPopOverContentParameter (line 1798) | public EntryDetailsPopOverContentParameter(PopOver popOver, DateCont...
method getPopOver (line 1810) | public PopOver getPopOver() {
method getDateControl (line 1819) | public DateControl getDateControl() {
method getNode (line 1828) | public Node getNode() {
method getEntry (line 1837) | public Entry<?> getEntry() {
method entryDetailsPopOverContentCallbackProperty (line 1849) | public final ObjectProperty<Callback<EntryDetailsPopOverContentParamet...
method setEntryDetailsPopOverContentCallback (line 1858) | public final void setEntryDetailsPopOverContentCallback(Callback<Entry...
method getEntryDetailsPopOverContentCallback (line 1869) | public final Callback<EntryDetailsPopOverContentParameter, Node> getEn...
method todayProperty (line 1883) | public final ObjectProperty<LocalDate> todayProperty() {
method setToday (line 1892) | public final void setToday(LocalDate date) {
method getToday (line 1902) | public final LocalDate getToday() {
method showTodayProperty (line 1916) | public final BooleanProperty showTodayProperty() {
method isShowToday (line 1925) | public final boolean isShowToday() {
method setShowToday (line 1934) | public final void setShowToday(boolean show) {
method isShowNoonMarker (line 1940) | public final boolean isShowNoonMarker() {
method showNoonMarkerProperty (line 1950) | public final BooleanProperty showNoonMarkerProperty() {
method setShowNoonMarker (line 1954) | public final void setShowNoonMarker(boolean showNoonMarker) {
method dateProperty (line 1966) | public final ObjectProperty<LocalDate> dateProperty() {
method setDate (line 1975) | public final void setDate(LocalDate date) {
method getDate (line 1985) | public final LocalDate getDate() {
method isEnableTimeZoneSupport (line 1992) | public final boolean isEnableTimeZoneSupport() {
method enableTimeZoneSupportProperty (line 2004) | public final BooleanProperty enableTimeZoneSupportProperty() {
method setEnableTimeZoneSupport (line 2008) | public final void setEnableTimeZoneSupport(boolean enableTimeZoneSuppo...
method zoneIdProperty (line 2023) | public final ObjectProperty<ZoneId> zoneIdProperty() {
method setZoneId (line 2032) | public final void setZoneId(ZoneId zoneId) {
method getZoneId (line 2042) | public final ZoneId getZoneId() {
method timeProperty (line 2054) | public final ObjectProperty<LocalTime> timeProperty() {
method setTime (line 2063) | public final void setTime(LocalTime time) {
method getTime (line 2073) | public final LocalTime getTime() {
method getZonedDateTime (line 2083) | public final ZonedDateTime getZonedDateTime() {
method startTimeProperty (line 2097) | public final ObjectProperty<LocalTime> startTimeProperty() {
method getStartTime (line 2106) | public final LocalTime getStartTime() {
method setStartTime (line 2115) | public final void setStartTime(LocalTime time) {
method endTimeProperty (line 2129) | public final ObjectProperty<LocalTime> endTimeProperty() {
method getEndTime (line 2138) | public final LocalTime getEndTime() {
method setEndTime (line 2147) | public final void setEndTime(LocalTime time) {
method weekFieldsProperty (line 2161) | public final ObjectProperty<WeekFields> weekFieldsProperty() {
method setWeekFields (line 2170) | public final void setWeekFields(WeekFields weekFields) {
method getWeekFields (line 2180) | public final WeekFields getWeekFields() {
method getFirstDayOfWeek (line 2192) | public final DayOfWeek getFirstDayOfWeek() {
method calendarsProperty (line 2209) | public final ReadOnlyListProperty<Calendar> calendarsProperty() {
method getCalendars (line 2220) | public final ObservableList<Calendar> getCalendars() {
method getCalendarSources (line 2234) | public final ObservableList<CalendarSource> getCalendarSources() {
method selectionModeProperty (line 2247) | public final ObjectProperty<SelectionMode> selectionModeProperty() {
method setSelectionMode (line 2256) | public final void setSelectionMode(SelectionMode mode) {
method getSelectionMode (line 2266) | public final SelectionMode getSelectionMode() {
method getSelections (line 2277) | public final ObservableSet<Entry<?>> getSelections() {
method select (line 2288) | public final void select(Entry<?> entry) {
method deselect (line 2300) | public final void deselect(Entry<?> entry) {
method clearSelection (line 2308) | public final void clearSelection() {
method virtualGridProperty (line 2323) | public final ObjectProperty<VirtualGrid> virtualGridProperty() {
method getVirtualGrid (line 2332) | public final VirtualGrid getVirtualGrid() {
method setVirtualGrid (line 2341) | public final void setVirtualGrid(VirtualGrid grid) {
method requestedTimeProperty (line 2355) | public final ObjectProperty<LocalTime> requestedTimeProperty() {
method setRequestedTime (line 2364) | public final void setRequestedTime(LocalTime time) {
method getRequestedTime (line 2373) | public final LocalTime getRequestedTime() {
type Layout (line 2380) | public enum Layout {
method layoutProperty (line 2411) | public final ObjectProperty<Layout> layoutProperty() {
method setLayout (line 2420) | public final void setLayout(Layout layout) {
method getLayout (line 2430) | public final Layout getLayout() {
method getWeekendDays (line 2442) | public ObservableSet<DayOfWeek> getWeekendDays() {
method goForward (line 2454) | public void goForward() {
method goBack (line 2466) | public void goBack() {
method goToday (line 2476) | public void goToday() {
method findEntryView (line 2486) | public final EntryViewBase<?> findEntryView(Entry<?> entry) {
method doFindEntryView (line 2491) | private EntryViewBase<?> doFindEntryView(Parent parent, Entry<?> entry) {
method getBoundDateControls (line 2519) | public final WeakList<DateControl> getBoundDateControls() {
method unbindAll (line 2529) | public final void unbindAll() {
method enableHyperlinksProperty (line 2549) | public final BooleanProperty enableHyperlinksProperty() {
method setEnableHyperlinks (line 2558) | public final void setEnableHyperlinks(boolean enable) {
method isEnableHyperlinks (line 2567) | public final boolean isEnableHyperlinks() {
method isEditAvailability (line 2573) | public boolean isEditAvailability() {
method editAvailabilityProperty (line 2583) | public BooleanProperty editAvailabilityProperty() {
method setEditAvailability (line 2587) | public void setEditAvailability(boolean editAvailability) {
method getAvailabilityCalendar (line 2593) | public final Calendar getAvailabilityCalendar() {
method availabilityCalendarProperty (line 2602) | public final ObjectProperty<Calendar> availabilityCalendarProperty() {
method setAvailabilityCalendar (line 2606) | public final void setAvailabilityCalendar(Calendar calendar) {
method getAvailabilityGrid (line 2612) | public final VirtualGrid getAvailabilityGrid() {
method availabilityGridProperty (line 2622) | public final ObjectProperty<VirtualGrid> availabilityGridProperty() {
method setAvailabilityGrid (line 2626) | public final void setAvailabilityGrid(VirtualGrid availabilityGrid) {
method getAvailabilityFill (line 2632) | public final Paint getAvailabilityFill() {
method availabilityFillProperty (line 2642) | public final ObjectProperty<Paint> availabilityFillProperty() {
method setAvailabilityFill (line 2646) | public final void setAvailabilityFill(Paint availabilityFill) {
method isShowDetailsUponEntryCreation (line 2652) | public final boolean isShowDetailsUponEntryCreation() {
method showDetailsUponEntryCreationProperty (line 2662) | public final BooleanProperty showDetailsUponEntryCreationProperty() {
method setShowDetailsUponEntryCreation (line 2666) | public final void setShowDetailsUponEntryCreation(boolean showDetailsU...
method bind (line 2684) | public final void bind(DateControl otherControl, boolean bindDate) {
method unbind (line 2745) | public final void unbind(DateControl otherControl) {
method suspendUpdatesProperty (line 2811) | public final BooleanProperty suspendUpdatesProperty() {
method isSuspendUpdates (line 2820) | public final boolean isSuspendUpdates() {
method setSuspendUpdates (line 2829) | public final void setSuspendUpdates(boolean suspend) {
type Usage (line 2835) | public enum Usage {
method usagePolicyProperty (line 2855) | public final ObjectProperty<Callback<Integer, Usage>> usagePolicyPrope...
method setUsagePolicy (line 2864) | public final void setUsagePolicy(Callback<Integer, Usage> policy) {
method getUsagePolicy (line 2874) | public final Callback<Integer, Usage> getUsagePolicy() {
method getAvailableZoneIds (line 2887) | public final ObservableList<ZoneId> getAvailableZoneIds() {
method getCreateEntryClickCount (line 2893) | public int getCreateEntryClickCount() {
method createEntryClickCountProperty (line 2903) | public IntegerProperty createEntryClickCountProperty() {
method setCreateEntryClickCount (line 2907) | public void setCreateEntryClickCount(int createEntryClickCount) {
method getPropertySheetItems (line 2913) | @Override
FILE: CalendarFXView/src/main/java/com/calendarfx/view/DateSelectionModel.java
class DateSelectionModel (line 30) | public class DateSelectionModel {
method DateSelectionModel (line 38) | public DateSelectionModel() {
method select (line 43) | public final void select(LocalDate date) {
method selectRange (line 47) | public final void selectRange(LocalDate start, LocalDate end) {
method selectUntil (line 51) | public final void selectUntil(LocalDate date) {
method deselect (line 55) | public final void deselect(LocalDate date) {
method clearAndSelect (line 59) | public final void clearAndSelect(LocalDate date) {
method clear (line 63) | public final void clear() {
method isSelected (line 67) | public final boolean isSelected(LocalDate date) {
method isEmpty (line 71) | public final boolean isEmpty() {
method getSelectedDates (line 75) | public final ObservableList<LocalDate> getSelectedDates() {
method getLastSelected (line 79) | public final LocalDate getLastSelected() {
method selectionModeProperty (line 83) | public final ObjectProperty<SelectionMode> selectionModeProperty() {
method getSelectionMode (line 87) | public final SelectionMode getSelectionMode() {
method setSelectionMode (line 91) | public final void setSelectionMode(SelectionMode selectionMode) {
type SelectionMode (line 99) | public enum SelectionMode {
class DateSelector (line 109) | private static abstract class DateSelector {
method DateSelector (line 113) | public DateSelector(DateSelectionModel model) {
method select (line 117) | public abstract void select(LocalDate date);
method selectRange (line 119) | public abstract void selectRange(LocalDate start, LocalDate end);
method selectUntil (line 121) | public abstract void selectUntil(LocalDate date);
method clear (line 123) | public void clear() {
method clearAndSelect (line 128) | public void clearAndSelect(LocalDate date) {
method deselect (line 137) | public void deselect(LocalDate date) {
method createInstance (line 144) | public static DateSelector createInstance(DateSelectionModel model) {
class SingleDateSelector (line 161) | private static class SingleDateSelector extends DateSelector {
method SingleDateSelector (line 163) | public SingleDateSelector(DateSelectionModel model) {
method select (line 174) | @Override
method selectRange (line 184) | @Override
method selectUntil (line 195) | @Override
class SingleDateRangeSelector (line 202) | private static final class SingleDateRangeSelector extends DateSelector {
method SingleDateRangeSelector (line 207) | public SingleDateRangeSelector(DateSelectionModel model) {
method select (line 241) | @Override
method selectRange (line 270) | @Override
method selectUntil (line 338) | @Override
method clear (line 348) | @Override
method isIntersecting (line 355) | private boolean isIntersecting(LocalDate start, LocalDate end) {
method clearAndSelect (line 368) | @Override
class MultipleDatesSelector (line 377) | private static final class MultipleDatesSelector extends DateSelector {
method MultipleDatesSelector (line 379) | public MultipleDatesSelector(DateSelectionModel model) {
method select (line 383) | @Override
method selectRange (line 393) | @Override
method selectUntil (line 411) | @Override
FILE: CalendarFXView/src/main/java/com/calendarfx/view/DayEntryView.java
class DayEntryView (line 42) | public class DayEntryView extends EntryViewBase<DayView> {
method DayEntryView (line 49) | public DayEntryView(Entry<?> entry) {
method createDefaultSkin (line 53) | @Override
method getNodes (line 66) | public final ObservableMap<Pos, List<Node>> getNodes() {
method nodesProperty (line 75) | public final ReadOnlyMapWrapper<Pos, List<Node>> nodesProperty() {
method clearNodes (line 82) | public void clearNodes() {
method addNode (line 94) | public void addNode(Pos pos, Node node) {
method removeNode (line 113) | public void removeNode(Node node) {
method minHeightEqualToTitleHeightProperty (line 128) | public final BooleanProperty minHeightEqualToTitleHeightProperty() {
method isMinHeightEqualToTitleHeight (line 132) | public final boolean isMinHeightEqualToTitleHeight() {
method setMinHeightEqualToTitleHeight (line 136) | public final void setMinHeightEqualToTitleHeight(boolean minHeightEqua...
FILE: CalendarFXView/src/main/java/com/calendarfx/view/DayView.java
class DayView (line 52) | public class DayView extends DayViewBase {
method DayView (line 61) | public DayView() {
method createDefaultSkin (line 80) | @Override
method updateStyleClasses (line 85) | private void updateStyleClasses() {
method getCalendarAt (line 104) | @Override
method entryViewFactoryProperty (line 126) | public final ObjectProperty<Callback<Entry<?>, DayEntryView>> entryVie...
method getEntryViewFactory (line 135) | public final Callback<Entry<?>, DayEntryView> getEntryViewFactory() {
method setEntryViewFactory (line 145) | public final void setEntryViewFactory(Callback<Entry<?>, DayEntryView>...
FILE: CalendarFXView/src/main/java/com/calendarfx/view/DayViewBase.java
class DayViewBase (line 69) | public abstract class DayViewBase extends DateControl implements ZonedDa...
method DayViewBase (line 74) | public DayViewBase() {
type GridType (line 115) | public enum GridType {
method getGridType (line 122) | public final GridType getGridType() {
method gridTypeProperty (line 136) | public final ObjectProperty<GridType> gridTypeProperty() {
method setGridType (line 140) | public final void setGridType(GridType gridType) {
method getGridLines (line 146) | public final VirtualGrid getGridLines() {
method gridLinesProperty (line 156) | public final ObjectProperty<VirtualGrid> gridLinesProperty() {
method setGridLines (line 160) | public final void setGridLines(VirtualGrid gridLines) {
method getGridLineColor (line 166) | public final Paint getGridLineColor() {
method gridLineColorProperty (line 175) | public final ObjectProperty<Paint> gridLineColorProperty() {
method setGridLineColor (line 179) | public final void setGridLineColor(Paint gridLineColor) {
type AvailabilityEditingEntryBehaviour (line 189) | public enum AvailabilityEditingEntryBehaviour {
method getEntryViewAvailabilityEditingBehaviour (line 208) | public final AvailabilityEditingEntryBehaviour getEntryViewAvailabilit...
method entryViewAvailabilityEditingBehaviourProperty (line 220) | public final ObjectProperty<AvailabilityEditingEntryBehaviour> entryVi...
method setEntryViewAvailabilityEditingBehaviour (line 224) | public final void setEntryViewAvailabilityEditingBehaviour(Availabilit...
method getEntryViewAvailabilityEditingOpacity (line 230) | public final double getEntryViewAvailabilityEditingOpacity() {
method entryViewAvailabilityEditingOpacityProperty (line 240) | public final DoubleProperty entryViewAvailabilityEditingOpacityPropert...
method setEntryViewAvailabilityEditingOpacity (line 244) | public final void setEntryViewAvailabilityEditingOpacity(double entryV...
method installDefaultLassoFinishedBehaviour (line 255) | public void installDefaultLassoFinishedBehaviour() {
method getZonedDateTimeStart (line 284) | public final ZonedDateTime getZonedDateTimeStart() {
method getZonedDateTimeMin (line 296) | public final ZonedDateTime getZonedDateTimeMin() {
method getZonedDateTimeEnd (line 309) | public final ZonedDateTime getZonedDateTimeEnd() {
method getZonedDateTimeMax (line 321) | public final ZonedDateTime getZonedDateTimeMax() {
method getScrollTime (line 327) | public final ZonedDateTime getScrollTime() {
method scrollTimeProperty (line 331) | public final ObjectProperty<ZonedDateTime> scrollTimeProperty() {
method setScrollTime (line 335) | public final void setScrollTime(ZonedDateTime scrollTime) {
method isScrollingEnabled (line 341) | public final boolean isScrollingEnabled() {
method scrollingEnabledProperty (line 345) | public final BooleanProperty scrollingEnabledProperty() {
method setScrollingEnabled (line 349) | public final void setScrollingEnabled(boolean scrollingEnabled) {
method set (line 355) | @Override
method entryWidthPercentageProperty (line 372) | public final DoubleProperty entryWidthPercentageProperty() {
method setEntryWidthPercentage (line 381) | public final void setEntryWidthPercentage(double percentage) {
method getEntryWidthPercentage (line 390) | public double getEntryWidthPercentage() {
method getInstantAt (line 402) | public Instant getInstantAt(MouseEvent evt) {
method getInstantAt (line 413) | public Instant getInstantAt(double x, double y) {
method getZonedDateTimeAt (line 424) | public ZonedDateTime getZonedDateTimeAt(double x, double y) {
method getZonedDateTimeAt (line 428) | @Override
method getZonedDateTime (line 450) | public final ZonedDateTime getZonedDateTime(LocalTime time) {
method getLocation (line 461) | public final double getLocation(Instant instant) {
method getLocation (line 473) | public final double getLocation(ZonedDateTime time) {
type OverlapResolutionStrategy (line 483) | public enum OverlapResolutionStrategy {
method overlapResolutionStrategyProperty (line 499) | public final ObjectProperty<OverlapResolutionStrategy> overlapResoluti...
method getOverlapResolutionStrategy (line 503) | public final OverlapResolutionStrategy getOverlapResolutionStrategy() {
method setOverlapResolutionStrategy (line 507) | public final void setOverlapResolutionStrategy(OverlapResolutionStrate...
type EarlyLateHoursStrategy (line 518) | public enum EarlyLateHoursStrategy {
method earlyLateHoursStrategyProperty (line 552) | public final ObjectProperty<EarlyLateHoursStrategy> earlyLateHoursStra...
method setEarlyLateHoursStrategy (line 561) | public final void setEarlyLateHoursStrategy(EarlyLateHoursStrategy str...
method getEarlyLateHoursStrategy (line 571) | public final EarlyLateHoursStrategy getEarlyLateHoursStrategy() {
type HoursLayoutStrategy (line 583) | public enum HoursLayoutStrategy {
method hoursLayoutStrategyProperty (line 607) | public final ObjectProperty<HoursLayoutStrategy> hoursLayoutStrategyPr...
method setHoursLayoutStrategy (line 616) | public final void setHoursLayoutStrategy(HoursLayoutStrategy strategy) {
method getHoursLayoutStrategy (line 626) | public final HoursLayoutStrategy getHoursLayoutStrategy() {
method visibleHoursProperty (line 639) | public final IntegerProperty visibleHoursProperty() {
method setVisibleHours (line 648) | public final void setVisibleHours(int hours) {
method getVisibleHours (line 657) | public final int getVisibleHours() {
method getMinHourHeight (line 663) | public final double getMinHourHeight() {
method minHourHeightProperty (line 673) | public final DoubleProperty minHourHeightProperty() {
method setMinHourHeight (line 677) | public final void setMinHourHeight(double minHourHeight) {
method getMaxHourHeight (line 683) | public final double getMaxHourHeight() {
method maxHourHeightProperty (line 693) | public final DoubleProperty maxHourHeightProperty() {
method setMaxHourHeight (line 697) | public final void setMaxHourHeight(double maxHourHeight) {
method hourHeightProperty (line 709) | public final DoubleProperty hourHeightProperty() {
method setHourHeight (line 718) | public final void setHourHeight(double height) {
method getHourHeight (line 730) | public final double getHourHeight() {
method hourHeightCompressedProperty (line 743) | public final DoubleProperty hourHeightCompressedProperty() {
method setHourHeightCompressed (line 752) | public final void setHourHeightCompressed(double height) {
method getHourHeightCompressed (line 764) | public final double getHourHeightCompressed() {
method showCurrentTimeMarkerProperty (line 786) | public final ReadOnlyBooleanProperty showCurrentTimeMarkerProperty() {
method isShowCurrentTimeMarker (line 795) | public final boolean isShowCurrentTimeMarker() {
method showCurrentTimeTodayMarkerProperty (line 814) | public final ReadOnlyBooleanProperty showCurrentTimeTodayMarkerPropert...
method isShowCurrentTimeTodayMarker (line 823) | public final boolean isShowCurrentTimeTodayMarker() {
method enableCurrentTimeCircleProperty (line 836) | public final BooleanProperty enableCurrentTimeCircleProperty() {
method isEnableCurrentCircleMarker (line 845) | public final boolean isEnableCurrentCircleMarker() {
method setEnableCurrentTimeCircle (line 854) | public final void setEnableCurrentTimeCircle(boolean enable) {
method enableCurrentTimeMarkerProperty (line 867) | public final BooleanProperty enableCurrentTimeMarkerProperty() {
method isEnableCurrentTimeMarker (line 876) | public final boolean isEnableCurrentTimeMarker() {
method setEnableCurrentTimeMarker (line 885) | public final void setEnableCurrentTimeMarker(boolean enable) {
method earliestTimeUsedProperty (line 897) | public final ReadOnlyObjectProperty<LocalTime> earliestTimeUsedPropert...
method getEarliestTimeUsed (line 906) | public final LocalTime getEarliestTimeUsed() {
method latestTimeUsedProperty (line 918) | public final ReadOnlyObjectProperty<LocalTime> latestTimeUsedProperty() {
method getLatestTimeUsed (line 927) | public final LocalTime getLatestTimeUsed() {
method trimTimeBoundsProperty (line 941) | public final BooleanProperty trimTimeBoundsProperty() {
method isTrimTimeBounds (line 945) | public final boolean isTrimTimeBounds() {
method setTrimTimeBounds (line 949) | public final void setTrimTimeBounds(boolean trimTimeBounds) {
method trimTimeBounds (line 953) | private void trimTimeBounds() {
method getOnLassoFinished (line 1008) | public final BiConsumer<Instant, Instant> getOnLassoFinished() {
method onLassoFinishedProperty (line 1012) | public final ObjectProperty<BiConsumer<Instant, Instant>> onLassoFinis...
method setOnLassoFinished (line 1016) | public final void setOnLassoFinished(BiConsumer<Instant, Instant> onLa...
method getLassoColor (line 1022) | public final Paint getLassoColor() {
method lassoColorProperty (line 1026) | public final ObjectProperty<Paint> lassoColorProperty() {
method setLassoColor (line 1030) | public final void setLassoColor(Paint lassoColor) {
method getLassoStart (line 1036) | public final Instant getLassoStart() {
method lassoStartProperty (line 1040) | public final ObjectProperty<Instant> lassoStartProperty() {
method setLassoStart (line 1044) | public final void setLassoStart(Instant lassoStart) {
method getLassoEnd (line 1050) | public final Instant getLassoEnd() {
method lassoEndProperty (line 1054) | public final ObjectProperty<Instant> lassoEndProperty() {
method setLassoEnd (line 1058) | public final void setLassoEnd(Instant lassoEnd) {
method isEnableStartAndEndTimesFlip (line 1064) | public final boolean isEnableStartAndEndTimesFlip() {
method enableStartAndEndTimesFlipProperty (line 1074) | public final BooleanProperty enableStartAndEndTimesFlipProperty() {
method setEnableStartAndEndTimesFlip (line 1078) | public final void setEnableStartAndEndTimesFlip(boolean enableStartAnd...
method bind (line 1089) | public final void bind(DayViewBase otherControl, boolean bindDate) {
method unbind (line 1116) | public final void unbind(DayViewBase otherControl) {
method getPropertySheetItems (line 1145) | @Override
FILE: CalendarFXView/src/main/java/com/calendarfx/view/DeleteHandler.java
class DeleteHandler (line 25) | class DeleteHandler {
method DeleteHandler (line 29) | public DeleteHandler(DateControl control) {
method deleteEntries (line 34) | private void deleteEntries(KeyEvent evt) {
FILE: CalendarFXView/src/main/java/com/calendarfx/view/DetailedDayView.java
class DetailedDayView (line 41) | public class DetailedDayView extends DayViewBase {
method DetailedDayView (line 54) | public DetailedDayView() {
method createDefaultSkin (line 76) | @Override
method getAllDayView (line 86) | public final AllDayView getAllDayView() {
method getDayView (line 95) | public final DayView getDayView() {
method getTimeScaleView (line 104) | public final TimeScaleView getTimeScaleView() {
method getCalendarHeaderView (line 113) | public final CalendarHeaderView getCalendarHeaderView() {
method getAgendaView (line 122) | public final AgendaView getAgendaView() {
method showAllDayViewProperty (line 136) | public final BooleanProperty showAllDayViewProperty() {
method isShowAllDayView (line 145) | public final boolean isShowAllDayView() {
method setShowAllDayView (line 155) | public final void setShowAllDayView(boolean show) {
method showAgendaViewProperty (line 169) | public final BooleanProperty showAgendaViewProperty() {
method isShowAgendaView (line 178) | public final boolean isShowAgendaView() {
method setShowAgendaView (line 188) | public final void setShowAgendaView(boolean show) {
method showTimeScaleViewProperty (line 202) | public final BooleanProperty showTimeScaleViewProperty() {
method isShowTimeScaleView (line 211) | public final boolean isShowTimeScaleView() {
method setShowTimeScaleView (line 221) | public final void setShowTimeScaleView(boolean show) {
method showScrollBarProperty (line 235) | public final BooleanProperty showScrollBarProperty() {
method setShowScrollBar (line 245) | public final void setShowScrollBar(boolean showScrollBar) {
method isShowScrollBar (line 254) | public final boolean isShowScrollBar() {
method getPropertySheetItems (line 260) | @Override
FILE: CalendarFXView/src/main/java/com/calendarfx/view/DetailedWeekView.java
class DetailedWeekView (line 47) | public class DetailedWeekView extends DayViewBase {
method DetailedWeekView (line 64) | public DetailedWeekView() {
method DetailedWeekView (line 73) | public DetailedWeekView(int numberOfDays) {
method createDefaultSkin (line 109) | @Override
method getCalendarHeaderView (line 123) | public final CalendarHeaderView getCalendarHeaderView() {
method getWeekDayHeaderView (line 133) | public final WeekDayHeaderView getWeekDayHeaderView() {
method getAllDayView (line 142) | public final AllDayView getAllDayView() {
method getTimeScaleView (line 151) | public final WeekTimeScaleView getTimeScaleView() {
method getWeekView (line 160) | public final WeekView getWeekView() {
method numberOfDaysProperty (line 173) | public final IntegerProperty numberOfDaysProperty() {
method getNumberOfDays (line 182) | public final int getNumberOfDays() {
method setNumberOfDays (line 191) | public final void setNumberOfDays(int number) {
method adjustToFirstDayOfWeekProperty (line 209) | public final BooleanProperty adjustToFirstDayOfWeekProperty() {
method isAdjustToFirstDayOfWeek (line 218) | public final boolean isAdjustToFirstDayOfWeek() {
method setAdjustToFirstDayOfWeek (line 227) | public final void setAdjustToFirstDayOfWeek(boolean adjust) {
method showAllDayViewProperty (line 242) | public final BooleanProperty showAllDayViewProperty() {
method isShowAllDayView (line 251) | public final boolean isShowAllDayView() {
method setShowAllDayView (line 260) | public final void setShowAllDayView(boolean show) {
method showTimeScaleViewProperty (line 274) | public final BooleanProperty showTimeScaleViewProperty() {
method isShowTimeScaleView (line 283) | public final boolean isShowTimeScaleView() {
method setShowTimeScaleView (line 292) | public final void setShowTimeScaleView(boolean show) {
method showWeekDayHeaderViewProperty (line 306) | public final BooleanProperty showWeekDayHeaderViewProperty() {
method isShowWeekDayHeaderView (line 315) | public final boolean isShowWeekDayHeaderView() {
method setShowWeekDayHeaderView (line 324) | public final void setShowWeekDayHeaderView(boolean show) {
method showScrollBarProperty (line 337) | public final BooleanProperty showScrollBarProperty() {
method setShowScrollBar (line 346) | public final void setShowScrollBar(boolean show) {
method isShowScrollBar (line 355) | public final boolean isShowScrollBar() {
method startDateProperty (line 368) | public final ReadOnlyObjectProperty<LocalDate> startDateProperty() {
method getStartDate (line 377) | public final LocalDate getStartDate() {
method endDateProperty (line 390) | public final ReadOnlyObjectProperty<LocalDate> endDateProperty() {
method getEndDate (line 399) | public final LocalDate getEndDate() {
method goForward (line 403) | @Override
method goBack (line 408) | @Override
method getPropertySheetItems (line 415) | @Override
FILE: CalendarFXView/src/main/java/com/calendarfx/view/DeveloperConsole.java
class DeveloperConsole (line 31) | public class DeveloperConsole extends CalendarFXControl {
method DeveloperConsole (line 40) | public DeveloperConsole() {
method createDefaultSkin (line 46) | @Override
method getTabPane (line 57) | public final TabPane getTabPane() {
method dateControlProperty (line 70) | public final ObjectProperty<DateControl> dateControlProperty() {
method setDateControl (line 80) | public final void setDateControl(DateControl control) {
method getDateControl (line 89) | public final DateControl getDateControl() {
FILE: CalendarFXView/src/main/java/com/calendarfx/view/DraggedEntry.java
class DraggedEntry (line 31) | public final class DraggedEntry extends Entry<Object> {
type DragMode (line 36) | public enum DragMode {
method DraggedEntry (line 68) | public DraggedEntry(Entry<?> entry, DragMode dragMode) {
method getDragMode (line 87) | public DragMode getDragMode() {
method setDragMode (line 97) | public void setDragMode(DragMode dragMode) {
method getOriginalEntry (line 107) | public Entry<?> getOriginalEntry() {
method getOriginalCalendar (line 117) | public Calendar getOriginalCalendar() {
method setOffsetDuration (line 128) | public void setOffsetDuration(Duration duration) {
method getOffsetDuration (line 138) | public Duration getOffsetDuration() {
FILE: CalendarFXView/src/main/java/com/calendarfx/view/EntryViewBase.java
class EntryViewBase (line 95) | public abstract class EntryViewBase<T extends DateControl> extends Calen...
method EntryViewBase (line 128) | protected EntryViewBase(Entry<?> entry) {
method setEntry (line 240) | public void setEntry(Entry<?> entry) {
method getDetailsClickCount (line 250) | public final int getDetailsClickCount() {
method detailsClickCountProperty (line 261) | public final IntegerProperty detailsClickCountProperty() {
method setDetailsClickCount (line 265) | public final void setDetailsClickCount(int detailsClickCount) {
method getEntry (line 274) | public final Entry<?> getEntry() {
method bindEntry (line 278) | private void bindEntry() {
method bindVisibility (line 296) | private void bindVisibility() {
method isAssignedLayerVisible (line 333) | private boolean isAssignedLayerVisible() {
method hiddenProperty (line 349) | public final ReadOnlyBooleanProperty hiddenProperty() {
method isHidden (line 362) | public final boolean isHidden() {
method setHidden (line 366) | private void setHidden(boolean b) {
method processFocus (line 374) | private void processFocus() {
method bounce (line 397) | public final void bounce() {
method isEnableBounce (line 415) | public final boolean isEnableBounce() {
method enableBounceProperty (line 425) | public final BooleanProperty enableBounceProperty() {
method setEnableBounce (line 429) | public final void setEnableBounce(boolean enableBounce) {
method updateSelection (line 441) | private void updateSelection() {
method updateDragged (line 450) | private void updateDragged() {
method showDetails (line 482) | private void showDetails(InputEvent evt, double x, double y) {
type Position (line 509) | public enum Position {
method positionProperty (line 554) | public final ReadOnlyObjectProperty<Position> positionProperty() {
method getPosition (line 566) | public final Position getPosition() {
method setPosition (line 570) | private void setPosition(Position pos) {
method dateControlProperty (line 587) | public final ReadOnlyObjectProperty<T> dateControlProperty() {
method getDateControl (line 600) | public final T getDateControl() {
method setDateControl (line 604) | private void setDateControl(T control) {
method startDateProperty (line 624) | public final ReadOnlyObjectProperty<LocalDate> startDateProperty() {
method getStartDate (line 636) | public final LocalDate getStartDate() {
method setStartDate (line 640) | private void setStartDate(LocalDate date) {
method endDateProperty (line 660) | public final ReadOnlyObjectProperty<LocalDate> endDateProperty() {
method getEndDate (line 673) | public final LocalDate getEndDate() {
method setEndDate (line 677) | private void setEndDate(LocalDate date) {
method startTimeProperty (line 695) | public final ReadOnlyObjectProperty<LocalTime> startTimeProperty() {
method getStartTime (line 707) | public final LocalTime getStartTime() {
method setStartTime (line 711) | private void setStartTime(LocalTime time) {
method endTimeProperty (line 729) | public final ReadOnlyObjectProperty<LocalTime> endTimeProperty() {
method getEndTime (line 741) | public final LocalTime getEndTime() {
method setEndTime (line 745) | private void setEndTime(LocalTime time) {
method invalidated (line 759) | @Override
method getBean (line 764) | @Override
method getName (line 769) | @Override
method draggedProperty (line 781) | public final ReadOnlyBooleanProperty draggedProperty() {
method isDragged (line 790) | public final boolean isDragged() {
method invalidated (line 800) | @Override
method getBean (line 805) | @Override
method getName (line 810) | @Override
method draggedStartProperty (line 823) | public final ReadOnlyBooleanProperty draggedStartProperty() {
method isDraggedStart (line 832) | public final boolean isDraggedStart() {
method invalidated (line 842) | @Override
method getBean (line 847) | @Override
method getName (line 852) | @Override
method draggedEndProperty (line 865) | public final ReadOnlyBooleanProperty draggedEndProperty() {
method isDraggedEnd (line 874) | public final boolean isDraggedEnd() {
method invalidated (line 884) | @Override
method getBean (line 889) | @Override
method getName (line 894) | @Override
method selectedProperty (line 907) | public final ReadOnlyBooleanProperty selectedProperty() {
method isSelected (line 916) | public final boolean isSelected() {
method layerProperty (line 933) | public final ObjectProperty<Layer> layerProperty() {
method getLayer (line 945) | public final Layer getLayer() {
method setLayer (line 954) | public final void setLayer(Layer layer) {
method widthPercentageProperty (line 983) | public final DoubleProperty widthPercentageProperty() {
method getWidthPercentage (line 1001) | public double getWidthPercentage() {
method setWidthPercentage (line 1010) | public final void setWidthPercentage(double widthPercentage) {
method validateWidthPercentageProperty (line 1019) | private void validateWidthPercentageProperty(double newValue) {
type HeightLayoutStrategy (line 1036) | public enum HeightLayoutStrategy {
method getHeightLayoutStrategy (line 1043) | public final HeightLayoutStrategy getHeightLayoutStrategy() {
method heightLayoutStrategyProperty (line 1053) | public final ObjectProperty<HeightLayoutStrategy> heightLayoutStrategy...
method setHeightLayoutStrategy (line 1057) | public final void setHeightLayoutStrategy(HeightLayoutStrategy heightL...
type AlignmentStrategy (line 1074) | public enum AlignmentStrategy {
method getAlignmentStrategy (line 1083) | public final AlignmentStrategy getAlignmentStrategy() {
method alignmentStrategyProperty (line 1093) | public final ObjectProperty<AlignmentStrategy> alignmentStrategyProper...
method setAlignmentStrategy (line 1097) | public final void setAlignmentStrategy(AlignmentStrategy alignmentStra...
method intersects (line 1108) | public final boolean intersects(EntryViewBase<?> otherView) {
method isReadOnly (line 1118) | public final boolean isReadOnly() {
method compareTo (line 1128) | @Override
method toString (line 1133) | @Override
method getPropertySheetItems (line 1146) | public ObservableList<Item> getPropertySheetItems() {
method performSelection (line 1229) | private void performSelection(MouseEvent evt) {
method isMultiSelect (line 1257) | private boolean isMultiSelect(MouseEvent evt) {
FILE: CalendarFXView/src/main/java/com/calendarfx/view/Messages.java
class Messages (line 26) | public class Messages {
method Messages (line 32) | private Messages() {
method getString (line 41) | public static String getString(String key) {
method getString (line 49) | public static String getString(String key, Object... args) {
FILE: CalendarFXView/src/main/java/com/calendarfx/view/MonthEntryView.java
class MonthEntryView (line 26) | public class MonthEntryView extends EntryViewBase<MonthView> {
method MonthEntryView (line 34) | public MonthEntryView(Entry<?> entry) {
method createDefaultSkin (line 40) | @Override
FILE: CalendarFXView/src/main/java/com/calendarfx/view/MonthSheetView.java
class MonthSheetView (line 88) | public class MonthSheetView extends DateControl {
method MonthSheetView (line 106) | public MonthSheetView() {
method createDefaultSkin (line 132) | @Override
method createContextMenu (line 137) | private ContextMenu createContextMenu() {
method cellFactoryProperty (line 179) | public final ObjectProperty<Callback<DateParameter, DateCell>> cellFac...
method getCellFactory (line 188) | public final Callback<DateParameter, DateCell> getCellFactory() {
method setCellFactory (line 197) | public final void setCellFactory(Callback<DateParameter, DateCell> fac...
method headerCellFactoryProperty (line 212) | public final ObjectProperty<Callback<HeaderParameter, Node>> headerCel...
method getHeaderCellFactory (line 221) | public final Callback<HeaderParameter, Node> getHeaderCellFactory() {
method setHeaderCellFactory (line 230) | public final void setHeaderCellFactory(Callback<HeaderParameter, Node>...
type WeekDayLayoutStrategy (line 242) | public enum WeekDayLayoutStrategy {
method weekDayLayoutProperty (line 270) | public final ObjectProperty<WeekDayLayoutStrategy> weekDayLayoutProper...
method getWeekDayLayout (line 279) | public final WeekDayLayoutStrategy getWeekDayLayout() {
method setWeekDayLayout (line 288) | public final void setWeekDayLayout(WeekDayLayoutStrategy weekDayLayout) {
method viewUnitProperty (line 301) | public final ObjectProperty<ViewUnit> viewUnitProperty() {
method getViewUnit (line 310) | public final ViewUnit getViewUnit() {
method setViewUnit (line 319) | public final void setViewUnit(ViewUnit unit) {
method extendedViewUnitProperty (line 336) | public final ObjectProperty<ViewUnit> extendedViewUnitProperty() {
method getExtendedViewUnit (line 345) | public final ViewUnit getExtendedViewUnit() {
method setExtendedViewUnit (line 354) | public final void setExtendedViewUnit(ViewUnit unit) {
method extendedUnitsForwardProperty (line 371) | public final IntegerProperty extendedUnitsForwardProperty() {
method getExtendedUnitsForward (line 380) | public final int getExtendedUnitsForward() {
method setExtendedUnitsForward (line 389) | public final void setExtendedUnitsForward(int units) {
method extendedUnitsBackwardProperty (line 408) | public final IntegerProperty extendedUnitsBackwardProperty() {
method getExtendedUnitsBackward (line 417) | public final int getExtendedUnitsBackward() {
method setExtendedUnitsBackward (line 426) | public final void setExtendedUnitsBackward(final int units) {
method getStartMonth (line 440) | public final YearMonth getStartMonth() {
method getEndMonth (line 451) | public final YearMonth getEndMonth() {
method getExtendedStartMonth (line 464) | public final YearMonth getExtendedStartMonth() {
method getExtendedEndMonth (line 477) | public final YearMonth getExtendedEndMonth() {
method isExtendedMonth (line 490) | public final boolean isExtendedMonth(YearMonth month) {
method isVisibleDate (line 512) | public final boolean isVisibleDate(LocalDate date) {
method showWeekNumberProperty (line 535) | public final BooleanProperty showWeekNumberProperty() {
method isShowWeekNumber (line 544) | public final boolean isShowWeekNumber() {
method setShowWeekNumber (line 553) | public final void setShowWeekNumber(boolean show) {
method dateSelectionModelProperty (line 566) | public final ObjectProperty<DateSelectionModel> dateSelectionModelProp...
method getDateSelectionModel (line 575) | public final DateSelectionModel getDateSelectionModel() {
method setDateSelectionModel (line 584) | public final void setDateSelectionModel(DateSelectionModel model) {
type ClickBehaviour (line 596) | public enum ClickBehaviour {
method clickBehaviourProperty (line 622) | public final ObjectProperty<ClickBehaviour> clickBehaviourProperty() {
method setClickBehaviour (line 631) | public final void setClickBehaviour(ClickBehaviour behaviour) {
method getClickBehaviour (line 641) | public final ClickBehaviour getClickBehaviour() {
type ViewUnit (line 654) | public enum ViewUnit {
method getStartMonth (line 663) | @Override
method getEndMonth (line 668) | @Override
method getMonthsCount (line 673) | @Override
method getStartMonth (line 686) | @Override
method getEndMonth (line 691) | @Override
method getMonthsCount (line 696) | @Override
method getStartMonth (line 709) | @Override
method getEndMonth (line 714) | @Override
method getMonthsCount (line 719) | @Override
method getStartMonth (line 731) | @Override
method getEndMonth (line 736) | @Override
method getMonthsCount (line 741) | @Override
method getStartMonth (line 758) | public abstract YearMonth getStartMonth(LocalDate date);
method getEndMonth (line 766) | public abstract YearMonth getEndMonth(LocalDate date);
method getMonthsCount (line 774) | public abstract int getMonthsCount();
method toMonths (line 785) | public int toMonths(int units) {
class DateParameter (line 793) | public static final class DateParameter {
method DateParameter (line 804) | public DateParameter(MonthSheetView view, LocalDate date) {
method getView (line 814) | public MonthSheetView getView() {
method getDate (line 823) | public LocalDate getDate() {
class HeaderParameter (line 831) | public static final class HeaderParameter {
method HeaderParameter (line 836) | public HeaderParameter(MonthSheetView view, YearMonth yearMonth) {
method getView (line 841) | public MonthSheetView getView() {
method getYearMonth (line 845) | public YearMonth getYearMonth() {
method getPropertySheetItems (line 852) | @Override
class MonthHeaderCell (line 1160) | public static class MonthHeaderCell extends Label {
method MonthHeaderCell (line 1171) | public MonthHeaderCell(MonthSheetView view, YearMonth yearMonth) {
method MonthHeaderCell (line 1182) | public MonthHeaderCell(MonthSheetView view, YearMonth yearMonth, Tex...
method getView (line 1195) | public final MonthSheetView getView() {
method getYearMonth (line 1204) | public final YearMonth getYearMonth() {
class DateCell (line 1222) | public static abstract class DateCell extends Region {
method DateCell (line 1244) | public DateCell(MonthSheetView view, LocalDate date) {
method getView (line 1261) | public final MonthSheetView getView() {
method getDate (line 1272) | public final LocalDate getDate() {
method applyStyles (line 1276) | private void applyStyles() {
method isSelected (line 1312) | public boolean isSelected() {
method setSelected (line 1322) | public void setSelected(boolean selected) {
method isToday (line 1340) | public boolean isToday() {
method setToday (line 1352) | public void setToday(boolean today) {
method updateEntries (line 1372) | public void updateEntries(List<Entry<?>> entries) {
class DetailedDateCell (line 1381) | public static class DetailedDateCell extends SimpleDateCell {
method DetailedDateCell (line 1403) | public DetailedDateCell(MonthSheetView view, LocalDate date) {
method getCalendarColor (line 1419) | public static final Color getCalendarColor(String style) {
method setCalendarColor (line 1429) | public static final void setCalendarColor(String style, Color color) {
method layoutChildren (line 1433) | @Override
method computePrefWidth (line 1463) | @Override
method computePrefHeight (line 1471) | @Override
method updateEntries (line 1478) | @Override
class DetailCanvas (line 1483) | private final class DetailCanvas extends Canvas {
method DetailCanvas (line 1487) | private DetailCanvas() {
method isResizable (line 1492) | @Override
method setEntries (line 1497) | public void setEntries(List<Entry<?>> entries) {
method draw (line 1502) | public void draw() {
class BadgeDateCell (line 1548) | public static class BadgeDateCell extends SimpleDateCell {
method BadgeDateCell (line 1558) | public BadgeDateCell(MonthSheetView view, LocalDate date) {
method layoutChildren (line 1573) | @Override
method computePrefWidth (line 1600) | @Override
method computePrefHeight (line 1608) | @Override
method updateEntries (line 1614) | @Override
class SimpleDateCell (line 1662) | public static class SimpleDateCell extends DateCell {
method SimpleDateCell (line 1678) | public SimpleDateCell(MonthSheetView view, LocalDate date) {
method layoutChildren (line 1720) | @Override
method computePrefWidth (line 1743) | @Override
method computePrefHeight (line 1751) | @Override
method updateLabels (line 1757) | private void updateLabels() {
class UsageDateCell (line 1791) | public static class UsageDateCell extends SimpleDateCell {
method UsageDateCell (line 1799) | public UsageDateCell(MonthSheetView view, LocalDate date) {
method updateEntries (line 1803) | @Override
FILE: CalendarFXView/src/main/java/com/calendarfx/view/MonthView.java
class MonthView (line 48) | public class MonthView extends MonthViewBase implements ZonedDateTimePro...
method MonthView (line 55) | public MonthView() {
method createDefaultSkin (line 70) | @Override
method getZonedDateTimeAt (line 75) | @Override
method showCurrentWeekProperty (line 94) | public final BooleanProperty showCurrentWeekProperty() {
method setShowCurrentWeek (line 104) | public final void setShowCurrentWeek(boolean show) {
method isShowCurrentWeek (line 113) | public final boolean isShowCurrentWeek() {
method showWeekendsProperty (line 128) | public final BooleanProperty showWeekendsProperty() {
method setShowWeekends (line 138) | public final void setShowWeekends(boolean show) {
method isShowWeekends (line 147) | public final boolean isShowWeekends() {
method showWeekdaysProperty (line 162) | public final BooleanProperty showWeekdaysProperty() {
method setShowWeekdays (line 172) | public final void setShowWeekdays(boolean show) {
method isShowWeekdays (line 181) | public final boolean isShowWeekdays() {
method showTimedEntriesProperty (line 194) | public final BooleanProperty showTimedEntriesProperty() {
method setShowTimedEntries (line 204) | public final void setShowTimedEntries(boolean show) {
method isShowTimedEntries (line 213) | public final boolean isShowTimedEntries() {
method showFullDayEntriesProperty (line 227) | public final BooleanProperty showFullDayEntriesProperty() {
method setShowFullDayEntries (line 237) | public final void setShowFullDayEntries(boolean show) {
method isShowFullDayEntries (line 246) | public final boolean isShowFullDayEntries() {
method entryViewFactoryProperty (line 265) | public final ObjectProperty<Callback<Entry<?>, MonthEntryView>> entryV...
method getEntryViewFactory (line 274) | public final Callback<Entry<?>, MonthEntryView> getEntryViewFactory() {
method setEntryViewFactory (line 283) | public final void setEntryViewFactory(
method goBack (line 289) | @Override
method goForward (line 294) | @Override
method getPropertySheetItems (line 301) | @Override
FILE: CalendarFXView/src/main/java/com/calendarfx/view/MonthViewBase.java
class MonthViewBase (line 37) | public abstract class MonthViewBase extends DateControl {
method MonthViewBase (line 42) | protected MonthViewBase() {
method yearMonthProperty (line 54) | public final ReadOnlyObjectProperty<YearMonth> yearMonthProperty() {
method getYearMonth (line 63) | public final YearMonth getYearMonth() {
method showWeekNumbersProperty (line 79) | public final BooleanProperty showWeekNumbersProperty() {
method setShowWeekNumbers (line 89) | public final void setShowWeekNumbers(boolean show) {
method isShowWeekNumbers (line 98) | public final boolean isShowWeekNumbers() {
method getSelectedDates (line 110) | public final ObservableSet<LocalDate> getSelectedDates() {
method getPropertySheetItems (line 116) | @Override
FILE: CalendarFXView/src/main/java/com/calendarfx/view/RecurrenceView.java
class RecurrenceView (line 44) | public class RecurrenceView extends CalendarFXControl {
method RecurrenceView (line 49) | public RecurrenceView() {
method createDefaultSkin (line 53) | @Override
method set (line 59) | @Override
method startDateProperty (line 73) | public final ObjectProperty<LocalDate> startDateProperty() {
method setStartDate (line 83) | public final void setStartDate(LocalDate date) {
method getStartDate (line 93) | public final LocalDate getStartDate() {
method set (line 98) | @Override
method recurrenceRuleProperty (line 119) | public final StringProperty recurrenceRuleProperty() {
method setRecurrenceRule (line 129) | public final void setRecurrenceRule(String rule) {
method getRecurrenceRule (line 138) | public final String getRecurrenceRule() {
method showSummaryProperty (line 154) | public final BooleanProperty showSummaryProperty() {
method isShowSummary (line 163) | public final boolean isShowSummary() {
method setShowSummary (line 173) | public final void setShowSummary(boolean show) {
FILE: CalendarFXView/src/main/java/com/calendarfx/view/RequestEvent.java
class RequestEvent (line 40) | public final class RequestEvent extends Event {
method RequestEvent (line 108) | public RequestEvent(Object source, EventTarget target, LocalDate date) {
method RequestEvent (line 124) | public RequestEvent(Object source, EventTarget target, LocalDateTime d...
method RequestEvent (line 142) | public RequestEvent(Object source, EventTarget target, Year year, int ...
method RequestEvent (line 159) | public RequestEvent(Object source, EventTarget target, YearMonth yearM...
method RequestEvent (line 175) | public RequestEvent(Object source, EventTarget target, Year year) {
method RequestEvent (line 191) | public RequestEvent(Object source, EventTarget target, Entry<?> entry) {
method getDate (line 202) | public LocalDate getDate() {
method getDateTime (line 211) | public LocalDateTime getDateTime() {
method getYearMonth (line 220) | public YearMonth getYearMonth() {
method getYear (line 229) | public Year getYear() {
method getEntry (line 238) | public Entry<?> getEntry() {
method getWeekOfYear (line 247) | public int getWeekOfYear() {
method toString (line 251) | @Override
FILE: CalendarFXView/src/main/java/com/calendarfx/view/ResourceCalendarView.java
class ResourceCalendarView (line 21) | public class ResourceCalendarView<T> extends DayViewBase {
method ResourceCalendarView (line 23) | public ResourceCalendarView() {
method createDefaultSkin (line 49) | @Override
method showTimeScaleProperty (line 61) | public BooleanProperty showTimeScaleProperty() {
method isShowTimeScale (line 65) | public boolean isShowTimeScale() {
method setShowTimeScale (line 69) | public void setShowTimeScale(boolean showTimeScale) {
method getMarkers (line 80) | public final ObservableList<Marker> getMarkers() {
method partialUnbinding (line 84) | private void partialUnbinding(DayView otherControl) {
method isShowScrollBar (line 92) | public final boolean isShowScrollBar() {
method showScrollBarProperty (line 96) | public final BooleanProperty showScrollBarProperty() {
method setShowScrollBar (line 100) | public final void setShowScrollBar(boolean showScrollBar) {
method getHeaderFactory (line 106) | public final Callback<T, Node> getHeaderFactory() {
method headerFactoryProperty (line 110) | public final ObjectProperty<Callback<T, Node>> headerFactoryProperty() {
method setHeaderFactory (line 114) | public final void setHeaderFactory(Callback<T, Node> headerFactory) {
method getDayViewMap (line 120) | public final ObservableMap getDayViewMap() {
method dayViewMapProperty (line 124) | public final ReadOnlyMapProperty<T, DayView> dayViewMapProperty() {
method getDayView (line 128) | public final DayView getDayView(T resource) {
method getResources (line 134) | public final ObservableList<T> getResources() {
FILE: CalendarFXView/src/main/java/com/calendarfx/view/ResourcesView.java
class ResourcesView (line 55) | public class ResourcesView<T extends Resource<?>> extends DayViewBase {
method ResourcesView (line 63) | public ResourcesView() {
method createDefaultSkin (line 90) | @Override
method maybeAdjustToFirstDayOfWeek (line 95) | private void maybeAdjustToFirstDayOfWeek() {
type Type (line 104) | public enum Type {
method getType (line 120) | public final Type getType() {
method typeProperty (line 129) | public final ObjectProperty<Type> typeProperty() {
method setType (line 133) | public final void setType(Type type) {
method maybeRunAndConsume (line 137) | private void maybeRunAndConsume(RequestEvent evt, Consumer<RequestEven...
method adjustToFirstDayOfWeekProperty (line 153) | public final BooleanProperty adjustToFirstDayOfWeekProperty() {
method isAdjustToFirstDayOfWeek (line 162) | public final boolean isAdjustToFirstDayOfWeek() {
method setAdjustToFirstDayOfWeek (line 171) | public final void setAdjustToFirstDayOfWeek(boolean adjust) {
method getAllDayViewFactory (line 177) | public final Callback<T, AllDayView> getAllDayViewFactory() {
method allDayViewFactoryProperty (line 187) | public final ObjectProperty<Callback<T, AllDayView>> allDayViewFactory...
method setAllDayViewFactory (line 191) | public final void setAllDayViewFactory(Callback<T, AllDayView> allDayV...
method getWeekDayHeaderViewFactory (line 197) | public final Callback<T, WeekDayHeaderView> getWeekDayHeaderViewFactor...
method weekDayHeaderViewFactoryProperty (line 207) | public final ObjectProperty<Callback<T, WeekDayHeaderView>> weekDayHea...
method setWeekDayHeaderViewFactory (line 211) | public final void setWeekDayHeaderViewFactory(Callback<T, WeekDayHeade...
method numberOfDaysProperty (line 222) | public final IntegerProperty numberOfDaysProperty() {
method getNumberOfDays (line 231) | public final int getNumberOfDays() {
method setNumberOfDays (line 240) | public final void setNumberOfDays(int number) {
method getResourceHeaderFactory (line 256) | public final Callback<T, Node> getResourceHeaderFactory() {
method resourceHeaderFactoryProperty (line 265) | public final ObjectProperty<Callback<T, Node>> resourceHeaderFactoryPr...
method setResourceHeaderFactory (line 269) | public final void setResourceHeaderFactory(Callback<T, Node> resourceH...
method getResources (line 280) | public final ObservableList<T> getResources() {
method showAllDayViewProperty (line 293) | public final BooleanProperty showAllDayViewProperty() {
method isShowAllDayView (line 302) | public final boolean isShowAllDayView() {
method setShowAllDayView (line 311) | public final void setShowAllDayView(boolean show) {
method showTimeScaleViewProperty (line 324) | public final BooleanProperty showTimeScaleViewProperty() {
method isShowTimeScaleView (line 333) | public final boolean isShowTimeScaleView() {
method setShowTimeScaleView (line 342) | public final void setShowTimeScaleView(boolean show) {
method showScrollBarProperty (line 355) | public final BooleanProperty showScrollBarProperty() {
method setShowScrollBar (line 364) | public final void setShowScrollBar(boolean showScrollBar) {
method isShowScrollBar (line 373) | public final boolean isShowScrollBar() {
method getWeekViewFactory (line 379) | public final Callback<T, WeekView> getWeekViewFactory() {
method weekViewFactoryProperty (line 389) | public final ObjectProperty<Callback<T, WeekView>> weekViewFactoryProp...
method setWeekViewFactory (line 393) | public void setWeekViewFactory(Callback<T, WeekView> weekViewFactory) {
method getDayViewFactory (line 399) | public final Callback<T, DayView> getDayViewFactory() {
method dayViewFactoryProperty (line 409) | public final ObjectProperty<Callback<T, DayView>> dayViewFactoryProper...
method setDayViewFactory (line 413) | public void setDayViewFactory(Callback<T, DayView> dayViewFactory) {
method getUpperLeftCorner (line 419) | public final Node getUpperLeftCorner() {
method upperLeftCornerProperty (line 428) | public final ObjectProperty<Node> upperLeftCornerProperty() {
method setUpperLeftCorner (line 432) | public final void setUpperLeftCorner(Node upperLeftCorner) {
method getUpperRightCorner (line 438) | public final Node getUpperRightCorner() {
method upperRightCornerProperty (line 447) | public final ObjectProperty<Node> upperRightCornerProperty() {
method setUpperRightCorner (line 451) | public final void setUpperRightCorner(Node upperRightCorner) {
method getSmallSeparatorFactory (line 461) | public final Callback<ResourcesView<T>, Region> getSmallSeparatorFacto...
method smallSeparatorFactoryProperty (line 465) | public final ObjectProperty<Callback<ResourcesView<T>, Region>> smallS...
method setSmallSeparatorFactory (line 469) | public final void setSmallSeparatorFactory(Callback<ResourcesView<T>, ...
method getLargeSeparatorFactory (line 480) | public final Callback<ResourcesView<T>, Region> getLargeSeparatorFacto...
method largeSeparatorFactoryProperty (line 489) | public final ObjectProperty<Callback<ResourcesView<T>, Region>> largeS...
method setLargeSeparatorFactory (line 493) | public final void setLargeSeparatorFactory(Callback<ResourcesView<T>, ...
FILE: CalendarFXView/src/main/java/com/calendarfx/view/SearchResultView.java
class SearchResultView (line 58) | public class SearchResultView extends CalendarFXControl {
method SearchResultView (line 69) | public SearchResultView() {
method createDefaultSkin (line 102) | @Override
method getSearchResults (line 114) | public final ObservableList<Entry<?>> getSearchResults() {
method updateSearchResults (line 118) | private void updateSearchResults() {
method getCalendarSources (line 131) | public final ObservableList<CalendarSource> getCalendarSources() {
method selectedEntryProperty (line 143) | public final ReadOnlyObjectProperty<Entry<?>> selectedEntryProperty() {
method getSelectedEntry (line 152) | public final Entry<?> getSelectedEntry() {
method zoneIdProperty (line 166) | public final ObjectProperty<ZoneId> zoneIdProperty() {
method setZoneId (line 176) | public final void setZoneId(ZoneId zoneId) {
method getZoneId (line 186) | public final ZoneId getZoneId() {
method searchTextProperty (line 201) | public final StringProperty searchTextProperty() {
method getSearchText (line 210) | public final String getSearchText() {
method setSearchText (line 220) | public final void setSearchText(String text) {
class SearchService (line 224) | private class SearchService extends Service<List<Entry<?>>> {
method SearchService (line 226) | public SearchService() {
method createTask (line 229) | @Override
class SearchTask (line 234) | class SearchTask extends Task<List<Entry<?>>> {
method call (line 236) | @Override
FILE: CalendarFXView/src/main/java/com/calendarfx/view/SourceGridView.java
class SourceGridView (line 36) | public class SourceGridView extends CalendarFXControl {
method SourceGridView (line 40) | public SourceGridView() {
method createDefaultSkin (line 43) | @Override
method bind (line 48) | public final void bind(DateControl dateControl) {
method unbind (line 53) | public final void unbind(DateControl dateControl) {
method getCalendarSources (line 63) | public final ObservableList<CalendarSource> getCalendarSources() {
method getCalendarVisibilityMap (line 69) | public final ObservableMap<Calendar, BooleanProperty> getCalendarVisib...
method getCalendarVisibilityProperty (line 73) | public final BooleanProperty getCalendarVisibilityProperty(Calendar ca...
method isCalendarVisible (line 77) | public final boolean isCalendarVisible(Calendar calendar) {
method setCalendarVisibility (line 82) | public final void setCalendarVisibility(Calendar calendar, boolean vis...
method set (line 88) | @Override
method maximumRowsPerColumnProperty (line 97) | public final IntegerProperty maximumRowsPerColumnProperty() {
method getMaximumRowsPerColumn (line 101) | public final int getMaximumRowsPerColumn() {
method setMaximumRowsPerColumn (line 106) | public final void setMaximumRowsPerColumn(final int maximumRowsPerColu...
method getPropertySheetItems (line 112) | @Override
FILE: CalendarFXView/src/main/java/com/calendarfx/view/SourceView.java
class SourceView (line 38) | public class SourceView extends CalendarFXControl {
method SourceView (line 45) | public SourceView() {
method createDefaultSkin (line 50) | @Override
method bind (line 55) | public final void bind(DateControl dateControl) {
method unbind (line 60) | public final void unbind(DateControl dateControl) {
method getCalendarSources (line 75) | public final ObservableList<CalendarSource> getCalendarSources() {
method getCalendarVisibilityMap (line 81) | public final ObservableMap<Calendar, BooleanProperty> getCalendarVisib...
method getCalendarVisibilityProperty (line 85) | public final BooleanProperty getCalendarVisibilityProperty(Calendar ca...
method isCalendarVisible (line 89) | public final boolean isCalendarVisible(Calendar calendar) {
method setCalendarVisibility (line 93) | public final void setCalendarVisibility(Calendar calendar, boolean vis...
method createContextMenu (line 97) | private void createContextMenu() {
FILE: CalendarFXView/src/main/java/com/calendarfx/view/TimeField.java
class TimeField (line 40) | public class TimeField extends CalendarFXControl {
method TimeField (line 45) | public TimeField() {
method createDefaultSkin (line 49) | @Override
method rollOverProperty (line 63) | public final BooleanProperty rollOverProperty() {
method isRollOver (line 72) | public final boolean isRollOver() {
method setRollOver (line 81) | public final void setRollOver(boolean roll) {
method valueProperty (line 92) | public final ObjectProperty<LocalTime> valueProperty() {
method getValue (line 101) | public final LocalTime getValue() {
method setValue (line 110) | public final void setValue(LocalTime localTime) {
method getPropertySheetItems (line 122) | public ObservableList<Item> getPropertySheetItems() {
FILE: CalendarFXView/src/main/java/com/calendarfx/view/TimeScaleView.java
class TimeScaleView (line 36) | public class TimeScaleView extends DayViewBase {
method TimeScaleView (line 41) | public TimeScaleView() {
method createDefaultSkin (line 45) | @Override
method dateFormatterProperty (line 61) | public final ObjectProperty<DateTimeFormatter> dateFormatterProperty() {
method getDateFormatter (line 70) | public final DateTimeFormatter getDateFormatter() {
method setDateFormatter (line 79) | public final void setDateFormatter(DateTimeFormatter formatter) {
method timeFormatterProperty (line 94) | protected ObjectProperty<DateTimeFormatter> timeFormatterProperty() {
method getTimeFormatter (line 103) | public final DateTimeFormatter getTimeFormatter() {
method setTimeFormatter (line 112) | public void setTimeFormatter(DateTimeFormatter formatter) {
method timeStyleProviderProperty (line 129) | public ObjectProperty<Function<LocalDateTime, String>> timeStyleProvid...
method getTimeStyleProvider (line 138) | public Function<LocalDateTime, String> getTimeStyleProvider() {
method setTimeStyleProvider (line 147) | public void setTimeStyleProvider(Function<LocalDateTime, String> style...
method dateStyleProviderProperty (line 159) | public ObjectProperty<Function<LocalDateTime, String>> dateStyleProvid...
method getDateStyleProvider (line 168) | public Function<LocalDateTime, String> getDateStyleProvider() {
method setDateStyleProvider (line 177) | public void setDateStyleProvider(Function<LocalDateTime, String> style...
FILE: CalendarFXView/src/main/java/com/calendarfx/view/VirtualGrid.java
class VirtualGrid (line 36) | public class VirtualGrid {
method adjustTime (line 47) | @Override
method adjustTime (line 52) | @Override
method adjustTime (line 57) | @Override
method VirtualGrid (line 80) | public VirtualGrid(String name, String shortName, ChronoUnit unit, int...
method getName (line 97) | public final String getName() {
method getShortName (line 106) | public final String getShortName() {
method getUnit (line 115) | public final ChronoUnit getUnit() {
method getAmount (line 124) | public final int getAmount() {
method adjustTime (line 139) | public ZonedDateTime adjustTime(ZonedDateTime time, boolean roundUp, D...
method adjustTime (line 159) | public Instant adjustTime(Instant instant, ZoneId zoneId, boolean roun...
method adjustTime (line 185) | public LocalDateTime adjustTime(LocalDateTime time, boolean roundUp, D...
method toString (line 196) | @Override
FILE: CalendarFXView/src/main/java/com/calendarfx/view/WeekDayHeaderView.java
class WeekDayHeaderView (line 51) | public class WeekDayHeaderView extends DateControl {
method WeekDayHeaderView (line 60) | public WeekDayHeaderView(int numberOfDays) {
method WeekDayHeaderView (line 84) | public WeekDayHeaderView() {
method createDefaultSkin (line 88) | @Override
method cellFactoryProperty (line 101) | public final ObjectProperty<Callback<WeekDayHeaderView, WeekDayHeaderC...
method getCellFactory (line 110) | public final Callback<WeekDayHeaderView, WeekDayHeaderCell> getCellFac...
method setCellFactory (line 119) | public final void setCellFactory(Callback<WeekDayHeaderView, WeekDayHe...
method getSeparatorFactory (line 131) | public final Callback<WeekDayHeaderView, Region> getSeparatorFactory() {
method separatorFactoryProperty (line 140) | public final ObjectProperty<Callback<WeekDayHeaderView, Region>> separ...
method setSeparatorFactory (line 144) | public final void setSeparatorFactory(Callback<WeekDayHeaderView, Regi...
method numberOfDaysProperty (line 157) | public final IntegerProperty numberOfDaysProperty() {
method getNumberOfDays (line 166) | public final int getNumberOfDays() {
method setNumberOfDays (line 175) | public final void setNumberOfDays(int number) {
method adjustToFirstDayOfWeekProperty (line 192) | public final BooleanProperty adjustToFirstDayOfWeekProperty() {
method isAdjustToFirstDayOfWeek (line 201) | public final boolean isAdjustToFirstDayOfWeek() {
method setAdjustToFirstDayOfWeek (line 210) | public final void setAdjustToFirstDayOfWeek(boolean adjust) {
Condensed preview — 347 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (2,664K chars).
[
{
"path": ".github/workflows/build.yml",
"chars": 977,
"preview": "name: Build\non:\n push:\n branches:\n - master-11\n pull_request:\n types: [opened, synchronize, reopened]\njobs:"
},
{
"path": ".github/workflows/codeql.yml",
"chars": 841,
"preview": "name: \"CodeQL\"\n\non:\n push:\n branches: [ \"master-11\" ]\n pull_request:\n branches: [ \"master-11\" ]\n schedule:\n "
},
{
"path": ".github/workflows/release.yml",
"chars": 2321,
"preview": "name: Release\n\non:\n workflow_dispatch:\n inputs:\n version:\n description: \"Release version\"\n requir"
},
{
"path": ".gitignore",
"chars": 81,
"preview": "/target/\n.idea\n*.iml\n.project\n*.prefs\nCalendarFXApp/.classpath\n*.classpath\n*.log\n"
},
{
"path": ".mvn/wrapper/maven-wrapper.properties",
"chars": 1022,
"preview": "# Licensed to the Apache Software Foundation (ASF) under one\n# or more contributor license agreements. See the NOTICE f"
},
{
"path": "CHANGELOG.md",
"chars": 11358,
"preview": "# Change Log\n\n## [11.8.3](https://github.com/dlsc-software-consulting-gmbh/CalendarFX/tree/11.8.3) (2019-10-23)\n[Full Ch"
},
{
"path": "CHANGES.txt",
"chars": 3723,
"preview": "-------------------------------------------------------------------------------\nRELEASE NOTES, VERSION 11.12.x (October "
},
{
"path": "CODE_OF_CONDUCT.md",
"chars": 3218,
"preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, w"
},
{
"path": "CalendarFXApp/.gitignore",
"chars": 14,
"preview": "/target\n*.iml\n"
},
{
"path": "CalendarFXApp/pom.xml",
"chars": 3129,
"preview": "<!--\n ~ Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n ~\n ~ Licensed under the Apache License"
},
{
"path": "CalendarFXApp/src/main/java/com/calendarfx/app/CalendarApp.java",
"chars": 4173,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXApp/src/main/java/com/calendarfx/app/CalendarAppAtlantaFX.java",
"chars": 361,
"preview": "package com.calendarfx.app;\n\nimport atlantafx.base.theme.NordDark;\nimport atlantafx.base.theme.NordLight;\n\npublic class "
},
{
"path": "CalendarFXApp/src/main/java/com/calendarfx/app/CalendarAppLauncher.java",
"chars": 861,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXApp/src/main/java/com/calendarfx/app/MonthViewApp.java",
"chars": 1432,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXApp/src/main/java/module-info.java",
"chars": 274,
"preview": "module com.calendarfx.app {\n requires transitive javafx.graphics;\n requires fr.brouillard.oss.cssfx;\n requires "
},
{
"path": "CalendarFXGoogle/.gitignore",
"chars": 20,
"preview": "/target\n*.iml\n/bin/\n"
},
{
"path": "CalendarFXGoogle/pom.xml",
"chars": 3400,
"preview": "<!--\n ~ Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n ~\n ~ Licensed under the Apache License"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/GoogleCalendarApp.java",
"chars": 1797,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/converter/BeanConverter.java",
"chars": 1078,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/converter/BidirectionalBeanConverter.java",
"chars": 1002,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/converter/CalendarListEntryToGoogleCalendarConverter.java",
"chars": 1965,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/converter/EventToGoogleEntryConverter.java",
"chars": 4739,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/converter/GoogleCalendarToCalendarConverter.java",
"chars": 1270,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/converter/GoogleCalendarToCalendarListEntryConverter.java",
"chars": 1973,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/converter/GoogleEntryToEventConverter.java",
"chars": 3937,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/model/GoogleAccount.java",
"chars": 3489,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/model/GoogleCalendar.java",
"chars": 6464,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/model/GoogleCalendarEvent.java",
"chars": 2862,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/model/GoogleEntry.java",
"chars": 8884,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/model/GoogleEntryReminder.java",
"chars": 3479,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/model/IGoogleCalendarSearchTextProvider.java",
"chars": 945,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/service/BeanConverterService.java",
"chars": 4557,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/service/GoogleCalendarService.java",
"chars": 9116,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/service/GoogleConnector.java",
"chars": 10486,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/service/GoogleGeocoderService.java",
"chars": 2973,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/service/SecurityService.java",
"chars": 3150,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/view/GoogleCalendarAppView.java",
"chars": 1946,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/view/data/GoogleCalendarData.java",
"chars": 3827,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/view/data/IGoogleCalendarDataProvider.java",
"chars": 1170,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/view/data/Slice.java",
"chars": 3622,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/view/log/ActionType.java",
"chars": 1552,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/view/log/LogItem.java",
"chars": 3337,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/view/log/LogPane.java",
"chars": 8742,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/view/log/StatusType.java",
"chars": 2515,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/view/popover/GoogleEntryAttendeesView.java",
"chars": 9791,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/view/popover/GoogleEntryDetailsView.java",
"chars": 7855,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/view/popover/GoogleEntryGMapsFXView.java",
"chars": 4963,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/view/popover/GoogleEntryPopOverContentPane.java",
"chars": 2733,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/view/task/DeleteEntryTask.java",
"chars": 1910,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/view/task/GoogleTask.java",
"chars": 1875,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/view/task/InsertCalendarTask.java",
"chars": 1884,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/view/task/InsertEntryTask.java",
"chars": 2019,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/view/task/LoadAllCalendarsTask.java",
"chars": 1794,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/view/task/LoadEntriesBySliceTask.java",
"chars": 2850,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/view/task/LoadEntriesByTextTask.java",
"chars": 2449,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/view/task/MoveEntryTask.java",
"chars": 1971,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/view/task/RefreshCalendarsTask.java",
"chars": 3158,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/view/task/UpdateEntryTask.java",
"chars": 2537,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/view/thread/CalendarViewTimeUpdateThread.java",
"chars": 1763,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/view/thread/GoogleAutoRefreshThread.java",
"chars": 3499,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/view/thread/GoogleNotificationPopupThread.java",
"chars": 4401,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/com/calendarfx/google/view/thread/GoogleTaskExecutor.java",
"chars": 3477,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/impl/com/calendarfx/google/view/GoogleCalendarAppViewSkin.java",
"chars": 13203,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/impl/com/calendarfx/google/view/GoogleCalendarCreateView.java",
"chars": 5296,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/impl/com/calendarfx/google/view/GoogleCalendarDataManager.java",
"chars": 4070,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/impl/com/calendarfx/google/view/GoogleCalendarSearchTextManager.java",
"chars": 2812,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/impl/com/calendarfx/google/view/GoogleSyncManager.java",
"chars": 6076,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/impl/com/calendarfx/google/view/log/LogPaneSkin.java",
"chars": 7346,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/main/java/module-info.java",
"chars": 729,
"preview": "module com.calendarfx.google {\n requires transitive javafx.graphics;\n\n requires org.kordamp.ikonli.javafx;\n req"
},
{
"path": "CalendarFXGoogle/src/main/resources/com/calendarfx/google/service/client-secrets.json",
"chars": 503,
"preview": "{\n \"installed\": {\n \"auth_uri\": \"https://accounts.google.com/o/oauth2/auth\",\n \"client_secret\": \"Tnwk7IGPlvnnn7TQ-W"
},
{
"path": "CalendarFXGoogle/src/main/resources/com/calendarfx/google/view/popover/google-popover.css",
"chars": 1771,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXGoogle/src/test/java/com/calendarfx/google/view/popover/HelloGoogleEntryPopOverContentPane.java",
"chars": 2167,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXResourceApp/.gitignore",
"chars": 14,
"preview": "/target\n*.iml\n"
},
{
"path": "CalendarFXResourceApp/pom.xml",
"chars": 1900,
"preview": "<!--\n ~ Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n ~\n ~ Licensed under the Apache License"
},
{
"path": "CalendarFXResourceApp/src/main/java/com/calendarfx/resource/app/ResourceCalendarApp.java",
"chars": 11498,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXResourceApp/src/main/java/com/calendarfx/resource/app/ResourceCalendarAppLauncher.java",
"chars": 886,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXResourceApp/src/main/java/module-info.java",
"chars": 186,
"preview": "module com.calendarfx.resource.app {\n requires transitive javafx.graphics;\n\n requires javafx.controls;\n require"
},
{
"path": "CalendarFXSampler/.gitignore",
"chars": 14,
"preview": "/target\n*.iml\n"
},
{
"path": "CalendarFXSampler/pom.xml",
"chars": 3109,
"preview": "<!--\n ~ Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n ~ Copyright (C) 2006 Google Inc.\n ~\n "
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/CalendarFXDateControlSample.java",
"chars": 2516,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/CalendarFXSample.java",
"chars": 3465,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/CalendarFXSampler.java",
"chars": 296,
"preview": "/**\n * Copyright (C) 2014 - 2021 DLSC Software & Consulting GmbH (dlsc.com)\n *\n * This file is part of FlexGanttFX.\n */\n"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/CalendarFXSamplerProject.java",
"chars": 1157,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/CalendarFXSamplerWelcome.java",
"chars": 1660,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/entries/HelloAllDayEntryView.java",
"chars": 1528,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/entries/HelloDayEntryView.java",
"chars": 2660,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/entries/HelloEntryViewBase.java",
"chars": 1800,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/entries/HelloMonthEntryView.java",
"chars": 1680,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/pages/HelloDayPage.java",
"chars": 1929,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/pages/HelloMonthPage.java",
"chars": 3582,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/pages/HelloWeekPage.java",
"chars": 1741,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/pages/HelloYearPage.java",
"chars": 1770,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/performance/HelloPerformance.java",
"chars": 4705,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/popover/HelloEntryDetailsView.java",
"chars": 1699,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/popover/HelloEntryHeaderView.java",
"chars": 2277,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/popover/HelloPopOverContentPane.java",
"chars": 2192,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/print/HelloOptionsView.java",
"chars": 1464,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/print/HelloPaperView.java",
"chars": 1439,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/print/HelloPreviewPane.java",
"chars": 2673,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/print/HelloPrintView.java",
"chars": 2860,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/print/HelloSettingsView.java",
"chars": 2653,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/print/HelloTimeRangeField.java",
"chars": 1402,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/print/HelloTimeRangeView.java",
"chars": 2599,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloAgendaView.java",
"chars": 2161,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloAllDayView.java",
"chars": 3204,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloAvailabilityCalendar.java",
"chars": 3233,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloCalendar.java",
"chars": 1958,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloCalendarHeaderView.java",
"chars": 2379,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloCalendarSelector.java",
"chars": 2447,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloCalendarView.java",
"chars": 3365,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloDayView.java",
"chars": 3065,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloDetailedDayView.java",
"chars": 3941,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloDetailedWeekView.java",
"chars": 2453,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloMonthSheetView.java",
"chars": 4768,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloMonthView.java",
"chars": 3777,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloRecurrenceView.java",
"chars": 2103,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloResourcesCalendarView.java",
"chars": 6444,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloScrollingDayView.java",
"chars": 3210,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloScrollingTimeScaleView.java",
"chars": 3098,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloSourceGridView.java",
"chars": 3291,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloSourceView.java",
"chars": 6704,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloTimeField.java",
"chars": 1810,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloTimeScaleView.java",
"chars": 2871,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloTimezones.java",
"chars": 4424,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloTopLayer.java",
"chars": 4175,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloVisualBounds.java",
"chars": 3574,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloWeekDayHeaderView.java",
"chars": 2164,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloWeekDayView.java",
"chars": 2796,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloWeekFieldsView.java",
"chars": 1663,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloWeekTimeScaleView.java",
"chars": 2163,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloWeekView.java",
"chars": 3045,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloYearMonthView.java",
"chars": 3135,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/views/HelloYearView.java",
"chars": 2919,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/com/calendarfx/demo/views/resources/HelloResourcesView.java",
"chars": 15462,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n * Copyright (C) 2006 Google Inc.\n *\n * Lic"
},
{
"path": "CalendarFXSampler/src/main/java/module-info.java",
"chars": 822,
"preview": "open module com.calendarfx.sampler {\n requires transitive org.controlsfx.fxsampler;\n requires transitive javafx.gr"
},
{
"path": "CalendarFXSampler/src/main/resources/META-INF/services/fxsampler.FXSamplerProject",
"chars": 44,
"preview": "com.calendarfx.demo.CalendarFXSamplerProject"
},
{
"path": "CalendarFXSchedulerApp/.gitignore",
"chars": 14,
"preview": "/target\n*.iml\n"
},
{
"path": "CalendarFXSchedulerApp/pom.xml",
"chars": 2021,
"preview": "<!--\n ~ Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n ~\n ~ Licensed under the Apache License"
},
{
"path": "CalendarFXSchedulerApp/src/main/java/com/calendarfx/scheduler/SchedulerApp.java",
"chars": 4921,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXSchedulerApp/src/main/java/com/calendarfx/scheduler/SchedulerAppLauncher.java",
"chars": 869,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXSchedulerApp/src/main/java/module-info.java",
"chars": 217,
"preview": "module com.calendarfx.scheduler {\n requires transitive javafx.graphics;\n requires fr.brouillard.oss.cssfx;\n req"
},
{
"path": "CalendarFXView/.gitignore",
"chars": 39,
"preview": "/target/\n/scenicView.properties\n*.iml\n\n"
},
{
"path": "CalendarFXView/logging.properties",
"chars": 1157,
"preview": "# To use this property file add the following command line argument:\n# -Djava.util.logging.config.file=${project_loc}"
},
{
"path": "CalendarFXView/pom.xml",
"chars": 6591,
"preview": "<!--\n ~ Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n ~\n ~ Licensed under the Apache License"
},
{
"path": "CalendarFXView/src/main/asciidoc/manual.adoc",
"chars": 31052,
"preview": "= CalendarFX Developer Manual\nDirk Lemmermann <dlemmermann@gmail.com>\n:toc: left\n:source-highlighter: coderay\n:imagesdir"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/model/Calendar.java",
"chars": 30485,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/model/CalendarEvent.java",
"chars": 12578,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/model/CalendarSource.java",
"chars": 4050,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/model/Entry.java",
"chars": 65841,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/model/Interval.java",
"chars": 16611,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/model/IntervalTree.java",
"chars": 21431,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/model/LoadEvent.java",
"chars": 5636,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/model/Marker.java",
"chars": 2014,
"preview": "package com.calendarfx.model;\n\nimport javafx.beans.property.BooleanProperty;\nimport javafx.beans.property.ObjectProperty"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/model/Resource.java",
"chars": 6076,
"preview": "package com.calendarfx.model;\n\nimport com.calendarfx.view.DateControl;\nimport com.calendarfx.view.Messages;\nimport com.c"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/model/package-info.java",
"chars": 737,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/util/CalendarFX.java",
"chars": 1665,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/util/LoggingDomain.java",
"chars": 2382,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/util/LoggingFormatter.java",
"chars": 3933,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/util/ViewHelper.java",
"chars": 11116,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/util/WeakList.java",
"chars": 1634,
"preview": "package com.calendarfx.util;\n\nimport java.lang.ref.WeakReference;\nimport java.util.AbstractList;\nimport java.util.ArrayL"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/util/package-info.java",
"chars": 743,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/AgendaView.java",
"chars": 28733,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/AllDayEntryView.java",
"chars": 1259,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/AllDayView.java",
"chars": 22362,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/ButtonBar.java",
"chars": 2338,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/CalendarFXControl.java",
"chars": 1953,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/CalendarHeaderView.java",
"chars": 6357,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/CalendarSelector.java",
"chars": 2555,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/CalendarView.java",
"chars": 36529,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/ContextMenuProvider.java",
"chars": 10410,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/CreateAndDeleteHandler.java",
"chars": 3380,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/DateControl.java",
"chars": 128360,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/DateSelectionModel.java",
"chars": 13738,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/DayEntryView.java",
"chars": 4472,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/DayView.java",
"chars": 4658,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/DayViewBase.java",
"chars": 60124,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/DeleteHandler.java",
"chars": 2277,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/DetailedDayView.java",
"chars": 11505,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/DetailedWeekView.java",
"chars": 18841,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/DeveloperConsole.java",
"chars": 2708,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/DraggedEntry.java",
"chars": 3906,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/EntryViewBase.java",
"chars": 41719,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/Messages.java",
"chars": 1724,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/MonthEntryView.java",
"chars": 1306,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/MonthSheetView.java",
"chars": 63778,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/MonthView.java",
"chars": 14963,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/MonthViewBase.java",
"chars": 4675,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/RecurrenceView.java",
"chars": 5411,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/RequestEvent.java",
"chars": 7215,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/ResourceCalendarView.java",
"chars": 4601,
"preview": "package com.calendarfx.view;\n\nimport com.calendarfx.model.Marker;\nimport impl.com.calendarfx.view.ResourceCalendarViewSk"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/ResourcesView.java",
"chars": 16778,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/SearchResultView.java",
"chars": 10223,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/SourceGridView.java",
"chars": 5301,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/SourceView.java",
"chars": 4509,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/TimeField.java",
"chars": 5493,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/TimeScaleView.java",
"chars": 5896,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/VirtualGrid.java",
"chars": 6149,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/WeekDayHeaderView.java",
"chars": 11673,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/WeekDayView.java",
"chars": 2390,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
},
{
"path": "CalendarFXView/src/main/java/com/calendarfx/view/WeekFieldsView.java",
"chars": 6052,
"preview": "/*\n * Copyright (C) 2017 Dirk Lemmermann Software & Consulting (dlsc.com)\n *\n * Licensed under the Apache License, Ver"
}
]
// ... and 147 more files (download for full content)
About this extraction
This page contains the full source code of the dlemmermann/CalendarFX GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 347 files (2.4 MB), approximately 657.6k tokens, and a symbol index with 3705 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.