From 07fbc39651d17616e55b5a99c9f1302e161e14fb Mon Sep 17 00:00:00 2001 From: Alexandre Gobbo Date: Mon, 27 Aug 2018 17:03:23 +0200 Subject: [PATCH] Bug fix --- src/main/java/ch/psi/mxsc/MainPanel.form | 96 +++++------------- src/main/java/ch/psi/mxsc/MainPanel.java | 87 +++++----------- .../ch/psi/mxsc/RoomTempBasePlatePanel.form | 4 +- .../ch/psi/mxsc/RoomTempBasePlatePanel.java | 4 +- .../java/ch/psi/mxsc/WaterLevelPanel.form | 9 +- .../java/ch/psi/mxsc/WaterLevelPanel.java | 7 +- src/main/resources/pin.png | Bin 0 -> 11936 bytes src/main/resources/pin2.png | Bin 0 -> 3935 bytes 8 files changed, 60 insertions(+), 147 deletions(-) create mode 100644 src/main/resources/pin.png create mode 100644 src/main/resources/pin2.png diff --git a/src/main/java/ch/psi/mxsc/MainPanel.form b/src/main/java/ch/psi/mxsc/MainPanel.form index d1f77ca..79663e1 100644 --- a/src/main/java/ch/psi/mxsc/MainPanel.form +++ b/src/main/java/ch/psi/mxsc/MainPanel.form @@ -31,7 +31,7 @@ - + @@ -334,21 +334,21 @@ - + - + - + - + @@ -381,12 +381,12 @@ - + - + @@ -462,86 +462,36 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + - - - - - - - - - - - - - - - - - - - - + + + + + - - - - - - - - - - - - + - - - - - - + + + + @@ -929,7 +879,7 @@ - + @@ -1037,9 +987,9 @@ - + - + @@ -1051,7 +1001,7 @@ - + diff --git a/src/main/java/ch/psi/mxsc/MainPanel.java b/src/main/java/ch/psi/mxsc/MainPanel.java index f0319d4..8534bea 100644 --- a/src/main/java/ch/psi/mxsc/MainPanel.java +++ b/src/main/java/ch/psi/mxsc/MainPanel.java @@ -345,7 +345,7 @@ public class MainPanel extends Panel { if (waterLevelPanel == null) { waterLevelPanel = new WaterLevelPanel(); } - waterLevelPanel.setPreferredSize(panelLN2Level.getSize()); + waterLevelPanel.setPreferredSize(panelLN2Level.getPreferredSize()); ((GroupLayout) panelTop.getLayout()).replace(panelLN2Level, waterLevelPanel); } } @@ -510,13 +510,8 @@ public class MainPanel extends Panel { buttonDrawing = new javax.swing.JToggleButton(); panelLN2Level = new javax.swing.JPanel(); jPanel3 = new javax.swing.JPanel(); - jSeparator1 = new javax.swing.JSeparator(); - jLabel1 = new javax.swing.JLabel(); progressLN2 = new javax.swing.JProgressBar(); - jSeparator3 = new javax.swing.JSeparator(); - jSeparator2 = new javax.swing.JSeparator(); - jLabel3 = new javax.swing.JLabel(); - jLabel2 = new javax.swing.JLabel(); + jLabel4 = new javax.swing.JLabel(); panelStatus = new javax.swing.JPanel(); panelBeamlineStatus = new javax.swing.JPanel(); led5 = new ch.psi.pshell.swing.Led(); @@ -706,18 +701,18 @@ public class MainPanel extends Panel { panelHexiposiLayout.setHorizontalGroup( panelHexiposiLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelHexiposiLayout.createSequentialGroup() - .addContainerGap(13, Short.MAX_VALUE) + .addContainerGap(9, Short.MAX_VALUE) .addGroup(panelHexiposiLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) .addComponent(buttonDetectCover) .addComponent(hexiposiPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addContainerGap(14, Short.MAX_VALUE)) + .addContainerGap(9, Short.MAX_VALUE)) ); panelHexiposiLayout.setVerticalGroup( panelHexiposiLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelHexiposiLayout.createSequentialGroup() - .addContainerGap(15, Short.MAX_VALUE) + .addContainerGap(14, Short.MAX_VALUE) .addComponent(hexiposiPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 10, Short.MAX_VALUE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 9, Short.MAX_VALUE) .addComponent(buttonDetectCover) .addContainerGap()) ); @@ -744,11 +739,11 @@ public class MainPanel extends Panel { panelViewTypeLayout.setHorizontalGroup( panelViewTypeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelViewTypeLayout.createSequentialGroup() - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addContainerGap(8, Short.MAX_VALUE) .addGroup(panelViewTypeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) .addComponent(buttonDrawing) .addComponent(buttonCamera)) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addContainerGap(8, Short.MAX_VALUE)) ); panelViewTypeLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonCamera, buttonDrawing}); @@ -798,14 +793,11 @@ public class MainPanel extends Panel { panelLN2Level.setBorder(javax.swing.BorderFactory.createTitledBorder("LN2 Level")); - jLabel1.setText("Stop
Filling"); - progressLN2.setMaximum(1000); progressLN2.setOrientation(1); - jLabel3.setText("Start
Filling"); - - jLabel2.setText("Pin
Height"); + jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); + jLabel4.setIcon(new javax.swing.ImageIcon(getClass().getResource("/pin3.png"))); // NOI18N javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3); jPanel3.setLayout(jPanel3Layout); @@ -814,45 +806,17 @@ public class MainPanel extends Panel { .addGroup(jPanel3Layout.createSequentialGroup() .addGap(0, 0, 0) .addComponent(progressLN2, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel3Layout.createSequentialGroup() - .addGap(4, 4, 4) - .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(jSeparator2) - .addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, 35, Short.MAX_VALUE))) - .addGroup(jPanel3Layout.createSequentialGroup() - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(jSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(jPanel3Layout.createSequentialGroup() - .addGap(4, 4, 4) - .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(jPanel3Layout.createSequentialGroup() - .addGap(4, 4, 4) - .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addComponent(jSeparator1) - .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))) + .addGap(4, 4, 4) + .addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 38, Short.MAX_VALUE) .addGap(0, 0, 0)) ); jPanel3Layout.setVerticalGroup( jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(jPanel3Layout.createSequentialGroup() - .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(progressLN2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addGroup(jPanel3Layout.createSequentialGroup() - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(0, 0, 0) - .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(0, 0, 0) - .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(178, 178, 178) - .addComponent(jSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(0, 0, 0) - .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addGap(89, 89, 89))) - .addGap(0, 0, 0)) + .addComponent(progressLN2, javax.swing.GroupLayout.DEFAULT_SIZE, 412, Short.MAX_VALUE) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup() + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jLabel4) + .addGap(2, 2, 2)) ); javax.swing.GroupLayout panelLN2LevelLayout = new javax.swing.GroupLayout(panelLN2Level); @@ -1227,9 +1191,9 @@ public class MainPanel extends Panel { .addGroup(panelDevicesLayout.createSequentialGroup() .addGap(0, 0, 0) .addComponent(devicesPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 28, Short.MAX_VALUE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(panelExpert, javax.swing.GroupLayout.PREFERRED_SIZE, 93, javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap(31, Short.MAX_VALUE)) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); panelDevicesLayout.setVerticalGroup( panelDevicesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) @@ -1238,7 +1202,7 @@ public class MainPanel extends Panel { .addGroup(panelDevicesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(panelExpert, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(devicesPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 235, Short.MAX_VALUE)) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addContainerGap(8, Short.MAX_VALUE)) ); javax.swing.GroupLayout panelRightLayout = new javax.swing.GroupLayout(panelRight); @@ -1257,7 +1221,7 @@ public class MainPanel extends Panel { panelRightLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelRightLayout.createSequentialGroup() .addGap(0, 0, 0) - .addComponent(panelDetail, javax.swing.GroupLayout.DEFAULT_SIZE, 101, Short.MAX_VALUE) + .addComponent(panelDetail, javax.swing.GroupLayout.DEFAULT_SIZE, 103, Short.MAX_VALUE) .addGap(0, 0, 0) .addComponent(panelDevices, javax.swing.GroupLayout.PREFERRED_SIZE, 280, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 0, 0) @@ -1428,7 +1392,7 @@ public class MainPanel extends Panel { .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addComponent(panelTop, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGap(0, 0, 0) - .addComponent(panelBottom, javax.swing.GroupLayout.DEFAULT_SIZE, 80, Short.MAX_VALUE) + .addComponent(panelBottom, javax.swing.GroupLayout.DEFAULT_SIZE, 81, Short.MAX_VALUE) .addGap(1, 1, 1)) ); }// //GEN-END:initComponents @@ -1580,20 +1544,18 @@ public class MainPanel extends Panel { private ch.psi.mxsc.DevicesPanel devicesPanel; private javax.swing.Box.Filler filler1; private ch.psi.mxsc.HexiposiPanel hexiposiPanel; - private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel11; private javax.swing.JLabel jLabel13; private javax.swing.JLabel jLabel15; private javax.swing.JLabel jLabel16; private javax.swing.JLabel jLabel19; - private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel20; private javax.swing.JLabel jLabel23; private javax.swing.JLabel jLabel24; private javax.swing.JLabel jLabel25; private javax.swing.JLabel jLabel26; private javax.swing.JLabel jLabel29; - private javax.swing.JLabel jLabel3; + private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel8; private javax.swing.JLabel jLabel9; private javax.swing.JLabel jLabell21; @@ -1602,9 +1564,6 @@ public class MainPanel extends Panel { private javax.swing.JPanel jPanel4; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane3; - private javax.swing.JSeparator jSeparator1; - private javax.swing.JSeparator jSeparator2; - private javax.swing.JSeparator jSeparator3; private javax.swing.JLabel labelManualMode; private javax.swing.JLabel labelRoomTemperature; private ch.psi.pshell.swing.Led led5; diff --git a/src/main/java/ch/psi/mxsc/RoomTempBasePlatePanel.form b/src/main/java/ch/psi/mxsc/RoomTempBasePlatePanel.form index 404bcd3..9b2e486 100644 --- a/src/main/java/ch/psi/mxsc/RoomTempBasePlatePanel.form +++ b/src/main/java/ch/psi/mxsc/RoomTempBasePlatePanel.form @@ -36,7 +36,7 @@ - + @@ -45,7 +45,7 @@ - + diff --git a/src/main/java/ch/psi/mxsc/RoomTempBasePlatePanel.java b/src/main/java/ch/psi/mxsc/RoomTempBasePlatePanel.java index b928fd9..b0417d2 100644 --- a/src/main/java/ch/psi/mxsc/RoomTempBasePlatePanel.java +++ b/src/main/java/ch/psi/mxsc/RoomTempBasePlatePanel.java @@ -125,14 +125,14 @@ public class RoomTempBasePlatePanel extends DevicePanel { .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addContainerGap(23, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addContainerGap(16, Short.MAX_VALUE)) ); }// //GEN-END:initComponents diff --git a/src/main/java/ch/psi/mxsc/WaterLevelPanel.form b/src/main/java/ch/psi/mxsc/WaterLevelPanel.form index a5007ea..535bb01 100644 --- a/src/main/java/ch/psi/mxsc/WaterLevelPanel.form +++ b/src/main/java/ch/psi/mxsc/WaterLevelPanel.form @@ -7,6 +7,9 @@ + + + @@ -24,9 +27,9 @@ - + - + @@ -34,7 +37,7 @@ - + diff --git a/src/main/java/ch/psi/mxsc/WaterLevelPanel.java b/src/main/java/ch/psi/mxsc/WaterLevelPanel.java index cb4db8e..3f52518 100644 --- a/src/main/java/ch/psi/mxsc/WaterLevelPanel.java +++ b/src/main/java/ch/psi/mxsc/WaterLevelPanel.java @@ -30,6 +30,7 @@ public class WaterLevelPanel extends javax.swing.JPanel { progressWater = new javax.swing.JProgressBar(); setBorder(javax.swing.BorderFactory.createTitledBorder("Water Level")); + setPreferredSize(new java.awt.Dimension(72, 100)); progressWater.setMaximum(1000); progressWater.setOrientation(1); @@ -39,15 +40,15 @@ public class WaterLevelPanel extends javax.swing.JPanel { layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() - .addContainerGap(29, Short.MAX_VALUE) + .addContainerGap(15, Short.MAX_VALUE) .addComponent(progressWater, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE) - .addContainerGap(29, Short.MAX_VALUE)) + .addContainerGap(15, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() - .addComponent(progressWater, javax.swing.GroupLayout.DEFAULT_SIZE, 670, Short.MAX_VALUE) + .addComponent(progressWater, javax.swing.GroupLayout.DEFAULT_SIZE, 308, Short.MAX_VALUE) .addContainerGap()) ); }// //GEN-END:initComponents diff --git a/src/main/resources/pin.png b/src/main/resources/pin.png new file mode 100644 index 0000000000000000000000000000000000000000..e341f2f5a5ab66b161a40e0eb7966a6bf0666f2c GIT binary patch literal 11936 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 SAA$FLU_QvI$ka=jhW|H9t32WW literal 0 HcmV?d00001 diff --git a/src/main/resources/pin2.png b/src/main/resources/pin2.png new file mode 100644 index 0000000000000000000000000000000000000000..27844075d38088aa01a60a24b2737b346940f43f GIT binary patch literal 3935 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