@Override
	public void stateChanged(ChangeEvent evt) {

		if (evt.getSource().equals(targetDayPicker.getModel())) {

			targetDay.set(	targetDayPicker.getModel().getYear(), 
							targetDayPicker.getModel().getMonth(), 
							targetDayPicker.getModel().getDay());
			updateRosterList();
			updateTripList();
		}
		
		if (evt.getSource().equals(detailsStartTimeSpinner)) {
			TripComponent t = tripList.getSelectedValue();
			if (t == null)
				return;
			Date d = (Date)detailsStartTimeSpinner.getValue();
			
			Calendar c = Calendar.getInstance();
			c.setTime(d);
			int m = c.get(Calendar.MINUTE);
			if (m % 15 != 0) {
				if (m%15 > 8) {
					m -= m%15;
				}
				else {
					m += 15 - m%15;
				}
				c.set(Calendar.MINUTE, m);
			}
			
			t.getTrip().setTripStartTime(c.getTime());
			detailsStartTimeSpinner.setValue (c.getTime());
			return;			
		}
		
		if (evt.getSource().equals(tabpanePlanningSteps)) {
			
			showAllRivers.setVisible(tabpanePlanningSteps.getSelectedIndex() == 0);
			
			if (tabpanePlanningSteps.getSelectedIndex() == 3)
				updateTimePanel();
			if (tabpanePlanningSteps.getSelectedIndex() == 4)
				panelPreview.checkTrips();
		}
	
	}