@Override
		public final void tScrollEvent(TScrollEvent e)
			{
				Object eventSource = e.getSource();

				// Update simulation position
				if (eventSource == simulationScroller)
					{
						sim.simX = -e.getScrollValue();
						if (sim.showLighting)
							sim.updateLighting();
					}
				// update light
				else if (eventSource == redLightSlider && (e.getScrollType() == TScrollEvent.FINAL_VALUE || e.getScrollType() == TScrollEvent.VALUE_SET_INTERNALLY))
					{
						double simSpeed = playbackSpeed.getValue();
						playbackSpeed.setValue(0);
						sim.lightMap.setRedLight(redLightSlider.getValue());
						playbackSpeed.setValue(simSpeed);
						if (sim.showLighting)
							sim.updateLighting();
					}
				else if (eventSource == greenLightSlider && (e.getScrollType() == TScrollEvent.FINAL_VALUE || e.getScrollType() == TScrollEvent.VALUE_SET_INTERNALLY))
					{
						double simSpeed = playbackSpeed.getValue();
						playbackSpeed.setValue(0);
						sim.lightMap.setGreenLight(greenLightSlider.getValue());
						playbackSpeed.setValue(simSpeed);
						if (sim.showLighting)
							sim.updateLighting();
					}
				else if (eventSource == blueLightSlider && (e.getScrollType() == TScrollEvent.FINAL_VALUE || e.getScrollType() == TScrollEvent.VALUE_SET_INTERNALLY))
					{
						double simSpeed = playbackSpeed.getValue();
						playbackSpeed.setValue(0);
						sim.lightMap.setBlueLight(blueLightSlider.getValue());
						playbackSpeed.setValue(simSpeed);
						if (sim.showLighting)
							sim.updateLighting();
					}
			}