⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 swtserverlistwrapper.java

📁 JMule是一个基于Java开发
💻 JAVA
字号:
/* *  JMule - Java file sharing client *  Copyright (C) 2007-2008 JMule team ( jmule@jmule.org / http://jmule.org ) * *  Any parts of this program derived from other projects, or contributed *  by third-party developers are copyrighted by their respective authors. * *  This program is free software; you can redistribute it and/or *  modify it under the terms of the GNU General Public License *  as published by the Free Software Foundation; either version 2 *  of the License, or (at your option) any later version. * *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. * *  You should have received a copy of the GNU General Public License *  along with this program; if not, write to the Free Software *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA. * */package org.jmule.ui.swt.maintabs.serverlist;import java.util.List;import org.jmule.core.JMRunnable;import org.jmule.core.JMuleCoreFactory;import org.jmule.core.edonkey.ServerListListener;import org.jmule.core.edonkey.ServerListener;import org.jmule.core.edonkey.ServerManager;import org.jmule.core.edonkey.ServerManagerException;import org.jmule.core.edonkey.impl.Server;import org.jmule.ui.localizer.Localizer;import org.jmule.ui.localizer._;import org.jmule.ui.swt.SWTThread;import org.jmule.ui.swt.common.ConnectButton;import org.jmule.ui.swt.mainwindow.MainWindow;import org.jmule.ui.swt.mainwindow.StatusBar;/** *  * @author binary256 * @version $$Revision: 1.4 $$ * Last changed by $$Author: binary256_ $$ on $$Date: 2008/10/16 18:20:01 $$ */public class SWTServerListWrapper {		private static SWTServerListWrapper instance = null;	private ServerManager server_manager = null;		private ConnectionInfo connection_info;	private ServerList server_list;	private ServerMessages server_messages;	private StatusBar status_bar;	private ConnectButton connect_button;	private ServerListTab server_list_tab;		private boolean is_autoconnect = false;		private boolean single_connect = false;	private Server connecting_server = null;		public static SWTServerListWrapper getInstance() {		if (instance == null)			instance = new SWTServerListWrapper(JMuleCoreFactory.getSingleton().getServerManager());		return instance;	}		private SWTServerListWrapper(ServerManager serverManager) {		server_manager = serverManager;		server_manager.addServerListener(new ServerListener() {			public void connected(Server server) {				if (is_autoconnect) {					is_autoconnect = false;					setUIConnected(server);				} else 					if (single_connect) {						single_connect = false;						setUIConnected(server);					}			}			public void disconnected(Server server) {				if (!is_autoconnect) {					setUIDisconnected(server);				}			}			public void isconnecting(Server server) {				setUIConnecting(server);			}			public void serverMessage(Server server,final String message) {				SWTThread.getDisplay().asyncExec(new JMRunnable() {					public void JMRun() {						server_messages.addText(message);					}});			}					});				server_manager.addServerListListener(new ServerListListener() {			public void autoConnectStarted() {				if ( is_autoconnect == false ) {					is_autoconnect = true;					setUIConnecting();				}			}			public void autoConnectStopped() {				if (is_autoconnect) {					is_autoconnect = false;					setUIDisconnected(null);				}			}			public void serverAdded(final Server server) {				SWTThread.getDisplay().asyncExec(new JMRunnable() {					public void JMRun() {						MainWindow.getLogger().fine(Localizer._("mainwindow.logtab.message_server_added",server.getAddress()+":"+server.getPort()));						server_list.addServer(server);						server_list_tab.setServerCount(server_manager.getServersCount());				}});			}			public void serverListCleared() {				SWTThread.getDisplay().asyncExec(new JMRunnable() {					public void JMRun() {						MainWindow.getLogger().fine(Localizer._("mainwindow.logtab.message_server_list_cleared"));						server_list.clear();						server_list_tab.setServerCount(server_manager.getServersCount());				}});			}			public void serverRemoved(final Server server) {				SWTThread.getDisplay().asyncExec(new JMRunnable() {					public void JMRun() {						MainWindow.getLogger().fine(Localizer._("mainwindow.logtab.message_server_removed",server.getAddress()+":"+server.getPort()));						server_list.removeServer(server);						server_list_tab.setServerCount(server_manager.getServersCount());				}});			}					});	}		private void setUIConnecting() {		if (SWTThread.getDisplay().isDisposed()) return ;		SWTThread.getDisplay().asyncExec(new JMRunnable() {			public void JMRun() {				if (!connect_button.isDisposed())					connect_button.setConnecting();				if (!status_bar.isDisposed())					status_bar.setStatusConnecting();				if (!connection_info.isDisposed())					connection_info.setStatusConnecting(null);			}		});	}		private void setUIConnecting(final Server server) {		if (SWTThread.getDisplay().isDisposed()) return ;		SWTThread.getDisplay().asyncExec(new JMRunnable() {			public void JMRun() {				MainWindow.getLogger().fine(_._("mainwindow.logtab.message_connecting_to",server.getAddress()+":"+server.getPort()));				if (!connect_button.isDisposed())					connect_button.setConnecting();				if (!status_bar.isDisposed())					status_bar.setStatusConnecting();				if (!connection_info.isDisposed())					connection_info.setStatusConnecting(server);			}});	}		private void setUIDisconnected(final Server server) {		if (SWTThread.getDisplay().isDisposed()) return ;		SWTThread.getDisplay().asyncExec(new JMRunnable() {			public void JMRun() {				if (!connect_button.isDisposed())					connect_button.setDisconnected();				if (!status_bar.isDisposed())					status_bar.setStatusDisconnected();				if (!connection_info.isDisposed())					connection_info.setStatusDisconnected();				if (!server_list.isDisposed()) 						if (server!=null)							server_list.serverDisconnected(server);				if (server != null)					MainWindow.getLogger().warning(Localizer.getString("mainwindow.logtab.message_disconnected", server.getAddress()+":"+server.getPort()));			}});	}		private void setUIConnected(final Server server) {		if (SWTThread.getDisplay().isDisposed()) return ;		SWTThread.getDisplay().asyncExec(new JMRunnable() {			public void JMRun() {				if (!connect_button.isDisposed())					connect_button.setConnected();				if (!status_bar.isDisposed())					status_bar.setStatusConnected(server);				if (!connection_info.isDisposed())					connection_info.setStatusConnected(server);				MainWindow.getLogger().fine(Localizer.getString("mainwindow.logtab.message_connected_to", server.getAddress()+":"+server.getPort()));			}});	}		public void startAutoConnect() {		SWTThread.getDisplay().asyncExec(new JMRunnable() {			public void JMRun() {				try {					server_manager.connect();				} catch (ServerManagerException e) {					e.printStackTrace();					setUIDisconnected(null);				}			}		});	}	public void stopConnecting() {		SWTThread.getDisplay().asyncExec(new JMRunnable() {			public void JMRun() {				if (is_autoconnect) {					is_autoconnect = false;					server_manager.stopAutoConnect();				}				if (single_connect) {					single_connect = false;					connecting_server.disconnect();				}			}		});			}		public void disconnect() {		server_manager.getConnectedServer().disconnect();	}		public void connectTo(Server server) {		connecting_server = server;		single_connect = true;		try {			server_manager.connect(server);		} catch (ServerManagerException e) {					}	}		public boolean isAutoconnecting() {		return is_autoconnect;	}		public void addServer(Server server) {		server_manager.addServer(server);	}		public void removeServer(List<Server> servers) {		server_manager.removeServer(servers);	}		public void removeServer(Server server) {		server_manager.removeServer(server);	}		public void clearServerList() {		server_manager.clearServerList();	}		public void setServerManager(ServerManager serverManager) {		this.server_manager = serverManager;	}		public void setServerListTab(ServerListTab tab) {		server_list_tab = tab;	}	public void setConnectionInfo(ConnectionInfo connectionInfo) {		this.connection_info = connectionInfo;	}	public void setServerList(ServerList serverList) {		this.server_list = serverList;	}	public void setServerMessages(ServerMessages serverMessages) {		this.server_messages = serverMessages;	}		public void setStatusBar(StatusBar statusBar) {		this.status_bar = statusBar;	}		public void setConnectButton(ConnectButton connectButton) {		this.connect_button = connectButton;	}	}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -