Module jfxtras.agenda
Class AgendaSkinTimeScale24HourAbstract<T>
java.lang.Object
javafx.scene.control.SkinBase<Agenda>
jfxtras.internal.scene.control.skin.agenda.base24hour.AgendaSkinTimeScale24HourAbstract<T>
- All Implemented Interfaces:
javafx.scene.control.Skin<Agenda>
,AgendaSkin
- Direct Known Subclasses:
AgendaDaysFromDisplayedSkin
,AgendaDaySkin
,AgendaWeekSkin
public abstract class AgendaSkinTimeScale24HourAbstract<T>
extends javafx.scene.control.SkinBase<Agenda>
implements AgendaSkin
-
Property Summary
PropertiesTypePropertyDescriptionfinal javafx.beans.property.ObjectProperty
<Double> snapToMinutes I am clueless why the Integer version of this property gets a double pushed in (which results in a ClassCastException) -
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static class
(package private) class
Responsible for rendering the days within the week(package private) class
Responsible for rendering the day headers within the week -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate javafx.collections.ListChangeListener
<Agenda.Appointment> (package private) AllAppointments
private javafx.collections.ListChangeListener
<Agenda.Appointment> protected javafx.scene.layout.BorderPane
protected final Agenda
private javafx.beans.value.ChangeListener
<? super LocalDateTime> private LayoutHelp
private javafx.beans.InvalidationListener
(package private) final javafx.scene.shape.Rectangle
(package private) Timer
This timer takes care of updating NOW(package private) Runnable
This is implemented as a runnable so it can be called from a timer, but also directlyprivate javafx.beans.property.ObjectProperty
<Double> private javafx.scene.control.ScrollPane
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate void
Assign a calendar to each day, so it knows what it must draw.private void
These values can not be determined by binding them to other values, because their calculation is too complexprivate void
convertClickInSceneToDateTime
(double x, double y) private void
construct the nodesvoid
dispose()
static List
<javafx.css.CssMetaData<? extends javafx.css.Styleable, ?>> List
<javafx.css.CssMetaData<? extends javafx.css.Styleable, ?>> This method should delegate toNode.getClassCssMetaData()
so that a Node's CssMetaData can be accessed without the need for reflection.javafx.scene.layout.Pane
getNodeForPopup
(Agenda.Appointment appointment) Finds rendered node for appointment.final double
Gets the value of thesnapToMinutes
property.private boolean
check if a certain weekday name is a certain day-of-the-weekvoid
print
(javafx.print.PrinterJob job) Prints the current skin using the given printer job.protected void
Reconstruct the UI partvoid
refresh()
Complete refreshprivate void
private void
final void
setSnapToMinutes
(double value) Sets the value of thesnapToMinutes
property.void
Have all days reconstruct the appointmentsfinal javafx.beans.property.ObjectProperty
<Double> snapToMinutes I am clueless why the Integer version of this property gets a double pushed in (which results in a ClassCastException)final T
withSnapToMinutes
(double value) Methods inherited from class javafx.scene.control.SkinBase
computeBaselineOffset, computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, consumeMouseEvents, executeAccessibleAction, getChildren, getNode, getSkinnable, layoutChildren, layoutInArea, layoutInArea, layoutInArea, positionInArea, positionInArea, pseudoClassStateChanged, queryAccessibleAttribute, registerChangeListener, registerInvalidationListener, registerListChangeListener, snappedBottomInset, snappedLeftInset, snappedRightInset, snappedTopInset, snapPosition, snapPositionX, snapPositionY, snapSize, snapSizeX, snapSizeY, snapSpace, snapSpaceX, snapSpaceY, unregisterChangeListeners, unregisterInvalidationListeners, unregisterListChangeListeners
-
Property Details
-
snapToMinutes
snapToMinutes I am clueless why the Integer version of this property gets a double pushed in (which results in a ClassCastException)- See Also:
-
-
Field Details
-
control
-
appointments
AllAppointments appointments -
localeInvalidationListener
private javafx.beans.InvalidationListener localeInvalidationListener -
displayedDateTimeChangeListener
-
appointmentsListChangeListener
-
appointmentNodeMapCleanUpListChangeListener
private javafx.collections.ListChangeListener<Agenda.Appointment> appointmentNodeMapCleanUpListChangeListener -
appointmentNodeMap
-
snapToMinutesProperty
-
borderPane
protected javafx.scene.layout.BorderPane borderPane -
weekHeaderPane
-
weekScrollPane
private javafx.scene.control.ScrollPane weekScrollPane -
weekBodyPane
-
nowLine
final javafx.scene.shape.Rectangle nowLine -
nowUpdateRunnable
Runnable nowUpdateRunnableThis is implemented as a runnable so it can be called from a timer, but also directly -
nowTimer
Timer nowTimerThis timer takes care of updating NOW -
layoutHelp
-
-
Constructor Details
-
AgendaSkinTimeScale24HourAbstract
-
-
Method Details
-
reconstruct
protected void reconstruct()Reconstruct the UI part -
construct
private void construct() -
dispose
public void dispose() -
assignDateToDayAndHeaderPanes
private void assignDateToDayAndHeaderPanes()Assign a calendar to each day, so it knows what it must draw. -
refreshLocale
private void refreshLocale() -
setupAppointments
public void setupAppointments()Have all days reconstruct the appointments- Specified by:
setupAppointments
in interfaceAgendaSkin
-
refresh
public void refresh()Description copied from interface:AgendaSkin
Complete refresh- Specified by:
refresh
in interfaceAgendaSkin
-
getNodeForPopup
Description copied from interface:AgendaSkin
Finds rendered node for appointment. The node can be used as the owner for a popup. or finding its x, y coordinates.- Specified by:
getNodeForPopup
in interfaceAgendaSkin
- Parameters:
appointment
-- Returns:
- rendered node that represents appointment
-
appointmentNodeMap
-
snapToMinutesProperty
snapToMinutes I am clueless why the Integer version of this property gets a double pushed in (which results in a ClassCastException)- Returns:
- the
snapToMinutes
property - See Also:
-
setSnapToMinutes
public final void setSnapToMinutes(double value) Sets the value of thesnapToMinutes
property.- Property description:
- snapToMinutes I am clueless why the Integer version of this property gets a double pushed in (which results in a ClassCastException)
- Parameters:
value
- the value for thesnapToMinutes
property- See Also:
-
getSnapToMinutes
public final double getSnapToMinutes()Gets the value of thesnapToMinutes
property.- Property description:
- snapToMinutes I am clueless why the Integer version of this property gets a double pushed in (which results in a ClassCastException)
- Returns:
- the value of the
snapToMinutes
property - See Also:
-
withSnapToMinutes
-
getClassCssMetaData
- Returns:
- The CssMetaData associated with this class, which may include the CssMetaData of its super classes.
-
getCssMetaData
This method should delegate toNode.getClassCssMetaData()
so that a Node's CssMetaData can be accessed without the need for reflection.- Overrides:
getCssMetaData
in classjavafx.scene.control.SkinBase<Agenda>
- Returns:
- The CssMetaData associated with this node, which may include the CssMetaData of its super classes.
-
createNodes
private void createNodes()construct the nodes -
scrollWeekpaneToShowDisplayedTime
private void scrollWeekpaneToShowDisplayedTime() -
determineDisplayedLocalDates
-
isWeekend
check if a certain weekday name is a certain day-of-the-week -
calculateSizes
private void calculateSizes()These values can not be determined by binding them to other values, because their calculation is too complex -
convertClickInSceneToDateTime
- Specified by:
convertClickInSceneToDateTime
in interfaceAgendaSkin
- Parameters:
x
- scene coordinatey
- scene coordinate- Returns:
- a localDateTime equivalent of the click location, where a drop in the day section has nano seconds == 1, and a drop in a header (wholeday) section has nano seconds == 0
-
print
public void print(javafx.print.PrinterJob job) Prints the current skin using the given printer job.This method does not modify the state of the job, nor does it call
PrinterJob.endJob()
, so the job may be safely reused afterwards.- Specified by:
print
in interfaceAgendaSkin
- Parameters:
job
- printer job used for printing- Since:
- JavaFX 8.0
-