Closedown

This commit is contained in:
boccioli_m
2015-08-21 15:07:10 +02:00
parent 6b957d4968
commit b55edf5eb6
3 changed files with 211 additions and 45 deletions

View File

@@ -3,7 +3,22 @@
*/
import ch.psi.utils.swing.SwingUtils;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.nio.file.Paths;
import java.util.Iterator;
import java.util.Properties;
import java.util.Vector;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFileChooser;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import org.apache.commons.io.FilenameUtils;
/*
* To change this license header, choose License Headers in Project Properties.
@@ -26,7 +41,8 @@ public class EditTestingList extends javax.swing.JPanel {
public EditTestingList(TableModel hDetails) {
initComponents();
fillComponents(hDetails);
//fillComponents(hDetails);
loadTests();
}
/**
@@ -44,9 +60,9 @@ public class EditTestingList extends javax.swing.JPanel {
jScrollPane5 = new javax.swing.JScrollPane();
jTable1 = new javax.swing.JTable();
jPanel2 = new javax.swing.JPanel();
cmDefault2 = new javax.swing.JButton();
cmCancel2 = new javax.swing.JButton();
cmOk2 = new javax.swing.JButton();
cmDefault = new javax.swing.JButton();
cmCancel = new javax.swing.JButton();
cmOk = new javax.swing.JButton();
setPreferredSize(new java.awt.Dimension(963, 556));
setLayout(new java.awt.BorderLayout());
@@ -54,29 +70,37 @@ public class EditTestingList extends javax.swing.JPanel {
jPanel1.setPreferredSize(new java.awt.Dimension(963, 556));
jPanel1.setLayout(new javax.swing.BoxLayout(jPanel1, javax.swing.BoxLayout.LINE_AXIS));
jScrollPane2.setMaximumSize(new java.awt.Dimension(4000, 32767));
jScrollPane2.setMinimumSize(new java.awt.Dimension(100, 27));
jScrollPane2.setPreferredSize(new java.awt.Dimension(100, 146));
jList2.setModel(new javax.swing.AbstractListModel() {
String[] strings = { "Item 1", "Item 2", "Item 3", "Item 4", "Item 5" };
public int getSize() { return strings.length; }
public Object getElementAt(int i) { return strings[i]; }
});
jList2.setMaximumSize(new java.awt.Dimension(0, 0));
jList2.setMinimumSize(new java.awt.Dimension(0, 0));
jScrollPane2.setViewportView(jList2);
jPanel1.add(jScrollPane2);
jScrollPane5.setMinimumSize(new java.awt.Dimension(300, 300));
jTable1.setFont(new java.awt.Font("Tahoma", 0, 15)); // NOI18N
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
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", ""
"Select", "Start", "Device Name", "Device Description", "Test Suite", "Test Name", "Test Peth", "Test Description",
}
) {
Class[] types = new Class [] {
java.lang.Boolean.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, javax.swing.Icon.class
java.lang.Boolean.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class, java.lang.Object.class
};
boolean[] canEdit = new boolean [] {
true, true, false, false, false, false, false, false, false, false, false, false, false, false
true, true, false, false, false, false, false, false
};
public Class getColumnClass(int columnIndex) {
@@ -87,6 +111,7 @@ public class EditTestingList extends javax.swing.JPanel {
return canEdit [columnIndex];
}
});
jTable1.setColumnSelectionAllowed(true);
jTable1.setDragEnabled(true);
jTable1.setDropMode(javax.swing.DropMode.INSERT);
jTable1.setRowHeight(22);
@@ -101,33 +126,34 @@ public class EditTestingList extends javax.swing.JPanel {
}
});
jScrollPane5.setViewportView(jTable1);
jTable1.getColumnModel().getSelectionModel().setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
jPanel1.add(jScrollPane5);
add(jPanel1, java.awt.BorderLayout.CENTER);
jPanel2.setPreferredSize(new java.awt.Dimension(263, 30));
jPanel2.setPreferredSize(new java.awt.Dimension(263, 50));
cmDefault2.setText("Save as Default");
cmDefault.setText("Save as Default");
this.cmCancel.setVisible(false);
this.cmOk.setVisible(false);
this.cmDefault.setVisible(false);
cmDefault2.addActionListener(new java.awt.event.ActionListener() {
cmDefault.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cmDefault2ActionPerformed(evt);
cmDefaultActionPerformed(evt);
}
});
cmCancel2.setText("Cancel");
cmCancel.setText("Cancel");
this.cmCancel.setVisible(false);
this.cmOk.setVisible(false);
cmCancel2.addActionListener(new java.awt.event.ActionListener() {
cmCancel.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
cmCancel2ActionPerformed(evt);
cmCancelActionPerformed(evt);
}
});
cmOk2.setText("Ok");
cmOk.setText("Ok");
this.cmCancel.setVisible(false);
this.cmOk.setVisible(false);
@@ -136,19 +162,19 @@ public class EditTestingList extends javax.swing.JPanel {
jPanel2Layout.setHorizontalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addComponent(cmDefault2, javax.swing.GroupLayout.PREFERRED_SIZE, 204, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(cmDefault, javax.swing.GroupLayout.PREFERRED_SIZE, 204, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 223, Short.MAX_VALUE)
.addComponent(cmOk2, javax.swing.GroupLayout.PREFERRED_SIZE, 73, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(cmOk, javax.swing.GroupLayout.PREFERRED_SIZE, 73, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(32, 32, 32)
.addComponent(cmCancel2))
.addComponent(cmCancel))
);
jPanel2Layout.setVerticalGroup(
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel2Layout.createSequentialGroup()
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(cmCancel2, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(cmOk2, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(cmDefault2, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(cmCancel, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(cmOk, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(cmDefault, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(25, 25, 25))
);
@@ -157,9 +183,119 @@ public class EditTestingList extends javax.swing.JPanel {
private void fillComponents(TableModel hDetails) {
jTable1.setModel(hDetails);
}
/**
* Load test list from file
*
* @param file file containing the settings
*/
private void loadSettings(String sFileName) {
final JFileChooser fc = new JFileChooser();
File file = new File(sFileName);
if (file.isFile()){
DefaultTableModel tableModel = (DefaultTableModel) jTable1.getModel();
try {
ObjectInputStream in = new ObjectInputStream(new FileInputStream(file));
Vector rowData = (Vector) in.readObject();
Iterator itr = rowData.iterator();
//clear table
tableModel.getDataVector().removeAllElements();
tableModel.fireTableDataChanged();
//rewrite table
while (itr.hasNext()) {
tableModel.addRow((Vector) itr.next());
}
in.close();
} catch (Exception ex) {
ex.printStackTrace();
SwingUtils.showMessage(this, "loadSettings()", ex.toString());
}
}
}
/**
* scan tests directory, scan devices directory, search for their test cases
* and scan for tests.
*
* @throws FileNotFoundException
* @throws IOException
*/
public void loadTests() {
Properties propDevice = new Properties();
Properties propTest = new Properties();
//String fileName = TESTS_DEVICES_DEFAULT_DIR;
//File folder = new File(fileName);
File testsFolder = null;
String sTestName;
int iCounter = 0;
//search devices and their tests
//Scan the list of devices
File[] listOfFiles = (TestingList.TESTS_DEVICES_DEFAULT_DIR.toFile()).listFiles();
for (File listOfFile : listOfFiles) {
propDevice.clear();
if (listOfFile.isFile()) {
} else if (listOfFile.isDirectory()) {
File configFile = new File(listOfFile.getPath() + FilenameUtils.separatorsToSystem("/.config"));
if (configFile.exists() && !configFile.isDirectory()) {
InputStream is = null;
try {
is = new FileInputStream(configFile);
} catch (FileNotFoundException ex) {
Logger.getLogger(EditTestingList.class.getName()).log(Level.SEVERE, null, ex);
}
if(is != null){
try {
propDevice.load(is);
} catch (IOException ex) {
Logger.getLogger(EditTestingList.class.getName()).log(Level.SEVERE, null, ex);
}
//config of device was loaded. now load the config of each test belonging to the device
//sTestName = TESTS_TESTS_DEFAULT_DIR + propDevice.getProperty("tests");
//testsFolder = new File(sTestName);
testsFolder = Paths.get(TestingList.TESTS_TESTS_DEFAULT_DIR.toString(), propDevice.getProperty("tests")).toFile();
if (testsFolder.exists() && testsFolder.isDirectory()) {
File[] listOfTests = testsFolder.listFiles();
for (File listOfTest : listOfTests) {
propTest.clear();
if (listOfTest.isDirectory()) {
configFile = new File(listOfTest.getPath() + FilenameUtils.separatorsToSystem("/.config"));
if (configFile.exists() && !configFile.isDirectory()) {
InputStream ist = null;
try {
ist = new FileInputStream(configFile);
} catch (FileNotFoundException ex) {
Logger.getLogger(EditTestingList.class.getName()).log(Level.SEVERE, null, ex);
}
try {
propTest.load(ist);
} catch (IOException ex) {
Logger.getLogger(EditTestingList.class.getName()).log(Level.SEVERE, null, ex);
}
addToTable("",
propDevice.getProperty("name"),
propDevice.getProperty("description"),
propDevice.getProperty("tests"),
"path",
propTest.getProperty("name"),
propTest.getProperty("parameters"));
iCounter++;
}
}
}
}
}
else{
SwingUtils.showMessage(this, "loadTests()", "Could not find any test");
}
}
}
}
}
private void jTable1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTable1MouseClicked
if (this.jTable1.isEnabled()) {
@@ -182,19 +318,19 @@ public class EditTestingList extends javax.swing.JPanel {
}//GEN-LAST:event_jTable1KeyReleased
private void cmCancel2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmCancel2ActionPerformed
private void cmCancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmCancelActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_cmCancel2ActionPerformed
}//GEN-LAST:event_cmCancelActionPerformed
private void cmDefault2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmDefault2ActionPerformed
private void cmDefaultActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmDefaultActionPerformed
// TODO add your handling code here:
}//GEN-LAST:event_cmDefault2ActionPerformed
}//GEN-LAST:event_cmDefaultActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton cmCancel2;
private javax.swing.JButton cmDefault2;
private javax.swing.JButton cmOk2;
private javax.swing.JButton cmCancel;
private javax.swing.JButton cmDefault;
private javax.swing.JButton cmOk;
private javax.swing.JList jList2;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
@@ -202,4 +338,8 @@ public class EditTestingList extends javax.swing.JPanel {
private javax.swing.JScrollPane jScrollPane5;
private javax.swing.JTable jTable1;
// End of variables declaration//GEN-END:variables
private void addToTable(String property, String property0, String property1, String property2, String property3, String property4, String property5) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
}