[Event(name="selectTripItem", type="tripvisUI.events.TimelineEvent")]
0)
{
lastDate.setTime((_hotelsRow[0] as TripScheduleEntry).tripItem.timePeriod.startDate.getTime());
}
}
else
{
for each(var tripScheduleEntry: TripScheduleEntry in _visitsRow)
{
var tripItem2: TripItem = tripScheduleEntry.tripItem;
if (tripItem2.timePeriod.endDate.getTime() > lastDate.getTime())
lastDate.setTime(tripItem2.timePeriod.endDate.getTime());
}
lastDate.minutes++;
}
var newStartDate: Date = new Date(lastDate);
var newEndDate: Date = new Date(lastDate.getTime() + tripItem.timePeriod.getDuration());
_timelineController.updateTripItemStartDate(tripItem, newStartDate);
_timelineController.updateTripItemEndDate(tripItem, newEndDate);
_visitsRow.addItem(new TripScheduleEntry(tripItem));
}
private function addHotel(tripItem: TripItem): void
{
var hotelStartDate: Date = new Date(_timelineController.timelineStartDate);
if (_hotelsRow.length > 0)
{
// laatste hotel zoeken
for each(var tripScheduleEntry: TripScheduleEntry in _hotelsRow)
{
var tripItem2: TripItem = tripScheduleEntry.tripItem;
if (tripItem2.timePeriod.endDate.getTime() > hotelStartDate.getTime())
hotelStartDate.setTime(tripItem2.timePeriod.endDate.getTime());
}
hotelStartDate.minutes++;
}
else
{
if (_visitsRow.length > 0)
{
// hotel int begin van alle visits zetten
hotelStartDate.setTime(_timelineController.timelineEndDate);
for each(var tripScheduleEntry2: TripScheduleEntry in _visitsRow)
{
var tripItem3: TripItem = tripScheduleEntry2.tripItem;
if (tripItem3.timePeriod.startDate.getTime() < hotelStartDate.getTime())
hotelStartDate.setTime(tripItem3.timePeriod.startDate.getTime());
}
}
}
var newStartDate: Date = new Date(hotelStartDate);
var newEndDate: Date = new Date(hotelStartDate.getTime() + tripItem.timePeriod.getDuration());
_timelineController.updateTripItemStartDate(tripItem, newStartDate);
_timelineController.updateTripItemEndDate(tripItem, newEndDate);
_hotelsRow.addItem(new TripScheduleEntry(tripItem));
}
private function timelineController_tripItemRemoved(event: TimelineControllerEvent): void
{
var tripScheduleEntry: TripScheduleEntry;
for each (tripScheduleEntry in _visitsRow)
{
if (tripScheduleEntry.tripItem == event.tripItem)
{
_visitsRow.removeItemAt( _visitsRow.getItemIndex(tripScheduleEntry) );
this.updateTimeline();
return;
}
}
for each (tripScheduleEntry in _hotelsRow)
{
if (tripScheduleEntry.tripItem == event.tripItem)
{
_hotelsRow.removeItemAt( _hotelsRow.getItemIndex(tripScheduleEntry) );
this.updateTimeline();
return;
}
}
}
private function timelineController_tripItemsCleared(event: TimelineControllerEvent): void
{
this._hotelsRow.removeAll();
this._visitsRow.removeAll();
this.updateTimeline();
}
private function basketController_tripItemUpdated(event: BasketControllerEvent): void
{
this.updateTimeline();
}
//handler bij het aanklikken van een IScheduleEntry
private function scheduleViewer_selectScheduleEntry(event: EntryEvent): void
{
var tripItem: TripItem = (event.scheduleEntry as TripScheduleEntry).tripItem;
//Event doorgeven als een TimelineEvent:
dispatchEvent( new TimelineEvent("selectTripItem", tripItem) );
}
private function onZoom( value : Number ) : void
{
zoom = value;
}
private function onScrollTimeline( position : Number ) : void
{
scheduleViewer.xPosition = position;
}
private function onScrollScheduleViewer( event : ScrollEvent ) : void
{
if( event.direction == ScrollEventDirection.HORIZONTAL )
{
timelineFlexlib.xPosition = event.position;
}
}
private function gotoNow() : void
{
var time : Date = new Date();
scheduleViewer.moveToTime( time.getTime() - startDate.getTime() );
}
public function updateTimeline(): void
{
this.scheduleViewer.update();
}
public function selectTripItem(tripItem: TripItem): void
{
var tripScheduleEntryRenderers: Dictionary = this.scheduleViewer.schedule.entryViewer.visibleRenderers;
for each(var tripScheduleEntryRenderer: TripScheduleEntryRenderer in tripScheduleEntryRenderers)
{
var timelineTripItem: TripItem = tripScheduleEntryRenderer.tripItem;
if (tripItem == timelineTripItem)
{
tripScheduleEntryRenderer.selected = true;
}
else
{
tripScheduleEntryRenderer.selected = false;
}
}
}
]]>