// $Id: Client.java,v 1.118 2001/10/25 19:38:46 gwilliam Exp $
// Copyright (c) 2000. The MITRE Corporation (http://www.mitre.org/).
// All rights reserved.
// The SIMP Service comes with ABSOLUTELY NO WARRANTY.
// See the SIMP Service License Agreement for details.
// Frame for the Simple Instant Messaging and Presence client
package org.mitre.sipchat;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.tree.*;
import java.io.IOException;
import java.io.StringWriter;
import java.text.DateFormat;
import java.util.*;
import java.net.*;
//import org.mitre.simp.util.*;
import org.mitre.jsip.*;
import org.mitre.jsip.event.*;
import org.mitre.sipchat.util.Status;
import org.mitre.sipchat.model.*;
import org.mitre.sipchat.model.presence.*;
/**
* Main Frame for the SIPchat Client
* @version December 1999
* @author S.R.Jones
* @author Sasha Porto Caskey
* @author Galen B. Williamson
*/
public class Client extends JFrame
implements Resourced, IMPListener, RegisterListener
// ConnectionListener,
// ACLListener,
// SimpListener
{
/*
* BE SURE TO UPDATE THE FOLLOWING TWO CONSTANTS AS NEEDED!
*/
public static final String VERSION_STRING = ".5";
public static final String PREFERRED_JVM_VERSION = "1.3";
public static final String CVS_VERSION = "$Id: Client.java,v 1.118 2001/12/04 10:38:46 srjlej Exp $";
public static final String CVS_TAG = "$Name: SIPCHAT $";
private static boolean runningPreferredJavaVersion = true;
/**
* Returns <code>true</code> if the current runtime version
* matches or exceeds the preferred runtime version specified
* in <code>PREFERRED_JVM_VERSION</code>.
* @see #PREFERRED_JVM_VERSION
*/
public static boolean isRunningPreferredJavaVersion() {
return runningPreferredJavaVersion;
}
/*
* This static block checks the version the Java Runtime Environment,
* and complains to the user if it is not at least the preferred version.
* The user may choose to run the client anyway, with the caveat that
* some features may be disabled or may malfunction.
*/
static {
String[] msg = null;
String java_version = System.getProperties().getProperty("java.version");
if (java_version == null) {
msg = new String[] {
"Unable to determine Java version.",
"The Simp client prefers version "+PREFERRED_JVM_VERSION+" or later.",
};
}
else {
String[] preferred_msg = new String[] {
"The Simp client prefers Java version "+PREFERRED_JVM_VERSION+",",
"but found Java version "+java_version+" installed on this system.",
};
StringTokenizer p_tokens = new StringTokenizer(PREFERRED_JVM_VERSION, ".");
StringTokenizer v_tokens = new StringTokenizer(java_version, ".");
while (p_tokens.hasMoreTokens() && msg == null) {
String ps, vs;
ps = p_tokens.nextToken();
if (v_tokens.hasMoreTokens()) {
vs = v_tokens.nextToken();
if (vs.compareTo(ps) < 0) {
msg = preferred_msg;
}
}
else {
msg = preferred_msg;
}
}
}
if (msg != null) {
String[] m = new String[msg.length + 2];
int i = 0;
while (i < msg.length) {
m[i] = msg[i++];
}
m[i++] = "Some features may be disabled or may malfunction.";
m[i++] = "Do you want to continue?";
int choice = JOptionPane.showConfirmDialog
(null,
m,
"Simp Client: Java version check",
JOptionPane.YES_NO_OPTION,
JOptionPane.WARNING_MESSAGE);
if (choice != JOptionPane.YES_OPTION) {
System.exit(1);
}
else {
JOptionPane.showMessageDialog
(null,
new String[] {
"Please update your Java Runtime Environment",
"to version "+PREFERRED_JVM_VERSION+" or better to avoid seeing",
"this message in the future.",
},
"Simp Client: Ignoring Java version",
JOptionPane.INFORMATION_MESSAGE);
runningPreferredJavaVersion = false;
}
}
}
private static final String CLIENT_PROPERTIES = "resources/client";
private static final String MENUBAR_BUDDIES = MENUBAR+"0";
private static final String MENUBAR_EDIT_BUDDIES = MENUBAR+"1";
private static final String resPrefix = "simp.BuddyWindow.";
private static final String tabsPrefix = "tabs";
private static LocalResourcer res = null;
private static int X_SIZE = -1;
private static int Y_SIZE = -1;
private static final int DEFAULT_WINDOW_X = 244;
private static final int DEFAULT_WINDOW_Y = 309;
private final HashMap messageRouterMap = new HashMap();
private BuddyList buddyList;
protected ClientModel cm;
private LogFrame logFrame;
protected Font font;
private JTabbedPane tabpane = new JTabbedPane();
private BuddiesTree buddiesTree = new BuddiesTree();
private EditBuddiesTree editBuddiesTree = new EditBuddiesTree();
private JMenuBar[] menubars;
private BuddiesTree[] buddiesTrees = {
buddiesTree,
editBuddiesTree
};
private JToolBar toolbar = null;
boolean confirmRemove = true;
protected static Resourcer resources = null;
static {
if (resources == null)
try {
resources = new Resourcer(CLIENT_PROPERTIES);
}
catch (java.util.MissingResourceException mre) {
System.err.println(CLIENT_PROPERTIES + ".properties not found");
System.exit(1);
}
}
ClientModel getClientModel() { return cm; }
BuddyList getBuddyList() { return buddyList; }
/**
* Creates a new instance of Client, usually called by the Login Manager
* @param ima The Presentity for user
* @param xps The XpSocket
* @param font A String representing the font
* @see Login
*/
public Client(final ClientModel cm, String font) {
super(cm.getMe().getUsername() + "'s Buddies");
/*
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch (Exception e) {
}
*/
this.font = font != null ? Font.decode(font) : null;
this.cm = cm;
if (this.font != null)
setFont(this.font);
buddyList = cm.getBuddyList();
Presentity me = cm.getMe();
// XmlProperties profile = cm.getProfile().getProfile();
buddiesTree.setBounds(2,27,239,264);
JScrollPane buddiesScroller = new JScrollPane
(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
JViewport buddiesPort = buddiesScroller.getViewport();
buddiesPort.add(buddiesTree);
tabpane.add(buddiesScroller);
editBuddiesTree.setBounds(2,27,239 * 4,264);
JScrollPane editBuddiesScroller
= new JScrollPane(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
JViewport editBuddiesPort = editBuddiesScroller.getViewport();
editBuddiesPort.add(editBuddiesTree);
tabpane.add(editBuddiesScroller);
// setup a key listener on the tab pane to pass key strokes
// on to the selected buddies tree
tabpane.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent e) {
// KeyAdapter ka = getSelectedBuddiesTree().getKeyHandler();
KeyAdapter ka = null;
if (ka != null)
ka.keyReleased(e);
}
});
logFrame = new LogFrame(this);
initGUI();
// initialize the buddies tree
buddiesTree.init(this, buddyList, me);
buddyList.addBuddyListListener(buddiesTree);
editBuddiesTree.init(this, cm, me);
buddyList.addBuddyListListener(editBuddiesTree);
addWindowListener(new WindowAdapter() {
public void windowActivated(WindowEvent event) {
getSelectedBuddiesTree().requestFocus();
}
public void windowClosing(WindowEvent event) {
Object object = event.getSource();
if (object == Client.this)
logout(true);
}
});
addFocusListener(new FocusAdapter() {
public void focusGained(FocusEvent event) {
tabpane.requestFocus();
}
});
preInitializeMessageRouterMap();
initializeMessageRouterMap()
没有合适的资源?快使用搜索试试~ 我知道了~
基于java的开发源码-SIP协议包 jSIP.zip
共126个文件
java:85个
gif:21个
java~:4个
0 下载量 40 浏览量
2024-01-08
22:49:35
上传
评论
收藏 503KB ZIP 举报
温馨提示
基于java的开发源码-SIP协议包 jSIP.zip 基于java的开发源码-SIP协议包 jSIP.zip 基于java的开发源码-SIP协议包 jSIP.zip 基于java的开发源码-SIP协议包 jSIP.zip 基于java的开发源码-SIP协议包 jSIP.zip 基于java的开发源码-SIP协议包 jSIP.zip 基于java的开发源码-SIP协议包 jSIP.zip 基于java的开发源码-SIP协议包 jSIP.zip 基于java的开发源码-SIP协议包 jSIP.zip 基于java的开发源码-SIP协议包 jSIP.zip 基于java的开发源码-SIP协议包 jSIP.zip 基于java的开发源码-SIP协议包 jSIP.zip 基于java的开发源码-SIP协议包 jSIP.zip 基于java的开发源码-SIP协议包 jSIP.zip
资源推荐
资源详情
资源评论
收起资源包目录
基于java的开发源码-SIP协议包 jSIP.zip (126个子文件)
sipchat.bat 199B
SimpHandsetFlash.bmp 246B
SimpPhone.bmp 246B
SimpHandset.bmp 246B
xpidf.dtd 876B
buddylist.dtd 480B
key-no.gif 888B
simpicon.gif 870B
key.gif 854B
rightarrow.gif 207B
downarrow.gif 177B
info.gif 136B
paste.gif 134B
SimpPhone.gif 133B
buddy.gif 128B
open.gif 112B
block.gif 104B
copy.gif 104B
save.gif 102B
add.gif 99B
unblock.gif 97B
SimpHandset.gif 94B
SimpHandsetFlash.gif 94B
new.gif 90B
about.gif 90B
cut.gif 89B
remove.gif 81B
crimson.jar 200KB
jdom.jar 124KB
jaxp.jar 28KB
Client.java 65KB
MessageFrame.java 39KB
ClientModel.java 32KB
BuddiesTree.java 24KB
MessagePanel.java 23KB
EditBuddiesTree.java 18KB
SipchatLauncher.java 15KB
BuddyList.java 14KB
Protocol.java 13KB
ClientStart.java 13KB
BasicMessageAppend.java 13KB
XmlProperties.java 13KB
SimpDialog.java 11KB
PropEd.java 10KB
RegisterPanel.java 9KB
ACL.java 8KB
SubscriptionList.java 8KB
VersionInfo.java 7KB
LogFrame.java 6KB
PresenceDocument.java 6KB
SipchatProperties.java 6KB
Register.java 6KB
StringPresentity.java 6KB
VertFillLayout.java 4KB
Resourcer.java 4KB
Status.java 4KB
MessageAppend.java 4KB
Presentity.java 4KB
PresenceEvent.java 4KB
Info.java 4KB
Description.java 4KB
PresenceAgent.java 3KB
MessageEvent.java 3KB
BuddyGroupNode.java 3KB
LocalResourcer.java 3KB
SubscriberEvent.java 3KB
StatusEvent.java 3KB
GridBagUtil.java 3KB
SipchatFrame.java 3KB
FixedLengthDate.java 3KB
BuddyNode.java 3KB
PresenceMulticaster.java 3KB
Message.java 2KB
PresenceNotifier.java 2KB
SwitchableMenuItem.java 2KB
Watcher.java 2KB
SwitchableButton.java 2KB
SipchatLoader.java 2KB
SipchatClient.java 2KB
IMPListener.java 2KB
SwitchableAction.java 2KB
BuddyTreeNode.java 1KB
PresenceListener.java 1KB
LogGenerator.java 1KB
RegisterEvent.java 1KB
BuddySubscriber.java 1KB
Status.java 1KB
Resourced.java 1KB
BuddyListListener.java 1KB
BuddyListAction.java 1KB
Client.java 1KB
LogEvent.java 1KB
MessageRouter.java 1KB
GroupEvent.java 987B
IMPAdapter.java 959B
GroupRenameEvent.java 916B
InfoAnswer.java 889B
Answer.java 882B
LeaseEvent.java 815B
RegisterListener.java 805B
共 126 条
- 1
- 2
资源评论
助力毕业
- 粉丝: 2173
- 资源: 5117
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功