?? nistmessenger.java
字號:
/*
* NISTMessenger.java
*
* Created on January 27, 2004, 6:53 PM
*/
package gov.nist.applet.phone.ua.gui;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.net.URL;
import javax.swing.ButtonGroup;
import javax.swing.DefaultListModel;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.JScrollPane;
import javax.swing.ListSelectionModel;
import gov.nist.applet.phone.media.messaging.VoiceRecorder;
import gov.nist.applet.phone.ua.ChatSessionManager;
import gov.nist.applet.phone.ua.Configuration;
import gov.nist.applet.phone.ua.RegisterStatus;
import gov.nist.applet.phone.ua.MessengerController;
import gov.nist.applet.phone.ua.MessengerManager;
import gov.nist.applet.phone.ua.StopMessenger;
import gov.nist.applet.phone.ua.presence.Subscriber;
/**
* This application has been designed in following the MVC design pattern
* Thus, this class is part of the View.
* @author Jean Deruelle
*
* <a href="{@docRoot}/uncopyright.html">This code is in the public domain.</a>
*/
public class NISTMessenger extends javax.swing.JFrame
implements java.util.Observer, NISTMessengerGUI {
Configuration configuration;
/*MVC attributes*/
private MessengerManager sipMeetingManager;
private MessengerController controllerMeeting;
private ChatSessionManager chatSessionManager;
/** Creates new form NISTMessenger */
public NISTMessenger() {
configuration=new Configuration();
chatSessionManager=new ChatSessionManager();
sipMeetingManager=new MessengerManager(configuration,this);
sipMeetingManager.addObserver(this);
controllerMeeting= new MessengerController(
sipMeetingManager,
chatSessionManager,
this);
initComponents();
listModel=new DefaultListModel();
//Create the list and put it in a scroll pane.
jList1= new JList(listModel);
jList1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
jList1.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
String contactAddress=(String)listModel.elementAt(jList1.getSelectedIndex());
if(contactAddress.trim().indexOf('(')!=-1)
contactAddress=contactAddress.substring(
0,
contactAddress.trim().indexOf("("));
//check if a chat frame has already been opened
ChatFrame chatFrame=(ChatFrame)chatSessionManager.getChatFrame(contactAddress);
if(chatFrame==null){
//emulate button click
chatFrame=new ChatFrame(
this,
contactAddress,
sipMeetingManager,
chatSessionManager);
chatSessionManager.addChatSession(contactAddress,chatFrame);
chatFrame.show();
}
else{
chatFrame.show();
}
}
}
});
JScrollPane listScrollPane = new JScrollPane(jList1);
listScrollPane.setBounds(10, 100, 200, 250);
mainPanel.add(listScrollPane);
getContentPane().add(mainPanel);
// Get current classloader
ClassLoader cl = this.getClass().getClassLoader();
URL url=cl.getResource("images/short_nisthome_banner.jpg");
if(url!=null)
imageLabel.setIcon(new ImageIcon(url));
this.pack();
this.setTitle("NIST Messenger");
this.setSize(320, 520);
}
/** 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.
*/
private void initComponents() {//GEN-BEGIN:initComponents
mainPanel = new javax.swing.JPanel();
imageLabel = new javax.swing.JLabel();
addContactButton = new javax.swing.JButton();
removeContactButton = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();
fileMenuBar1 = new javax.swing.JMenuBar();
jMenu5 = new javax.swing.JMenu();
jMenuItemConfiguration = new javax.swing.JMenuItem();
jMenuItemRegister = new javax.swing.JMenuItem();
jMenuItemUnregister = new javax.swing.JMenuItem();
jMenuItemExit = new javax.swing.JMenuItem();
jMenuStatus = new javax.swing.JMenu();
onlineJRadioButtonMenuItem= new JRadioButtonMenuItem("Online");
awayJRadioButtonMenuItem= new JRadioButtonMenuItem("Away");
offlineJRadioButtonMenuItem= new JRadioButtonMenuItem("Be Right Back");
busyJRadioButtonMenuItem= new JRadioButtonMenuItem("Busy");
getContentPane().setLayout(null);
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
exitForm(evt);
}
});
mainPanel.setLayout(null);
mainPanel.setMinimumSize(new java.awt.Dimension(310, 500));
mainPanel.setPreferredSize(new java.awt.Dimension(310, 500));
imageLabel.setMaximumSize(new java.awt.Dimension(400, 50));
imageLabel.setMinimumSize(new java.awt.Dimension(300, 50));
imageLabel.setPreferredSize(new java.awt.Dimension(400, 50));
mainPanel.add(imageLabel);
imageLabel.setBounds(11, 6, 290, 50);
addContactButton.setText("Add Contact");
addContactButton.setOpaque(false);
addContactButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
addContactButtonActionPerformed(evt);
}
});
mainPanel.add(addContactButton);
addContactButton.setBounds(10, 400, 120, 40);
removeContactButton.setText("Remove Contact");
removeContactButton.setEnabled(false);
removeContactButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
removeContactButtonActionPerformed(evt);
}
});
mainPanel.add(removeContactButton);
removeContactButton.setBounds(160, 400, 130, 40);
jLabel1.setText("Not Logged");
mainPanel.add(jLabel1);
jLabel1.setBounds(10, 70, 290, 20);
getContentPane().add(mainPanel);
mainPanel.setBounds(0, 0, 310, 500);
jMenu5.setText("Menu");
jMenuItemConfiguration.setText("Configuration");
jMenuItemConfiguration.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItemConfigurationActionPerformed(evt);
}
});
jMenu5.add(jMenuItemConfiguration);
jMenuItemRegister.setText("Register");
jMenuItemRegister.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItemRegisterActionPerformed(evt);
}
});
jMenu5.add(jMenuItemRegister);
jMenuItemUnregister.setText("Unregister");
jMenuItemUnregister.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jMenuItemUnregisterActionPerformed(evt);
}
});
jMenu5.add(jMenuItemUnregister);
jMenuStatus.setText("Status");
onlineJRadioButtonMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
onlineActionPerformed(evt);
}
}
);
awayJRadioButtonMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
awayActionPerformed(evt);
}
}
);
offlineJRadioButtonMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
beRightBackActionPerformed(evt);
}
}
);
busyJRadioButtonMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
busyActionPerformed(evt);
}
}
);
statusGroup= new ButtonGroup();
onlineJRadioButtonMenuItem.setSelected(true);
statusGroup.add(onlineJRadioButtonMenuItem);
statusGroup.add(offlineJRadioButtonMenuItem);
statusGroup.add(busyJRadioButtonMenuItem);
statusGroup.add(awayJRadioButtonMenuItem);
jMenuStatus.add(awayJRadioButtonMenuItem);
jMenuStatus.add(onlineJRadioButtonMenuItem);
jMenuStatus.add(offlineJRadioButtonMenuItem);
jMenuStatus.add(busyJRadioButtonMenuItem);
jMenu5.add(jMenuStatus);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -