ScreenPanel display camera type
This commit is contained in:
@@ -228,7 +228,7 @@ public class ScreenPanel extends Panel {
|
||||
setSlicingOptionsVisible(false);
|
||||
JComponent editor = spinnerSlOrientation.getEditor();
|
||||
if (editor instanceof JSpinner.DefaultEditor) {
|
||||
((JSpinner.DefaultEditor)editor).getTextField().setHorizontalAlignment(JTextField.RIGHT);
|
||||
((JSpinner.DefaultEditor) editor).getTextField().setHorizontalAlignment(JTextField.RIGHT);
|
||||
}
|
||||
//spinnerMin.setVisible(false); labelMin.setVisible(false);
|
||||
//spinnerMax.setVisible(false); labelMax.setVisible(false);
|
||||
@@ -283,7 +283,17 @@ public class ScreenPanel extends Panel {
|
||||
try {
|
||||
calibrate();
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
showException(ex);
|
||||
}
|
||||
});
|
||||
|
||||
JMenuItem menuCameraConfig = new JMenuItem("Renderer Config");
|
||||
menuCameraConfig.addActionListener((ActionEvent e) -> {
|
||||
try {
|
||||
if (camera != null) {
|
||||
this.showDeviceConfigDialog(camera, false);
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
showException(ex);
|
||||
}
|
||||
});
|
||||
@@ -353,6 +363,8 @@ public class ScreenPanel extends Panel {
|
||||
}
|
||||
});
|
||||
|
||||
renderer.getPopupMenu().addSeparator();
|
||||
renderer.getPopupMenu().add(menuCameraConfig);
|
||||
renderer.getPopupMenu().add(menuShowStreamData);
|
||||
renderer.getPopupMenu().add(menuCalibrate);
|
||||
renderer.getPopupMenu().add(menuSaveStack);
|
||||
@@ -397,6 +409,7 @@ public class ScreenPanel extends Panel {
|
||||
imageBufferOverlay.setAnchor(Overlay.ANCHOR_VIEWPORT_TOP_RIGHT);
|
||||
if (MainFrame.isDark()) {
|
||||
textState.setEnabled(true);
|
||||
textType.setEnabled(true);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -603,6 +616,7 @@ public class ScreenPanel extends Panel {
|
||||
|
||||
boolean changed = !String.valueOf(cameraName).equals(this.cameraName);
|
||||
this.cameraName = cameraName;
|
||||
textType.setText(getCameraType(cameraName));
|
||||
|
||||
if (changed || buttonDirect.isSelected()) {
|
||||
spinnerThreshold.setVisible(false);
|
||||
@@ -731,7 +745,6 @@ public class ScreenPanel extends Panel {
|
||||
});
|
||||
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
showException(ex);
|
||||
renderer.clearOverlays();
|
||||
updateServerControls();
|
||||
@@ -750,9 +763,11 @@ public class ScreenPanel extends Panel {
|
||||
onChangeColormap(null);
|
||||
checkBackground.setEnabled(true);
|
||||
if (changed) {
|
||||
comboScreen.setModel(new DefaultComboBoxModel()); comboScreen.setEnabled(false);
|
||||
comboFilter.setModel(new DefaultComboBoxModel()); comboFilter.setEnabled(false);
|
||||
if (getCameraType(cameraName).equals("ELECTRONS")){
|
||||
comboScreen.setModel(new DefaultComboBoxModel());
|
||||
comboScreen.setEnabled(false);
|
||||
comboFilter.setModel(new DefaultComboBoxModel());
|
||||
comboFilter.setEnabled(false);
|
||||
if (getCameraType(cameraName).equals("Electrons")) {
|
||||
//Parallelizing initialization
|
||||
devicesInitTask = new Thread(() -> {
|
||||
try {
|
||||
@@ -1286,11 +1301,11 @@ public class ScreenPanel extends Panel {
|
||||
if (sliceCenters.length > 1) {
|
||||
double[] fit = fitPolynomial(sliceCenters, 1);
|
||||
double angle = Math.toDegrees(Math.atan(fit[1]));
|
||||
Overlays.Text text = new Overlays.Text(penSlices, String.format("slice: \u03B8= %5.1fdeg", angle), fontInfoText, textPosition);
|
||||
Overlays.Text text = new Overlays.Text(penSlices, String.format("slice: \u03B8= %5.1fdeg", angle), fontInfoText, textPosition);
|
||||
text.setFixed(true);
|
||||
text.setAnchor(Overlay.ANCHOR_VIEWPORT_TOP_LEFT);
|
||||
fOv = Arr.append(fOv, text);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
@@ -1621,177 +1636,178 @@ public class ScreenPanel extends Panel {
|
||||
}
|
||||
|
||||
void saveSnapshot() throws Exception {
|
||||
String snapshotFile = null;
|
||||
synchronized (imageBuffer) {
|
||||
Frame frame = getCurrentFrame();
|
||||
if (frame == null) {
|
||||
throw new Exception("No current image");
|
||||
}
|
||||
ArrayList<Frame> frames = new ArrayList<>();
|
||||
frames.add(frame);
|
||||
this.saveFrames("camera_snapshot", frames);
|
||||
|
||||
//Enforce the same timestamp to data & image files.
|
||||
snapshotFile = getContext().getExecutionPars().getPath() + ".png";
|
||||
ImageBuffer.saveImage(SwingUtils.createImage(renderer), snapshotFile, "png");
|
||||
String snapshotFile = null;
|
||||
synchronized (imageBuffer) {
|
||||
Frame frame = getCurrentFrame();
|
||||
if (frame == null) {
|
||||
throw new Exception("No current image");
|
||||
}
|
||||
|
||||
JPanel panel = new JPanel();
|
||||
GridBagLayout layout = new GridBagLayout();
|
||||
layout.columnWidths = new int[]{0, 180}; //Minimum width
|
||||
layout.rowHeights = new int[]{30, 30, 30}; //Minimum height
|
||||
panel.setLayout(layout);
|
||||
JComboBox comboLogbook = new JComboBox(new String[]{"SwissFEL commissioning data", "SwissFEL commissioning"});
|
||||
JTextField textComment = new JTextField();
|
||||
GridBagConstraints c = new GridBagConstraints();
|
||||
c.gridx = 0;
|
||||
c.gridy = 0;
|
||||
panel.add(new JLabel("Data file:"), c);
|
||||
c.gridy = 1;
|
||||
panel.add(new JLabel("Logbook:"), c);
|
||||
c.gridy = 2;
|
||||
panel.add(new JLabel("Comment:"), c);
|
||||
c.fill = GridBagConstraints.HORIZONTAL;
|
||||
c.gridx = 1;
|
||||
panel.add(textComment, c);
|
||||
c.gridy = 1;
|
||||
panel.add(comboLogbook, c);
|
||||
c.gridy = 0;
|
||||
panel.add(new JLabel(getContext().getExecutionPars().getPath()), c);
|
||||
ArrayList<Frame> frames = new ArrayList<>();
|
||||
frames.add(frame);
|
||||
this.saveFrames("camera_snapshot", frames);
|
||||
|
||||
if (SwingUtils.showOption(getTopLevel(), "Success", panel, OptionType.OkCancel) == OptionResult.Yes) {
|
||||
StringBuilder message = new StringBuilder();
|
||||
message.append("Camera: ").append(cameraName).append(" (").
|
||||
append((server != null) ? "server" : "direct").append(")").append("\n");
|
||||
message.append("Screen: ").append(String.valueOf(valueScreen.getLabel().getText())).append("\n");
|
||||
message.append("Filter: ").append(String.valueOf(valueFilter.getLabel().getText())).append("\n");
|
||||
message.append("Data file: ").append(getContext().getExecutionPars().getPath()).append("\n");
|
||||
message.append("Comment: ").append(textComment.getText()).append("\n");
|
||||
if ((fitOv != null) && (fitOv.length > 5)) {
|
||||
Overlays.Text text = (Overlays.Text) fitOv[5];
|
||||
message.append(text.getText()).append("\n");
|
||||
}
|
||||
elog((String) comboLogbook.getSelectedItem(), "ScreenPanel Snapshot", message.toString(), new String[]{snapshotFile});
|
||||
//Enforce the same timestamp to data & image files.
|
||||
snapshotFile = getContext().getExecutionPars().getPath() + ".png";
|
||||
ImageBuffer.saveImage(SwingUtils.createImage(renderer), snapshotFile, "png");
|
||||
}
|
||||
|
||||
JPanel panel = new JPanel();
|
||||
GridBagLayout layout = new GridBagLayout();
|
||||
layout.columnWidths = new int[]{0, 180}; //Minimum width
|
||||
layout.rowHeights = new int[]{30, 30, 30}; //Minimum height
|
||||
panel.setLayout(layout);
|
||||
JComboBox comboLogbook = new JComboBox(new String[]{"SwissFEL commissioning data", "SwissFEL commissioning"});
|
||||
JTextField textComment = new JTextField();
|
||||
GridBagConstraints c = new GridBagConstraints();
|
||||
c.gridx = 0;
|
||||
c.gridy = 0;
|
||||
panel.add(new JLabel("Data file:"), c);
|
||||
c.gridy = 1;
|
||||
panel.add(new JLabel("Logbook:"), c);
|
||||
c.gridy = 2;
|
||||
panel.add(new JLabel("Comment:"), c);
|
||||
c.fill = GridBagConstraints.HORIZONTAL;
|
||||
c.gridx = 1;
|
||||
panel.add(textComment, c);
|
||||
c.gridy = 1;
|
||||
panel.add(comboLogbook, c);
|
||||
c.gridy = 0;
|
||||
panel.add(new JLabel(getContext().getExecutionPars().getPath()), c);
|
||||
|
||||
if (SwingUtils.showOption(getTopLevel(), "Success", panel, OptionType.OkCancel) == OptionResult.Yes) {
|
||||
StringBuilder message = new StringBuilder();
|
||||
message.append("Camera: ").append(cameraName).append(" (").
|
||||
append((server != null) ? "server" : "direct").append(")").append("\n");
|
||||
message.append("Screen: ").append(String.valueOf(valueScreen.getLabel().getText())).append("\n");
|
||||
message.append("Filter: ").append(String.valueOf(valueFilter.getLabel().getText())).append("\n");
|
||||
message.append("Data file: ").append(getContext().getExecutionPars().getPath()).append("\n");
|
||||
message.append("Comment: ").append(textComment.getText()).append("\n");
|
||||
if ((fitOv != null) && (fitOv.length > 5)) {
|
||||
Overlays.Text text = (Overlays.Text) fitOv[5];
|
||||
message.append(text.getText()).append("\n");
|
||||
}
|
||||
elog((String) comboLogbook.getSelectedItem(), "ScreenPanel Snapshot", message.toString(), new String[]{snapshotFile});
|
||||
}
|
||||
}
|
||||
|
||||
void saveStack() throws Exception {
|
||||
synchronized (imageBuffer) {
|
||||
saveFrames("camera_stack", imageBuffer);
|
||||
}
|
||||
SwingUtils.showMessage(getTopLevel(), "Success", "Generated data file:\n" + getContext().getExecutionPars().getPath(), 5000);
|
||||
synchronized (imageBuffer) {
|
||||
saveFrames("camera_stack", imageBuffer);
|
||||
}
|
||||
SwingUtils.showMessage(getTopLevel(), "Success", "Generated data file:\n" + getContext().getExecutionPars().getPath(), 5000);
|
||||
}
|
||||
|
||||
|
||||
public static String getCameraType(String name){
|
||||
for (String s : new String[]{"LCAM"}){
|
||||
if (name.contains(s)){
|
||||
return "LCAM";
|
||||
}
|
||||
}
|
||||
for (String s : new String[]{"DSCR", "DSRM", "DLAC"}){
|
||||
if (name.contains(s)){
|
||||
return "ELECTRONS";
|
||||
}
|
||||
}
|
||||
for (String s : new String[]{"PROF", "PPRM", "PSSS", "PSCR", "PSRD"}){
|
||||
if (name.contains(s)){
|
||||
return "PHOTONICS";
|
||||
}
|
||||
}
|
||||
return "UNKNOWN";
|
||||
public static String getCameraType(String name) {
|
||||
if (name == null) {
|
||||
return "";
|
||||
}
|
||||
for (String s : new String[]{"LCAM"}) {
|
||||
if (name.contains(s)) {
|
||||
return "Laser";
|
||||
}
|
||||
}
|
||||
for (String s : new String[]{"DSCR", "DSRM", "DLAC"}) {
|
||||
if (name.contains(s)) {
|
||||
return "Electrons";
|
||||
}
|
||||
}
|
||||
for (String s : new String[]{"PROF", "PPRM", "PSSS", "PSCR", "PSRD"}) {
|
||||
if (name.contains(s)) {
|
||||
return "Photonics";
|
||||
}
|
||||
}
|
||||
return "Unknown";
|
||||
}
|
||||
|
||||
public Map<String, Object> getProcessingParameters(StreamValue value) throws IOException {
|
||||
return (Map) JsonSerializer.decode(value.getValue("processing_parameters").toString(), Map.class);
|
||||
}
|
||||
|
||||
void saveFrames(String name, ArrayList<Frame> frames) throws IOException{
|
||||
ArrayList<StreamValue> values = new ArrayList<>();
|
||||
for (Frame frame : frames){
|
||||
values.add(frame.cache);
|
||||
}
|
||||
saveImages(name, values);
|
||||
}
|
||||
public Map<String, Object> getProcessingParameters(StreamValue value) throws IOException {
|
||||
return (Map) JsonSerializer.decode(value.getValue("processing_parameters").toString(), Map.class);
|
||||
}
|
||||
|
||||
void saveImages(String name, ArrayList<StreamValue> images) throws IOException{
|
||||
int depth = images.size();
|
||||
if (depth == 0){
|
||||
return;
|
||||
}
|
||||
StreamValue first = images.get(0);
|
||||
String pathRoot = "/camera1/";
|
||||
String pathImage = pathRoot + "image";
|
||||
String pathPid = pathRoot + "pulse_id";
|
||||
String pathTimestampStr = pathRoot + "timestamp_str";
|
||||
Map<String, Object> processingPars = getProcessingParameters(first);
|
||||
String camera = (String) processingPars.get("camera_name");
|
||||
String type = getCameraType(camera);
|
||||
|
||||
int width = ((Number)first.getValue("width")).intValue();
|
||||
int height = ((Number)first.getValue("height")).intValue();
|
||||
Class dataType = first.getValue("image").getClass().getComponentType();
|
||||
|
||||
getContext().setExecutionPars(name);
|
||||
DataManager dm = getContext().getDataManager();
|
||||
|
||||
//Create tables
|
||||
dm.createDataset(pathImage, dataType, new int[]{depth, height, width});
|
||||
dm.createDataset(pathPid, Long.class, new int[]{depth});
|
||||
dm.createDataset(pathTimestampStr, String.class, new int[]{depth});
|
||||
for (String id : first.getIdentifiers()){
|
||||
Object val = first.getValue(id);
|
||||
if (id.equals("image")){
|
||||
} else if (id.equals("processing_parameters")){
|
||||
Map<String, Object> pars = getProcessingParameters(first);
|
||||
for (String key : pars.keySet()){
|
||||
if ((pars.get(key) != null) && (pars.get(key) instanceof Map)){
|
||||
for (Object k : ((Map)pars.get(key)).keySet()){
|
||||
Object v = ((Map)pars.get(key)).get(k);
|
||||
dm.setAttribute(pathImage, key + " " + k, (v == null)? "" : v);
|
||||
}
|
||||
} else {
|
||||
dm.setAttribute(pathImage, key, (pars.get(key) == null)? "" : pars.get(key));
|
||||
void saveFrames(String name, ArrayList<Frame> frames) throws IOException {
|
||||
ArrayList<StreamValue> values = new ArrayList<>();
|
||||
for (Frame frame : frames) {
|
||||
values.add(frame.cache);
|
||||
}
|
||||
saveImages(name, values);
|
||||
}
|
||||
|
||||
void saveImages(String name, ArrayList<StreamValue> images) throws IOException {
|
||||
int depth = images.size();
|
||||
if (depth == 0) {
|
||||
return;
|
||||
}
|
||||
StreamValue first = images.get(0);
|
||||
String pathRoot = "/camera1/";
|
||||
String pathImage = pathRoot + "image";
|
||||
String pathPid = pathRoot + "pulse_id";
|
||||
String pathTimestampStr = pathRoot + "timestamp_str";
|
||||
Map<String, Object> processingPars = getProcessingParameters(first);
|
||||
String camera = (String) processingPars.get("camera_name");
|
||||
String type = getCameraType(camera);
|
||||
|
||||
int width = ((Number) first.getValue("width")).intValue();
|
||||
int height = ((Number) first.getValue("height")).intValue();
|
||||
Class dataType = first.getValue("image").getClass().getComponentType();
|
||||
|
||||
getContext().setExecutionPars(name);
|
||||
DataManager dm = getContext().getDataManager();
|
||||
|
||||
//Create tables
|
||||
dm.createDataset(pathImage, dataType, new int[]{depth, height, width});
|
||||
dm.createDataset(pathPid, Long.class, new int[]{depth});
|
||||
dm.createDataset(pathTimestampStr, String.class, new int[]{depth});
|
||||
for (String id : first.getIdentifiers()) {
|
||||
Object val = first.getValue(id);
|
||||
if (id.equals("image")) {
|
||||
} else if (id.equals("processing_parameters")) {
|
||||
Map<String, Object> pars = getProcessingParameters(first);
|
||||
for (String key : pars.keySet()) {
|
||||
if ((pars.get(key) != null) && (pars.get(key) instanceof Map)) {
|
||||
for (Object k : ((Map) pars.get(key)).keySet()) {
|
||||
Object v = ((Map) pars.get(key)).get(k);
|
||||
dm.setAttribute(pathImage, key + " " + k, (v == null) ? "" : v);
|
||||
}
|
||||
}
|
||||
} else if (val.getClass().isArray()) {
|
||||
dm.createDataset(pathRoot + id, Double.class, new int[]{depth, Array.getLength(val)});
|
||||
} else {
|
||||
dm.createDataset(pathRoot + id, val.getClass(), new int[]{depth});
|
||||
}
|
||||
}
|
||||
|
||||
//Add metadata
|
||||
dm.setAttribute(pathRoot,"Camera", camera);
|
||||
dm.setAttribute(pathRoot,"Images", depth);
|
||||
dm.setAttribute(pathRoot,"Interval", -1);
|
||||
dm.setAttribute(pathRoot,"Type", type);
|
||||
if (type.equals("ELECTRONS")){
|
||||
dm.setAttribute(pathRoot,"Screen", String.valueOf(valueScreen.getLabel().getText()));
|
||||
dm.setAttribute(pathRoot,"Filter", String.valueOf(valueFilter.getLabel().getText()));
|
||||
}
|
||||
|
||||
//Save data
|
||||
for (int index=0; index<depth; index++){
|
||||
StreamValue streamValue = images.get(index);
|
||||
dm.setItem(pathImage, streamValue.getValue("image"), new long[]{index,0,0}, new int[]{1, height, width});
|
||||
dm.setItem(pathPid, streamValue.getPulseId(), index);
|
||||
dm.setItem(pathTimestampStr, Chrono.getTimeStr(streamValue.getTimestamp(), "YYYY-MM-dd HH:mm:ss.SSS") , index);
|
||||
|
||||
for (String id : streamValue.getIdentifiers()){
|
||||
Object val = streamValue.getValue(id);
|
||||
if (id.equals("image")){
|
||||
} else if (id.equals("processing_parameters")){
|
||||
} else if (val.getClass().isArray()) {
|
||||
dm.setItem(pathRoot + id, val, index);
|
||||
} else {
|
||||
dm.setItem(pathRoot + id, val, index);
|
||||
dm.setAttribute(pathImage, key, (pars.get(key) == null) ? "" : pars.get(key));
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (val.getClass().isArray()) {
|
||||
dm.createDataset(pathRoot + id, Double.class, new int[]{depth, Array.getLength(val)});
|
||||
} else {
|
||||
dm.createDataset(pathRoot + id, val.getClass(), new int[]{depth});
|
||||
}
|
||||
getContext().getDataManager().closeOutput();
|
||||
}
|
||||
|
||||
|
||||
//Add metadata
|
||||
dm.setAttribute(pathRoot, "Camera", camera);
|
||||
dm.setAttribute(pathRoot, "Images", depth);
|
||||
dm.setAttribute(pathRoot, "Interval", -1);
|
||||
dm.setAttribute(pathRoot, "Type", type);
|
||||
if (type.equals("Electrons")) {
|
||||
dm.setAttribute(pathRoot, "Screen", String.valueOf(valueScreen.getLabel().getText()));
|
||||
dm.setAttribute(pathRoot, "Filter", String.valueOf(valueFilter.getLabel().getText()));
|
||||
}
|
||||
|
||||
//Save data
|
||||
for (int index = 0; index < depth; index++) {
|
||||
StreamValue streamValue = images.get(index);
|
||||
dm.setItem(pathImage, streamValue.getValue("image"), new long[]{index, 0, 0}, new int[]{1, height, width});
|
||||
dm.setItem(pathPid, streamValue.getPulseId(), index);
|
||||
dm.setItem(pathTimestampStr, Chrono.getTimeStr(streamValue.getTimestamp(), "YYYY-MM-dd HH:mm:ss.SSS"), index);
|
||||
|
||||
for (String id : streamValue.getIdentifiers()) {
|
||||
Object val = streamValue.getValue(id);
|
||||
if (id.equals("image")) {
|
||||
} else if (id.equals("processing_parameters")) {
|
||||
} else if (val.getClass().isArray()) {
|
||||
dm.setItem(pathRoot + id, val, index);
|
||||
} else {
|
||||
dm.setItem(pathRoot + id, val, index);
|
||||
}
|
||||
}
|
||||
}
|
||||
getContext().getDataManager().closeOutput();
|
||||
}
|
||||
|
||||
StandardDialog calibrationDialolg;
|
||||
|
||||
@@ -1926,10 +1942,11 @@ public class ScreenPanel extends Panel {
|
||||
textState = new javax.swing.JTextField();
|
||||
jLabel2 = new javax.swing.JLabel();
|
||||
comboCameras = new javax.swing.JComboBox();
|
||||
buttonConfig = new javax.swing.JButton();
|
||||
jLabel1 = new javax.swing.JLabel();
|
||||
buttonArgs = new javax.swing.JButton();
|
||||
buttonStop = new javax.swing.JButton();
|
||||
jLabel5 = new javax.swing.JLabel();
|
||||
textType = new javax.swing.JTextField();
|
||||
renderer = new ch.psi.pshell.imaging.Renderer();
|
||||
jPanel4 = new javax.swing.JPanel();
|
||||
jPanel3 = new javax.swing.JPanel();
|
||||
@@ -2090,13 +2107,6 @@ public class ScreenPanel extends Panel {
|
||||
}
|
||||
});
|
||||
|
||||
buttonConfig.setText("Config");
|
||||
buttonConfig.addActionListener(new java.awt.event.ActionListener() {
|
||||
public void actionPerformed(java.awt.event.ActionEvent evt) {
|
||||
buttonConfigActionPerformed(evt);
|
||||
}
|
||||
});
|
||||
|
||||
jLabel1.setText("Camera:");
|
||||
|
||||
buttonArgs.setText("Setup");
|
||||
@@ -2113,6 +2123,13 @@ public class ScreenPanel extends Panel {
|
||||
}
|
||||
});
|
||||
|
||||
jLabel5.setText("Type:");
|
||||
|
||||
textType.setEditable(false);
|
||||
textType.setHorizontalAlignment(javax.swing.JTextField.CENTER);
|
||||
textType.setDisabledTextColor(new java.awt.Color(0, 0, 0));
|
||||
textType.setEnabled(false);
|
||||
|
||||
javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(jPanel6);
|
||||
jPanel6.setLayout(jPanel6Layout);
|
||||
jPanel6Layout.setHorizontalGroup(
|
||||
@@ -2122,20 +2139,22 @@ public class ScreenPanel extends Panel {
|
||||
.addComponent(jLabel1)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(comboCameras, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
||||
.addComponent(jLabel5)
|
||||
.addGap(6, 6, 6)
|
||||
.addComponent(textType, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addGap(18, 18, 18)
|
||||
.addComponent(buttonArgs)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(buttonConfig)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(buttonStop)
|
||||
.addGap(18, 18, 18)
|
||||
.addComponent(jLabel2)
|
||||
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
||||
.addComponent(textState, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(textState, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addGap(0, 0, 0))
|
||||
);
|
||||
|
||||
jPanel6Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonArgs, buttonConfig, buttonStop});
|
||||
jPanel6Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonArgs, buttonStop});
|
||||
|
||||
jPanel6Layout.setVerticalGroup(
|
||||
jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
||||
@@ -2147,12 +2166,13 @@ public class ScreenPanel extends Panel {
|
||||
.addComponent(jLabel2)
|
||||
.addComponent(textState, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
||||
.addComponent(buttonArgs)
|
||||
.addComponent(buttonConfig)
|
||||
.addComponent(buttonStop))
|
||||
.addComponent(buttonStop)
|
||||
.addComponent(jLabel5)
|
||||
.addComponent(textType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
||||
.addGap(0, 0, 0))
|
||||
);
|
||||
|
||||
jPanel6Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {comboCameras, textState});
|
||||
jPanel6Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {comboCameras, textState, textType});
|
||||
|
||||
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
|
||||
jPanel1.setLayout(jPanel1Layout);
|
||||
@@ -2814,16 +2834,6 @@ public class ScreenPanel extends Panel {
|
||||
}
|
||||
}//GEN-LAST:event_buttonArgsActionPerformed
|
||||
|
||||
private void buttonConfigActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonConfigActionPerformed
|
||||
try {
|
||||
if (camera != null) {
|
||||
this.showDeviceConfigDialog(camera, false);
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
showException(ex);
|
||||
}
|
||||
}//GEN-LAST:event_buttonConfigActionPerformed
|
||||
|
||||
private void buttonPauseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonPauseActionPerformed
|
||||
try {
|
||||
renderer.removeOverlay(imageBufferOverlay);
|
||||
@@ -2845,7 +2855,6 @@ public class ScreenPanel extends Panel {
|
||||
updateStreamData();
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
showException(ex);
|
||||
}
|
||||
}//GEN-LAST:event_buttonPauseActionPerformed
|
||||
@@ -2884,7 +2893,6 @@ public class ScreenPanel extends Panel {
|
||||
try {
|
||||
saveSnapshot();
|
||||
} catch (Exception ex) {
|
||||
ex.printStackTrace();
|
||||
showException(ex);
|
||||
}
|
||||
}//GEN-LAST:event_buttonSaveActionPerformed
|
||||
@@ -2894,19 +2902,19 @@ public class ScreenPanel extends Panel {
|
||||
if (camera != null) {
|
||||
boolean laserOn = getLaserState();
|
||||
OptionResult ret = null;
|
||||
if (laserOn){
|
||||
if (laserOn) {
|
||||
ret = SwingUtils.showOption(getTopLevel(), "Capture Background", "Do you want to put laser on delay for capturing background?", OptionType.YesNoCancel);
|
||||
if (ret == OptionResult.No){
|
||||
if (ret == OptionResult.No) {
|
||||
laserOn = false;
|
||||
}
|
||||
} else {
|
||||
ret = SwingUtils.showOption(getTopLevel(), "Capture Background", "Do you want to capture background now?", OptionType.OkCancel);
|
||||
}
|
||||
|
||||
if (ret == OptionResult.Cancel){
|
||||
|
||||
if (ret == OptionResult.Cancel) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if (laserOn) {
|
||||
setLaserState(false);
|
||||
}
|
||||
@@ -2966,7 +2974,7 @@ public class ScreenPanel extends Panel {
|
||||
case Inverted:
|
||||
case Red:
|
||||
case Green:
|
||||
case Blue:
|
||||
case Blue:
|
||||
colorReticule = new Color(0, 192, 0);
|
||||
colorMarker = new Color(64, 255, 64);
|
||||
break;
|
||||
@@ -3196,7 +3204,6 @@ public class ScreenPanel extends Panel {
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
showException(ex);
|
||||
ex.printStackTrace();
|
||||
updateServerControls();
|
||||
}
|
||||
}
|
||||
@@ -3244,7 +3251,6 @@ public class ScreenPanel extends Panel {
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
showException(ex);
|
||||
ex.printStackTrace();
|
||||
updateServerControls();
|
||||
}
|
||||
}
|
||||
@@ -3267,7 +3273,6 @@ public class ScreenPanel extends Panel {
|
||||
private javax.swing.JButton btFixColormapRange;
|
||||
private javax.swing.JButton buttonArgs;
|
||||
private javax.swing.JRadioButton buttonAutomatic;
|
||||
private javax.swing.JButton buttonConfig;
|
||||
private javax.swing.JRadioButton buttonDirect;
|
||||
private javax.swing.JToggleButton buttonFit;
|
||||
private javax.swing.JRadioButton buttonFullRange;
|
||||
@@ -3303,6 +3308,7 @@ public class ScreenPanel extends Panel {
|
||||
private javax.swing.JLabel jLabel2;
|
||||
private javax.swing.JLabel jLabel3;
|
||||
private javax.swing.JLabel jLabel4;
|
||||
private javax.swing.JLabel jLabel5;
|
||||
private javax.swing.JPanel jPanel1;
|
||||
private javax.swing.JPanel jPanel2;
|
||||
private javax.swing.JPanel jPanel3;
|
||||
@@ -3333,6 +3339,7 @@ public class ScreenPanel extends Panel {
|
||||
private javax.swing.JSpinner spinnerSlScale;
|
||||
private javax.swing.JSpinner spinnerThreshold;
|
||||
private javax.swing.JTextField textState;
|
||||
private javax.swing.JTextField textType;
|
||||
private ch.psi.pshell.swing.DeviceValuePanel valueFilter;
|
||||
private ch.psi.pshell.swing.DeviceValuePanel valueScreen;
|
||||
// End of variables declaration//GEN-END:variables
|
||||
|
||||
Reference in New Issue
Block a user