import ch.psi.mxsc.Controller; import ch.psi.pshell.core.Context; import ch.psi.pshell.swing.DevicePanel; import java.util.concurrent.CompletableFuture; import javax.swing.border.TitledBorder; /** * */ public class WagoPanel extends DevicePanel { public WagoPanel() { initComponents(); this.startTimer(10000); } CompletableFuture future; @Override public void onTimer(){ if ((getDevice()!=null)){ updateTitle(); } } void updateTitle(){ Boolean roomTemp = (Controller.getInstance().isLedRoomTemp()); if (roomTemp==null){ ((TitledBorder)panelDewar.getBorder()).setTitle("Dewar Light"); } else if (roomTemp==true){ ((TitledBorder)panelDewar.getBorder()).setTitle("Dewar Light (room temperature)"); } else { ((TitledBorder)panelDewar.getBorder()).setTitle("Dewar Light (LN2)"); } } void execute(String statement){ try { Context.getInstance().evalLineBackgroundAsync(statement).handle((ret, ex) -> { if (WagoPanel.this.isShowing()){ if (ex != null){ showException((Exception)ex); } } return ret; }); } catch (Exception ex) { showException(ex); } } @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents private void initComponents() { deviceStatePanel1 = new ch.psi.pshell.swing.DeviceStatePanel(); panelSafety = new javax.swing.JPanel(); buttonReleasePsys = new javax.swing.JButton(); buttonReleaseLocal = new javax.swing.JButton(); panelRobot1 = new javax.swing.JPanel(); buttonHeater = new javax.swing.JToggleButton(); buttonStream = new javax.swing.JToggleButton(); panelDewar = new ch.psi.pshell.swing.ProcessVariablePanel(); deviceStatePanel1.setDeviceName("wago"); panelSafety.setBorder(javax.swing.BorderFactory.createTitledBorder("Safety")); buttonReleasePsys.setText("Release PSYS"); buttonReleasePsys.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonReleasePsysActionPerformed(evt); } }); buttonReleaseLocal.setText("Release Local"); buttonReleaseLocal.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonReleaseLocalActionPerformed(evt); } }); javax.swing.GroupLayout panelSafetyLayout = new javax.swing.GroupLayout(panelSafety); panelSafety.setLayout(panelSafetyLayout); panelSafetyLayout.setHorizontalGroup( panelSafetyLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelSafetyLayout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(buttonReleasePsys) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(buttonReleaseLocal) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); panelSafetyLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonReleaseLocal, buttonReleasePsys}); panelSafetyLayout.setVerticalGroup( panelSafetyLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelSafetyLayout.createSequentialGroup() .addContainerGap() .addGroup(panelSafetyLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(buttonReleaseLocal) .addComponent(buttonReleasePsys)) .addContainerGap()) ); panelRobot1.setBorder(javax.swing.BorderFactory.createTitledBorder("Dryer")); buttonHeater.setText("Heater"); buttonHeater.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonHeaterActionPerformed(evt); } }); buttonStream.setText("Air Stream"); buttonStream.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonStreamActionPerformed(evt); } }); javax.swing.GroupLayout panelRobot1Layout = new javax.swing.GroupLayout(panelRobot1); panelRobot1.setLayout(panelRobot1Layout); panelRobot1Layout.setHorizontalGroup( panelRobot1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelRobot1Layout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(buttonHeater) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(buttonStream) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); panelRobot1Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonHeater, buttonStream}); panelRobot1Layout.setVerticalGroup( panelRobot1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelRobot1Layout.createSequentialGroup() .addContainerGap() .addGroup(panelRobot1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(buttonHeater) .addComponent(buttonStream)) .addContainerGap()) ); panelDewar.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Dewar Light", javax.swing.border.TitledBorder.LEFT, javax.swing.border.TitledBorder.DEFAULT_POSITION)); panelDewar.setDeviceName("led_level"); panelDewar.setShowAdvanced(false); panelDewar.setShowButtons(false); panelDewar.setShowLimitButtons(false); panelDewar.setShowSlider(true); panelDewar.setShowStop(false); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(deviceStatePanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(panelSafety, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(panelRobot1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(panelDewar, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(panelSafety, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 0, 0) .addComponent(panelDewar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 0, 0) .addComponent(panelRobot1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 0, 0) .addComponent(deviceStatePanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) ); }// //GEN-END:initComponents private void buttonReleasePsysActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonReleasePsysActionPerformed execute("release_psys()"); }//GEN-LAST:event_buttonReleasePsysActionPerformed private void buttonReleaseLocalActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonReleaseLocalActionPerformed execute("release_local()"); }//GEN-LAST:event_buttonReleaseLocalActionPerformed private void buttonHeaterActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonHeaterActionPerformed execute("set_heater(" + (buttonHeater.isSelected() ? "True": "False") + ")"); }//GEN-LAST:event_buttonHeaterActionPerformed private void buttonStreamActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonStreamActionPerformed execute("set_air_stream(" + (buttonStream.isSelected()? "True": "False")+ ")"); }//GEN-LAST:event_buttonStreamActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JToggleButton buttonHeater; private javax.swing.JButton buttonReleaseLocal; private javax.swing.JButton buttonReleasePsys; private javax.swing.JToggleButton buttonStream; private ch.psi.pshell.swing.DeviceStatePanel deviceStatePanel1; private ch.psi.pshell.swing.ProcessVariablePanel panelDewar; private javax.swing.JPanel panelRobot1; private javax.swing.JPanel panelSafety; // End of variables declaration//GEN-END:variables }