From cef5282de64f7c40e90be1cb547d8758a31dd7ed Mon Sep 17 00:00:00 2001 From: boccioli_m Date: Fri, 9 Oct 2015 16:48:46 +0200 Subject: [PATCH] new: added properties file tat is read at init via loadProperties() file is tests.properties todo: save properties --- plugins/TestingList.form | 29 +++++++++---- plugins/TestingList.java | 79 +++++++++++++++++++++++++---------- script/tests/tests.properties | 3 ++ 3 files changed, 82 insertions(+), 29 deletions(-) create mode 100644 script/tests/tests.properties diff --git a/plugins/TestingList.form b/plugins/TestingList.form index a14a9fd..e413594 100644 --- a/plugins/TestingList.form +++ b/plugins/TestingList.form @@ -48,6 +48,8 @@ + + @@ -183,7 +185,7 @@ - + @@ -467,18 +469,29 @@ - - - + + + + + + + + - - - + + + + + + + + + @@ -507,6 +520,8 @@ + + diff --git a/plugins/TestingList.java b/plugins/TestingList.java index 986c931..7c4c1b7 100644 --- a/plugins/TestingList.java +++ b/plugins/TestingList.java @@ -299,32 +299,32 @@ public class TestingList extends Panel { */ private void initialise(){ initComponents(); + closeCustomPanel(); initLogger(); - loadProperties(); buildTable(); - closeCustomPanel(); + try { loadTests(); //if not administrator, then show only enabled tests boolean bShow = Controller.getInstance().getLevel()==AccessLevel.administrator; - showSelectedTestsOnly(bShow); - jCheckBoxMenuShowSelectedTests1.setState(bShow); + //showEnabledTestsOnly(bShow); + jCheckBoxMenuShowSelectedTests1.setEnabled(bShow); if(bShow){ //if tests are not shown, then show the load tests dialog - loadListFilter(); + //loadListFilter(); } } catch (Exception ex) { getLogger().severe(ex.getMessage()); - } + } + loadProperties(); } + /** * load general properties */ private void loadProperties(){ - System.out.print("Properties loading "); File configFile = TESTS_PROPERTIES_DEFAULT_DIR.toFile(); - System.out.print("Properties file: " + configFile.toString()); if (!configFile.isFile()) return; try { @@ -332,16 +332,30 @@ public class TestingList extends Panel { Properties props = new Properties(); props.load(reader); - String customPanel = props.getProperty("customPanel"); + String property = null; + + //list filter + property = props.getProperty("listFilter"); + property = property.replace("\"",""); + loadListFilter(Paths.get(TESTS_CONFIG_DEFAULT_DIR.toString(), property).toFile()); + + //custom panel + property = props.getProperty("customPanel"); + property = property.replace("\"",""); + loadCustomPanel(property); + + //show Enabled Tests Only + property = props.getProperty("showEnabledTestsOnly"); + property = property.replace("\"",""); + showEnabledTestsOnly("true".equals(property)); - System.out.print("Custom Panel: " + customPanel); reader.close(); } catch (FileNotFoundException ex) { // file does not exist - System.out.print(ex.toString()); + System.out.println(ex.toString()); } catch (IOException ex) { // I/O error - System.out.print(ex.toString()); + System.out.println(ex.toString()); } } @@ -402,12 +416,14 @@ public class TestingList extends Panel { * */ private void loadCustomPanel(String sPanelClassName){ + if (sPanelClassName == null || sPanelClassName == "") return; try { closeCustomPanel(); //create a class to visualise the details panel Class panelClass = getController().getClassByName(sPanelClassName); JPanel detailsPanel = (JPanel) panelClass.getConstructor(new Class[]{String.class}).newInstance(new Object[]{""}); this.jPanelCustomFrame.add(detailsPanel); + this.jLabelCustomPanelName.setText(sPanelClassName); repaint(); revalidate(); jPanelCustom.setVisible(true); @@ -485,6 +501,7 @@ public class TestingList extends Panel { jMenuAdvanced = new javax.swing.JMenu(); jMenuItemNewTest = new javax.swing.JMenuItem(); jMenuItemNewDevice = new javax.swing.JMenuItem(); + jSeparator6 = new javax.swing.JPopupMenu.Separator(); jMenuLoadCustomPanel = new javax.swing.JMenu(); jSeparator2 = new javax.swing.JPopupMenu.Separator(); jMenuItemEditScript = new javax.swing.JMenuItem(); @@ -519,6 +536,7 @@ public class TestingList extends Panel { jPanelCustom = new javax.swing.JPanel(); jPanelCustomFrame = new javax.swing.JPanel(); jButtonX = new javax.swing.JButton(); + jLabelCustomPanelName = new javax.swing.JLabel(); jCheckBoxMenuShowSelectedTests.setSelected(true); jCheckBoxMenuShowSelectedTests.setText("Show enabled tests only"); @@ -555,6 +573,7 @@ public class TestingList extends Panel { } }); jMenuAdvanced.add(jMenuItemNewDevice); + jMenuAdvanced.add(jSeparator6); jMenuLoadCustomPanel.setText("Load Custom Panel"); jMenuLoadCustomPanel.addMenuListener(new javax.swing.event.MenuListener() { @@ -821,16 +840,24 @@ public class TestingList extends Panel { jPanelCustom.setLayout(jPanelCustomLayout); jPanelCustomLayout.setHorizontalGroup( jPanelCustomLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jPanelCustomFrame, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanelCustomLayout.createSequentialGroup() - .addGap(0, 382, Short.MAX_VALUE) + .addGroup(jPanelCustomLayout.createSequentialGroup() + .addContainerGap() + .addComponent(jPanelCustomFrame, javax.swing.GroupLayout.DEFAULT_SIZE, 440, Short.MAX_VALUE)) + .addGroup(jPanelCustomLayout.createSequentialGroup() + .addContainerGap() + .addComponent(jLabelCustomPanelName, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jButtonX, javax.swing.GroupLayout.PREFERRED_SIZE, 18, javax.swing.GroupLayout.PREFERRED_SIZE)) ); jPanelCustomLayout.setVerticalGroup( jPanelCustomLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanelCustomLayout.createSequentialGroup() - .addComponent(jButtonX, javax.swing.GroupLayout.DEFAULT_SIZE, 17, Short.MAX_VALUE) - .addGap(0, 0, 0) + .addGroup(jPanelCustomLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(jButtonX, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanelCustomLayout.createSequentialGroup() + .addGap(0, 0, 0) + .addComponent(jLabelCustomPanelName) + .addGap(0, 0, 0))) .addComponent(jPanelCustomFrame, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(253, 253, 253)) ); @@ -923,6 +950,8 @@ public class TestingList extends Panel { int rowAtPoint = jTable1.rowAtPoint(cursor); jTable1.setRowSelectionInterval(rowAtPoint, rowAtPoint); } + //enable jMenuItemShowDetails depending on user privileges + this.jMenuItemShowDetails.setEnabled(Controller.getInstance().getLevel()==AccessLevel.administrator); //enable action Show Test Details only if one row is selected this.jMenuItemShowDetails.setEnabled(jTable1.getSelectedRows().length == 1); this.jMenuItemRunSingleTest.setEnabled(jTable1.getSelectedRows().length == 1); @@ -993,7 +1022,7 @@ public class TestingList extends Panel { private void jCheckBoxMenuShowSelectedTestsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBoxMenuShowSelectedTestsActionPerformed // TODO add your handling code here: boolean bShow = jCheckBoxMenuShowSelectedTests.getState(); - showSelectedTestsOnly(bShow); + showEnabledTestsOnly(bShow); jCheckBoxMenuShowSelectedTests1.setState(bShow); }//GEN-LAST:event_jCheckBoxMenuShowSelectedTestsActionPerformed @@ -1038,7 +1067,7 @@ public class TestingList extends Panel { private void jCheckBoxMenuShowSelectedTests1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBoxMenuShowSelectedTests1ActionPerformed // TODO add your handling code here: boolean bShow = jCheckBoxMenuShowSelectedTests1.getState(); - showSelectedTestsOnly(bShow); + showEnabledTestsOnly(bShow); jCheckBoxMenuShowSelectedTests.setState(bShow); }//GEN-LAST:event_jCheckBoxMenuShowSelectedTests1ActionPerformed @@ -1136,6 +1165,7 @@ public class TestingList extends Panel { private javax.swing.JCheckBox jCheckBoxEnableDisable; private javax.swing.JCheckBoxMenuItem jCheckBoxMenuShowSelectedTests; private javax.swing.JCheckBoxMenuItem jCheckBoxMenuShowSelectedTests1; + private javax.swing.JLabel jLabelCustomPanelName; private javax.swing.JMenu jMenuAdvanced; private javax.swing.JMenuItem jMenuItemDeselectSelection; private javax.swing.JMenuItem jMenuItemEditScript; @@ -1166,6 +1196,7 @@ public class TestingList extends Panel { private javax.swing.JPopupMenu.Separator jSeparator3; private javax.swing.JPopupMenu.Separator jSeparator4; private javax.swing.JPopupMenu.Separator jSeparator5; + private javax.swing.JSeparator jSeparator6; private javax.swing.JTable jTable1; // End of variables declaration//GEN-END:variables // @@ -1186,7 +1217,7 @@ public class TestingList extends Panel { * * @param show if false, show all tests. If true, show only selected tests. */ - public void showSelectedTestsOnly(boolean show) { + public void showEnabledTestsOnly(boolean show) { if (show) { filterTests("true"); } else { @@ -2042,7 +2073,7 @@ public class TestingList extends Panel { } } } - showSelectedTestsOnly(jCheckBoxMenuShowSelectedTests1.getState()); + showEnabledTestsOnly(jCheckBoxMenuShowSelectedTests1.getState()); logger.log(Level.INFO, iCounter + " tests loaded."); } @@ -2272,7 +2303,7 @@ public class TestingList extends Panel { File file = fc.getSelectedFile(); loadListFilter(file); jCheckBoxMenuShowSelectedTests.setSelected(true); - this.showSelectedTestsOnly(true); + this.showEnabledTestsOnly(true); } } @@ -2283,6 +2314,10 @@ public class TestingList extends Panel { * @param file file containing the settings */ private void loadListFilter(File file) { + if (file == null || !file.isFile()){ + loadListFilter(); + return; + } DefaultTableModel tableModel = (DefaultTableModel) jTable1.getModel(); try { ObjectInputStream in = new ObjectInputStream(new FileInputStream(file)); diff --git a/script/tests/tests.properties b/script/tests/tests.properties new file mode 100644 index 0000000..1745853 --- /dev/null +++ b/script/tests/tests.properties @@ -0,0 +1,3 @@ +customPanel = Kollimators +listFilter = CollimatorTests +showEnabledTestsOnly = true \ No newline at end of file