/* * 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 }