diff --git a/plugins/EditTestingList - Copy.form b/plugins/EditTestingList - Copy.form
new file mode 100644
index 0000000..4b9d90f
--- /dev/null
+++ b/plugins/EditTestingList - Copy.form
@@ -0,0 +1,195 @@
+
+
+
diff --git a/plugins/EditTestingList - Copy.java b/plugins/EditTestingList - Copy.java
new file mode 100644
index 0000000..fea4093
--- /dev/null
+++ b/plugins/EditTestingList - Copy.java
@@ -0,0 +1,250 @@
+/*
+ * Copyright (c) 2015 Paul Scherrer Institute. All rights reserved.
+ */
+
+import ch.psi.utils.swing.SwingUtils;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.ObjectInputStream;
+import java.util.Iterator;
+import java.util.Vector;
+import javax.swing.JFileChooser;
+import javax.swing.table.DefaultTableModel;
+import javax.swing.table.TableModel;
+
+/*
+ * 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 EditTestingList extends javax.swing.JPanel {
+
+ /**
+ * Creates new form TestingListDetails
+ */
+ public EditTestingList() {
+ initComponents();
+ }
+
+ public EditTestingList(TableModel hDetails) {
+ initComponents();
+ fillComponents(hDetails);
+ }
+
+ /**
+ * 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() {
+
+ jPanel1 = new javax.swing.JPanel();
+ jScrollPane2 = new javax.swing.JScrollPane();
+ jList2 = new javax.swing.JList();
+ jScrollPane5 = new javax.swing.JScrollPane();
+ jTable1 = new javax.swing.JTable();
+ jPanel2 = new javax.swing.JPanel();
+ 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());
+
+ 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", "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
+ };
+ boolean[] canEdit = new boolean [] {
+ true, true, false, false, false, false, false, false
+ };
+
+ public Class getColumnClass(int columnIndex) {
+ return types [columnIndex];
+ }
+
+ public boolean isCellEditable(int rowIndex, int columnIndex) {
+ return canEdit [columnIndex];
+ }
+ });
+ jTable1.setColumnSelectionAllowed(true);
+ jTable1.setDragEnabled(true);
+ jTable1.setDropMode(javax.swing.DropMode.INSERT);
+ jTable1.setRowHeight(22);
+ jTable1.addMouseListener(new java.awt.event.MouseAdapter() {
+ public void mouseClicked(java.awt.event.MouseEvent evt) {
+ jTable1MouseClicked(evt);
+ }
+ });
+ jTable1.addKeyListener(new java.awt.event.KeyAdapter() {
+ public void keyReleased(java.awt.event.KeyEvent evt) {
+ jTable1KeyReleased(evt);
+ }
+ });
+ 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, 50));
+
+ cmDefault.setText("Save as Default");
+ this.cmCancel.setVisible(false);
+ this.cmOk.setVisible(false);
+ this.cmDefault.setVisible(false);
+ cmDefault.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ cmDefaultActionPerformed(evt);
+ }
+ });
+
+ 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);
+
+ javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
+ jPanel2.setLayout(jPanel2Layout);
+ jPanel2Layout.setHorizontalGroup(
+ jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanel2Layout.createSequentialGroup()
+ .addComponent(cmDefault, javax.swing.GroupLayout.PREFERRED_SIZE, 204, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 223, Short.MAX_VALUE)
+ .addComponent(cmOk, javax.swing.GroupLayout.PREFERRED_SIZE, 73, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addGap(32, 32, 32)
+ .addComponent(cmCancel))
+ );
+ jPanel2Layout.setVerticalGroup(
+ jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanel2Layout.createSequentialGroup()
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .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))
+ );
+
+ add(jPanel2, java.awt.BorderLayout.SOUTH);
+ }// //GEN-END:initComponents
+
+ 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());
+ }
+ }
+ }
+
+ 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:
+
+ break;
+ }
+
+ } catch (Exception ex) {
+ SwingUtils.showException(this, ex);
+ }
+ }
+ }//GEN-LAST:event_jTable1MouseClicked
+
+ private void jTable1KeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jTable1KeyReleased
+
+ }//GEN-LAST:event_jTable1KeyReleased
+
+ private void cmCancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmCancelActionPerformed
+ // TODO add your handling code here:
+ }//GEN-LAST:event_cmCancelActionPerformed
+
+ private void cmDefaultActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_cmDefaultActionPerformed
+ // TODO add your handling code here:
+ }//GEN-LAST:event_cmDefaultActionPerformed
+
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ 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;
+ private javax.swing.JScrollPane jScrollPane2;
+ private javax.swing.JScrollPane jScrollPane5;
+ private javax.swing.JTable jTable1;
+ // End of variables declaration//GEN-END:variables
+}