Startup
This commit is contained in:
@@ -22,6 +22,9 @@ import ch.psi.pshell.epics.ChannelDouble;
|
||||
import ch.psi.pshell.epics.ChannelDoubleArray;
|
||||
import ch.psi.pshell.epics.ChannelInteger;
|
||||
import ch.psi.pshell.epics.ChannelIntegerArray;
|
||||
import ch.psi.pshell.imaging.Colormap;
|
||||
import ch.psi.pshell.imaging.ColormapSource;
|
||||
import ch.psi.pshell.imaging.ColormapSource.ColormapSourceConfig;
|
||||
import ch.psi.pshell.ui.App;
|
||||
import ch.psi.pshell.imaging.Data;
|
||||
import ch.psi.pshell.imaging.Overlay;
|
||||
@@ -31,6 +34,7 @@ import ch.psi.pshell.imaging.Pen;
|
||||
import static ch.psi.pshell.imaging.Renderer.PEN_ERROR_TEXT;
|
||||
import ch.psi.pshell.imaging.Renderer.Profile;
|
||||
import static ch.psi.pshell.imaging.RendererMenu.PEN_MARKER;
|
||||
import ch.psi.pshell.imaging.RendererMode;
|
||||
import ch.psi.pshell.imaging.Source;
|
||||
import ch.psi.pshell.imaging.Utils;
|
||||
import ch.psi.pshell.scripting.InterpreterResult;
|
||||
@@ -182,7 +186,7 @@ public class Cameras extends Panel {
|
||||
public ArrayList<Integer> getCalibration() {
|
||||
return (ArrayList<Integer>) state.get("calibration");
|
||||
}
|
||||
|
||||
|
||||
public double getCalOffsetX(){
|
||||
ArrayList<Integer> calibration = getCalibration();
|
||||
double ret = - (calibration.get(0) + calibration.get(2))/2;
|
||||
@@ -393,7 +397,40 @@ public class Cameras extends Panel {
|
||||
}
|
||||
renderer.refresh();
|
||||
}
|
||||
|
||||
void updateZoom(){
|
||||
try{
|
||||
buttonZoomStretch.setSelected(renderer.getMode() == RendererMode.Stretch);
|
||||
buttonZoomFit.setSelected(renderer.getMode() == RendererMode.Fit);
|
||||
buttonZoomNormal.setSelected( (renderer.getMode() == RendererMode.Fixed) || ((renderer.getMode() == RendererMode.Zoom) && (renderer.getZoom()==1.0)));
|
||||
buttonZoom05.setSelected((renderer.getMode() == RendererMode.Zoom) && (renderer.getZoom()==0.5));
|
||||
buttonZoom025.setSelected((renderer.getMode() == RendererMode.Zoom) && (renderer.getZoom()==0.25));
|
||||
}catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
void updateColormap(){
|
||||
try{
|
||||
if ((camera!=null) && (camera instanceof ColormapSource)){
|
||||
ColormapSourceConfig config = ((ColormapSource)camera).getConfig();
|
||||
buttonGrayscale.setSelected(config.colormap == Colormap.Grayscale);
|
||||
buttonRainbow.setSelected(config.colormap == Colormap.Rainbow);
|
||||
buttonTemperature.setSelected(config.colormap == Colormap.Temperature);
|
||||
|
||||
buttonFullRange.setSelected(config.isDefaultColormap());
|
||||
buttonAutomatic.setSelected(config.colormapAutomatic);
|
||||
buttonManual.setSelected((!buttonFullRange.isSelected()) && (!buttonAutomatic.isSelected()));
|
||||
spinnerMin.setEnabled(buttonManual.isSelected());
|
||||
spinnerMax.setEnabled(buttonManual.isSelected());
|
||||
spinnerMin.setValue(Double.isNaN(config.colormapMin) ? 0 : Math.min(Math.max((int)config.colormapMin, 0), 65535));
|
||||
spinnerMax.setValue(Double.isNaN(config.colormapMax) ? 0 : Math.min(Math.max((int)config.colormapMax, 0), 65535));
|
||||
}
|
||||
}catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onTimer() {
|
||||
textState.setText((camera == null) ? "" : camera.getState().toString());
|
||||
@@ -407,6 +444,8 @@ public class Cameras extends Panel {
|
||||
Logger.getLogger(Cameras.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
}
|
||||
updateZoom();
|
||||
updateColormap();
|
||||
}
|
||||
|
||||
Pen fitPen = new Pen(new Color(192, 105, 0), 1);
|
||||
@@ -761,59 +800,58 @@ public class Camtool extends ArraySource {
|
||||
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
|
||||
private void initComponents() {
|
||||
|
||||
renderer = new ch.psi.pshell.imaging.Renderer();
|
||||
jLabel1 = new javax.swing.JLabel();
|
||||
comboCameras = new javax.swing.JComboBox();
|
||||
jLabel2 = new javax.swing.JLabel();
|
||||
textState = new javax.swing.JTextField();
|
||||
buttonConfig = new javax.swing.JButton();
|
||||
buttonSetup = new javax.swing.JButton();
|
||||
checkCamtool = new javax.swing.JCheckBox();
|
||||
buttonFit = new javax.swing.JToggleButton();
|
||||
buttonPause = new javax.swing.JToggleButton();
|
||||
buttonMarker = new javax.swing.JToggleButton();
|
||||
buttonSave = new javax.swing.JToggleButton();
|
||||
buttonReticle = new javax.swing.JToggleButton();
|
||||
buttonGroup1 = new javax.swing.ButtonGroup();
|
||||
buttonGroup2 = new javax.swing.ButtonGroup();
|
||||
buttonGroup3 = new javax.swing.ButtonGroup();
|
||||
jPanel1 = new javax.swing.JPanel();
|
||||
buttonGrabBackground = new javax.swing.JButton();
|
||||
renderer = new ch.psi.pshell.imaging.Renderer();
|
||||
textState = new javax.swing.JTextField();
|
||||
buttonSave = new javax.swing.JToggleButton();
|
||||
buttonPause = new javax.swing.JToggleButton();
|
||||
jLabel2 = new javax.swing.JLabel();
|
||||
buttonFit = new javax.swing.JToggleButton();
|
||||
comboCameras = new javax.swing.JComboBox();
|
||||
buttonSetup = new javax.swing.JButton();
|
||||
buttonMarker = new javax.swing.JToggleButton();
|
||||
jLabel1 = new javax.swing.JLabel();
|
||||
buttonConfig = new javax.swing.JButton();
|
||||
buttonReticle = new javax.swing.JToggleButton();
|
||||
jPanel2 = new javax.swing.JPanel();
|
||||
buttonGrayscale = new javax.swing.JRadioButton();
|
||||
buttonRainbow = new javax.swing.JRadioButton();
|
||||
buttonTemperature = new javax.swing.JRadioButton();
|
||||
buttonFullRange = new javax.swing.JRadioButton();
|
||||
buttonManual = new javax.swing.JRadioButton();
|
||||
jLabel3 = new javax.swing.JLabel();
|
||||
jLabel4 = new javax.swing.JLabel();
|
||||
spinnerMin = new javax.swing.JSpinner();
|
||||
spinnerMax = new javax.swing.JSpinner();
|
||||
buttonAutomatic = new javax.swing.JRadioButton();
|
||||
jPanel3 = new javax.swing.JPanel();
|
||||
buttonZoomFit = new javax.swing.JRadioButton();
|
||||
buttonZoomStretch = new javax.swing.JRadioButton();
|
||||
buttonZoomNormal = new javax.swing.JRadioButton();
|
||||
buttonZoom025 = new javax.swing.JRadioButton();
|
||||
buttonZoom05 = new javax.swing.JRadioButton();
|
||||
checkCamtool = new javax.swing.JCheckBox();
|
||||
|
||||
jLabel1.setText("Camera:");
|
||||
|
||||
comboCameras.setMaximumRowCount(30);
|
||||
comboCameras.addActionListener(new java.awt.event.ActionListener() {
|
||||
buttonGrabBackground.setText("Grab Background");
|
||||
buttonGrabBackground.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
comboCamerasActionPerformed(evt);
|
||||
buttonGrabBackgroundActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
jLabel2.setText("State:");
|
||||
|
||||
textState.setEditable(false);
|
||||
textState.setHorizontalAlignment(javax.swing.JTextField.CENTER);
|
||||
textState.setDisabledTextColor(new java.awt.Color(0, 0, 0));
|
||||
textState.setEnabled(false);
|
||||
|
||||
buttonConfig.setText("Config");
|
||||
buttonConfig.addActionListener(new java.awt.event.ActionListener() {
|
||||
buttonSave.setText("Save Snapshot");
|
||||
buttonSave.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
buttonConfigActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
buttonSetup.setText("Setup");
|
||||
buttonSetup.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
buttonSetupActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
checkCamtool.setSelected(true);
|
||||
checkCamtool.setText("Camtool");
|
||||
|
||||
buttonFit.setSelected(true);
|
||||
buttonFit.setText("Fit");
|
||||
buttonFit.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
buttonFitActionPerformed(evt);
|
||||
buttonSaveActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -824,6 +862,30 @@ public class Camtool extends ArraySource {
|
||||
}
|
||||
});
|
||||
|
||||
jLabel2.setText("State:");
|
||||
|
||||
buttonFit.setSelected(true);
|
||||
buttonFit.setText("Fit");
|
||||
buttonFit.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
buttonFitActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
comboCameras.setMaximumRowCount(30);
|
||||
comboCameras.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
comboCamerasActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
buttonSetup.setText("Setup");
|
||||
buttonSetup.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
buttonSetupActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
buttonMarker.setText("Marker");
|
||||
buttonMarker.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
@@ -831,10 +893,12 @@ public class Camtool extends ArraySource {
|
||||
}
|
||||
});
|
||||
|
||||
buttonSave.setText("Save Snapshot");
|
||||
buttonSave.addActionListener(new java.awt.event.ActionListener() {
|
||||
jLabel1.setText("Camera:");
|
||||
|
||||
buttonConfig.setText("Config");
|
||||
buttonConfig.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
buttonSaveActionPerformed(evt);
|
||||
buttonConfigActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -846,36 +910,27 @@ public class Camtool extends ArraySource {
|
||||
}
|
||||
});
|
||||
|
||||
buttonGrabBackground.setText("Grab Background");
|
||||
buttonGrabBackground.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
buttonGrabBackgroundActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
|
||||
this.setLayout(layout);
|
||||
layout.setHorizontalGroup(
|
||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
|
||||
jPanel1.setLayout(jPanel1Layout);
|
||||
jPanel1Layout.setHorizontalGroup(
|
||||
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel1Layout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(renderer, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
|
||||
.addComponent(checkCamtool)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
|
||||
.addComponent(jLabel1)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(comboCameras, 0, 170, Short.MAX_VALUE)
|
||||
.addComponent(comboCameras, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(buttonConfig)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(buttonSetup)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGap(50, 50, 50)
|
||||
.addComponent(jLabel2)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(textState, javax.swing.GroupLayout.PREFERRED_SIZE, 120, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
|
||||
.addComponent(buttonPause)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(buttonMarker)
|
||||
@@ -890,28 +945,27 @@ public class Camtool extends ArraySource {
|
||||
.addContainerGap())
|
||||
);
|
||||
|
||||
layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonConfig, buttonSetup});
|
||||
jPanel1Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonConfig, buttonSetup});
|
||||
|
||||
layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonFit, buttonMarker, buttonPause, buttonReticle});
|
||||
jPanel1Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonFit, buttonMarker, buttonPause, buttonReticle});
|
||||
|
||||
layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonGrabBackground, buttonSave});
|
||||
jPanel1Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonGrabBackground, buttonSave});
|
||||
|
||||
layout.setVerticalGroup(
|
||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
|
||||
jPanel1Layout.setVerticalGroup(
|
||||
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel1Layout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(jLabel1)
|
||||
.addComponent(comboCameras, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(jLabel2)
|
||||
.addComponent(textState, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(buttonConfig)
|
||||
.addComponent(buttonSetup)
|
||||
.addComponent(checkCamtool))
|
||||
.addComponent(buttonSetup))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(renderer, javax.swing.GroupLayout.DEFAULT_SIZE, 307, Short.MAX_VALUE)
|
||||
.addComponent(renderer, javax.swing.GroupLayout.DEFAULT_SIZE, 498, Short.MAX_VALUE)
|
||||
.addGap(12, 12, 12)
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(buttonPause)
|
||||
.addComponent(buttonFit)
|
||||
.addComponent(buttonMarker)
|
||||
@@ -921,8 +975,237 @@ public class Camtool extends ArraySource {
|
||||
.addContainerGap())
|
||||
);
|
||||
|
||||
layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {comboCameras, textState});
|
||||
jPanel1Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {comboCameras, textState});
|
||||
|
||||
jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Colormap"));
|
||||
|
||||
buttonGroup2.add(buttonGrayscale);
|
||||
buttonGrayscale.setText("Grayscale");
|
||||
buttonGrayscale.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
onChangeColormap(evt);
|
||||
}
|
||||
});
|
||||
|
||||
buttonGroup2.add(buttonRainbow);
|
||||
buttonRainbow.setText("Rainbow");
|
||||
buttonRainbow.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
onChangeColormap(evt);
|
||||
}
|
||||
});
|
||||
|
||||
buttonGroup2.add(buttonTemperature);
|
||||
buttonTemperature.setText("Temperature");
|
||||
buttonTemperature.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
onChangeColormap(evt);
|
||||
}
|
||||
});
|
||||
|
||||
buttonGroup3.add(buttonFullRange);
|
||||
buttonFullRange.setText("Full range");
|
||||
buttonFullRange.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
onChangeColormap(evt);
|
||||
}
|
||||
});
|
||||
|
||||
buttonGroup3.add(buttonManual);
|
||||
buttonManual.setText("Manual");
|
||||
buttonManual.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
onChangeColormap(evt);
|
||||
}
|
||||
});
|
||||
|
||||
jLabel3.setText("min:");
|
||||
|
||||
jLabel4.setText("max:");
|
||||
|
||||
spinnerMin.setModel(new javax.swing.SpinnerNumberModel(0, 0, 65535, 1));
|
||||
spinnerMin.setEnabled(false);
|
||||
spinnerMin.setPreferredSize(new java.awt.Dimension(60, 20));
|
||||
spinnerMin.addChangeListener(new javax.swing.event.ChangeListener() {
|
||||
public void stateChanged(javax.swing.event.ChangeEvent evt) {
|
||||
onChangeColormapRange(evt);
|
||||
}
|
||||
});
|
||||
|
||||
spinnerMax.setModel(new javax.swing.SpinnerNumberModel(255, 0, 65535, 1));
|
||||
spinnerMax.setEnabled(false);
|
||||
spinnerMax.setPreferredSize(new java.awt.Dimension(60, 20));
|
||||
spinnerMax.addChangeListener(new javax.swing.event.ChangeListener() {
|
||||
public void stateChanged(javax.swing.event.ChangeEvent evt) {
|
||||
onChangeColormapRange(evt);
|
||||
}
|
||||
});
|
||||
|
||||
buttonGroup3.add(buttonAutomatic);
|
||||
buttonAutomatic.setText("Automatic");
|
||||
buttonAutomatic.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
onChangeColormap(evt);
|
||||
}
|
||||
});
|
||||
|
||||
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
|
||||
jPanel2.setLayout(jPanel2Layout);
|
||||
jPanel2Layout.setHorizontalGroup(
|
||||
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel2Layout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
|
||||
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(buttonFullRange)
|
||||
.addComponent(buttonManual))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
|
||||
.addComponent(jLabel4)
|
||||
.addComponent(jLabel3))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(spinnerMax, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(spinnerMin, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addContainerGap())
|
||||
.addGroup(jPanel2Layout.createSequentialGroup()
|
||||
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(buttonGrayscale)
|
||||
.addComponent(buttonRainbow)
|
||||
.addComponent(buttonTemperature)
|
||||
.addComponent(buttonAutomatic))
|
||||
.addGap(0, 0, Short.MAX_VALUE))))
|
||||
);
|
||||
jPanel2Layout.setVerticalGroup(
|
||||
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel2Layout.createSequentialGroup()
|
||||
.addComponent(buttonGrayscale)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(buttonRainbow)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(buttonTemperature)
|
||||
.addGap(18, 18, 18)
|
||||
.addComponent(buttonAutomatic)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
|
||||
.addGroup(jPanel2Layout.createSequentialGroup()
|
||||
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(buttonFullRange)
|
||||
.addComponent(jLabel3)
|
||||
.addComponent(spinnerMin, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(buttonManual))
|
||||
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
|
||||
.addComponent(jLabel4)
|
||||
.addComponent(spinnerMax, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
|
||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
);
|
||||
|
||||
jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder("Zoom"));
|
||||
|
||||
buttonGroup1.add(buttonZoomFit);
|
||||
buttonZoomFit.setText("Fit");
|
||||
buttonZoomFit.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
buttonZoomFitActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
buttonGroup1.add(buttonZoomStretch);
|
||||
buttonZoomStretch.setText("Stretch");
|
||||
buttonZoomStretch.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
buttonZoomStretchActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
buttonGroup1.add(buttonZoomNormal);
|
||||
buttonZoomNormal.setText("Normal");
|
||||
buttonZoomNormal.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
buttonZoomNormalActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
buttonGroup1.add(buttonZoom025);
|
||||
buttonZoom025.setText("0.25");
|
||||
buttonZoom025.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
buttonZoom025ActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
buttonGroup1.add(buttonZoom05);
|
||||
buttonZoom05.setText("0.5");
|
||||
buttonZoom05.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
buttonZoom05ActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
|
||||
jPanel3.setLayout(jPanel3Layout);
|
||||
jPanel3Layout.setHorizontalGroup(
|
||||
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel3Layout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addComponent(buttonZoomFit)
|
||||
.addComponent(buttonZoomStretch)
|
||||
.addComponent(buttonZoomNormal)
|
||||
.addComponent(buttonZoom025)
|
||||
.addComponent(buttonZoom05))
|
||||
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
);
|
||||
jPanel3Layout.setVerticalGroup(
|
||||
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(jPanel3Layout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addComponent(buttonZoomFit)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(buttonZoomStretch)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(buttonZoom025)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(buttonZoom05)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(buttonZoomNormal)
|
||||
.addContainerGap())
|
||||
);
|
||||
|
||||
checkCamtool.setSelected(true);
|
||||
checkCamtool.setText("Use Camtool");
|
||||
|
||||
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
|
||||
this.setLayout(layout);
|
||||
layout.setHorizontalGroup(
|
||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
|
||||
.addComponent(checkCamtool)
|
||||
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addGap(0, 0, 0))
|
||||
);
|
||||
layout.setVerticalGroup(
|
||||
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addContainerGap()
|
||||
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
.addGroup(layout.createSequentialGroup()
|
||||
.addComponent(checkCamtool)
|
||||
.addGap(61, 61, 61)
|
||||
.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addGap(0, 0, Short.MAX_VALUE))
|
||||
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
|
||||
.addGap(0, 0, 0))
|
||||
);
|
||||
}// </editor-fold>//GEN-END:initComponents
|
||||
|
||||
private void comboCamerasActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_comboCamerasActionPerformed
|
||||
@@ -1043,20 +1326,97 @@ public class Camtool extends ArraySource {
|
||||
}
|
||||
}//GEN-LAST:event_buttonGrabBackgroundActionPerformed
|
||||
|
||||
private void buttonZoomFitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonZoomFitActionPerformed
|
||||
try {
|
||||
renderer.setMode(RendererMode.Fit);
|
||||
} catch (Exception ex) {
|
||||
showException(ex);
|
||||
}
|
||||
}//GEN-LAST:event_buttonZoomFitActionPerformed
|
||||
|
||||
private void buttonZoomStretchActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonZoomStretchActionPerformed
|
||||
try {
|
||||
renderer.setMode(RendererMode.Stretch);
|
||||
} catch (Exception ex) {
|
||||
showException(ex);
|
||||
}
|
||||
}//GEN-LAST:event_buttonZoomStretchActionPerformed
|
||||
|
||||
private void buttonZoomNormalActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonZoomNormalActionPerformed
|
||||
try {
|
||||
renderer.setMode(RendererMode.Fixed);
|
||||
} catch (Exception ex) {
|
||||
showException(ex);
|
||||
}
|
||||
}//GEN-LAST:event_buttonZoomNormalActionPerformed
|
||||
|
||||
private void onChangeColormap(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_onChangeColormap
|
||||
try {
|
||||
if ((camera != null) && (camera instanceof ColormapSource)){
|
||||
ColormapSource source = (ColormapSource)camera;
|
||||
if (buttonGrayscale.isSelected()) source.getConfig().colormap = Colormap.Grayscale;
|
||||
if (buttonTemperature.isSelected()) source.getConfig().colormap = Colormap.Temperature;
|
||||
if (buttonRainbow.isSelected()) source.getConfig().colormap = Colormap.Rainbow;
|
||||
source.getConfig().colormapAutomatic = buttonAutomatic.isSelected();
|
||||
source.getConfig().colormapMin = buttonFullRange.isSelected() ? Double.NaN : (Integer)spinnerMin.getValue();
|
||||
source.getConfig().colormapMax = buttonFullRange.isSelected() ? Double.NaN : (Integer)spinnerMax.getValue();
|
||||
source.getConfig().save();
|
||||
source.refresh();
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
showException(ex);
|
||||
}
|
||||
}//GEN-LAST:event_onChangeColormap
|
||||
|
||||
private void onChangeColormapRange(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_onChangeColormapRange
|
||||
onChangeColormap(null);
|
||||
}//GEN-LAST:event_onChangeColormapRange
|
||||
|
||||
private void buttonZoom025ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonZoom025ActionPerformed
|
||||
renderer.setZoom(0.25);
|
||||
renderer.setMode(RendererMode.Zoom);
|
||||
}//GEN-LAST:event_buttonZoom025ActionPerformed
|
||||
|
||||
private void buttonZoom05ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonZoom05ActionPerformed
|
||||
renderer.setZoom(0.5);
|
||||
renderer.setMode(RendererMode.Zoom);
|
||||
}//GEN-LAST:event_buttonZoom05ActionPerformed
|
||||
|
||||
// Variables declaration - do not modify//GEN-BEGIN:variables
|
||||
private javax.swing.JRadioButton buttonAutomatic;
|
||||
private javax.swing.JButton buttonConfig;
|
||||
private javax.swing.JToggleButton buttonFit;
|
||||
private javax.swing.JRadioButton buttonFullRange;
|
||||
private javax.swing.JButton buttonGrabBackground;
|
||||
private javax.swing.JRadioButton buttonGrayscale;
|
||||
private javax.swing.ButtonGroup buttonGroup1;
|
||||
private javax.swing.ButtonGroup buttonGroup2;
|
||||
private javax.swing.ButtonGroup buttonGroup3;
|
||||
private javax.swing.JRadioButton buttonManual;
|
||||
private javax.swing.JToggleButton buttonMarker;
|
||||
private javax.swing.JToggleButton buttonPause;
|
||||
private javax.swing.JRadioButton buttonRainbow;
|
||||
private javax.swing.JToggleButton buttonReticle;
|
||||
private javax.swing.JToggleButton buttonSave;
|
||||
private javax.swing.JButton buttonSetup;
|
||||
private javax.swing.JRadioButton buttonTemperature;
|
||||
private javax.swing.JRadioButton buttonZoom025;
|
||||
private javax.swing.JRadioButton buttonZoom05;
|
||||
private javax.swing.JRadioButton buttonZoomFit;
|
||||
private javax.swing.JRadioButton buttonZoomNormal;
|
||||
private javax.swing.JRadioButton buttonZoomStretch;
|
||||
private javax.swing.JCheckBox checkCamtool;
|
||||
private javax.swing.JComboBox comboCameras;
|
||||
private javax.swing.JLabel jLabel1;
|
||||
private javax.swing.JLabel jLabel2;
|
||||
private javax.swing.JLabel jLabel3;
|
||||
private javax.swing.JLabel jLabel4;
|
||||
private javax.swing.JPanel jPanel1;
|
||||
private javax.swing.JPanel jPanel2;
|
||||
private javax.swing.JPanel jPanel3;
|
||||
private ch.psi.pshell.imaging.Renderer renderer;
|
||||
private javax.swing.JSpinner spinnerMax;
|
||||
private javax.swing.JSpinner spinnerMin;
|
||||
private javax.swing.JTextField textState;
|
||||
// End of variables declaration//GEN-END:variables
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user