package uva.qls.interpreter.gui.elements;
import java.awt.Dimension;
import java.awt.Font;
import java.util.Hashtable;
import javax.swing.JLabel;
import javax.swing.JSlider;
import uva.qls.ast.component.Slider;
public class UISlider extends UIComponent<JSlider> {
private Slider slider;
public UISlider(Slider _slider){
this.slider=_slider;
}
private JSlider setSlider(JSlider toComponent){
Hashtable<Integer, JLabel> labels =new Hashtable<Integer, JLabel>();
toComponent.setMinimum(1);
toComponent.setMaximum(100);
toComponent.setMinorTickSpacing(1);
toComponent.setMajorTickSpacing(10);
toComponent.setPaintTicks(true);
labels.put(0, new JLabel(this.slider.getSliderValues().getX()));
labels.put(100, new JLabel(this.slider.getSliderValues().getY()));
toComponent.setLabelTable(labels);
toComponent.setPaintLabels(true);
return toComponent;
}
@Override
public JSlider getComponent() {
JSlider myslider = new JSlider();
myslider=this.setSlider(myslider);
return this.applyStyles(myslider);
}
@Override
public JSlider applyStyles(JSlider toComponent) {
Font font = new Font(slider.getStyle().fontName(), Font.PLAIN, slider.getStyle().fontSize());
Dimension dimension = new Dimension(slider.getStyle().width(), slider.getStyle().height());
toComponent.setPreferredSize(dimension);
toComponent.setSize(dimension);
toComponent.setForeground(slider.getStyle().color());
toComponent.setFont(font);
return toComponent;
}
}