diff --git a/src/main/java/ch/psi/plugin/MainPanel.form b/src/main/java/ch/psi/plugin/MainPanel.form index b386544..c9d9744 100644 --- a/src/main/java/ch/psi/plugin/MainPanel.form +++ b/src/main/java/ch/psi/plugin/MainPanel.form @@ -16,12 +16,17 @@ - + + + + + - + + @@ -39,7 +44,7 @@ - + @@ -47,7 +52,7 @@ - + @@ -112,5 +117,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/main/java/ch/psi/plugin/MainPanel.java b/src/main/java/ch/psi/plugin/MainPanel.java index e6d6568..a5a56dc 100644 --- a/src/main/java/ch/psi/plugin/MainPanel.java +++ b/src/main/java/ch/psi/plugin/MainPanel.java @@ -3,73 +3,44 @@ */ package ch.psi.plugin; -import ch.psi.pshell.core.Controller; -import ch.psi.pshell.ui.App; -import ch.psi.pshell.ui.View; +import ch.psi.pshell.dev.Device; import ch.psi.utils.State; -import ch.psi.utils.Swing; -import ch.psi.wsaf.ApplicationStateAdapter; -import ch.psi.wsaf.ApplicationStateListener; /** * */ public class MainPanel extends javax.swing.JPanel { - final App app; - final View view; - final Controller controller; /** * Creates new form MainPanel */ public MainPanel() { initComponents(); - app=App.getInstance(); - controller=app.getController(); - view=(View) app.getMainFrame(); - app.addStateListener(applicationStateListener); } - ApplicationStateListener applicationStateListener = new ApplicationStateAdapter() { - @Override - public void onChangedState(State newState, State curState) { - try{ - /* - if (newState==State.Ready){ - motorPanel1.setDevice(controller.getDevicePool().getByName("motor")); - motorPanel2.setDevice(controller.getDevicePool().getByName("m")); - }else{ - if (!newState.isInitialized()){ - motorPanel1.setDevice(null); - motorPanel2.setDevice(null); - } - } - */ - - buttonStart1.setEnabled(newState==State.Ready); - buttonStart2.setEnabled(newState==State.Ready); - buttonStart3.setEnabled(newState==State.Ready); - buttonStart4.setEnabled(newState==State.Ready); - buttonStart5.setEnabled(newState==State.Ready); - //motorPanel1.setEnabled(newState==State.Ready); - //motorPanel2.setEnabled(newState==State.Ready); - } - catch (Exception ex){ - ex.printStackTrace(); - } + void setState(State state) { + try{ + boolean ready = state==State.Ready; + if (!state.isInitialized()){ + motorPanel.setDevice(null); + } + buttonStart1.setEnabled(ready); + buttonStart2.setEnabled(ready); + buttonStart3.setEnabled(ready); + buttonStart4.setEnabled(ready); + buttonStart5.setEnabled(ready); + //motorPanel1.setEnabled(newState==State.Ready); + //motorPanel2.setEnabled(newState==State.Ready); } - }; - - void runScript(final String name){ - new Thread(new Runnable() { - @Override - public void run() { - try{ - controller.evalFile(name, true); - }catch (Exception ex){ - Swing.showException(view, ex); - } - } - }).start(); + catch (Exception ex){ + ex.printStackTrace(); + } + } + + void setDevice(Device device){ + motorPanel.setDevice(device); + } + + protected void run(String name){ } /** @@ -87,6 +58,8 @@ public class MainPanel extends javax.swing.JPanel { buttonStart3 = new javax.swing.JButton(); buttonStart4 = new javax.swing.JButton(); buttonStart5 = new javax.swing.JButton(); + jPanel2 = new javax.swing.JPanel(); + motorPanel = new ch.psi.pshell.swing.MotorPanel(); jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Tasks")); @@ -130,14 +103,14 @@ public class MainPanel extends javax.swing.JPanel { jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() - .addContainerGap(188, Short.MAX_VALUE) + .addContainerGap(58, Short.MAX_VALUE) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(buttonStart1) .addComponent(buttonStart2) .addComponent(buttonStart3) .addComponent(buttonStart4) .addComponent(buttonStart5)) - .addContainerGap(189, Short.MAX_VALUE)) + .addContainerGap(59, Short.MAX_VALUE)) ); jPanel1Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonStart1, buttonStart2, buttonStart3, buttonStart4, buttonStart5}); @@ -160,41 +133,64 @@ public class MainPanel extends javax.swing.JPanel { jPanel1Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {buttonStart1, buttonStart2, buttonStart3, buttonStart4, buttonStart5}); + jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Devices")); + + javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); + jPanel2.setLayout(jPanel2Layout); + jPanel2Layout.setHorizontalGroup( + jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup() + .addContainerGap() + .addComponent(motorPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap()) + ); + jPanel2Layout.setVerticalGroup( + jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(jPanel2Layout.createSequentialGroup() + .addContainerGap() + .addComponent(motorPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + ); + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() + .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) ); }// //GEN-END:initComponents private void buttonStart1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonStart1ActionPerformed // TODO add your handling code here: - runScript("test1"); + run("test1"); }//GEN-LAST:event_buttonStart1ActionPerformed private void buttonStart2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonStart2ActionPerformed // TODO add your handling code here: - runScript("test2"); + run("test2"); }//GEN-LAST:event_buttonStart2ActionPerformed private void buttonStart3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonStart3ActionPerformed // TODO add your handling code here: - runScript("test3"); + run("test3"); }//GEN-LAST:event_buttonStart3ActionPerformed private void buttonStart4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonStart4ActionPerformed // TODO add your handling code here: - runScript("test4"); + run("test4"); }//GEN-LAST:event_buttonStart4ActionPerformed private void buttonStart5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonStart5ActionPerformed // TODO add your handling code here: - runScript("test5"); + run("test5"); }//GEN-LAST:event_buttonStart5ActionPerformed @@ -205,5 +201,7 @@ public class MainPanel extends javax.swing.JPanel { private javax.swing.JButton buttonStart4; private javax.swing.JButton buttonStart5; private javax.swing.JPanel jPanel1; + private javax.swing.JPanel jPanel2; + private ch.psi.pshell.swing.MotorPanel motorPanel; // End of variables declaration//GEN-END:variables } diff --git a/src/main/java/ch/psi/plugin/TestPlugin.java b/src/main/java/ch/psi/plugin/TestPlugin.java index b973769..c991cb3 100644 --- a/src/main/java/ch/psi/plugin/TestPlugin.java +++ b/src/main/java/ch/psi/plugin/TestPlugin.java @@ -5,6 +5,8 @@ package ch.psi.plugin; import ch.psi.pshell.ui.Plugin; +import ch.psi.utils.State; +import ch.psi.utils.swing.SwingUtils; /** * @@ -13,7 +15,15 @@ public class TestPlugin extends Plugin{ MainPanel panel; @Override protected void onStart() { - panel = new MainPanel(); + panel = new MainPanel(){ + protected void run(String name){ + try { + TestPlugin.this.run(name); + } catch (Exception ex) { + SwingUtils.showException(panel, ex); + } + } + }; getView().getDocumentsTab().insertTab("Main",null,panel,null,0); getView().getDocumentsTab().setSelectedComponent(panel); } @@ -22,4 +32,16 @@ public class TestPlugin extends Plugin{ protected void onStop() { } + + protected void onStateChange(State state, State former){ + panel.setState(state); + } + + @Override + protected void onInitialize(int runCount){ + panel.setDevice(getDevice("motor")); + } + + + }