diff --git a/plugins/NewTest - Copy.java b/plugins/NewTest - Copy.java deleted file mode 100644 index 32ccab0..0000000 --- a/plugins/NewTest - Copy.java +++ /dev/null @@ -1,336 +0,0 @@ -/* - * Copyright (c) 2015 Paul Scherrer Institute. All rights reserved. - */ - -import ch.psi.utils.swing.SwingUtils; -import java.awt.Desktop; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStream; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.HashMap; -import java.util.Properties; -import java.util.logging.Level; -import java.util.logging.Logger; -import javax.swing.ImageIcon; -import javax.swing.JDialog; -import javax.swing.JPanel; -import javax.swing.event.HyperlinkEvent; -import javax.swing.event.HyperlinkListener; -import javax.swing.table.DefaultTableModel; -import org.apache.commons.io.FilenameUtils; - -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ - -/** - * - * @author boccioli_m - */ -public class NewTest extends javax.swing.JPanel { - - /** - * Creates new form TestingListDetails - */ - public NewTest() { - initComponents(); - } - - public NewTest(String hDetails) { - initComponents(); - - } - - /** - * This method is called from within the constructor to initialize the form. - * WARNING: Do NOT modify this code. The content of this method is always - * regenerated by the Form Editor. - */ - @SuppressWarnings("unchecked") - // //GEN-BEGIN:initComponents - private void initComponents() { - - jLabel4 = new javax.swing.JLabel(); - txtTestSuite = new javax.swing.JTextField(); - jLabel5 = new javax.swing.JLabel(); - txtTestName = new javax.swing.JTextField(); - jScrollPane1 = new javax.swing.JScrollPane(); - jTableParams = new javax.swing.JTable(); - jLabel7 = new javax.swing.JLabel(); - cmCancel = new javax.swing.JButton(); - cmOk = new javax.swing.JButton(); - jLabel8 = new javax.swing.JLabel(); - jScrollPane3 = new javax.swing.JScrollPane(); - txtTestDescription = new javax.swing.JTextArea(); - jScrollPane4 = new javax.swing.JScrollPane(); - jEditorPaneHelp = new javax.swing.JEditorPane(); - - jLabel4.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N - jLabel4.setText("Test Case/Suite"); - - txtTestSuite.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N - - jLabel5.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N - jLabel5.setText("Test Name"); - - txtTestName.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N - - jTableParams.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N - jTableParams.setModel(new javax.swing.table.DefaultTableModel( - new Object [][] { - - }, - new String [] { - "Parameter", "Value", "Description" - } - ) { - boolean[] canEdit = new boolean [] { - false, true, false - }; - - public boolean isCellEditable(int rowIndex, int columnIndex) { - return canEdit [columnIndex]; - } - }); - jTableParams.setDragEnabled(true); - jTableParams.setRowHeight(20); - jScrollPane1.setViewportView(jTableParams); - if (jTableParams.getColumnModel().getColumnCount() > 0) { - jTableParams.getColumnModel().getColumn(0).setMinWidth(150); - jTableParams.getColumnModel().getColumn(0).setPreferredWidth(150); - jTableParams.getColumnModel().getColumn(0).setMaxWidth(150); - jTableParams.getColumnModel().getColumn(1).setPreferredWidth(80); - jTableParams.getColumnModel().getColumn(1).setMaxWidth(100); - } - - jLabel7.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N - jLabel7.setText("Test Parameters"); - - cmCancel.setText("Cancel"); - this.cmCancel.setVisible(false); - this.cmOk.setVisible(false); - cmCancel.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - cmCancelActionPerformed(evt); - } - }); - - cmOk.setText("Ok"); - this.cmCancel.setVisible(false); - this.cmOk.setVisible(false); - - jLabel8.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N - jLabel8.setText("Test Description"); - - jScrollPane3.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N - - txtTestDescription.setColumns(20); - txtTestDescription.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N - txtTestDescription.setLineWrap(true); - txtTestDescription.setRows(5); - jScrollPane3.setViewportView(txtTestDescription); - - jEditorPaneHelp.setContentType("text/html"); // NOI18N - jEditorPaneHelp.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N - jEditorPaneHelp.setDropMode(javax.swing.DropMode.INSERT); - jScrollPane4.setViewportView(jEditorPaneHelp); - - javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); - this.setLayout(layout); - layout.setHorizontalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addGroup(layout.createSequentialGroup() - .addComponent(jLabel4) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(txtTestSuite, javax.swing.GroupLayout.PREFERRED_SIZE, 513, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(layout.createSequentialGroup() - .addComponent(jLabel5) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(txtTestName, javax.swing.GroupLayout.PREFERRED_SIZE, 513, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jLabel7) - .addComponent(jLabel8)) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) - .addGroup(layout.createSequentialGroup() - .addGap(331, 331, 331) - .addComponent(cmOk, javax.swing.GroupLayout.PREFERRED_SIZE, 96, javax.swing.GroupLayout.PREFERRED_SIZE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(cmCancel, javax.swing.GroupLayout.PREFERRED_SIZE, 98, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 513, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGroup(layout.createSequentialGroup() - .addGap(18, 18, 18) - .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 513, javax.swing.GroupLayout.PREFERRED_SIZE))))) - .addGap(18, 18, 18) - .addComponent(jScrollPane4, javax.swing.GroupLayout.DEFAULT_SIZE, 317, Short.MAX_VALUE) - .addContainerGap()) - ); - layout.setVerticalGroup( - layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addContainerGap() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel5) - .addComponent(txtTestName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(18, 18, 18) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel4) - .addComponent(txtTestSuite, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(18, 18, 18) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 81, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(jLabel8)) - .addGap(18, 18, 18) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 359, Short.MAX_VALUE) - .addGroup(layout.createSequentialGroup() - .addComponent(jLabel7) - .addGap(0, 0, Short.MAX_VALUE))) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(cmCancel) - .addComponent(cmOk))) - .addGroup(layout.createSequentialGroup() - .addComponent(jScrollPane4) - .addContainerGap()))) - ); - }// //GEN-END:initComponents - - - public static Path TESTS_DEVICES_DEFAULT_DIR = Paths.get(".", "home", "script", "tests", "devices"); - public static Path TESTS_TESTS_DEFAULT_DIR = Paths.get(".", "home", "script", "tests", "tests"); - public static Path TESTS_CONFIG_DEFAULT_DIR = Paths.get(".", "home", "script", "tests", "config"); - public static String TESTS_CONFIG_FILENAME = ".config"; - public static String TESTS_HELP_FILENAME = "help.html"; - public static Path TEMPLATES_HELP_FILEPATH = Paths.get(".", "home", "script", "tests","templates","helpTemplate.html"); - public static Path TEMPLATES_TEST_FILEPATH = Paths.get(".", "home", "script", "tests","templates","testTemplate.html"); - public static Path TEMPLATES_CONFIG_FILEPATH = Paths.get(".", "home", "script", "tests","templates","configTemplate.html"); - - private void fillComponents(HashMap hDetails) { - - } - - - public void generateTestFiles(){ - HashMap hmTestParams = new HashMap(); - generateTestFiles(this.txtTestName.getText(), - this.txtTestDescription.getText(), - this.txtTestSuite.getText(), - hmTestParams); - } - - public void generateTestFiles(String sTestName, - String sTestDescription, - String sTestSuite, - HashMap hmTestParams){ - if (!TESTS_TESTS_DEFAULT_DIR.toFile().isDirectory()) { - //check that the tests suite dir exists. If not, create it - Path testSuiteDir = Paths.get(TESTS_TESTS_DEFAULT_DIR.toString(),sTestSuite); - if( !testSuiteDir.toFile().isDirectory()){ - boolean success = testSuiteDir.toFile().mkdirs(); - if (!success) { - // Directory creation failed - SwingUtils.showMessage(this, "saveSettings()", "Cannot create directory " + testSuiteDir.toString()); - }else{ - //new test directory inside tests suite dir - Path testDir = Paths.get(testSuiteDir.toString(),sTestName); - success = testDir.toFile().mkdirs(); - if (!success) { - // Directory creation failed - SwingUtils.showMessage(this, "saveSettings()", "Cannot create directory " + testDir.toString()); - } else{ - //generate test files inside test dir - generateTestConfig(testDir, - sTestName, - sTestDescription, - sTestSuite, - hmTestParams); - } - } - } - } - } - - public void generateTestScript(String sTestName, - String sTestDescription, - String sTestSuite, - HashMap hmTestParams){ - - } - - public void generateTestConfig(Path testDir, - String sTestName, - String sTestDescription, - String sTestSuite, - HashMap hmTestParams){ - //generate test config file from template - try { - Path path = Paths.get(testDir + FilenameUtils.separatorsToSystem("/"+TESTS_CONFIG_FILENAME)); - Files.copy(TEMPLATES_CONFIG_FILEPATH, path); - File configFile = path.toFile(); - Properties properties = new Properties(); - properties.setProperty("name", sTestName); - properties.setProperty("description", sTestDescription); - OutputStream is = new FileOutputStream(configFile); - properties.store(is, "Test config"); - is.close(); - } catch (FileNotFoundException ex) { - Logger.getLogger(NewTest.class.getName()).log(Level.SEVERE, null, ex); - } catch (IOException ex) { - Logger.getLogger(NewTest.class.getName()).log(Level.SEVERE, null, ex); - } - - } - - public void generateTestHelp(Path testDir, - String sTestName, - String sTestDescription, - String sTestSuite, - HashMap hmTestParams){ - //generate test config file from template - Path path = Paths.get(testDir + FilenameUtils.separatorsToSystem("/"+TESTS_HELP_FILENAME)); - try { - Files.copy(TEMPLATES_HELP_FILEPATH, path); - File configFile = path.toFile(); - } catch (IOException ex) { - Logger.getLogger(NewTest.class.getName()).log(Level.SEVERE, null, ex); - } - } - - - private void cmCancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmCancelActionPerformed - - }//GEN-LAST:event_cmCancelActionPerformed - - - // Variables declaration - do not modify//GEN-BEGIN:variables - private javax.swing.JButton cmCancel; - private javax.swing.JButton cmOk; - private javax.swing.JEditorPane jEditorPaneHelp; - private javax.swing.JLabel jLabel4; - private javax.swing.JLabel jLabel5; - private javax.swing.JLabel jLabel7; - private javax.swing.JLabel jLabel8; - private javax.swing.JScrollPane jScrollPane1; - private javax.swing.JScrollPane jScrollPane3; - private javax.swing.JScrollPane jScrollPane4; - private javax.swing.JTable jTableParams; - private javax.swing.JTextArea txtTestDescription; - private javax.swing.JTextField txtTestName; - private javax.swing.JTextField txtTestSuite; - // End of variables declaration//GEN-END:variables -} diff --git a/plugins/NewTest.form b/plugins/NewTest.form index b4e4fad..beb0f21 100644 --- a/plugins/NewTest.form +++ b/plugins/NewTest.form @@ -151,10 +151,10 @@ - + - + diff --git a/plugins/NewTest.java b/plugins/NewTest.java index 726f79b..779f4f9 100644 --- a/plugins/NewTest.java +++ b/plugins/NewTest.java @@ -104,8 +104,8 @@ public class NewTest extends javax.swing.JPanel { txtTestName.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N - jComboBoxTestSuites.setMinimumSize(new java.awt.Dimension(31, 23)); - jComboBoxTestSuites.setPreferredSize(new java.awt.Dimension(31, 23)); + jComboBoxTestSuites.setMinimumSize(new java.awt.Dimension(31, 26)); + jComboBoxTestSuites.setPreferredSize(new java.awt.Dimension(31, 26)); jScrollPane3.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N @@ -229,7 +229,9 @@ public class NewTest extends javax.swing.JPanel { } }//GEN-LAST:event_jMenuItemReleteRowActionPerformed - //constant declarations + /** + * constants declarations + */ public static Path TESTS_DEVICES_DEFAULT_DIR = Paths.get(".", "home", "script", "tests", "devices"); public static Path TESTS_TESTS_DEFAULT_DIR = Paths.get(".", "home", "script", "tests", "tests"); public static Path TESTS_CONFIG_DEFAULT_DIR = Paths.get(".", "home", "script", "tests", "config"); diff --git a/plugins/TestingList.form b/plugins/TestingList.form index 5aa1a48..79a24de 100644 --- a/plugins/TestingList.form +++ b/plugins/TestingList.form @@ -10,7 +10,8 @@ - + + @@ -67,6 +68,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -102,7 +178,7 @@ - + @@ -145,7 +221,7 @@ - + @@ -264,14 +340,14 @@ - + - + - + @@ -284,7 +360,7 @@ - + @@ -309,7 +385,7 @@ - + diff --git a/plugins/TestingList.java b/plugins/TestingList.java index a7a5a01..ff5e1f7 100644 --- a/plugins/TestingList.java +++ b/plugins/TestingList.java @@ -338,6 +338,17 @@ public class TestingList extends Panel { jSeparator2 = new javax.swing.JPopupMenu.Separator(); jMenuItemOpenLog = new javax.swing.JMenuItem(); jPopupMenuConfigs = new javax.swing.JPopupMenu(); + jPopupMenuTable = new javax.swing.JPopupMenu(); + jMenuItemShowDetails = new javax.swing.JMenuItem(); + jSeparator3 = new javax.swing.JPopupMenu.Separator(); + jMenuSelect = new javax.swing.JMenu(); + jMenuItemSelectAll = new javax.swing.JMenuItem(); + jMenuItemSelectNone = new javax.swing.JMenuItem(); + jMenuItemSelectSelection = new javax.swing.JMenuItem(); + jMenuItemDeselectSelection = new javax.swing.JMenuItem(); + jCheckBoxMenuShowSelectedTests1 = new javax.swing.JCheckBoxMenuItem(); + jSeparator4 = new javax.swing.JPopupMenu.Separator(); + jMenuItemReload1 = new javax.swing.JMenuItem(); jScrollPane2 = new javax.swing.JScrollPane(); jTable1 = new javax.swing.JTable(); jPanel1 = new javax.swing.JPanel(); @@ -347,11 +358,12 @@ public class TestingList extends Panel { jButtonSave = new javax.swing.JButton(); jButtonOpen = new javax.swing.JButton(); jPanel2 = new javax.swing.JPanel(); - jCheckBox1 = new javax.swing.JCheckBox(); + jCheckBoxEnableDisable = new javax.swing.JCheckBox(); jButtonMoveDown = new javax.swing.JButton(); jButtonMoveUp = new javax.swing.JButton(); - jCheckBoxMenuShowSelectedTests.setText("Show selected tests only"); + jCheckBoxMenuShowSelectedTests.setSelected(true); + jCheckBoxMenuShowSelectedTests.setText("Show enabled tests only"); jCheckBoxMenuShowSelectedTests.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jCheckBoxMenuShowSelectedTestsActionPerformed(evt); @@ -397,6 +409,68 @@ public class TestingList extends Panel { jPopupMenuOptions.add(jMenuAdvanced); + jMenuItemShowDetails.setText("Open Test Details"); + jMenuItemShowDetails.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jMenuItemShowDetailsActionPerformed(evt); + } + }); + jPopupMenuTable.add(jMenuItemShowDetails); + jPopupMenuTable.add(jSeparator3); + + jMenuSelect.setText("Enable/Disable"); + + jMenuItemSelectAll.setText("Enable all"); + jMenuItemSelectAll.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jMenuItemSelectAllActionPerformed(evt); + } + }); + jMenuSelect.add(jMenuItemSelectAll); + + jMenuItemSelectNone.setText("Disable all"); + jMenuItemSelectNone.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jMenuItemSelectNoneActionPerformed(evt); + } + }); + jMenuSelect.add(jMenuItemSelectNone); + + jMenuItemSelectSelection.setText("Enable selection"); + jMenuItemSelectSelection.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jMenuItemSelectSelectionActionPerformed(evt); + } + }); + jMenuSelect.add(jMenuItemSelectSelection); + + jMenuItemDeselectSelection.setText("Disable selection"); + jMenuItemDeselectSelection.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jMenuItemDeselectSelectionActionPerformed(evt); + } + }); + jMenuSelect.add(jMenuItemDeselectSelection); + + jPopupMenuTable.add(jMenuSelect); + + jCheckBoxMenuShowSelectedTests1.setText("Show enabled tests only"); + jCheckBoxMenuShowSelectedTests1.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jCheckBoxMenuShowSelectedTests1ActionPerformed(evt); + } + }); + jPopupMenuTable.add(jCheckBoxMenuShowSelectedTests1); + jPopupMenuTable.add(jSeparator4); + + jMenuItemReload1.setText("Reload tests"); + jMenuItemReload1.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + jMenuItemReload1ActionPerformed(evt); + } + }); + jPopupMenuTable.add(jMenuItemReload1); + setLayout(new java.awt.BorderLayout()); jTable1.setAutoCreateRowSorter(true); @@ -406,7 +480,7 @@ public class TestingList extends Panel { }, new String [] { - "Select", "Start", "Time", "Device Name", "Device Description", "Test Suite", "Test Name", "Test Peth", "Test Parameters", "Test Description", "Test Help", "Last Test Result", "Status", "" + "Enable", "Start", "Time", "Device Name", "Device Description", "Test Suite", "Test Name", "Test Peth", "Test Parameters", "Test Description", "Test Help", "Last Test Result", "Status", "" } ) { Class[] types = new Class [] { @@ -447,7 +521,7 @@ public class TestingList extends Panel { jPanel1.setLayout(new java.awt.BorderLayout()); jButtonRun.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/play-circled-64-000000.png"))); // NOI18N - jButtonRun.setToolTipText("Run selected tests"); + jButtonRun.setToolTipText("Run enabled tests"); jButtonRun.setMaximumSize(new java.awt.Dimension(330000, 39)); jButtonRun.setMinimumSize(new java.awt.Dimension(90, 90)); jButtonRun.setPreferredSize(new java.awt.Dimension(90, 39)); @@ -500,18 +574,18 @@ public class TestingList extends Panel { jPanel2.setLayout(new java.awt.BorderLayout()); - jCheckBox1.setToolTipText("Select/Deselec thet highlighted tests"); - jCheckBox1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); - jCheckBox1.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); - jCheckBox1.addActionListener(new java.awt.event.ActionListener() { + jCheckBoxEnableDisable.setToolTipText("Enable/Disable the selected tests"); + jCheckBoxEnableDisable.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); + jCheckBoxEnableDisable.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); + jCheckBoxEnableDisable.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { - jCheckBox1ActionPerformed(evt); + jCheckBoxEnableDisableActionPerformed(evt); } }); - jPanel2.add(jCheckBox1, java.awt.BorderLayout.WEST); + jPanel2.add(jCheckBoxEnableDisable, java.awt.BorderLayout.WEST); jButtonMoveDown.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/chevron-down-16-000000.png"))); // NOI18N - jButtonMoveDown.setToolTipText("Move the highlighted tests down"); + jButtonMoveDown.setToolTipText("Move the selected tests down"); jButtonMoveDown.setMaximumSize(new java.awt.Dimension(25, 25)); jButtonMoveDown.setMinimumSize(new java.awt.Dimension(25, 25)); jButtonMoveDown.setPreferredSize(new java.awt.Dimension(25, 25)); @@ -523,7 +597,7 @@ public class TestingList extends Panel { jPanel2.add(jButtonMoveDown, java.awt.BorderLayout.SOUTH); jButtonMoveUp.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/chevron-up-16-000000.png"))); // NOI18N - jButtonMoveUp.setToolTipText("Move the highlighted tests up"); + jButtonMoveUp.setToolTipText("Move the selected tests up"); jButtonMoveUp.setMaximumSize(new java.awt.Dimension(25, 25)); jButtonMoveUp.setMinimumSize(new java.awt.Dimension(25, 25)); jButtonMoveUp.setPreferredSize(new java.awt.Dimension(25, 25)); @@ -568,40 +642,68 @@ public class TestingList extends Panel { this.jButtonOptions.setEnabled(false); this.jButtonSave.setEnabled(false); } - - private void jCheckBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBox1ActionPerformed - boolean bSelected = jCheckBox1.isSelected(); + + /** + * enable/disable the tests in the table. + * + * @param bEnable if true, enable. Else, disable + * @param onlyIfSelected if true, only the tests with Selected checkbox full will be enables/disabled. + * If false, all tests will be enabled/disabled + * @param smartEnable if true, it enables/disables selected tests or, if none selected, it enables/disables all + */ + private void enableAll(boolean bEnable, boolean onlyIfSelected, boolean smartEnable){ int iSelRows = jTable1.getSelectedRowCount(); - if (iSelRows > 0) {// if some rows are selected, check/uncheck selected rows + if (onlyIfSelected || (smartEnable && iSelRows > 0)) {// if some rows are selected, check/uncheck selected rows for (int row = 0; row <= jTable1.getRowCount() - 1; row++) { for (int selRow = 0; selRow <= jTable1.getSelectedRowCount() - 1; selRow++) { if (row == jTable1.getSelectedRows()[selRow]) { - jTable1.setValueAt(bSelected, row, 0); + jTable1.setValueAt(bEnable, row, 0); } } } } else {//if none of the rows are selected, check/uncheck all for (int row = 0; row <= jTable1.getRowCount() - 1; row++) { - jTable1.setValueAt(bSelected, row, 0); + jTable1.setValueAt(bEnable, row, 0); } } - updateStatus(); - }//GEN-LAST:event_jCheckBox1ActionPerformed + updateStatus(); + } + + private void enableAll(boolean bEnable){ + enableAll(bEnable, false, false); + } + + private void enableSelection(boolean bEnable){ + enableAll(bEnable, true, true); + } + + private void jCheckBoxEnableDisableActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBoxEnableDisableActionPerformed + enableAll(jCheckBoxEnableDisable.isSelected(), false, true); + }//GEN-LAST:event_jCheckBoxEnableDisableActionPerformed private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTable1MouseClicked if (this.jTable1.isEnabled()) { - try { - switch (evt.getClickCount()) { - case 1: - break; - case 2: - openDetails(); - break; + if(evt.getButton() == java.awt.event.MouseEvent.BUTTON3){ + //right mouse click + //enable action Show Test Details only if one row is selected + this.jMenuItemShowDetails.setEnabled(jTable1.getSelectedRows().length == 1); + jPopupMenuTable.show(jTable1, evt.getX(), evt.getY()); + } + else{ + //left mouse click + try { + switch (evt.getClickCount()) { + case 1: + break; + case 2: + openDetails(); + break; + } + updateStatus(); + } catch (Exception ex) { + SwingUtils.showException(this, ex); } - updateStatus(); - } catch (Exception ex) { - SwingUtils.showException(this, ex); } } }//GEN-LAST:event_jTable1MouseClicked @@ -648,7 +750,9 @@ public class TestingList extends Panel { private void jCheckBoxMenuShowSelectedTestsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBoxMenuShowSelectedTestsActionPerformed // TODO add your handling code here: - showSelectedTestsOnly(jCheckBoxMenuShowSelectedTests.getState()); + boolean bShow = jCheckBoxMenuShowSelectedTests.getState(); + showSelectedTestsOnly(bShow); + jCheckBoxMenuShowSelectedTests1.setState(bShow); }//GEN-LAST:event_jCheckBoxMenuShowSelectedTestsActionPerformed private void jMenuItemOpenLogActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemOpenLogActionPerformed @@ -688,6 +792,52 @@ public class TestingList extends Panel { openNewTestEditor("Device"); }//GEN-LAST:event_jMenuItemNewDeviceActionPerformed + private void jCheckBoxMenuShowSelectedTests1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBoxMenuShowSelectedTests1ActionPerformed + // TODO add your handling code here: + boolean bShow = jCheckBoxMenuShowSelectedTests1.getState(); + showSelectedTestsOnly(bShow); + jCheckBoxMenuShowSelectedTests.setState(bShow); + }//GEN-LAST:event_jCheckBoxMenuShowSelectedTests1ActionPerformed + + private void jMenuItemReload1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemReload1ActionPerformed + // TODO add your handling code here: + reloadTests(); + try { + cleanTests(); + } catch (IOException ex) { + Logger.getLogger(TestingList.class.getName()).log(Level.SEVERE, null, ex); + } + }//GEN-LAST:event_jMenuItemReload1ActionPerformed + + private void jMenuItemShowDetailsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemShowDetailsActionPerformed + try { + // TODO add your handling code here: + openDetails(); + } catch (Exception ex) { + Logger.getLogger(TestingList.class.getName()).log(Level.SEVERE, null, ex); + } + }//GEN-LAST:event_jMenuItemShowDetailsActionPerformed + + private void jMenuItemSelectAllActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemSelectAllActionPerformed + // TODO add your handling code here: + enableAll(true); + }//GEN-LAST:event_jMenuItemSelectAllActionPerformed + + private void jMenuItemSelectNoneActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemSelectNoneActionPerformed + // TODO add your handling code here: + enableAll(false); + }//GEN-LAST:event_jMenuItemSelectNoneActionPerformed + + private void jMenuItemSelectSelectionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemSelectSelectionActionPerformed + // TODO add your handling code here: + enableSelection(true); + }//GEN-LAST:event_jMenuItemSelectSelectionActionPerformed + + private void jMenuItemDeselectSelectionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItemDeselectSelectionActionPerformed + // TODO add your handling code here: + enableSelection(false); + }//GEN-LAST:event_jMenuItemDeselectSelectionActionPerformed + // // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton jButtonMoveDown; @@ -696,21 +846,32 @@ public class TestingList extends Panel { private javax.swing.JButton jButtonOptions; private javax.swing.JButton jButtonRun; private javax.swing.JButton jButtonSave; - private javax.swing.JCheckBox jCheckBox1; + private javax.swing.JCheckBox jCheckBoxEnableDisable; private javax.swing.JCheckBoxMenuItem jCheckBoxMenuShowSelectedTests; + private javax.swing.JCheckBoxMenuItem jCheckBoxMenuShowSelectedTests1; private javax.swing.JMenu jMenuAdvanced; + private javax.swing.JMenuItem jMenuItemDeselectSelection; private javax.swing.JMenuItem jMenuItemNewDevice; private javax.swing.JMenuItem jMenuItemNewTest; private javax.swing.JMenuItem jMenuItemOpenLog; private javax.swing.JMenuItem jMenuItemReload; + private javax.swing.JMenuItem jMenuItemReload1; + private javax.swing.JMenuItem jMenuItemSelectAll; + private javax.swing.JMenuItem jMenuItemSelectNone; + private javax.swing.JMenuItem jMenuItemSelectSelection; + private javax.swing.JMenuItem jMenuItemShowDetails; + private javax.swing.JMenu jMenuSelect; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel3; private javax.swing.JPopupMenu jPopupMenuConfigs; private javax.swing.JPopupMenu jPopupMenuOptions; + private javax.swing.JPopupMenu jPopupMenuTable; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JPopupMenu.Separator jSeparator1; private javax.swing.JPopupMenu.Separator jSeparator2; + private javax.swing.JSeparator jSeparator3; + private javax.swing.JSeparator jSeparator4; private javax.swing.JTable jTable1; // End of variables declaration//GEN-END:variables //