/*
* 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("");
}
}