/*
* PhoneManagerView.java
*/
package fr.pmc.main;
import fr.pmc.sms.SMSModel;
import fr.pmc.config.Config;
import fr.pmc.config.ConfigView;
import java.io.IOException;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.event.CaretEvent;
import javax.swing.event.DocumentEvent;
import javax.swing.event.ListSelectionEvent;
import org.jdesktop.application.Action;
import org.jdesktop.application.ResourceMap;
import org.jdesktop.application.SingleFrameApplication;
import org.jdesktop.application.FrameView;
import javax.swing.JDialog;
import javax.swing.JFrame;
import fr.pma.client.Client;
import java.awt.AWTKeyStroke;
import java.awt.KeyboardFocusManager;
import java.util.HashSet;
import javax.swing.FocusManager;
import javax.swing.ListSelectionModel;
import javax.swing.RowFilter;
import javax.swing.event.CaretListener;
import javax.swing.event.DocumentListener;
import javax.swing.event.ListSelectionListener;
import javax.swing.table.TableRowSorter;
import javax.swing.text.StyledEditorKit;
/**
* The application's main frame.
*/
public class PhoneManagerView extends FrameView {
private void newFilter() {
RowFilter<SMSModel, Object> rf = null;
//If current expression doesn't parse, don't update.
try {
rf = RowFilter.regexFilter("(?i)" + searchText.getText());
} catch (java.util.regex.PatternSyntaxException e) {
return;
}
sorter.setRowFilter(rf);
}
public PhoneManagerView(SingleFrameApplication app) {
super(app);
initComponents();
resourceMap = getResourceMap();
//Init word wrap pour les destinataires et le contenu du sms
StyledEditorKit sek = new StyledEditorKit();
bodyText.setEditorKit(sek);
adressText.setEditorKit(sek);
//Init word wrap pour les destinataires et le contenu du sms
//Init du tableau des SMS
mSMS = new SMSModel();
smsTable.setModel(mSMS);
//Init du tableau des SMS
//Init de la recherche
sorter = new TableRowSorter<SMSModel>(mSMS);
smsTable.setRowSorter(sorter);
searchText.getDocument().addDocumentListener(new DocumentListener() {
public void insertUpdate(DocumentEvent arg0) {
newFilter();
}
public void removeUpdate(DocumentEvent arg0) {
newFilter();
}
public void changedUpdate(DocumentEvent arg0) {
newFilter();
}
});
//Init de la recherche
//Init des vnements sur les lignes du tableau
ListSelectionModel lsm = smsTable.getSelectionModel();
lsm.addListSelectionListener(new ListSelectionListener() {
public void valueChanged(ListSelectionEvent e) {
ListSelectionModel lsm = (ListSelectionModel) e.getSource();
int firstIndex = e.getFirstIndex();
int lastIndex = e.getLastIndex();
boolean isAdjusting = e.getValueIsAdjusting();
if (lsm.isSelectionEmpty()) {
} else {
// Find out which indexes are selected.
int minIndex = lsm.getMinSelectionIndex();
int maxIndex = lsm.getMaxSelectionIndex();
for (int i = minIndex; i <= maxIndex; i++) {
if (lsm.isSelectedIndex(i)) {
}
}
//une seule ligne est slectionne
if (minIndex == maxIndex) {
rowSelected = minIndex;
summaryText.setText(smsTable.getValueAt(rowSelected, 2).toString());
summaryLabel.setText(resourceMap.getString("summaryLabel.text") + " " + smsTable.getValueAt(rowSelected, 1).toString() + " " + smsTable.getValueAt(rowSelected, 0).toString());
}
}
}
});
//Init des vnements sur les lignes du tableau
//Init des vnement sur la zone de saisie du SMS
bodyText.addCaretListener(new CaretListener() {
public void caretUpdate(CaretEvent arg0) {
nbCharLabel.setText(String.valueOf(bodyText.getText().length() + " " + resourceMap.getString("nbCharLabel.text")));
}
});
//Init des vnement sur la zone de saisie du SMS
//Init focus forward and basckward for components
AWTKeyStroke strokeBackward = AWTKeyStroke.getAWTKeyStroke("shift TAB");
AWTKeyStroke strokeForward = AWTKeyStroke.getAWTKeyStroke("TAB");
Set<AWTKeyStroke> setStrokeBackward = new HashSet<AWTKeyStroke>();
Set<AWTKeyStroke> setStrokeForward = new HashSet<AWTKeyStroke>();
setStrokeBackward.add(strokeBackward);
setStrokeForward.add(strokeForward);
bodyText.setFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, setStrokeBackward);
bodyText.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, setStrokeForward);
adressText.setFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS, setStrokeBackward);
adressText.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, setStrokeForward);
//Init focus forward and basckward for components
//Chargement de la configuration de l'application
myConfig = new Config();
if (!myConfig.loadOptions()) {
connectMenuItem.setEnabled(false);
} else {
try {
cClient = new Client(myConfig.getsPathToAdb(), "5556", "44000");
connectMenuItem.setEnabled(true);
} catch (SocketException ex) {
Logger.getLogger(PhoneManagerView.class.getName()).log(Level.SEVERE, null, ex);
} catch (UnknownHostException ex) {
Logger.getLogger(PhoneManagerView.class.getName()).log(Level.SEVERE, null, ex);
}
}
//Chargement de la configuration de l'application
disconnectMenuItem.setEnabled(false);
}
@Action
public void showAboutBox() {
if (aboutBox == null) {
JFrame mainFrame = PhoneManagerApp.getApplication().getMainFrame();
aboutBox = new PhoneManagerAboutBoxView(mainFrame);
aboutBox.setLocationRelativeTo(mainFrame);
}
PhoneManagerApp.getApplication().show(aboutBox);
}
/** 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() {
mainPanel = new javax.swing.JPanel();
actionPanel = new javax.swing.JPanel();
writeActionPanel = new javax.swing.JPanel();
writeSMSScrollLabel = new javax.swing.JScrollPane();
writeSMSLabel = new javax.swing.JTextPane();
adressLabel = new javax.swing.JTextPane();
adressToScrollText = new javax.swing.JScrollPane();
adressText = new javax.swing.JTextPane();
bodyLabel = new javax.swing.JTextPane();
bodyScrollText = new javax.swing.JScrollPane();
bodyText = new javax.swing.JEditorPane();
nbCharLabel = new javax.swing.JLabel();
sendButton = new javax.swing.JButton();
razButton = new javax.swing.JButton();
saveButton = new javax.swing.JButton();
smsPanel = new javax.swing.JPanel();
searchPanel = new javax.swing.JPanel();
searchScrollLabel = new javax.swing.JScrollPane();
searchLabel = new javax.swing.JTextPane();
searchText = new javax.swing.JTextField();
searchIcon = new javax.swing.JLabel();
listSMSPanel = new javax.swing.JPanel();
sync = new javax.swing.JButton();
answer = new javax.swing.JButton();
transfer = new javax.swing.JButton();
delete = new javax.swing.JButton();
listScrollLabel = new javax.swing.JScrollPane();
listLabel = new javax.swing.JTextPane();
smsScrollTable = new javax.swing.JScrollPane();
smsTable = new javax.swing.JTable();
summaryPanel = new javax.swing.JPanel();
summaryScrollLabel = new javax.swing.JScrollPane();
summaryLabel = new javax.swing.JTextPane();
summaryScrollText = new javax.swing.JScrollPane();
summaryText = new javax.swing.JTextPane();
jPanel1 = new javax.swing.JPanel();
menuBar = new javax.swing.JMenuBar();
javax.swing.JMenu fileMenu = new javax.swing.JMenu();
connectMenuItem = new javax.swing.JMenuItem();
disconnectMenuItem = new javax.swing.JMenuItem();
javax.swing.JMenuItem exitMenuItem = new javax.swing.JMenuItem();
editMenu = new javax.swing.JMenu();
configMenuItem = new javax.swing.JMenuItem();
javax.swing.JMenu helpMenu = new javax.swing.JMenu();
javax.swing.JMenuItem aboutMenuItem = new javax.swing.JMenuItem();
statusPanel = new javax.swing.JPanel();
javax.swing.JSeparator statusPanelSeparator = new javax.swing.JSeparator();
statusAnimationLabel = new javax.swing.JLabel();
org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(fr.pmc.main.PhoneManagerApp.class).getContext().getResourceMap(PhoneManagerView.class);
mainPanel.setBackground(resourceMap.getColor("mainPanel.background")); // NOI18N
mainPanel.setName("mainPanel"); // NOI18N
actionPanel.setBackground(resourceMap.getColor("actionPanel.background")); // NOI18N
actionPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder());
actionPanel.setMinimumSize(new java.awt.Dimension(200, 0));
actionPanel.setName("actionPanel"); // NOI18N
actionPanel.setPreferredSize(new java.awt.Dimension(300, 620));
writeActionPanel.setBackground(resourceMap.getColor("writeActionPanel.background")); // NOI18N
writeActionPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
writeActionPanel.setName("writeActionPanel"); // NOI18N
writeSMSScrollLabel.setName("writeSMSScrollLabel"); // NOI18N
writeSMSLabel.setBackground(resourceMap.getColor("writeSMSLabel.background")); // NOI18N
writeSMSLabel.setEditable(false);
writeSMSLabel.setFont(resourceMap.getFont("writeSMSLabel.font")); // NOI18N
writeSMSLabel.setForeground(resourceMap.getColor("writeSMSLabel.foreground")); // NOI18N
writeSMSLabel.setText(resourceMap.getString("writeSMSLabel.text")); // NOI18N
writeSMSLabel.setFocusable(false);
writeSMSLabel.setName("writeSMSLabel"); // NOI18N
writeSMSScrollLabel.setViewportView(writeSMSLabel);
adressLabel.setBackground(resourceMap.getColor("adressLabel.background")); // NOI18N
adressLabel.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
adressLabel.setEditable(false);
adressLabel.setFont(resourceMap.getFont("adressLabel.font")); // NOI18N
adressLabel.setForeground(resourceMap.getColor("adressLabel.foreground")); // NOI18N
adressLabel.setText(resourceMap.getString("adressLabel.text")); // NOI18N
adressLabel.setFocusable(false);
adressLabel.setMargin(new java.awt.Insets(5, 5, 5, 5));
adressLabel.setName("adressLabel"); // NOI18N
adressToScrollText.setName("adressToScrollText"); // NOI18N
adressText.setBackground(resourceMap.getColor("adressText.background")); // NOI18N
adressText.setContentType(resourceMap.getString("adressText.contentType")); // NOI18N
adressText.setToolTipText(resourceMap.getString("adressText.toolTipText")); // NOI18N
adressText.setFocusCycleRoot(false);
adressText.setName("adressText"); // NOI18N
adressText.setNextFocusableComponent(bodyText);
adressToScrollText.setViewportView(adressText);
bodyLabel.setBackground(resourceMap.getColor("bodyLabel.background")); // NOI18N
bodyLabel.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
bodyLabel.setEditable(false);
bodyLabel.setFont(resourceMap.getFont("bodyLabel.font")); // NOI18N
bodyLabel.setForeground(resourceMap.getColor("bodyLabel.foreground")); // NOI18N
bodyLabel.setText(resourceMap.getString("bodyLabel.text")); // NOI18N
bodyLabel.setFocusable(false);
bodyLabel.setMargin(new java.awt.Insets(5, 5, 5, 5));
bodyLabel.setName("bodyLabel"); // NOI18N
bodyScrollText.setName("bodyScrollText"); // NOI18N
bodyText.setBackground(resourceMap.getColor("bodyText.background")); // NOI18N
bodyText.setContentType(resourceMap.getString("bodyText.contentType")); // NOI18N
bodyText.setToolTipText(resourceMap.getString("bodyText.toolTipText")); // NOI18N
bodyText.setFocusCycleRoot(false);
bodyText.setMinimumSize(new java.awt.Dimension(80, 23));
bodyText.setName("bodyText"); // NOI18N
bodyText.setNextFocusableComponent(sendButton);
bodyText.setPreferredSize(new java.awt.Dimension(80, 23));
bodyScrollText.setViewportView(bodyText);
nbCharLabel.setFont(resourceMap.getFont("nbCharLabel.font")); // NOI18N
nbCharLabel.setHorizontalAlignment(javax.swing.SwingConstants.RIGHT);
nbCharLabel.setText(resourceMap.getString("nbCharLabel.text")); // NOI18N
nbCharLabel.setBorder(javax.swing.BorderFactory.createEmptyBorder(0, 0, 0, 0));
nbCharLabel.setName("nbCharLabel"); // NOI18N
javax.swing.ActionMap actionMap = org.jdesktop.application.Application.getInstance(fr.pmc.main.PhoneManagerApp.class).getContext().getActionMap(PhoneManagerView.class, this);
sendButton.setAction(actionMap.get("sendSMS")); // NOI18N
sendButton.setBackground(resourceMap.getColor("sendButton.background")); // NOI18N
sendButton.setText(resourceMap.getString("sendButton.text")); // NOI18N
sendButton.setName("sendButton"); // NOI18N
sendButton.setOpaque(true);
razButton.setAction(actionMap.get("clearSMSForm")); // NOI18N
razButton.setBackground(resourceMap.getColor("razButton.background")); // NOI18N
razButton.setText(resourceMap.getString("razButton.text")); // NOI18N
razButton.setName("razButton"); // NOI18N
razButton.setOpaque(true);
saveButton.setBackground(resourceMap.getColor("saveButton.background")); // NOI18N
saveButton.setText(resourceMap.getString("saveButton.text")); // NOI18N
saveButton.setName("saveButton"); // NOI18N
saveButton.setOpaque(true);
javax.swing.GroupLayout writeActionPanelLayout = new javax.swing.GroupLayout(writeActionPanel);
writeActionPanel.setLayout(writeActionPanelLayout);
writeActionPanelLayout.setHorizontalGroup(
writeActionPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(writeSMSScrollLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 270, Short.MAX_VALUE)
.addGroup(writeActionPanelLayout.createSequentialGroup()
.addGap(12, 12, 12)
.addComponent(adressLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 246, Short.MAX_VALUE)
.addContainerGap())
.addGroup(writeActionPanelLayout.createSequentialGroup()
.addContainerGap()
.addComponent(adressToScrollText, javax.swing.GroupLayout.DEFAULT_SIZE, 246, Short.MAX_VALUE)
.addContainerGap())
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, writeActionPanelLayout.createSequentialGroup()
.addContainerGap()
.addComponent(bodyLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 246, Short.MAX_VALUE)
.addContainerGap())
.addGroup(writeActionPanelLayout.createSequentialGroup()
.addContainerGap()
.addComponent(bodyScrollText, javax.swing.GroupLayout.DEFAULT_SIZE, 246, Short.MAX_VALUE)
.addContainerGap())
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, writeActionPanelLayout.createSequentialGroup()
.addContainerGap()
.addComponent(nbCharLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 246, Short.MAX_VALUE)
.addContainerGap())
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, writeActionPanelLayout.createSequentialGroup()
.addContainerGap()
.addComponent(sendButton, javax.swing.GroupLayout.DEFAULT_SIZE, 246, Short.MAX_VALUE)
.addContainerGap())
.addGroup(writeActionPanelLayout.createSequentialGroup()
.addContainerGap()
.addComponent(saveButton, javax.swing.GroupLayout.DEFAULT_SIZE, 246, Short.MAX_VALUE)
.addContainerGap())
.addGroup(writeActionPanelLayout.createSequentialGroup()
.addContainerGap()
.addComponent(razButton, javax.swing.GroupLayout.DEFAULT_SIZE, 246, Short.MAX_VALUE)
.addContainerGap())
);
writeActionPanelLayout.setVerticalGroup(
writeActionPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(writeActionPanelLayout.createSequentialGroup()
.addComponent(writeSMSScrollLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(adressLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(0, 0, 0)
.addComponent(adressToScrollText, javax.swing.GroupLayout.PREFERRED_SIZE, 48, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(bodyLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(bodyScrollText, javax.swing.GroupLayout.PREFERRED_SIZE, 192, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(nbCharLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 13, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(sendButton, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(razButton, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(saveButton, javax.swing.GroupLayout.PREFERRED_SIZE, 29, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
javax.swing.GroupLayout actionPanelLayout = new javax.swing.GroupLayout(actionPanel);
actionPanel.setLayout(actionPanelLayout);
actionPanelLayout.setHorizontalGroup(
actionPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(actionPanelLayout.createSequentialGroup()
.addContainerGap()
.addComponent(writeActionPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
actionPanelLayout.setVerticalGroup(
actionPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(actionPanelLayout.createSequentialGroup()
.addContainerGap()
.addComponent(writeActionPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(336, Short.MAX_VALUE))
);
smsPanel.setBackground(resourceMap.getColor("smsPanel.background")); // NOI18N
smsPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder());
smsPanel.setMinimumSize(new java.awt.Dimension(500, 0));
smsPanel.setName("smsPanel"); // NOI18N
smsPanel.setPreferredSize(new java.awt.Dimension(700, 828));
smsPanel.setRequestFocusEnabled(false);
searchPanel.setBackground(resourceMap.getColor("searchPanel.background")); // NOI18N
searchPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
searchPanel.setMinimumSize(new java.awt.Dimension(0, 150));
searchPanel.setName("searchPanel"); // NOI18N
searchPanel.setPreferredSize(new java.awt.Dimension(650, 68));
searchScrollLabel.setName("searchScrollLabel"); // NOI18N
searchLabel.setBackground(resourceMap.getColor("searchLabel.background")); // NOI18N
searchLabel.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
searchLabel.setFont(resourceMap.getFont("searchLabel.font")); // NOI18N
searchLabel.setForeground(resourceMap.getColor("searchLabel.foreground")); // NOI18N
searchLabel.setText(resourceMap.getString("searchLabel.text")); // NOI18N
searchLabel.setFocusable(false);
searchLabel.setName("searchLabel"); // NOI18N
searchScrollLabel.setViewportView(searchLabel);
searchText.setText(resourceMap.getString("searchText.text")); // NOI18N
searchText.setToolTipText(resourceMap.getString("searchText.toolTipText")); // NOI18N
searchText.setName("searchText"); // NOI18N
searchIcon.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
searchIcon.setIcon(resourceMap.getIcon("searchIcon.icon")); // NOI18N
searchIcon.setText(resourceMap.getString("searchIcon.text")); // NOI18N
searchIcon.setVerticalAlignment(javax.swing.SwingConstants.TOP);
searchIcon.setName("searchIcon"); // NOI18N
javax.swing.GroupLayout searchPanelLayout = new javax.swing.GroupLayout(searchPanel);
searchPanel.setLayout(searchPanelLayout);
searchPanelLayout.setHorizontalGroup(
searchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(searchPanelLayout.createSequentialGroup()
.addContainerGap()
.addComponent(searchIcon)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(searchText, javax.swing.GroupLayout.DEFAULT_SIZE, 610, Short.MAX_VALUE)
.addContainerGap())
.addComponent(searchScrollLabel, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 670, Short.MAX_VALUE)
);
searchPanelLayout.setVerticalGroup(
searchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(searchPanelLayout.createSequentialGroup()
.addComponent(searchScrollLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(searchPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addGroup(searchPanelLayout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 3, Short.MAX_VALUE)
.addComponent(searchIcon))
.addComponent(searchText))
.addContainerGap())
);
listSMSPanel.setBackground(resourceMap.getColor("listSMSPanel.background")); // NOI18N
listSMSPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
listSMSPanel.setName("listSMSPanel"); // NOI18N
listSMSPanel.setPreferredSize(new java.awt.Dimension(650, 566));
sync.setAction(actionMap.get("getSMS")); // NOI18N
sync.setBackground(resourceMap.getColor("sync.background")); // NOI18N
sync.setText(resourceMap.getString("sync.text")); // NOI18N
sync.setName("sync"); // NOI18N
sync.setOpaque(true);
answer.setAction(actionMap.get("answerSMS")); // NOI18N
answer.setBackground(resourceMap.getColor("answer.background")); // NOI18N
answer.setText(resourceMap.getString("answer.text")); // NOI18N
answer.setName("answer"); // NOI18N
answer.setOpaque(true);
transfer.setAction(actionMap.get("trasnferSMS")); // NOI18N
transfer.setBackground(resourceMap.getColor("transfer.background")); // NOI18N
transfer.setText(resourceMap.getString("transfer.text")); // NOI18N
transfer.setName("transfer"); // NOI18N
transfer.setOpaque(true);
delete.setBackground(resourceMap.getColor("delete.background")); // NOI18N
delete.setText(resourceMap.getString("delete.text")); // NOI18N
delete.setName("delete"); // NOI18N
delete.setNextFocusableComponent(smsTable);
delete.setOpaque(true);
listScrollLabel.setName("listScrollLabel"); // NOI18N
listLabel.setBackground(resourceMap.getColor("listLabel.background")); // NOI18N
listLabel.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
listLabel.setEditable(false);
listLabel.setFont(resourceMap.getFont("listLabel.font")); // NOI18N
listLabel.setForeground(resourceMap.getColor("listLabel.foreground")); // NOI18N
listLabel.setText(resourceMap.getString("listLabel.text")); // NOI18N
listLabel.setFocusable(false);
listLabel.setName("listLabel"); // NOI18N
listScrollLabel.setViewportView(listLabel);
smsScrollTable.setName("smsScrollTable"); // NOI18N
smsTable.setBackground(resourceMap.getColor("smsTable.background")); // NOI18N
smsTable.setBorder(javax.swing.BorderFactory.createEmptyBorder(1, 1, 1, 1));
smsTable.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
smsTable.setName("smsTable"); // NOI18N
smsTable.setNextFocusableComponent(adressText);
smsTable.setSelectionMode(javax.swing.ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
smsScrollTable.setViewportView(smsTable);
javax.swing.GroupLayout listSMSPanelLayout = new javax.swing.GroupLayout(listSMSPanel);
listSMSPanel.setLayout(listSMSPanelLayout);
listSMSPanelLayout.setHorizontalGroup(
listSMSPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(listScrollLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 670, Short.MAX_VALUE)
.addGroup(listSMSPanelLayout.createSequentialGroup()
.addGap(12, 12, 12)
.addComponent(sync, javax.swing.GroupLayout.DEFAULT_SIZE, 155, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(answer, javax.swing.GroupLayout.DEFAULT_SIZE, 154, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(transfer, javax.swing.GroupLayout.DEFAULT_SIZE, 158, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(delete, javax.swing.GroupLayout.DEFAULT_SIZE, 161, Short.MAX_VALUE)
.addContainerGap())
.addGroup(listSMSPanelLayout.createSequentialGroup()
.addContainerGap()
.addComponent(smsScrollTable, javax.swing.GroupLayout.DEFAULT_SIZE, 646, Short.MAX_VALUE)
.addContainerGap())
);
listSMSPanelLayout.setVerticalGroup(
listSMSPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(listSMSPanelLayout.createSequentialGroup()
.addComponent(listScrollLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addGroup(listSMSPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE, false)
.addComponent(sync)
.addComponent(answer)
.addComponent(transfer)
.addComponent(delete))
.addGap(18, 18, 18)
.addComponent(smsScrollTable, javax.swing.GroupLayout.DEFAULT_SIZE, 422, Short.MAX_VALUE)
.addContainerGap())
);
summaryPanel.setBackground(resourceMap.getColor("summaryPanel.background")); // NOI18N
summaryPanel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
summaryPanel.setMinimumSize(new java.awt.Dimension(0, 100));
summaryPanel.setName("summaryPanel"); // NOI18N
summaryPanel.setPreferredSize(new java.awt.Dimension(150, 130));
summaryScrollLabel.setName("summaryScrollLabel"); // NOI18N
summaryLabel.setBackground(resourceMap.getColor("summaryLabel.background")); // NOI18N
summaryLabel.setEditable(false);
summaryLabel.setFont(resourceMap.getFont("summaryLabel.font")); // NOI18N
summaryLabel.setForeground(resourceMap.getColor("summaryLabel.foreground")); // NOI18N
summaryLabel.setText(resourceMap.getString("summaryLabel.text")); // NOI18N
summaryLabel.setFocusable(false);
summaryLabel.setName("summaryLabel"); // NOI18N
summaryScrollLabel.setViewportView(summaryLabel);
summaryScrollText.setName("summaryScrollText"); // NOI18N
summaryText.setBackground(resourceMap.getColor("summaryText.background")); // NOI18N
summaryText.setEditable(false);
summaryText.setFocusTraversalPolicyProvider(true);
summaryText.setMargin(new java.awt.Insets(5, 5, 5, 5));
summaryText.setName("summaryText"); // NOI18N
summaryScrollText.setViewportView(summaryText);
javax.swing.GroupLayout summaryPanelLayout = new javax.swing.GroupLayout(summaryPanel);
summaryPanel.setLayout(summaryPanelLayout);
summaryPanelLayout.setHorizontalGroup(
summaryPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(summaryScrollLabel, javax.swing.GroupLayout.DEFAULT_SIZE, 670, Short.MAX_VALUE)
.addGroup(summaryPanelLayout.createSequentialGroup()
.addGap(12, 12, 12)
.addComponent(summaryScrollText, javax.swing.GroupLayout.DEFAULT_SIZE, 646, Short.MAX_VALUE)
.addGap(12, 12, 12))
);
summaryPanelLayout.setVerticalGroup(
summaryPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(summaryPanelLayout.createSequentialGroup()
.addComponent(summaryScrollLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(summaryScrollText, javax.swing.GroupLayout.DEFAULT_SIZE, 77, Short.MAX_VALUE)
.addContainerGap())
);
javax.swing.GroupLayout smsPanelLayout = new javax.swing.GroupLayout(smsPanel);
smsPanel.setLayout(smsPanelLayout);
smsPanelLayout.setHorizontalGroup(
smsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, smsPanelLayout.createSequentialGroup()
.addContainerGap()
.addGroup(smsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(summaryPanel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 672, Short.MAX_VALUE)
.addComponent(listSMSPanel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 672, Short.MAX_VALUE)
.addComponent(searchPanel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 672, Short.MAX_VALUE))
.addContainerGap())
);
smsPanelLayout.setVerticalGroup(
smsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(smsPanelLayout.createSequentialGroup()
.addContainerGap()
.addComponent(searchPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 85, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(listSMSPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 528, Short.MAX_VALUE)
.addGap(18, 18, 18)
.addComponent(summaryPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
jPanel1.setBackground(resourceMap.getColor("jPanel1.background")); // NOI18N
jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());
jPanel1.setMinimumSize(new java.awt.Dimension(100, 0));
jPanel1.setName("jPanel1"); // NOI18N
jPanel1.setPreferredSize(new java.awt.Dimension(200, 104));
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 246, Short.MAX_VALUE)
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 803, Short.MAX_VALUE)
);
javax.swing.GroupLayout mainPanelLayout = new javax.swing.GroupLayout(mainPanel);
mainPanel.setLayout(mainPanelLayout);
mainPanelLayout.setHorizontalGroup(
mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(mainPanelLayout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, 250, Short.MAX_VALUE)
.addGap(18, 18, 18)
.addComponent(smsPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGap(18, 18, 18)
.addComponent(actionPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
mainPanelLayout.setVerticalGroup(
mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, mainPanelLayout.createSequentialGroup()
.addContainerGap()
.addGroup(mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(actionPanel, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 807, Short.MAX_VALUE)
.addComponent(jPanel1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 807, Short.MAX_VALUE)
.addComponent(smsPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 807, Short.MAX_VALUE))
.addContainerGap())
);
menuBar.setBackground(resourceMap.getColor("menuBar.background")); // NOI18N
menuBar.setName("menuBar"); // NOI18N
fileMenu.setMnemonic('F');
fileMenu.setText(resourceMap.getString("fileMenu.text")); // NOI18N
fileMenu.setName("fileMenu"); // NOI18N
connectMenuItem.setAction(actionMap.get("connect")); // NOI18N
connectMenuItem.setMnemonic('C');
connectMenuItem.setText(resourceMap.getString("connectMenuItem.text")); // NOI18N
connectMenuItem.setToolTipText(resourceMap.getString("connectMenuItem.toolTipText")); // NOI18N
connectMenuItem.setName("connectMenuItem"); // NOI18N
fileMenu.add(connectMenuItem);
disconnectMenuItem.setAction(actionMap.get("disconnect")); // NOI18N
disconnectMenuItem.setMnemonic('D');
disconnectMenuItem.setText(resourceMap.getString("disconnectMenuItem.text")); // NOI18N
disconnectMenuItem.setToolTipText(resourceMap.getString("disconnectMenuItem.toolTipText")); // NOI18N
disconnectMenuItem.setName("disconnectMenuItem"); // NOI18N
fileMenu.add(disconnectMenuItem);
exitMenuItem.setAction(actionMap.get("quit")); // NOI18N
exitMenuItem.setMnemonic('Q');
exitMenuItem.setText(resourceMap.getString("exitMenuItem.text")); // NOI18N
exitMenuItem.setToolTipText(resourceMap.getString("exitMenuItem.toolTipText")); // NOI18N
exitMenuItem.setName("exitMenuItem"); // NOI18N
fileMenu.add(exitMenuItem);
menuBar.add(fileMenu);
editMenu.setMnemonic('E');
editMenu.setText(resourceMap.getString("editMenu.text")); // NOI18N
editMenu.setToolTipText(resourceMap.getString("editMenu.toolTipText")); // NOI18N
editMenu.setName("editMenu"); // NOI18N
configMenuItem.setAction(actionMap.get("showConfigView")); // NOI18N
configMenuItem.setMnemonic('C');
configMenuItem.setText(resourceMap.getString("configMenuItem.text")); // NOI18N
configMenuItem.setToolTipText(resourceMap.getString("configMenuItem.toolTipText")); // NOI18N
configMenuItem.setName("configMenuItem"); // NOI18N
editMenu.add(configMenuItem);
menuBar.add(editMenu);
helpMenu.setMnemonic('A');
helpMenu.setText(resourceMap.getString("helpMenu.text")); // NOI18N
helpMenu.setToolTipText(resourceMap.getString("helpMenu.toolTipText")); // NOI18N
helpMenu.setName("helpMenu"); // NOI18N
aboutMenuItem.setAction(actionMap.get("showAboutBox")); // NOI18N
aboutMenuItem.setText(resourceMap.getString("aboutMenuItem.text")); // NOI18N
aboutMenuItem.setName("aboutMenuItem"); // NOI18N
helpMenu.add(aboutMenuItem);
menuBar.add(helpMenu);
statusPanel.setBackground(resourceMap.getColor("statusPanel.background")); // NOI18N
statusPanel.setBorder(javax.swing.BorderFactory.createEtchedBorder());
statusPanel.setMaximumSize(new java.awt.Dimension(32767, 24));
statusPanel.setName("statusPanel"); // NOI18N
statusPanelSeparator.setName("statusPanelSeparator"); // NOI18N
statusAnimationLabel.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
statusAnimationLabel.setIcon(resourceMap.getIcon("statusAnimationLabel.icon")); // NOI18N
statusAnimationLabel.setName("statusAnimationLabel"); // NOI18N
statusAnimationLabel.setPreferredSize(new java.awt.Dimension(10, 10));
javax.swing.GroupLayout statusPanelLayout = new javax.swing.GroupLayout(statusPanel);
statusPanel.setLayout(statusPanelLayout);
statusPanelLayout.setHorizontalGroup(
statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(statusPanelLayout.createSequentialGroup()
.addComponent(statusPanelSeparator, javax.swing.GroupLayout.DEFAULT_SIZE, 1276, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(statusAnimationLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 18, javax.swing.GroupLayout.PREFERRED_SIZE))
);
statusPanelLayout.setVerticalGroup(
statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(statusPanelSeparator, javax.swing.GroupLayout.PREFERRED_SIZE, 2, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(statusAnimationLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 19, javax.swing.GroupLayout.PREFERRED_SIZE)
);
setComponent(mainPanel);
setMenuBar(menuBar);
setStatusBar(statusPanel);
}// </editor-fold>//GEN-END:initComponents
@Action
public void showConfigView() {
if (configView == null) {
JFrame mainFrame = PhoneManagerApp.getApplication().getMainFrame();
configView = new ConfigView(mainFrame, true, myConfig, connectMenuItem, cClient);
configView.setLocationRelativeTo(mainFrame);
}
PhoneManagerApp.getApplication().show(configView);
}
@Action
public void connect() {
if (cClient != null) {
try {
if (isConnected = cClient.connect()) {
statusAnimationLabel.setIcon(resourceMap.getIcon("StatusBar.connectIcon"));
statusAnimationLabel.setToolTipText(resourceMap.getString("StatusBar.connectToolTip"));
connectMenuItem.setEnabled(false);
disconnectMenuItem.setEnabled(true);
}
} catch (IOException ex) {
Logger.getLogger(PhoneManagerView.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
@Action
public void disconnect() {
if (cClient != null) {
try {
if (isConnected = cClient.disconnect()) {
statusAnimationLabel.setIcon(resourceMap.getIcon("StatusBar.disconnectIcon"));
statusAnimationLabel.setToolTipText(resourceMap.getString("StatusBar.disconnectToolTip"));
connectMenuItem.setEnabled(true);
disconnectMenuItem.setEnabled(false);
}
} catch (IOException ex) {
Logger.getLogger(PhoneManagerView.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
@Action
public void getSMS() {
try {
if (isConnected) {
mSMS.settoto(cClient.getSMS());
smsTable.requestFocus();
}
} catch (IOException ex) {
Logger.getLogger(PhoneManagerView.class.getName()).log(Level.SEVERE, null, ex);
}
}
@Action
public void sendSMS() {
try {
if (!adressText.getText().equalsIgnoreCase("") && !bodyText.getText().equalsIgnoreCase("") && isConnected) {
if (cClient.sendSMS(adressText.getText(), bodyText.getText())) {
mSMS.addRowAtBegin(adressText.getText(), bodyText.getText());
clearSMSForm();
}
}
} catch (IOException ex) {
Logger.getLogger(PhoneManagerView.class.getName()).log(Level.SEVERE, null, ex);
}
}
@Action
public void clearSMSForm() {
adressText.setText("");
bodyText.setText("");
adressText.requestFocus();
}
@Action
public void answerSMS() {
if (rowSelected != -1) {
clearSMSForm();
adressText.setText(smsTable.getValueAt(rowSelected, SMSModel.INDEX_ADRESS).toString());
bodyText.requestFocus();
}
}
@Action
public void trasnferSMS() {
if (rowSelected != -1) {
clearSMSForm();
bodyText.setText(smsTable.getValueAt(rowSelected, SMSModel.INDEX_BODY).toString());
adressText.requestFocus();
}
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JPanel actionPanel;
private javax.swing.JTextPane adressLabel;
private javax.swing.JTextPane adressText;
private javax.swing.JScrollPane adressToScrollText;
private javax.swing.JButton answer;
private javax.swing.JTextPane bodyLabel;
private javax.swing.JScrollPane bodyScrollText;
private javax.swing.JEditorPane bodyText;
private javax.swing.JMenuItem configMenuItem;
private javax.swing.JMenuItem connectMenuItem;
private javax.swing.JButton delete;
private javax.swing.JMenuItem disconnectMenuItem;
private javax.swing.JMenu editMenu;
private javax.swing.JPanel jPanel1;
private javax.swing.JTextPane listLabel;
private javax.swing.JPanel listSMSPanel;
private javax.swing.JScrollPane listScrollLabel;
private javax.swing.JPanel mainPanel;
private javax.swing.JMenuBar menuBar;
private javax.swing.JLabel nbCharLabel;
private javax.swing.JButton razButton;
private javax.swing.JButton saveButton;
private javax.swing.JLabel searchIcon;
private javax.swing.JTextPane searchLabel;
private javax.swing.JPanel searchPanel;
private javax.swing.JScrollPane searchScrollLabel;
private javax.swing.JTextField searchText;
private javax.swing.JButton sendButton;
private javax.swing.JPanel smsPanel;
private javax.swing.JScrollPane smsScrollTable;
private javax.swing.JTable smsTable;
private javax.swing.JLabel statusAnimationLabel;
private javax.swing.JPanel statusPanel;
private javax.swing.JTextPane summaryLabel;
private javax.swing.JPanel summaryPanel;
private javax.swing.JScrollPane summaryScrollLabel;
private javax.swing.JScrollPane summaryScrollText;
private javax.swing.JTextPane summaryText;
private javax.swing.JButton sync;
private javax.swing.JButton transfer;
private javax.swing.JPanel writeActionPanel;
private javax.swing.JTextPane writeSMSLabel;
private javax.swing.JScrollPane writeSMSScrollLabel;
// End of variables declaration//GEN-END:variables
ResourceMap resourceMap;
private JDialog aboutBox;
private JDialog configView;
private Config myConfig;
private Client cClient;
private SMSModel mSMS;
private TableRowSorter<SMSModel> sorter;
private boolean isConnected = false;
private int rowSelected = -1;
}
|