Class EventLayoutComputer


  • public class EventLayoutComputer
    extends java.lang.Object
    Represents a model of how the events are laid out in a particular day
    Since:
    3.2
    • Constructor Detail

      • EventLayoutComputer

        public EventLayoutComputer​(int numberOfDivisionsInHour)
        Construct a DayModel for an IEventEditor. TODO: We could make numberOfDivisionsInHour a parameter to getEventLayout()
        Parameters:
        numberOfDivisionsInHour -
    • Method Detail

      • computeBaseSlot

        private int computeBaseSlot​(java.util.GregorianCalendar gc)
      • computeAdditionalSlots

        private float computeAdditionalSlots​(java.util.GregorianCalendar gc)
      • getSlotForStartTime

        private int getSlotForStartTime​(java.util.Date time)
      • getSlotForEndTime

        private int getSlotForEndTime​(java.util.Date time)
      • keepExtraTimeIfEndTimePushesIntoNextTimeSlot

        private int keepExtraTimeIfEndTimePushesIntoNextTimeSlot​(int baseSlot,
                                                                 float additionalSlots)
      • computeEventLayout

        public CalendarableItem[][] computeEventLayout​(java.util.List calendarables)
        Given an unsorted list of Calendarables, each of which has a start and an end time, this method will compute the day row coordinates for each Calendarable, set that information into each Calendarable, and will return the number of columns that will be required to lay out the given list of Calendarables.
        Parameters:
        calendarables - A list of Calenderables
        Returns:
        The number of columns required to lay out those Calendarables.
      • columnIsAvailable

        private boolean columnIsAvailable​(int column,
                                          CalendarableItem[][] layout,
                                          int[] slotsEventSpans)
      • isSlotAlreadyOccupiedInColumn

        private boolean isSlotAlreadyOccupiedInColumn​(int slot,
                                                      CalendarableItem[][] layout,
                                                      int currentColumn)
      • isNewColumnNeeded

        private boolean isNewColumnNeeded​(int currentColumn,
                                          CalendarableItem[][] layout)