package event.editor; import java.awt.event.*; import javax.swing.*; import java.util.*; import javax.swing.event.TableModelEvent; import javax.swing.event.TableModelListener; import javax.swing.table.*; import scriptbuilder.structures.events.*; /** * * @author nathaniellehrer */ public class TelephonePanel extends javax.swing.JPanel implements ScriptEventEditorPanel { private ActionListener removeListener; private JTable dialogTable; private TelephoneEvent event; HashMap buttonMap; /** * Creates new form TelephonePanel */ public TelephonePanel() { initComponents(); buttonMap = new HashMap(); buttonMap.put(addInstructorButton, "Instructor"); buttonMap.put(addStudentButton, "Student"); dialogTable = GenericTable.genericizeTable(jScrollPane1, buttonMap, deleteSelectedButton); } public void getEventObject(I_ScriptEvent sei) { event = (TelephoneEvent) sei; for (int i = 0; i < event.roles.size(); i++) { ((MyTableModel) dialogTable.getModel()).addRow(event.roles.get(i), event.lines.get(i)); if (!event.roles.get(i).equals("Student")) { txtInstructorRole.setText(event.roles.get(i)); } } txtInstructorRole.addKeyListener(new KeyListener() { public void keyTyped(KeyEvent e) { } public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ENTER) { buttonMap.put(addInstructorButton, txtInstructorRole.getText()); } } public void keyReleased(KeyEvent e) { } }); buttonMap.put(addInstructorButton, txtInstructorRole.getText()); addInstructorButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { int i = event.roles.size(); event.roles.add(txtInstructorRole.getText()); event.lines.add(""); } }); addStudentButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { int i = event.roles.size(); event.roles.add("Student"); event.lines.add(""); } }); dialogTable.getModel().addTableModelListener(new TableModelListener() { public void tableChanged(TableModelEvent e) { if (e.getType() == TableModelEvent.UPDATE) { event.roles.set(e.getLastRow(), dialogTable.getModel().getValueAt(e.getLastRow(), 0).toString()); event.lines.set(e.getLastRow(), dialogTable.getModel().getValueAt(e.getLastRow(), 1).toString()); } if(e.getType() == TableModelEvent.DELETE) { event.roles.remove(e.getLastRow()); event.lines.remove(e.getLastRow()); } } }); } public void update(Observable o, Object arg) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } /** * 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() { addStudentButton = new javax.swing.JButton(); jScrollPane1 = new javax.swing.JScrollPane(); deleteSelectedButton = new javax.swing.JButton(); addInstructorButton = new javax.swing.JButton(); txtInstructorRole = new javax.swing.JTextField(); jLabel1 = new javax.swing.JLabel(); removeButton = new javax.swing.JButton(); addStudentButton.setText("Add Student Line"); addStudentButton.setToolTipText("Adds a row for student dialog in the table"); jScrollPane1.setHorizontalScrollBar(null); deleteSelectedButton.setText("Delete Selected Line"); deleteSelectedButton.setToolTipText("Deletes the selected row in the table"); addInstructorButton.setText("Add Instructor Line"); addInstructorButton.setToolTipText("Adds a row for instructor dialog in the table"); txtInstructorRole.setToolTipText("Specifies the role the instructor plays"); jLabel1.setText("Role of instructor:"); removeButton.setText("Remove"); removeButton.setToolTipText("Removes this property"); removeButton.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { removeThisProperty(evt); } }); org.jdesktop.layout.GroupLayout layout = new org.jdesktop.layout.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(org.jdesktop.layout.GroupLayout.TRAILING, layout.createSequentialGroup() .addContainerGap() .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.TRAILING) .add(org.jdesktop.layout.GroupLayout.LEADING, jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 602, Short.MAX_VALUE) .add(org.jdesktop.layout.GroupLayout.LEADING, layout.createSequentialGroup() .add(jLabel1) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(txtInstructorRole, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 478, Short.MAX_VALUE)) .add(org.jdesktop.layout.GroupLayout.LEADING, layout.createSequentialGroup() .add(addInstructorButton) .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED) .add(addStudentButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 173, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED) .add(deleteSelectedButton, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, 178, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED, 86, Short.MAX_VALUE)) .add(removeButton)) .add(26, 26, 26)) ); layout.setVerticalGroup( layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING) .add(layout.createSequentialGroup() .addContainerGap() .add(removeButton) .addPreferredGap(org.jdesktop.layout.LayoutStyle.RELATED) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(txtInstructorRole, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE) .add(jLabel1)) .add(18, 18, 18) .add(layout.createParallelGroup(org.jdesktop.layout.GroupLayout.BASELINE) .add(addInstructorButton) .add(addStudentButton) .add(deleteSelectedButton)) .addPreferredGap(org.jdesktop.layout.LayoutStyle.UNRELATED) .add(jScrollPane1, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, 310, Short.MAX_VALUE) .addContainerGap()) ); }// //GEN-END:initComponents private void removeThisProperty(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_removeThisProperty if (removeListener != null) { removeListener.actionPerformed(new ActionEvent(this, 0, "")); } }//GEN-LAST:event_removeThisProperty // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton addInstructorButton; private javax.swing.JButton addStudentButton; private javax.swing.JButton deleteSelectedButton; private javax.swing.JLabel jLabel1; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JButton removeButton; private javax.swing.JTextField txtInstructorRole; // End of variables declaration//GEN-END:variables }