package org.reprap.gui;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
import org.reprap.devices.GenericStepperMotor;
/**
*
* Allow a user to adjust the Z axis positioning prior to production.
*
*/
/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class CalibrateZAxis extends javax.swing.JDialog {
private JTextField message;
private JRadioButton radio1step;
private JRadioButton radio1mm;
private JRadioButton radio10mm;
private JButton buttonZInc;
private JButton buttonZDec;
private JRadioButton radio10step;
private JRadioButton radio50step;
private ButtonGroup stepSizeGroup;
private JButton okButton;
private GenericStepperMotor motor;
private double scaleZ;
private int motorPosition;
private int motorSpeed;
public CalibrateZAxis(JFrame frame, GenericStepperMotor motor, double scaleZ, int speed) throws IOException {
super(frame);
this.motor = motor;
this.scaleZ = scaleZ;
this.motorSpeed = speed;
initGUI();
motorPosition = motor.getPosition();
}
private void initGUI() {
try {
{
{
stepSizeGroup = new ButtonGroup();
}
okButton = new JButton();
getContentPane().add(okButton);
okButton.setText("Continue...");
okButton.setBounds(105, 147, 105, 28);
okButton.setMnemonic(java.awt.event.KeyEvent.VK_ENTER);
okButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
okButtonActionPerformed(evt);
}
});
}
{
radio1step = new JRadioButton();
getContentPane().add(radio1step);
radio1step.setText("1 step");
radio1step.setBounds(28, 14, 150, 28);
stepSizeGroup.add(radio1step);
}
{
radio10step = new JRadioButton();
getContentPane().add(radio10step);
radio10step.setText("10 steps");
radio10step.setBounds(28, 35, 147, 28);
stepSizeGroup.add(radio10step);
}
{
radio50step = new JRadioButton();
getContentPane().add(radio50step);
radio50step.setText("50 steps");
radio50step.setBounds(28, 56, 147, 28);
stepSizeGroup.add(radio50step);
}
{
radio1mm = new JRadioButton();
getContentPane().add(radio1mm);
radio1mm.setText("1mm");
radio1mm.setBounds(28, 77, 147, 28);
stepSizeGroup.add(radio1mm);
}
{
radio10mm = new JRadioButton();
getContentPane().add(radio10mm);
radio10mm.setText("10mm");
radio10mm.setBounds(28, 98, 147, 28);
stepSizeGroup.add(radio10mm);
}
{
buttonZInc = new JButton();
getContentPane().add(buttonZInc);
buttonZInc.setText("Increase Z");
buttonZInc.setBounds(182, 28, 119, 28);
buttonZInc.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
buttonZIncActionPerformed(evt);
}
});
}
{
buttonZDec = new JButton();
getContentPane().add(buttonZDec);
buttonZDec.setText("Decrease Z");
buttonZDec.setBounds(182, 63, 119, 28);
buttonZDec.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
buttonZDecActionPerformed(evt);
}
});
}
{
getContentPane().setLayout(null);
this.setTitle("Calibrate Z axis");
}
this.setSize(316, 214);
this.getRootPane().setDefaultButton(okButton);
} catch (Exception e) {
e.printStackTrace();
}
}
private double getStepCount() {
double multiplier;
if (radio1step.isSelected())
multiplier = 1;
else if (radio10step.isSelected())
multiplier = 10;
else if (radio50step.isSelected())
multiplier = 50;
else if (radio1mm.isSelected())
multiplier = scaleZ;
else if (radio10mm.isSelected())
multiplier = scaleZ * 10.0;
else
multiplier = 1;
return multiplier;
}
private void okButtonActionPerformed(ActionEvent evt) {
synchronized(this) {
notify();
}
}
private void buttonZIncActionPerformed(ActionEvent evt) {
motorPosition += getStepCount();
setPosition();
}
private void buttonZDecActionPerformed(ActionEvent evt) {
motorPosition -= getStepCount();
setPosition();
}
private void setPosition() {
try {
motor.seek(motorSpeed, motorPosition);
} catch (Exception ex) {
JOptionPane.showMessageDialog(null, "Exception during calibration: " + ex);
}
}
}