package com.sap.opportunity.ui.client;
import com.extjs.gxt.ui.client.event.Events;
import com.extjs.gxt.ui.client.event.Listener;
import com.extjs.gxt.ui.client.event.SliderEvent;
import com.extjs.gxt.ui.client.widget.ContentPanel;
import com.extjs.gxt.ui.client.widget.LayoutContainer;
import com.extjs.gxt.ui.client.widget.Slider;
import com.extjs.gxt.ui.client.widget.form.LabelField;
import com.extjs.gxt.ui.client.widget.layout.ColumnData;
import com.extjs.gxt.ui.client.widget.layout.ColumnLayout;
import com.extjs.gxt.ui.client.widget.layout.FitLayout;
public class TimeTravelPanel extends LayoutContainer implements Listener<SliderEvent> {
private Slider slider;
private LabelField timeLabel;
private static String defaultTimeLabelContent = "Today";
public TimeTravelPanel() {
setLayout(new FitLayout());
ContentPanel cp = new ContentPanel();
cp.setHeading("Time Travel");
cp.setLayout(new ColumnLayout());
cp.setAutoHeight(true);
setAutoHeight(true);
setTitle("Time Travel");
timeLabel = new LabelField(defaultTimeLabelContent);
cp.add(timeLabel, new ColumnData(100));
slider = new Slider();
slider.setMinValue(-180);
slider.setMaxValue(0);
slider.setIncrement(1);
slider.setWidth(200);
slider.setUseTip(false);
cp.add(slider, new ColumnData(1.0));
addSliderListener(this);
add(cp);
}
public void addSliderListener(Listener<SliderEvent> l) {
slider.addListener(Events.Change, l);
}
private void resetTimeLabel() {
timeLabel.setText(defaultTimeLabelContent);
}
private void setTimeLabel(String text) {
timeLabel.setText(text);
}
@Override
public void handleEvent(SliderEvent sliderEvent) {
if (sliderEvent.getNewValue() < 0) {
setTimeLabel((sliderEvent.getNewValue() * 10) + " sec");
}
else {
resetTimeLabel();
}
}
}