/*
* Copyright 2007-2008 Volker Fritzsch
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package motej.demos.nunchuk;
import java.awt.FlowLayout;
import java.util.Dictionary;
import java.util.Hashtable;
import javax.swing.BorderFactory;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSlider;
/**
*
* <p>
* @author <a href="mailto:vfritzsch@users.sourceforge.net">Volker Fritzsch</a>
*/
@SuppressWarnings("serial")
public class AccelerometerPanel extends JPanel {
private JSlider sliderX = new JSlider(JSlider.VERTICAL, 0, 10, 5);
private JSlider sliderY = new JSlider(JSlider.VERTICAL, 0, 10, 5);
private JSlider sliderZ = new JSlider(JSlider.VERTICAL, 0, 10, 5);
public AccelerometerPanel() {
super();
setLayout(new FlowLayout());
}
public void accelerometerValueChanged(int x, int y, int z) {
sliderX.setValue(x);
sliderY.setValue(y);
sliderZ.setValue(z);
}
public void setCalibrationDataX(int zeroForce, int earthGravityForce) {
sliderX.setMinimum(0);
sliderX.setMaximum(earthGravityForce * 2);
Dictionary<Integer, JComponent> labels = new Hashtable<Integer, JComponent>();
labels.put(zeroForce, new JLabel("0 G"));
labels.put(earthGravityForce, new JLabel("1 G"));
sliderX.setLabelTable(labels);
sliderX.setPaintTrack(true);
sliderX.setPaintTicks(true);
sliderX.setPaintLabels(true);
sliderX.setBorder(BorderFactory.createTitledBorder("X"));
add(sliderX);
repaint();
}
public void setCalibrationDataY(int zeroForce, int earthGravityForce) {
sliderY.setMinimum(0);
sliderY.setMaximum(earthGravityForce * 2);
Dictionary<Integer, JComponent> labels = new Hashtable<Integer, JComponent>();
labels.put(zeroForce, new JLabel("0 G"));
labels.put(earthGravityForce, new JLabel("1 G"));
sliderY.setLabelTable(labels);
sliderY.setPaintTrack(true);
sliderY.setPaintTicks(true);
sliderY.setPaintLabels(true);
sliderY.setBorder(BorderFactory.createTitledBorder("Y"));
add(sliderY);
repaint();
}
public void setCalibrationDataZ(int zeroForce, int earthGravityForce) {
sliderZ.setMinimum(0);
sliderZ.setMaximum(earthGravityForce * 2);
Dictionary<Integer, JComponent> labels = new Hashtable<Integer, JComponent>();
labels.put(zeroForce, new JLabel("0 G"));
labels.put(earthGravityForce, new JLabel("1 G"));
sliderZ.setLabelTable(labels);
sliderZ.setPaintTrack(true);
sliderZ.setPaintTicks(true);
sliderZ.setPaintLabels(true);
sliderZ.setBorder(BorderFactory.createTitledBorder("Z"));
add(sliderZ);
repaint();
}
}