package vn.edu.rmit.examples.complex;
import java.awt.Frame;
import java.awt.Scrollbar;
import java.awt.event.AdjustmentEvent;
import java.awt.event.AdjustmentListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Observable;
import java.util.Observer;
public class SliderView implements Observer {
private int h;
private int v;
private Scrollbar tempControl = new Scrollbar(Scrollbar.HORIZONTAL, 0, 10, -50, 160);
private TemperatureModel model;
private Frame sliderFrame = new Frame("Celsius Slider");
public TemperatureModel getModel() {
return model;
}
public void setModel(TemperatureModel model) {
this.model = model;
}
public SliderView(int h, int v) {
this.h = h;
this.v = v;
}
public void init() {
model.addObserver(this); //Observe the temperature model
sliderFrame.add(tempControl);
tempControl.addAdjustmentListener(new AdjustmentListener() {
@Override
public void adjustmentValueChanged(AdjustmentEvent e) {
model.setC(tempControl.getValue());
}
});
sliderFrame.setSize(250,50);
sliderFrame.setLocation(h, v);
sliderFrame.setVisible(true);
sliderFrame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
e.getWindow().setVisible(false);
System.exit(0);
}
});
}
public void update(Observable t, Object o) {
double temp = ((TemperatureModel)t).getC();
tempControl.setValue((int)temp); // Move the slider thumb
}
}