/* * To change this template, choose Tools | Templates * and open the template in the editor. */ /* * InboxDialog.java * * Created on Nov 5, 2009, 2:33:04 PM */ package com.server.gui; import com.server.utils.MessageInfo; import com.server.utils.SettingsConstatnts; import com.server.utils.Utility; import javax.swing.JOptionPane; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import javax.swing.table.DefaultTableModel; /** * * @author Administrator */ public class InboxDialog extends javax.swing.JDialog implements ListSelectionListener { /** Creates new form InboxDialog */ Utility utility = null; public InboxDialog(java.awt.Frame parent, boolean modal) { super(parent, modal); initComponents(); utility = new Utility(); loadAllMessages(); inboxTable.getSelectionModel().addListSelectionListener(this); } /** 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") // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { inboxPopupMenu = new javax.swing.JPopupMenu(); deleteMenuItem = new javax.swing.JMenuItem(); deleteAllMsgMenuItem = new javax.swing.JMenuItem(); jScrollPane1 = new javax.swing.JScrollPane(); inboxTable = new javax.swing.JTable(); jPanel1 = new javax.swing.JPanel(); jScrollPane2 = new javax.swing.JScrollPane(); messageTextArea = new javax.swing.JTextArea(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); dateLabel = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel(); timeLabel = new javax.swing.JLabel(); ipAddressLabel = new javax.swing.JLabel(); subjectLabel = new javax.swing.JLabel(); closeButton = new javax.swing.JButton(); deleteButton = new javax.swing.JButton(); deleteAllButton = new javax.swing.JButton(); deleteMenuItem.setText("Delete Message"); deleteMenuItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { deleteMenuItemActionPerformed(evt); } }); inboxPopupMenu.add(deleteMenuItem); deleteAllMsgMenuItem.setText("Delete All Message"); deleteAllMsgMenuItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { deleteAllMsgMenuItemActionPerformed(evt); } }); inboxPopupMenu.add(deleteAllMsgMenuItem); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); setTitle("Inbox"); inboxTable.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { }, new String [] { "SlNo", "Subject", "Date" } ) { boolean[] canEdit = new boolean [] { false, false, false }; public boolean isCellEditable(int rowIndex, int columnIndex) { return canEdit [columnIndex]; } }); inboxTable.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { inboxTableMouseClicked(evt); } }); jScrollPane1.setViewportView(inboxTable); inboxTable.getColumnModel().getColumn(0).setMinWidth(50); inboxTable.getColumnModel().getColumn(0).setPreferredWidth(50); inboxTable.getColumnModel().getColumn(0).setMaxWidth(50); jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createEtchedBorder())); messageTextArea.setColumns(20); messageTextArea.setEditable(false); messageTextArea.setRows(5); jScrollPane2.setViewportView(messageTextArea); jLabel1.setText("From IP Address:"); jLabel2.setText("Subject:"); jLabel3.setText("Date:"); dateLabel.setText("00/00/0000"); jLabel5.setText("Time:"); timeLabel.setText("00:00:00"); ipAddressLabel.setText("000.000.000.000"); subjectLabel.setText(null); javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jLabel2) .addComponent(jLabel1)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(ipAddressLabel) .addGap(75, 75, 75) .addComponent(jLabel3) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(dateLabel) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jLabel5) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(timeLabel)) .addComponent(subjectLabel))) .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 621, Short.MAX_VALUE)) .addContainerGap()) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel1) .addComponent(jLabel3) .addComponent(dateLabel) .addComponent(jLabel5) .addComponent(timeLabel) .addComponent(ipAddressLabel)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel2) .addComponent(subjectLabel)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 132, Short.MAX_VALUE) .addContainerGap()) ); closeButton.setText("Close"); closeButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { closeButtonActionPerformed(evt); } }); deleteButton.setText("Delete"); deleteButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { deleteButtonActionPerformed(evt); } }); deleteAllButton.setText("Delete All"); deleteAllButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { deleteAllButtonActionPerformed(evt); } }); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 653, Short.MAX_VALUE) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addComponent(deleteAllButton) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(deleteButton) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(closeButton))) .addContainerGap()) ); layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {closeButton, deleteAllButton, deleteButton}); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 129, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(closeButton) .addComponent(deleteButton) .addComponent(deleteAllButton)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); pack(); }// </editor-fold>//GEN-END:initComponents private void closeButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_closeButtonActionPerformed // TODO add your handling code here: this.dispose(); }//GEN-LAST:event_closeButtonActionPerformed private void inboxTableMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_inboxTableMouseClicked // TODO add your handling code here: if (evt.isMetaDown()) { inboxPopupMenu.show(inboxTable, evt.getX(), evt.getY()); } }//GEN-LAST:event_inboxTableMouseClicked private void deleteMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_deleteMenuItemActionPerformed // TODO add your handling code here: int selectedRow = inboxTable.getSelectedRow(); if (selectedRow != -1) { if (JOptionPane.showConfirmDialog(this, "Do you want to delete the selected message", "Inbox", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE) == JOptionPane.YES_OPTION) { SettingsConstatnts.messages.removeElementAt(selectedRow); loadAllMessages(); } } else { JOptionPane.showMessageDialog(this, "Please select message you want to delete.", "Inbox", JOptionPane.WARNING_MESSAGE); } }//GEN-LAST:event_deleteMenuItemActionPerformed private void deleteAllMsgMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_deleteAllMsgMenuItemActionPerformed // TODO add your handling code here: if (SettingsConstatnts.messages.size() != 0) { if (JOptionPane.showConfirmDialog(this, "Do you want to delete all messages", "Inbox", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE) == JOptionPane.YES_OPTION) { SettingsConstatnts.messages.removeAllElements(); loadAllMessages(); } } else { JOptionPane.showMessageDialog(this, "The inbox is Empty!!!", "Inbox", JOptionPane.WARNING_MESSAGE); } }//GEN-LAST:event_deleteAllMsgMenuItemActionPerformed private void deleteButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_deleteButtonActionPerformed int selectedRow = inboxTable.getSelectedRow(); if (selectedRow != -1) { if (JOptionPane.showConfirmDialog(this, "Do you want to delete the selected message", "Inbox", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE) == JOptionPane.YES_OPTION) { SettingsConstatnts.messages.removeElementAt(selectedRow); loadAllMessages(); } } else { JOptionPane.showMessageDialog(this, "Select the message you want to delete.", "Inbox", JOptionPane.WARNING_MESSAGE); } }//GEN-LAST:event_deleteButtonActionPerformed private void deleteAllButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_deleteAllButtonActionPerformed if (SettingsConstatnts.messages.size() != 0) { if (JOptionPane.showConfirmDialog(this, "Do you want to delete all messages", "Inbox", JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE) == JOptionPane.YES_OPTION) { SettingsConstatnts.messages.removeAllElements(); loadAllMessages(); } } else { JOptionPane.showMessageDialog(this, "The inbox is Empty!!!", "Inbox", JOptionPane.WARNING_MESSAGE); } }//GEN-LAST:event_deleteAllButtonActionPerformed /** * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { InboxDialog dialog = new InboxDialog(new javax.swing.JFrame(), true); dialog.addWindowListener(new java.awt.event.WindowAdapter() { @Override public void windowClosing(java.awt.event.WindowEvent e) { System.exit(0); } }); dialog.setVisible(true); } }); } // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton closeButton; private javax.swing.JLabel dateLabel; private javax.swing.JButton deleteAllButton; private javax.swing.JMenuItem deleteAllMsgMenuItem; private javax.swing.JButton deleteButton; private javax.swing.JMenuItem deleteMenuItem; private javax.swing.JPopupMenu inboxPopupMenu; private javax.swing.JTable inboxTable; private javax.swing.JLabel ipAddressLabel; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel5; private javax.swing.JPanel jPanel1; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JTextArea messageTextArea; private javax.swing.JLabel subjectLabel; private javax.swing.JLabel timeLabel; // End of variables declaration//GEN-END:variables private void loadAllMessages() { clearAllFilds(); DefaultTableModel tableModel = (DefaultTableModel) inboxTable.getModel(); while (tableModel.getRowCount() > 0) { tableModel.removeRow(0); } for (int i = 0; i < SettingsConstatnts.messages.size(); i++) { MessageInfo messageInfo = SettingsConstatnts.messages.elementAt(i); String[] row = {"" + (i + 1), messageInfo.getSubject(), utility.getDate(messageInfo.getTime())}; tableModel.addRow(row); } inboxTable.updateUI(); } public void valueChanged(ListSelectionEvent e) { int selectedRow = inboxTable.getSelectedRow(); if (selectedRow != -1) { MessageInfo messageInfo = SettingsConstatnts.messages.elementAt(selectedRow); ipAddressLabel.setText(messageInfo.getIpAddress()); subjectLabel.setText(messageInfo.getSubject()); dateLabel.setText(utility.getDate(messageInfo.getTime())); timeLabel.setText(utility.getTime(messageInfo.getTime())); messageTextArea.setText(messageInfo.getMessageBody()); } } private void clearAllFilds() { ipAddressLabel.setText("000.000.000.000"); subjectLabel.setText(""); dateLabel.setText("00-00-00"); timeLabel.setText("00:00:00"); messageTextArea.setText(""); } }