[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; } } } ]]>