package org.squidy.nodes.reactivision.remote;
import java.awt.Dimension;
import java.awt.Insets;
import java.awt.Toolkit;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import org.squidy.nodes.ReacTIVision;
import org.squidy.nodes.reactivision.remote.control.ControlServer;
import org.squidy.nodes.reactivision.remote.image.ImageServer;
public class CalibrationWindow extends JFrame {
private static final long serialVersionUID = -5039303428320924913L;
JScrollPane scrollPane;
private CalibrationArea calibrationArea;
private ReacTIVision reacTIVisionInstance;
public CalibrationWindow(final ReacTIVision callingNode, final ControlServer controlServer, final ImageServer imageServer) {
reacTIVisionInstance = callingNode;
calibrationArea = new CalibrationArea(controlServer, imageServer);
JScrollPane scrollPane = new JScrollPane( calibrationArea );
//set start size
Insets insets = getInsets();
Dimension windowDim = calibrationArea.getPreferredSize();
Dimension screenDim = Toolkit.getDefaultToolkit().getScreenSize();
if (windowDim.height > screenDim.height - 50)
windowDim.height = screenDim.height - 50;
if (windowDim.width > screenDim.width)
windowDim.width = screenDim.width;
setSize(windowDim.width + insets.left + insets.right,
windowDim.height + insets.top + insets.bottom);
add( scrollPane );
final WindowAdapter exitListener = new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
controlServer.stopCameraFeed();
reacTIVisionInstance.refreshGridCalibration(ReacTIVision.MODE_OFF);
}
};
addWindowListener(exitListener);
}
}