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) classResponsible for rendering the days within the week(package private) classResponsible for rendering the day headers within the week -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate javafx.collections.ListChangeListener<Agenda.Appointment>(package private) AllAppointmentsprivate javafx.collections.ListChangeListener<Agenda.Appointment>protected javafx.scene.layout.BorderPaneprotected final Agendaprivate javafx.beans.value.ChangeListener<? super LocalDateTime>private LayoutHelpprivate javafx.beans.InvalidationListener(package private) final javafx.scene.shape.Rectangle(package private) TimerThis timer takes care of updating NOW(package private) RunnableThis 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 voidAssign a calendar to each day, so it knows what it must draw.private voidThese values can not be determined by binding them to other values, because their calculation is too complexprivate voidconvertClickInSceneToDateTime(double x, double y) private voidconstruct the nodesvoiddispose()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.PanegetNodeForPopup(Agenda.Appointment appointment) Finds rendered node for appointment.final doubleGets the value of the property snapToMinutes.private booleancheck if a certain weekday name is a certain day-of-the-weekvoidprint(javafx.print.PrinterJob job) Prints the current skin using the given printer job.protected voidReconstruct the UI partvoidrefresh()Complete refreshprivate voidprivate voidfinal voidsetSnapToMinutes(double value) Sets the value of the property snapToMinutes.voidHave 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 TwithSnapToMinutes(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:
setupAppointmentsin interfaceAgendaSkin
-
refresh
public void refresh()Description copied from interface:AgendaSkinComplete refresh- Specified by:
refreshin interfaceAgendaSkin
-
getNodeForPopup
Description copied from interface:AgendaSkinFinds rendered node for appointment. The node can be used as the owner for a popup. or finding its x, y coordinates.- Specified by:
getNodeForPopupin interfaceAgendaSkin- 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)- See Also:
-
setSnapToMinutes
public final void setSnapToMinutes(double value) Sets the value of the property snapToMinutes.- Property description:
- snapToMinutes I am clueless why the Integer version of this property gets a double pushed in (which results in a ClassCastException)
-
getSnapToMinutes
public final double getSnapToMinutes()Gets the value of the property snapToMinutes.- Property description:
- snapToMinutes I am clueless why the Integer version of this property gets a double pushed in (which results in a ClassCastException)
-
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:
getCssMetaDatain 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:
convertClickInSceneToDateTimein 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:
printin interfaceAgendaSkin- Parameters:
job- printer job used for printing- Since:
- JavaFX 8.0
-