package main;
import java.awt.Color;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.geom.Rectangle2D;
import javax.swing.JComponent;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class JModDisplayLabel extends JComponent {
JModParameterObject jmpo = null;
JModParameterObject jmpo2 = null;
int val1 = 0;
int val2 = 0;
JModDisplayLabel _this = null;
String text = null;
public JModDisplayLabel() {
super();
}
public JModDisplayLabel(int x, int y, int w, JModParameterObject new_jmpo, JModParameterObject new_jmpo2) {
super();
_this = this;
jmpo = new_jmpo;
jmpo2 = new_jmpo2;
this.setFont(new Font("Dialog", Font.PLAIN, 10));
val1 = jmpo.getValue();
if (new_jmpo2!=null)
val2 = jmpo2.getValue();
repaint();
this.setSize(w, 13);
this.setLocation(x-1, y-3);
jmpo.addChangeListener(new cl());
jmpo.par.addChangeListener(new cl());
if (jmpo2!=null) {
jmpo2.addChangeListener(new cl2());
jmpo2.par.addChangeListener(new cl2());
}
}
public void paint(Graphics g) {
g.setColor(Color.BLUE.darker());
g.fillRoundRect(0, 0, this.getSize().width, this.getSize().height-1, 2, 2);
g.setColor(Color.BLACK);
g.drawRoundRect(0, 0, this.getSize().width-1, this.getSize().height-1, 2, 2);
FontMetrics fontMetrics=getFontMetrics(g.getFont());
Rectangle2D r = fontMetrics.getStringBounds(text, g);
g.setColor(Color.WHITE);
g.drawString(text, (int)((getWidth()/2)-r.getCenterX()), 10);
}
class cl implements ChangeListener {
public void stateChanged(ChangeEvent e) {
// if (e.getSource().getClass().getSimpleName().equalsIgnoreCase("JModKnob"))
if (e.getSource() instanceof Parameter)
val1 = ((Parameter) e.getSource()).getValue();
else
if (e.getSource() instanceof JModParameterObject)
val1 = ((JModParameterObject) e.getSource()).getValue();
repaint();
}
}
class cl2 implements ChangeListener {
public void stateChanged(ChangeEvent e) {
// if (e.getSource().getClass().getSimpleName().equalsIgnoreCase("JModKnob"))
if (e.getSource() instanceof Parameter)
val2 = ((Parameter) e.getSource()).getValue();
else
if (e.getSource() instanceof JModParameterObject)
val2 = ((JModParameterObject) e.getSource()).getValue();
repaint();
}
}
public void repaint() {
if (jmpo2==null)
this.text = String.valueOf(val1);
else
this.text = String.valueOf(val1) + "." + String.valueOf(val2);
super.repaint();
}
}