package de.ugoe.cs.eventbench.swing; import java.awt.BorderLayout; import java.awt.FlowLayout; import java.util.List; import de.ugoe.cs.eventbench.assertions.AssertEvent; import de.ugoe.cs.eventbench.assertions.FileEqualsReplay; import de.ugoe.cs.eventbench.assertions.TextEqualsReplay; import de.ugoe.cs.eventbench.data.Event; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import javax.swing.JComboBox; import javax.swing.JLabel; import javax.swing.JTextField; import javax.swing.DefaultComboBoxModel; import javax.swing.JOptionPane; import javax.swing.JFileChooser; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.io.File; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import javax.swing.JScrollPane; import javax.swing.JList; public class DlgInsert extends JDialog { /** * Id for object serialization. */ private static final long serialVersionUID = 1L; private final JPanel contentPanel = new JPanel(); private JTextField textFieldExpectedValue; private JTextField textFieldActualFile; private JTextField textFieldExpectedFile; /** * Launch the application. */ public static void showDialog(List> sequences, int selectedIndex, final boolean insertBefore) { try { DlgInsert dialog = new DlgInsert(sequences, selectedIndex, insertBefore); dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); dialog.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } /** * Create the dialog. */ public DlgInsert(final List> sequences, final int selectedIndex, final boolean insertBefore) { final javax.swing.DefaultListModel modelListTargets = new javax.swing.DefaultListModel(); setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); setTitle("Insert testcase"); setModal(true); setBounds(100, 100, 522, 482); getContentPane().setLayout(new BorderLayout()); contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5)); getContentPane().add(contentPanel, BorderLayout.CENTER); contentPanel.setLayout(null); final JComboBox comboBoxTestcase = new JComboBox(); final JPanel panelTextEquals = new JPanel(); final JPanel panelFileEquals = new JPanel(); // JComboBox: comboBoxTestcase comboBoxTestcase.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { if ("comboBoxChanged".equals(arg0.getActionCommand())) { // TextEquals if (comboBoxTestcase.getSelectedIndex() == 0) { panelTextEquals.setVisible(true); panelFileEquals.setVisible(false); } // FileEquals else if (comboBoxTestcase.getSelectedIndex() == 1) { panelTextEquals.setVisible(false); panelFileEquals.setVisible(true); } } } }); comboBoxTestcase.setModel(new DefaultComboBoxModel(new String[] { "TextEquals", "OutputFileEquals" })); comboBoxTestcase.setSelectedIndex(0); comboBoxTestcase.setBounds(128, 11, 178, 20); contentPanel.add(comboBoxTestcase); // *** // JLabel JLabel label = new JLabel("Testcase:"); label.setBounds(10, 14, 86, 14); contentPanel.add(label); JLabel label_1 = new JLabel("Expected value:"); label_1.setBounds(10, 11, 83, 14); JLabel label_2 = new JLabel("Target:"); label_2.setBounds(10, 38, 86, 14); // *** // JTextField: textFieldExpectedValue textFieldExpectedValue = new JTextField(); textFieldExpectedValue.setColumns(10); textFieldExpectedValue.setBounds(116, 8, 368, 20); // *** // JPanel: panel panelTextEquals.setLayout(null); panelTextEquals.setBounds(10, 39, 494, 210); contentPanel.add(panelTextEquals); panelTextEquals.add(label_1); panelTextEquals.add(label_2); panelTextEquals.add(textFieldExpectedValue); JScrollPane scrollPane = new JScrollPane(); scrollPane.setBounds(116, 36, 368, 163); panelTextEquals.add(scrollPane); final JList listTargets = new JList(modelListTargets); scrollPane.setViewportView(listTargets); for (int i = 0; i < sequences.size(); i++) { if (sequences.get(i).getTarget() != " ") modelListTargets.addElement(sequences.get(i).getTarget()); } listTargets.setSelectedIndex(0); panelFileEquals.setBounds(10, 260, 494, 140); contentPanel.add(panelFileEquals); panelFileEquals.setLayout(null); panelFileEquals.setVisible(false); JLabel lblNewLabel = new JLabel("Actual file:"); lblNewLabel.setBounds(10, 11, 89, 14); panelFileEquals.add(lblNewLabel); textFieldActualFile = new JTextField(); textFieldActualFile.setBounds(10, 36, 474, 20); panelFileEquals.add(textFieldActualFile); textFieldActualFile.setColumns(10); JButton btnNewButton = new JButton("Search file"); btnNewButton.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent arg0) { final JFileChooser fc = new JFileChooser(); if (fc.showOpenDialog(contentPanel) == 0) { textFieldExpectedFile.setText(fc.getSelectedFile() .getAbsolutePath()); } } }); btnNewButton.setBounds(99, 80, 89, 23); panelFileEquals.add(btnNewButton); JLabel lblNewLabel_1 = new JLabel("Expected file:"); lblNewLabel_1.setBounds(10, 84, 89, 14); panelFileEquals.add(lblNewLabel_1); textFieldExpectedFile = new JTextField(); textFieldExpectedFile.setColumns(10); textFieldExpectedFile.setBounds(10, 109, 474, 20); panelFileEquals.add(textFieldExpectedFile); { JPanel buttonPane = new JPanel(); buttonPane.setLayout(new FlowLayout(FlowLayout.RIGHT)); getContentPane().add(buttonPane, BorderLayout.SOUTH); { // JButton: okButton JButton okButton = new JButton("Insert"); okButton.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent arg0) { // FileEquals if (panelFileEquals.isVisible()) { if (textFieldActualFile.getText().length() == 0) JOptionPane.showMessageDialog(null, "Please declare an actual file.", "No actual file declared", JOptionPane.OK_OPTION); else if (!new File(textFieldExpectedFile.getText()) .exists()) { if (textFieldExpectedFile.getText().length() == 0) JOptionPane.showMessageDialog(null, "Please choose an expected file.", "No expected file chosen", JOptionPane.OK_OPTION); else JOptionPane.showMessageDialog( null, "The expected file \"" + textFieldActualFile .getText() + "\" does not exist.", "Expected file does not exist", JOptionPane.OK_OPTION); return; } else { FileEqualsReplay file = new FileEqualsReplay(); file.setActualFile(textFieldActualFile .getText()); file.setExpectedFile(textFieldExpectedFile .getText()); AssertEvent e = new AssertEvent( "FileEquals"); e.addReplayEvent(file); e.setTarget(" "); if (insertBefore) sequences.add(selectedIndex, e); else sequences.add(selectedIndex + 1, e); } } // TextEquals else { if (textFieldExpectedValue.getText().length() == 0) { JOptionPane .showMessageDialog( null, "\"Expected value\" is missing.", "Expected value", JOptionPane.OK_OPTION); return; } else if (listTargets.getSelectedIndex() == -1) { JOptionPane.showMessageDialog(null, "Please select a target.", "No target selected", JOptionPane.OK_OPTION); return; } else { TextEqualsReplay text = new TextEqualsReplay(); text.setExpectedValue(textFieldExpectedValue .getText()); text.setTarget(modelListTargets.get( listTargets.getSelectedIndex()) .toString()); AssertEvent e = new AssertEvent( "TextEquals"); e.addReplayEvent(text); e.setTarget(" "); if (insertBefore) sequences.add(selectedIndex, e); else sequences.add(selectedIndex + 1, e); } } dispose(); } }); okButton.setActionCommand("OK"); buttonPane.add(okButton); getRootPane().setDefaultButton(okButton); // *** } { // JButton: cancelButton JButton cancelButton = new JButton("Cancel"); cancelButton.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent arg0) { dispose(); } }); cancelButton.setActionCommand("Cancel"); buttonPane.add(cancelButton); // *** } } // *** } }