Class EventLayoutComputer
- java.lang.Object
-
- org.eclipse.nebula.widgets.compositetable.day.internal.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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private class
EventLayoutComputer.EventLayout
-
Field Summary
Fields Modifier and Type Field Description private static int
END
private int
numberOfDivisionsInHour
private static int
START
-
Constructor Summary
Constructors Constructor Description EventLayoutComputer(int numberOfDivisionsInHour)
Construct a DayModel for an IEventEditor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private boolean
columnIsAvailable(int column, CalendarableItem[][] layout, int[] slotsEventSpans)
private float
computeAdditionalSlots(java.util.GregorianCalendar gc)
private int
computeBaseSlot(java.util.GregorianCalendar gc)
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.private int
findColumnForEvent(EventLayoutComputer.EventLayout eventLayout, int[] slotsEventSpans)
private int
findEventColumn(CalendarableItem event, CalendarableItem[][] layout, int[] slotsEventSpans)
private int
getSlotForEndTime(java.util.Date time)
private int
getSlotForStartTime(java.util.Date time)
private int[]
getSlotsForEvent(CalendarableItem event)
private boolean
isNewColumnNeeded(int currentColumn, CalendarableItem[][] layout)
private boolean
isSlotAlreadyOccupiedInColumn(int slot, CalendarableItem[][] layout, int currentColumn)
private int
keepExtraTimeIfEndTimePushesIntoNextTimeSlot(int baseSlot, float additionalSlots)
private void
placeEvent(CalendarableItem event, CalendarableItem[][] eventLayout, int currentColumn, int[] slotsEventSpans)
-
-
-
Field Detail
-
START
private static final int START
- See Also:
- Constant Field Values
-
END
private static final int END
- See Also:
- Constant Field Values
-
numberOfDivisionsInHour
private final int 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)
-
getSlotsForEvent
private int[] getSlotsForEvent(CalendarableItem event)
-
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.
-
findEventColumn
private int findEventColumn(CalendarableItem event, CalendarableItem[][] layout, int[] slotsEventSpans)
-
findColumnForEvent
private int findColumnForEvent(EventLayoutComputer.EventLayout eventLayout, int[] slotsEventSpans)
-
columnIsAvailable
private boolean columnIsAvailable(int column, CalendarableItem[][] layout, int[] slotsEventSpans)
-
placeEvent
private void placeEvent(CalendarableItem event, CalendarableItem[][] eventLayout, int currentColumn, int[] slotsEventSpans)
-
isSlotAlreadyOccupiedInColumn
private boolean isSlotAlreadyOccupiedInColumn(int slot, CalendarableItem[][] layout, int currentColumn)
-
isNewColumnNeeded
private boolean isNewColumnNeeded(int currentColumn, CalendarableItem[][] layout)
-
-