diff --git a/src/main/java/ch/psi/mxsc/MainPanel.form b/src/main/java/ch/psi/mxsc/MainPanel.form
index 049f608..97ff37c 100644
--- a/src/main/java/ch/psi/mxsc/MainPanel.form
+++ b/src/main/java/ch/psi/mxsc/MainPanel.form
@@ -35,7 +35,7 @@
-
+
@@ -99,7 +99,7 @@
-
+
@@ -116,7 +116,7 @@
-
+
@@ -283,7 +283,7 @@
-
+
@@ -331,7 +331,7 @@
-
+
@@ -340,15 +340,15 @@
-
+
-
+
-
+
@@ -404,12 +404,12 @@
-
+
-
+
@@ -500,7 +500,7 @@
-
+
@@ -949,7 +949,7 @@
-
+
@@ -1057,21 +1057,21 @@
-
+
-
+
-
+
-
+
@@ -1102,7 +1102,7 @@
-
+
@@ -1112,7 +1112,7 @@
-
+
diff --git a/src/main/java/ch/psi/mxsc/MainPanel.java b/src/main/java/ch/psi/mxsc/MainPanel.java
index 9514557..35b5c39 100644
--- a/src/main/java/ch/psi/mxsc/MainPanel.java
+++ b/src/main/java/ch/psi/mxsc/MainPanel.java
@@ -490,7 +490,7 @@ public class MainPanel extends Panel {
}
try {
- ledServiceMode.setColor(Controller.getInstance().isServiceMode() ? Color.YELLOW : Color.GREEN);
+ ledServiceMode.setColor(Controller.getInstance().isServiceMode() ? Color.RED : Color.GREEN);
} catch (Exception ex) {
ledServiceMode.setColor(Color.BLACK);
}
diff --git a/src/main/java/ch/psi/mxsc/PuckLoadingDialog.java b/src/main/java/ch/psi/mxsc/PuckLoadingDialog.java
index 18960d7..02b5d67 100644
--- a/src/main/java/ch/psi/mxsc/PuckLoadingDialog.java
+++ b/src/main/java/ch/psi/mxsc/PuckLoadingDialog.java
@@ -6,6 +6,7 @@ import ch.psi.pshell.framework.Setup;
import ch.psi.pshell.swing.SwingUtils;
import java.awt.Dimension;
import java.awt.Rectangle;
+import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.nio.file.Path;
import java.nio.file.Paths;
@@ -27,6 +28,7 @@ public class PuckLoadingDialog extends JDialog {
final boolean persist;
final boolean showBasePlate;
+ final boolean SET_AUTO_ASSIGN = true;
final int INDEX_USER = 0;
final int INDEX_DEWAR = 1;
@@ -140,11 +142,11 @@ public class PuckLoadingDialog extends JDialog {
Controller.getInstance().setLaserPos(loadedPuck);
} else {
Puck puck = Controller.getInstance().getFreePuck();
- Controller.getInstance().setLaserPos(puck.getName());
+ pointPuck(puck);
}
} else {
setStatusLabel(null, -1);
- Controller.getInstance().setLaserPos((Puck)null);
+ pointPuck(null);
}
setSugestionLabel(null, -1);
buttonSet.setEnabled(false);
@@ -153,9 +155,8 @@ public class PuckLoadingDialog extends JDialog {
}
Puck detectedPuck;
- String detectedDatamatrix;
void onPuckMounted(Puck puck, String datamatrix){
- Controller.getInstance().setLaserPos((Puck)null);
+ pointPuck(null);
if ((datamatrix != null) && (!datamatrix.isEmpty())) {
setStatusLabel("Mounted puck " + datamatrix + " at " + puck.getName(), 5000);
setSugestionLabel(null, -1);
@@ -163,17 +164,25 @@ public class PuckLoadingDialog extends JDialog {
textDetectedPuck.setText("");
detectedPuck = null;
} else {
- setStatusLabel("Detected puck at " + puck.getName(), -1);
- setSugestionLabel("Select the datamatrix and press 'Set'", -1);
- detectedPuck = puck;
+ setStatusLabel("Detected puck at " + puck.getName(), -1);
+ detectedPuck = puck;
textDetectedPuck.setText(puck.getName());
- buttonSet.setEnabled(true);
+
+ int row = table.getSelectedRow();
+ datamatrix = (row >= 0) ? String.valueOf(table.getValueAt(row, INDEX_DATAMATRIX)) : null;
+ String position = (row >= 0) ? String.valueOf(table.getValueAt(row, INDEX_POSITION)) : null;
+
+ if (SET_AUTO_ASSIGN && (datamatrix != null) && (!datamatrix.isEmpty()) && (position!=null)&& (position.isEmpty())){
+ onManualSetPuckLocation(datamatrix);
+ } else {
+ setSugestionLabel("Select the datamatrix and press 'Set'", -1);
+ buttonSet.setEnabled(true);
+ }
table.clearSelection();
}
update();
}
- Timer timerClear;
void onPuckUnmounted(Puck puck){
if (puck == detectedPuck){
@@ -182,8 +191,10 @@ public class PuckLoadingDialog extends JDialog {
if (puck == detectedPuck){
buttonSet.setEnabled(false);
detectedPuck = null;
- }
- makeVisible(puck);
+ }
+ makeVisible(puck);
+ table.clearSelection();
+ pointPuck(null);
update();
}
@@ -496,7 +507,7 @@ public class PuckLoadingDialog extends JDialog {
try {
int row = table.getSelectedRow();
String datamatrix = (row >= 0) ? String.valueOf(table.getValueAt(row, INDEX_DATAMATRIX)) : null;
- if (datamatrix != null) {
+ if ((datamatrix != null) && (!datamatrix.isEmpty())){
onManualSetPuckLocation(datamatrix);
}
} catch (Exception ex) {
@@ -507,6 +518,8 @@ public class PuckLoadingDialog extends JDialog {
private void buttonClearDatamatrixActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonClearDatamatrixActionPerformed
try {
Controller.getInstance().onPuckScanned(null);
+ table.clearSelection();
+ pointPuck(null);
} catch (Exception ex) {
SwingUtils.showException(this, ex);
}
@@ -516,17 +529,25 @@ public class PuckLoadingDialog extends JDialog {
try {
int row = table.getSelectedRow();
String position = (row >= 0) ? String.valueOf(table.getValueAt(row, INDEX_POSITION)) : null;
+ Puck puck = null;
if ((position!=null) && (!position.isBlank())){
- Puck puck = Controller.getInstance().getPuck(position);
- pointPuck(puck);
- }
+ puck = Controller.getInstance().getPuck(position);
+ } else {
+ puck = Controller.getInstance().getFreePuck();
+ }
+ pointPuck(puck);
} catch (Exception ex) {
SwingUtils.showException(this, ex);
}
}//GEN-LAST:event_tableMouseReleased
private void tableKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_tableKeyReleased
- tableMouseReleased(null);
+ if (evt.getKeyCode() == KeyEvent.VK_ESCAPE) {
+ table.clearSelection();
+ pointPuck(null);
+ } else {
+ tableMouseReleased(null);
+ }
}//GEN-LAST:event_tableKeyReleased
/**