You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(48) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(316) |
Feb
(228) |
Mar
(16) |
Apr
(29) |
May
(139) |
Jun
(9) |
Jul
(27) |
Aug
(34) |
Sep
(54) |
Oct
(210) |
Nov
(223) |
Dec
(162) |
2004 |
Jan
(31) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2007 |
Jan
|
Feb
|
Mar
(120) |
Apr
(64) |
May
(52) |
Jun
(9) |
Jul
(14) |
Aug
|
Sep
(2) |
Oct
|
Nov
|
Dec
|
2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(153) |
Aug
(159) |
Sep
(216) |
Oct
(184) |
Nov
(1) |
Dec
|
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(39) |
Jun
|
Jul
(229) |
Aug
(76) |
Sep
(151) |
Oct
(60) |
Nov
(54) |
Dec
(41) |
2010 |
Jan
(204) |
Feb
(48) |
Mar
|
Apr
(37) |
May
(23) |
Jun
(62) |
Jul
(113) |
Aug
(92) |
Sep
(26) |
Oct
(9) |
Nov
|
Dec
|
2011 |
Jan
|
Feb
|
Mar
(7) |
Apr
(5) |
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Dumitru O. <ja...@us...> - 2011-06-10 11:05:09
|
Update of /cvsroot/jmule/jmule2/src/org/jmule/ui/resources/internat In directory vz-cvs-3.sog:/tmp/cvs-serv27795/src/org/jmule/ui/resources/internat Added Files: Language_ru_RU.properties Log Message: The Russian language added (more than 55% done) --- NEW FILE: Language_ru_RU.properties --- (This appears to be a binary file; contents omitted.) |
From: Binary <bin...@us...> - 2011-04-25 11:20:53
|
Update of /cvsroot/jmule/jmule2/src/org/jmule/core/downloadmanager In directory vz-cvs-3.sog:/tmp/cvs-serv15379/src/org/jmule/core/downloadmanager Modified Files: DownloadManagerImpl.java Log Message: Fixed total downloaded counter Index: DownloadManagerImpl.java =================================================================== RCS file: /cvsroot/jmule/jmule2/src/org/jmule/core/downloadmanager/DownloadManagerImpl.java,v retrieving revision 1.48 retrieving revision 1.49 diff -C2 -d -r1.48 -r1.49 *** DownloadManagerImpl.java 25 Aug 2010 12:34:47 -0000 1.48 --- DownloadManagerImpl.java 25 Apr 2011 11:20:51 -0000 1.49 *************** *** 137,140 **** --- 137,143 ---- } + private Map<FileHash, Long> last_download_check = new HashMap<FileHash, Long>(); + private long total_downloaded_bytes = 0; + private JMTimerTask download_bytes_counter; public void initialize() { *************** *** 161,168 **** Map<String, Object> values) { if (types.contains(JMuleCoreStats.ST_NET_SESSION_DOWNLOAD_BYTES)) { ! long total_downloaded_bytes = 0; ! for (DownloadSession session : session_list.values()) { total_downloaded_bytes += session.getTransferredBytes(); ! } values.put(JMuleCoreStats.ST_NET_SESSION_DOWNLOAD_BYTES, total_downloaded_bytes); --- 164,171 ---- Map<String, Object> values) { if (types.contains(JMuleCoreStats.ST_NET_SESSION_DOWNLOAD_BYTES)) { ! ! /*for (DownloadSession session : session_list.values()) { total_downloaded_bytes += session.getTransferredBytes(); ! }*/ values.put(JMuleCoreStats.ST_NET_SESSION_DOWNLOAD_BYTES, total_downloaded_bytes); *************** *** 182,185 **** --- 185,220 ---- }); + download_bytes_counter = new JMTimerTask() { + + @Override + public void run() { + List<FileHash> to_remove = new ArrayList<FileHash>(); + for(FileHash hash : last_download_check.keySet()) { + if (hasDownload(hash)) { + try { + DownloadSession session = getDownload(hash); + long downloaded_bytes = session.getTransferredBytes() - last_download_check.get(hash); + last_download_check.put(hash, session.getTransferredBytes()); + total_downloaded_bytes += downloaded_bytes; + } catch (DownloadManagerException e) { + e.printStackTrace(); + } + } else + to_remove.add(hash); + } + + for(FileHash hash : to_remove) + last_download_check.remove(hash); + + for(DownloadSession session : session_list.values()) { + if (!last_download_check.containsKey(session.getFileHash())) { + total_downloaded_bytes += session.getTransferredBytes(); + last_download_check.put(session.getFileHash(), session.getTransferredBytes()); + } + } + + } + }; + server_sources_query = new JMTimerTask() { *************** *** 482,486 **** maintenance_tasks.addTask(global_source_search_task,ConfigurationManager.GLOBAL_SOURCES_QUERY_INTERVAL,true); maintenance_tasks.addTask(download_peers_monitor, DOWNLOAD_PEERS_MONITOR_INTERVAL, true); ! download_file_checker.start(); --- 517,521 ---- maintenance_tasks.addTask(global_source_search_task,ConfigurationManager.GLOBAL_SOURCES_QUERY_INTERVAL,true); maintenance_tasks.addTask(download_peers_monitor, DOWNLOAD_PEERS_MONITOR_INTERVAL, true); ! maintenance_tasks.addTask(download_bytes_counter, 1000, true); download_file_checker.start(); |
From: Binary <bin...@us...> - 2011-04-25 10:55:32
|
Update of /cvsroot/jmule/jmule2/src/org/jmule/ui/swt/tab/main/transfers In directory vz-cvs-3.sog:/tmp/cvs-serv10026/src/org/jmule/ui/swt/tab/main/transfers Modified Files: TransfersTab.java Log Message: Implemented code to prevent double creation of same tab Index: TransfersTab.java =================================================================== RCS file: /cvsroot/jmule/jmule2/src/org/jmule/ui/swt/tab/main/transfers/TransfersTab.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** TransfersTab.java 27 Mar 2011 16:51:29 -0000 1.1 --- TransfersTab.java 25 Apr 2011 10:55:30 -0000 1.2 *************** *** 24,29 **** import org.eclipse.swt.SWT; - import org.eclipse.swt.custom.CTabFolder; - import org.eclipse.swt.custom.CTabItem; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.layout.FormLayout; --- 24,27 ---- *************** *** 39,43 **** import org.jmule.ui.swt.skin.SWTSkin; import org.jmule.ui.swt.tab.MainTab; - import org.jmule.ui.swt.tab.MainTab.JMULE_TABS; /** --- 37,40 ---- |
From: Dumitru O. <ja...@us...> - 2011-04-18 09:17:13
|
Update of /cvsroot/jmule/jmule2/src/org/jmule/ui/resources/internat In directory vz-cvs-3.sog:/tmp/cvs-serv11747/src/org/jmule/ui/resources/internat Modified Files: Language_zh_CN.properties Language_zh_TW.properties Log Message: Switched to UTF-8 Index: Language_zh_TW.properties =================================================================== RCS file: /cvsroot/jmule/jmule2/src/org/jmule/ui/resources/internat/Language_zh_TW.properties,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 Binary files /tmp/cvsMuM8Ck and /tmp/cvs5jeHum differ Index: Language_zh_CN.properties =================================================================== RCS file: /cvsroot/jmule/jmule2/src/org/jmule/ui/resources/internat/Language_zh_CN.properties,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 Binary files /tmp/cvsKyXAcl and /tmp/cvsVhQw5m differ |
From: Binary <bin...@us...> - 2011-04-04 12:29:14
|
Update of /cvsroot/jmule/jmule2/src/org/jmule/core/impl In directory vz-cvs-3.sog:/tmp/cvs-serv3465/src/org/jmule/core/impl Modified Files: JMuleCoreImpl.java Log Message: Fixed missing core components notifications Index: JMuleCoreImpl.java =================================================================== RCS file: /cvsroot/jmule/jmule2/src/org/jmule/core/impl/JMuleCoreImpl.java,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** JMuleCoreImpl.java 18 May 2010 18:27:45 -0000 1.28 --- JMuleCoreImpl.java 4 Apr 2011 12:29:12 -0000 1.29 *************** *** 225,228 **** --- 225,229 ---- NetworkManagerSingleton.getInstance().initialize(); NetworkManagerSingleton.getInstance().start(); + notifyComponentStarted(NetworkManagerSingleton.getInstance()); // notifies that the config manager has been started *************** *** 357,360 **** --- 358,364 ---- notifyComponentStopped(IPFilterSingleton.getInstance()); + ConfigurationManagerSingleton.getInstance().shutdown(); + notifyComponentStopped(ConfigurationManagerSingleton.getInstance()); + NetworkManagerSingleton.getInstance().shutdown(); // notifies that the network manager has been stopped |
From: Binary <bin...@us...> - 2011-04-04 12:27:44
|
Update of /cvsroot/jmule/jmule2/src/org/jmule/core/jkad In directory vz-cvs-3.sog:/tmp/cvs-serv3266/src/org/jmule/core/jkad Modified Files: JKadManagerImpl.java Log Message: JKad tasks stop sequence updated Index: JKadManagerImpl.java =================================================================== RCS file: /cvsroot/jmule/jmule2/src/org/jmule/core/jkad/JKadManagerImpl.java,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** JKadManagerImpl.java 23 Oct 2010 05:38:10 -0000 1.26 --- JKadManagerImpl.java 4 Apr 2011 12:27:42 -0000 1.27 *************** *** 103,108 **** import org.jmule.core.peermanager.Peer.PeerSource; import org.jmule.core.peermanager.PeerManagerSingleton; - import org.jmule.core.utils.timer.JMTimer; - import org.jmule.core.utils.timer.JMTimerTask; /** --- 103,106 ---- *************** *** 199,211 **** if (!isDisconnected()) disconnect(); - - timer.cancelAllTasks(); - Timer.getSingleton().stop(); - } ! JMTimerTask print_task; ! JMTimer timer; public void start() { try { --- 197,204 ---- if (!isDisconnected()) disconnect(); Timer.getSingleton().stop(); } ! public void start() { try { |
From: Binary <bin...@us...> - 2011-03-27 20:06:05
|
Update of /cvsroot/jmule/jmule2/src/org/jmule/ui/swt In directory vz-cvs-3.sog:/tmp/cvs-serv9836/src/org/jmule/ui/swt Modified Files: JMuleSWTUI.java Log Message: Removed debug code Index: JMuleSWTUI.java =================================================================== RCS file: /cvsroot/jmule/jmule2/src/org/jmule/ui/swt/JMuleSWTUI.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** JMuleSWTUI.java 27 Mar 2011 16:51:29 -0000 1.4 --- JMuleSWTUI.java 27 Mar 2011 20:06:03 -0000 1.5 *************** *** 60,69 **** SWTThread.getInstance().start(); GUIUpdater.getInstance().start(); ! Display.getDefault().asyncExec(new JMRunnable() { public void JMRun() { Sleak sleak = new Sleak (); sleak.open (); } ! }); } --- 60,69 ---- SWTThread.getInstance().start(); GUIUpdater.getInstance().start(); ! /*Display.getDefault().asyncExec(new JMRunnable() { public void JMRun() { Sleak sleak = new Sleak (); sleak.open (); } ! });*/ } |
From: Dumitru O. <ja...@us...> - 2011-03-27 19:55:50
|
Update of /cvsroot/jmule/jmule2/src/org/jmule/ui/resources/internat In directory vz-cvs-3.sog:/tmp/cvs-serv7692/jmule2/src/org/jmule/ui/resources/internat Added Files: Language_zh_CN.properties Language_zh_TW.properties Log Message: New internat files --- NEW FILE: Language_zh_TW.properties --- (This appears to be a binary file; contents omitted.) --- NEW FILE: Language_zh_CN.properties --- (This appears to be a binary file; contents omitted.) |
From: Binary <bin...@us...> - 2011-03-27 16:55:19
|
Update of /cvsroot/jmule/jmule2/src/org/jmule/ui/resources/internat In directory vz-cvs-3.sog:/tmp/cvs-serv27797/src/org/jmule/ui/resources/internat Modified Files: Language_en_US.properties Log Message: Added mainwindow.no_tabs key Index: Language_en_US.properties =================================================================== RCS file: /cvsroot/jmule/jmule2/src/org/jmule/ui/resources/internat/Language_en_US.properties,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** Language_en_US.properties 31 Jul 2010 13:08:52 -0000 1.25 --- Language_en_US.properties 27 Mar 2011 16:55:17 -0000 1.26 *************** *** 2,6 **** mainwindow.button.ok=Ok mainwindow.button.cancel=Cancel ! mainwindo.button.apply=Apply mainwindow.mainmenu.file=File mainwindow.mainmenu.file.new=New --- 2,7 ---- mainwindow.button.ok=Ok mainwindow.button.cancel=Cancel ! mainwindow.button.apply=Apply ! mainwindow.no_tabs=No open tabs mainwindow.mainmenu.file=File mainwindow.mainmenu.file.new=New |
From: Binary <bin...@us...> - 2011-03-27 16:53:34
|
Update of /cvsroot/jmule/jmule2/src/org/jmule/ui/swt/tables In directory vz-cvs-3.sog:/tmp/cvs-serv26589/src/org/jmule/ui/swt/tables Modified Files: TableColumnEditorWindow.java Log Message: Fixed language key Index: TableColumnEditorWindow.java =================================================================== RCS file: /cvsroot/jmule/jmule2/src/org/jmule/ui/swt/tables/TableColumnEditorWindow.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** TableColumnEditorWindow.java 16 Oct 2008 18:20:02 -0000 1.4 --- TableColumnEditorWindow.java 27 Mar 2011 16:53:32 -0000 1.5 *************** *** 186,190 **** bApply.setFont(skin.getButtonFont()); bApply.setImage(skin.getButtonImage(SkinConstants.OK_BUTTON_IMAGE)); ! bApply.setText(Localizer._("mainwindo.button.apply")); rd = new RowData(); rd.width = 70; --- 186,190 ---- bApply.setFont(skin.getButtonFont()); bApply.setImage(skin.getButtonImage(SkinConstants.OK_BUTTON_IMAGE)); ! bApply.setText(Localizer._("mainwindow.button.apply")); rd = new RowData(); rd.width = 70; |
From: Binary <bin...@us...> - 2011-03-27 16:51:31
|
Update of /cvsroot/jmule/jmule2/src/org/jmule/ui/swt/tab/main/serverlist In directory vz-cvs-3.sog:/tmp/cvs-serv26299/src/org/jmule/ui/swt/tab/main/serverlist Added Files: ServerListTab.java ServerAddWindow.java ServerList.java ServerMessages.java ServerPropertiesWindow.java ConnectionInfo.java SWTServerListWrapper.java Log Message: Implemented tab architecture in main window, added tree in settings tab --- NEW FILE: ServerAddWindow.java --- /* * JMule - Java file sharing client * Copyright (C) 2007-2008 JMule team ( jm...@jm... / 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.tab.main.serverlist; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.MessageBox; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; import org.jmule.core.JMuleCore; import org.jmule.core.JMuleCoreFactory; import org.jmule.core.servermanager.ServerManagerException; import org.jmule.core.utils.AddressUtils; import org.jmule.ui.JMuleUIComponent; import org.jmule.ui.JMuleUIManager; import org.jmule.ui.localizer.Localizer; import org.jmule.ui.skin.SkinConstants; import org.jmule.ui.swt.SWTImageRepository; import org.jmule.ui.swt.SWTThread; import org.jmule.ui.swt.Utils; import org.jmule.ui.swt.skin.SWTSkin; /** * * @author binary256 * @version $$Revision: 1.1 $$ * Last changed by $$Author: binary255 $$ on $$Date: 2011/03/27 16:51:29 $$ */ public class ServerAddWindow implements JMuleUIComponent { private Shell shell; private JMuleCore _core = JMuleCoreFactory.getSingleton(); public ServerAddWindow() { } public void getCoreComponents() { } public void initUIComponents() { String title = Localizer._("serveraddwindow.title"); SWTSkin skin = null; try { skin = (SWTSkin)JMuleUIManager.getJMuleUI().getSkin(); }catch(Throwable t) {} Display display = SWTThread.getDisplay(); final Shell shell1=new Shell(display,SWT.ON_TOP); shell=new Shell(shell1,SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL); shell.setImage(SWTImageRepository.getImage("server_add.png")); shell.setText(title); Utils.centreWindow(shell); shell.setLayout(new GridLayout(1,true)); Composite content = new Composite(shell,SWT.BORDER); content.setLayoutData(new GridData(GridData.FILL_BOTH)); content.setLayout(new GridLayout(2,false)); Label label = new Label(content,SWT.NONE); label.setFont(skin.getLabelFont()); label.setText(Localizer._("serveraddwindow.server_ip_address")+" : "); final Text text_server_ip = new Text(content,SWT.BORDER); text_server_ip.setFont(skin.getDefaultFont()); text_server_ip.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); text_server_ip.addListener(SWT.Verify,new Listener() { public void handleEvent(Event e) { String text = e.text; char[] chars = new char[text.length()]; text.getChars(0, chars.length, chars, 0); for (int i = 0; i < chars.length; i++) { if (!('0' <= chars[i] && chars[i] <= '9')) if (chars[i]!='.') { e.doit = false; return; } } } }); label = new Label(content,SWT.NONE); label.setFont(skin.getLabelFont()); label.setText(Localizer._("serveraddwindow.server_port")+" : "); final Text text_port = new Text(content,SWT.BORDER); text_port.setFont(skin.getDefaultFont()); text_port.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); text_port.addListener(SWT.Verify,new Listener() { public void handleEvent(Event e) { String text = e.text; char[] chars = new char[text.length()]; text.getChars(0, chars.length, chars, 0); for (int i = 0; i < chars.length; i++) { if (!('0' <= chars[i] && chars[i] <= '9')) { e.doit = false; return; } } } }); Composite buttons_composite = new Composite(shell,SWT.NONE); buttons_composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); buttons_composite.setLayout(new GridLayout(2,false)); Button button_ok = new Button(buttons_composite,SWT.NONE); GridData grid_data = new GridData(); //grid_data.widthHint = 40; grid_data.horizontalAlignment = GridData.END; grid_data.grabExcessHorizontalSpace = true; button_ok.setLayoutData(grid_data); button_ok.setFont(skin.getButtonFont()); button_ok.setImage(skin.getButtonImage(SkinConstants.OK_BUTTON_IMAGE)); button_ok.setText(Localizer._("mainwindow.button.ok")); button_ok.addSelectionListener(new SelectionListener() { public void widgetDefaultSelected(SelectionEvent arg0) { } public void widgetSelected(SelectionEvent arg0) { String server_ip = text_server_ip.getText(); if (!AddressUtils.isValidIP(server_ip)) { MessageBox dialog = new MessageBox(shell, SWT.OK | SWT.ICON_WARNING); dialog.setMessage(Localizer._("serveraddwindow.wrong_server_address")); dialog.open(); return ; } if (!AddressUtils.isValidPort(text_port.getText())) { MessageBox dialog = new MessageBox(shell, SWT.OK | SWT.ICON_WARNING); dialog.setMessage(Localizer._("serveraddwindow.wrong_server_port")); dialog.open(); return ; } int server_port = Integer.parseInt(text_port.getText()); try { _core.getServerManager().newServer(server_ip, server_port); } catch (ServerManagerException e) { Utils.showWarningMessage(shell, "", e.getMessage()); } shell.close(); } }); Button button_cancel = new Button(buttons_composite,SWT.NONE); button_cancel.setImage(skin.getButtonImage(SkinConstants.CANCEL_BUTTON_IMAGE)); button_cancel.setText(Localizer._("mainwindow.button.cancel")); button_cancel.addSelectionListener(new SelectionListener() { public void widgetDefaultSelected(SelectionEvent arg0) { } public void widgetSelected(SelectionEvent arg0) { shell.close(); } }); shell.setSize(300, 175); shell.open(); } } --- NEW FILE: SWTServerListWrapper.java --- /* * JMule - Java file sharing client * Copyright (C) 2007-2008 JMule team ( jm...@jm... / 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.tab.main.serverlist; import java.util.List; import org.jmule.core.JMRunnable; import org.jmule.core.JMuleCoreFactory; import org.jmule.core.servermanager.Server; import org.jmule.core.servermanager.ServerManager; import org.jmule.core.servermanager.ServerManagerException; import org.jmule.core.servermanager.ServerManagerListener; import org.jmule.core.servermanager.ServerManager.Status; 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.1 $$ * Last changed by $$Author: binary255 $$ on $$Date: 2011/03/27 16:51:29 $$ */ 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; public static SWTServerListWrapper getInstance() { if (instance == null) instance = new SWTServerListWrapper(JMuleCoreFactory.getSingleton().getServerManager()); return instance; } private SWTServerListWrapper(ServerManager serverManager) { server_manager = serverManager; server_manager.addServerListListener(new ServerManagerListener() { 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 serverMessage(Server server,final String message) { SWTThread.getDisplay().asyncExec(new JMRunnable() { public void JMRun() { server_messages.addText(message); }}); } public void autoConnectFailed() { if (is_autoconnect) { is_autoconnect = false; setUIDisconnected(null); } } public void autoConnectStarted() { if ( is_autoconnect == false ) { is_autoconnect = true; setUIConnecting(); } } public void isConnecting(Server server) { setUIConnecting(server); } 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 serverConnectingFailed(Server server, Throwable cause) { setUIDisconnected(server); } 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); server_list.refresh(); 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; try { server_manager.disconnect(); } catch (ServerManagerException e) { e.printStackTrace(); } } if (single_connect) { single_connect = false; try { server_manager.disconnect(); } catch (ServerManagerException e) { e.printStackTrace(); } } } }); } public void disconnect() { try { server_manager.disconnect(); } catch (ServerManagerException e) { e.printStackTrace(); } } public void connectTo(Server server) { single_connect = true; try { if (server_manager.getStatus()!=Status.DISCONNECTED) server_manager.disconnect(); server_manager.connect(server); } catch (ServerManagerException e) { } } public boolean isAutoconnecting() { return is_autoconnect; } public void removeServer(List<Server> servers) { try { server_manager.removeServer(servers); } catch (ServerManagerException e) { e.printStackTrace(); } } public void removeServer(Server... server) { try { server_manager.removeServer(server); } catch (ServerManagerException e) { e.printStackTrace(); } } 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; } } --- NEW FILE: ServerPropertiesWindow.java --- /* * JMule - Java file sharing client * Copyright (C) 2007-2008 JMule team ( jm...@jm... / 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.tab.main.serverlist; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.graphics.Cursor; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Listener; import org.eclipse.swt.widgets.Shell; import org.jmule.core.servermanager.Server; import org.jmule.countrylocator.CountryLocator; import org.jmule.ui.JMuleUIComponent; import org.jmule.ui.JMuleUIManager; import org.jmule.ui.FlagPack.FlagSize; import org.jmule.ui.localizer.Localizer; import org.jmule.ui.localizer._; import org.jmule.ui.swt.GUIUpdater; import org.jmule.ui.swt.Refreshable; import org.jmule.ui.swt.SWTImageRepository; import org.jmule.ui.swt.SWTThread; import org.jmule.ui.swt.Utils; import org.jmule.ui.swt.skin.SWTSkin; /** * * @author binary256 * @version $$Revision: 1.1 $$ * Last changed by $$Author: binary255 $$ on $$Date: 2011/03/27 16:51:29 $$ */ public class ServerPropertiesWindow implements JMuleUIComponent,Refreshable { private Shell shell; private Label label_name,label_desc,label_users,label_files,label_ping,label_soft_limit,label_hard_limit,label_version; private Server server; public ServerPropertiesWindow(Server server) { this.server = server; } public void getCoreComponents() { } public void initUIComponents() { SWTSkin skin = null; try { skin = (SWTSkin) JMuleUIManager.getJMuleUI().getSkin(); }catch(Throwable t) { } final Shell shell1=new Shell(SWTThread.getDisplay(),SWT.ON_TOP); shell=new Shell(shell1,SWT.DIALOG_TRIM | SWT.APPLICATION_MODAL | SWT.RESIZE); shell.setImage(SWTImageRepository.getImage("server_properties.png")); shell.setSize(500, 310); shell.setText(Localizer._("serverpropertieswindow.title")); Utils.centreWindow(shell); shell.setLayout(new GridLayout(1,false)); Composite server_fields = new Composite(shell,SWT.BORDER); server_fields.setLayout(new GridLayout(2,false)); server_fields.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING | GridData.FILL_BOTH)); Label label; label = new Label(server_fields,SWT.NONE); label.setFont(skin.getLabelFont()); label.setText(Localizer._("serverpropertieswindow.label.server_address")+" : "); label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); Composite server_info = new Composite(server_fields,SWT.NONE); GridLayout server_info_layout = new GridLayout(2,false); server_info_layout.marginWidth = 0; server_info_layout.marginHeight = 0; server_info.setLayout(server_info_layout); CountryLocator country_locator = CountryLocator.getInstance(); if (!country_locator.isServiceDown()) { label = new Label(server_info,SWT.NONE); Image flag = SWTImageRepository.getFlagByAddress(server.getAddress(),FlagSize.S18x25); label.setImage(flag); String country_name = country_locator.getCountryName(server.getAddress()); String country_code = country_locator.getCountryCode(server.getAddress()); if (country_name.equals(CountryLocator.COUNTRY_NAME_NOT_AVAILABLE)) country_name = Localizer._("serverpropertieswindow.label.country.unknown_name"); if (country_code.equals(CountryLocator.COUNTRY_CODE_NOT_AVAILABLE)) country_code = Localizer._("serverpropertieswindow.label.country.unknown_code"); label.setToolTipText(country_name+" ("+country_code+")"); } label = new Label(server_info,SWT.NONE); label.setFont(skin.getLabelFont()); label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); label.setText(server.getAddress()+":"+server.getPort()); label = new Label(server_fields,SWT.NONE); label.setFont(skin.getLabelFont()); label.setText(Localizer._("serverpropertieswindow.label.server_name") + " : "); label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); label_name = new Label(server_fields,SWT.NONE); label_name.setFont(skin.getLabelFont()); label_name.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); label = new Label(server_fields,SWT.NONE); label.setFont(skin.getLabelFont()); label.setText(Localizer._("serverpropertieswindow.label.server_description") + " : "); label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); label_desc = new Label(server_fields,SWT.NONE); label_desc.setFont(skin.getDefaultFont()); label_desc.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); label = new Label(server_fields,SWT.NONE); label.setFont(skin.getLabelFont()); label.setText(Localizer._("serverpropertieswindow.label.server_users") + " : "); label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); label_users = new Label(server_fields,SWT.NONE); label_users.setFont(skin.getDefaultFont()); label_users.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); label = new Label(server_fields,SWT.NONE); label.setFont(skin.getLabelFont()); label.setText(Localizer._("serverpropertieswindow.label.server_files") + " : "); label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); label_files = new Label(server_fields,SWT.NONE); label_files.setFont(skin.getDefaultFont()); label_files.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); label = new Label(server_fields,SWT.NONE); label.setFont(skin.getLabelFont()); label.setText(Localizer._("serverpropertieswindow.label.server_ping") + " : "); label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); label_ping = new Label(server_fields,SWT.NONE); label_ping.setFont(skin.getDefaultFont()); label_ping.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); label = new Label(server_fields,SWT.NONE); label.setFont(skin.getLabelFont()); label.setText(Localizer._("serverpropertieswindow.label.server_hard_limit") + " : "); label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); label_hard_limit = new Label(server_fields,SWT.NONE); label_hard_limit.setFont(skin.getDefaultFont()); label_hard_limit.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); label = new Label(server_fields,SWT.NONE); label.setFont(skin.getLabelFont()); label.setText(Localizer._("serverpropertieswindow.label.server_soft_limit") + " : "); label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); label_soft_limit = new Label(server_fields,SWT.NONE); label_soft_limit.setFont(skin.getDefaultFont()); label_soft_limit.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); label = new Label(server_fields,SWT.NONE); label.setFont(skin.getLabelFont()); label.setText(Localizer._("serverpropertieswindow.label.version") + " : "); label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); label_version = new Label(server_fields,SWT.NONE); label_version.setFont(skin.getDefaultFont()); label_version.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); label = new Label(server_fields,SWT.NONE); label.setFont(skin.getLabelFont()); label.setText(Localizer._("serverpropertieswindow.label.ed2k_link") + " : "); label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); label = new Label(server_fields,SWT.NONE); label.setFont(skin.getDefaultFont()); label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); label.setText(server.getServerLink().getAsString()); label.setToolTipText(_._("serverpropertieswindow.label.ed2k_link.tooltip")); label.setForeground(SWTThread.getDisplay().getSystemColor(SWT.COLOR_BLUE)); label.setCursor(new Cursor(SWTThread.getDisplay(),SWT.CURSOR_HAND)); label.addListener(SWT.MouseUp, new Listener() { public void handleEvent(Event arg0) { Utils.setClipBoardText(server.getServerLink().getAsString()); } }); GUIUpdater.getInstance().addRefreshable(this); Composite button_bar = new Composite(shell,SWT.NONE); button_bar.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); GridLayout layout = new GridLayout(1,false); button_bar.setLayout(layout); Button button = new Button(button_bar,SWT.NONE); button.setFont(skin.getButtonFont()); button.setText(Localizer._("serverpropertieswindow.close")); button.setFocus(); GridData grid_data = new GridData(); grid_data.horizontalAlignment = GridData.END; grid_data.widthHint = 60; grid_data.grabExcessHorizontalSpace = true; button.setLayoutData(grid_data); label_version.setText(server.getVersion()+""); label_soft_limit.setText(server.getSoftLimit()+""); label_hard_limit.setText(server.getHardLimit()+""); label_ping.setText(server.getPing()+""); label_files.setText(server.getNumFiles()+""); label_users.setText(server.getNumUsers()+""); label_desc.setText(server.getDesc()); label_name.setText(server.getName()); final Refreshable refreshable = this; button.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { GUIUpdater.getInstance().removeRefreshable(refreshable); shell.close(); } }); shell.open(); } public void refresh() { if (shell.isDisposed()) return ; label_version.setText(server.getVersion()+""); label_soft_limit.setText(server.getSoftLimit()+""); label_hard_limit.setText(server.getHardLimit()+""); label_ping.setText(server.getPing()+""); label_files.setText(server.getNumFiles()+""); label_users.setText(server.getNumUsers()+""); label_desc.setText(server.getDesc()); label_name.setText(server.getName()); } } --- NEW FILE: ServerListTab.java --- /* * JMule - Java file sharing client * Copyright (C) 2007-2008 JMule team ( jm...@jm... / 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.tab.main.serverlist; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.layout.FormLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Group; import org.jmule.core.JMuleCore; import org.jmule.ui.JMuleUIManager; import org.jmule.ui.localizer._; import org.jmule.ui.swt.GUIUpdater; import org.jmule.ui.swt.common.SashControl; import org.jmule.ui.swt.skin.SWTSkin; import org.jmule.ui.swt.tab.MainTab; /** * * @author binary256 * @version $$Revision: 1.1 $$ * Last changed by $$Author: binary255 $$ on $$Date: 2011/03/27 16:51:29 $$ */ public class ServerListTab extends MainTab { private Composite server_info_panel; private Composite server_table_panel; private ConnectionInfo connection_info; private ServerList server_list; private Group server_list_group; public ServerListTab(Composite ctab,JMuleCore core) { super(ctab,"Servers"); SWTSkin skin = null; try { skin = (SWTSkin)JMuleUIManager.getJMuleUI().getSkin(); }catch(Throwable t) {} FormLayout form = new FormLayout (); tab_content.setLayout (form); server_table_panel = new Composite(tab_content, SWT.NONE); server_table_panel.setLayout(new FillLayout()); server_info_panel = new Composite(tab_content,SWT.BORDER); SashControl.createHorizontalSash(20, 50, tab_content, server_table_panel, server_info_panel); server_info_panel.setLayout(new FormLayout()); Composite server_messages = new Composite(server_info_panel,SWT.NONE); server_messages.setLayout(new FillLayout()); Composite peer_info = new Composite(server_info_panel,SWT.NONE); peer_info.setLayout(new FillLayout()); SashControl.createVerticalSash(20, 70, server_info_panel, server_messages, peer_info); // Server List server_list_group = new Group(server_table_panel,SWT.NONE); server_list_group.setLayout(new FillLayout()); setServerCount(core.getServerManager().getServersCount()); server_list = new ServerList(server_list_group,core.getServerManager()); //Server Messages new ServerMessages(server_messages); connection_info = new ConnectionInfo(peer_info,core); connection_info.setFont(skin.getDefaultFont()); SWTServerListWrapper.getInstance().setServerListTab(this); } public void setServerCount(int count) { server_list_group.setText(_._("mainwindow.serverlisttab.group.servers") + "(" +count +")"); tab_content.layout(); } public JMULE_TABS getTabType() { return JMULE_TABS.SERVERLIST; } public void lostFocus() { //System.out.println("Serverlist :: lostFocus"); GUIUpdater.getInstance().removeRefreshable(server_list); GUIUpdater.getInstance().removeRefreshable(connection_info); } public void obtainFocus() { //System.out.println("Serverlist :: obtainFocus"); GUIUpdater.getInstance().addRefreshable(server_list); GUIUpdater.getInstance().addRefreshable(connection_info); } } --- NEW FILE: ConnectionInfo.java --- /* * JMule - Java file sharing client * Copyright (C) 2007-2008 JMule team ( jm...@jm... / 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_label 2 * of the License, or (at your option) any later version_label. * * 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.tab.main.serverlist; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.CTabFolder; import org.eclipse.swt.custom.CTabItem; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Label; import org.jmule.core.JMRunnable; import org.jmule.core.JMuleCore; import org.jmule.core.configmanager.ConfigurationAdapter; import org.jmule.core.configmanager.ConfigurationManagerException; import org.jmule.core.servermanager.Server; import org.jmule.core.utils.Convert; import org.jmule.ui.JMuleUIManager; import org.jmule.ui.localizer.Localizer; import org.jmule.ui.swt.Refreshable; import org.jmule.ui.swt.SWTThread; import org.jmule.ui.swt.skin.SWTSkin; /** * * @author binary256 * @version $$Revision: 1.1 $$ * Last changed by $$Author: binary255 $$ on $$Date: 2011/03/27 16:51:29 $$ */ public class ConnectionInfo extends CTabFolder implements Refreshable { private Label my_info_status,my_info_client_id,my_info_nickname, my_info_user_ip,my_info_sharedcount; private Label server_address,server_name,server_desc,server_users, server_files,server_ping,server_hard_limit,server_soft_limit,server_version; private CTabItem my_info,server_info; private JMuleCore _core; public ConnectionInfo(Composite parent,JMuleCore core) { super(parent,SWT.BORDER); _core = core; SWTServerListWrapper.getInstance().setConnectionInfo(this); SWTSkin skin = null; try { skin = (SWTSkin) JMuleUIManager.getJMuleUI().getSkin(); }catch(Throwable t) { } setSimple(false); my_info = new CTabItem(this, SWT.NONE); my_info.setText(Localizer._("mainwindow.serverlisttab.connectioninfo.myinfo")); server_info = new CTabItem(this, SWT.NONE); server_info.setText(Localizer._("mainwindow.serverlisttab.connectioninfo.serverinfo")); setSelection(my_info); Composite my_info_content = new Composite(this,SWT.NONE); my_info.setControl(my_info_content); my_info_content.setLayout(new GridLayout(2,false)); Label label; label = new Label(my_info_content,SWT.NONE); label.setFont(skin.getLabelFont()); label.setText(Localizer._("mainwindow.serverlisttab.connectioninfo.myinfo.status")+" : "); label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); my_info_status = new Label(my_info_content,SWT.NONE); my_info_status.setFont(skin.getLabelFont()); my_info_status.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); label = new Label(my_info_content,SWT.NONE); label.setFont(skin.getLabelFont()); label.setText(Localizer._("mainwindow.serverlisttab.connectioninfo.myinfo.id")+ " : "); label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); my_info_client_id = new Label(my_info_content,SWT.NONE); my_info_client_id.setFont(skin.getLabelFont()); my_info_client_id.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); label = new Label(my_info_content,SWT.NONE); label.setFont(skin.getLabelFont()); label.setText(Localizer._("mainwindow.serverlisttab.connectioninfo.myinfo.ip") + " : "); label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); my_info_user_ip = new Label(my_info_content,SWT.NONE); my_info_user_ip.setFont(skin.getLabelFont()); my_info_user_ip.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); label = new Label(my_info_content,SWT.NONE); label.setFont(skin.getLabelFont()); label.setText(Localizer._("mainwindow.serverlisttab.connectioninfo.myinfo.nickname") + " : "); label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); my_info_nickname = new Label(my_info_content,SWT.NONE); my_info_nickname.setFont(skin.getLabelFont()); my_info_nickname.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); try { my_info_nickname.setText(_core.getConfigurationManager().getNickName()); } catch (ConfigurationManagerException e) { e.printStackTrace(); } _core.getConfigurationManager().addConfigurationListener(new ConfigurationAdapter() { public void nickNameChanged(String nickName) { SWTThread.getDisplay().asyncExec(new JMRunnable() { public void JMRun() { try { my_info_nickname.setText(_core.getConfigurationManager().getNickName()); } catch (ConfigurationManagerException e) { e.printStackTrace(); } } }); } }); label = new Label(my_info_content,SWT.NONE); label.setFont(skin.getLabelFont()); label.setText(Localizer._("mainwindow.serverlisttab.connectioninfo.myinfo.sharedfiles") + " : "); label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); my_info_sharedcount = new Label(my_info_content,SWT.NONE); my_info_sharedcount.setFont(skin.getLabelFont()); my_info_sharedcount.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); my_info_sharedcount.setText(_core.getSharingManager().getFileCount()+""); //my_info_scroll.setContent(my_info_content); //ScrolledContent server_info_scroll = new ScrolledContent(this); //server_info.setControl(server_info_scroll); Composite server_info_content = new Composite(this,SWT.NONE); server_info_content.setLayout(new GridLayout(2,false)); server_info.setControl(server_info_content); label = new Label(server_info_content,SWT.NONE); label.setFont(skin.getLabelFont()); label.setText(Localizer._("mainwindow.serverlisttab.connectioninfo.serverinfo.address")+" : "); label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); server_address = new Label(server_info_content,SWT.NONE); server_address.setFont(skin.getLabelFont()); server_address.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); label = new Label(server_info_content,SWT.NONE); label.setFont(skin.getLabelFont()); label.setText(Localizer._("mainwindow.serverlisttab.connectioninfo.serverinfo.name") + " : "); label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); server_name = new Label(server_info_content,SWT.NONE); server_name.setFont(skin.getLabelFont()); server_name.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); label = new Label(server_info_content,SWT.NONE); label.setFont(skin.getLabelFont()); label.setText(Localizer._("mainwindow.serverlisttab.connectioninfo.serverinfo.desc") + " : "); label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); server_desc = new Label(server_info_content,SWT.NONE); server_desc.setFont(skin.getLabelFont()); server_desc.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); label = new Label(server_info_content,SWT.NONE); label.setFont(skin.getLabelFont()); label.setText(Localizer._("mainwindow.serverlisttab.connectioninfo.serverinfo.users") + " : "); label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); server_users = new Label(server_info_content,SWT.NONE); server_users.setFont(skin.getLabelFont()); server_users.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); label = new Label(server_info_content,SWT.NONE); label.setFont(skin.getLabelFont()); label.setText(Localizer._("mainwindow.serverlisttab.connectioninfo.serverinfo.files") + " : "); label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); server_files = new Label(server_info_content,SWT.NONE); server_files.setFont(skin.getLabelFont()); server_files.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); label = new Label(server_info_content,SWT.NONE); label.setFont(skin.getLabelFont()); label.setText(Localizer._("mainwindow.serverlisttab.connectioninfo.serverinfo.ping") + " : "); label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); server_ping = new Label(server_info_content,SWT.NONE); server_ping.setFont(skin.getLabelFont()); server_ping.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); label = new Label(server_info_content,SWT.NONE); label.setFont(skin.getLabelFont()); label.setText(Localizer._("mainwindow.serverlisttab.connectioninfo.serverinfo.hardlimit") + " : "); label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); server_hard_limit = new Label(server_info_content,SWT.NONE); server_hard_limit.setFont(skin.getLabelFont()); server_hard_limit.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); label = new Label(server_info_content,SWT.NONE); label.setFont(skin.getLabelFont()); label.setText(Localizer._("mainwindow.serverlisttab.connectioninfo.serverinfo.softlimit") + " : "); label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); server_soft_limit = new Label(server_info_content,SWT.NONE); server_soft_limit.setFont(skin.getLabelFont()); server_soft_limit.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); label = new Label(server_info_content,SWT.NONE); label.setFont(skin.getLabelFont()); label.setText(Localizer._("mainwindow.serverlisttab.connectioninfo.serverinfo.version") + " : "); label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END)); server_version = new Label(server_info_content,SWT.NONE); server_version.setFont(skin.getLabelFont()); server_version.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); //server_info_scroll.setContent(server_info_content); setStatusDisconnected(); } public void setStatusDisconnected() { my_info_status.setText(Localizer._("mainwindow.serverlisttab.connectioninfo.myinfo.disconnected")); my_info_client_id.setText(""); my_info_client_id.setToolTipText(""); my_info_user_ip.setText(""); server_address.setText(""); server_ping.setText(""); server_desc.setText(""); server_name.setText(""); server_users.setText(""); server_files.setText(""); server_hard_limit.setText(""); server_soft_limit.setText(""); server_version.setText(""); } public void setStatusConnecting(Server server) { my_info_status.setText(Localizer._("mainwindow.serverlisttab.connectioninfo.myinfo.connecting")); my_info_client_id.setText(""); my_info_client_id.setToolTipText(""); my_info_user_ip.setText(""); if (server!=null) server_address.setText(server.getAddress()+" : "+server.getPort()); else server_address.setText(""); server_ping.setText(""); server_desc.setText(""); server_name.setText(""); server_users.setText(""); server_files.setText(""); server_hard_limit.setText(""); server_soft_limit.setText(""); server_version.setText(""); } public void setStatusConnected( Server server) { my_info_status.setText(Localizer._("mainwindow.serverlisttab.connectioninfo.myinfo.connected")); long client_id = Convert.intToLong(server.getClientID().hashCode()); my_info_client_id.setText(client_id + " " + (server.getClientID().isHighID() ? Localizer._("mainwindow.serverlisttab.connectioninfo.myinfo.high_id") : Localizer._("mainwindow.serverlisttab.connectioninfo.myinfo.low_id") )); my_info_client_id.setToolTipText(""); my_info_user_ip.setText(server.getClientID().getAsString() + ""); server_address.setText(server.getAddress() + ":" + server.getPort()); server_name.setText(server.getName()); server_desc.setText(server.getDesc()); server_ping.setText(server.getPing() + ""); server_users.setText(server.getNumUsers()+""); server_files.setText(server.getNumFiles()+""); server_hard_limit.setText(server.getNumUsers()+""); server_soft_limit.setText(server.getSoftLimit()+""); server_version.setText(server.getVersion()+""); } protected void checkSubclass() {} public void refresh() { if (isDisposed()) return ; my_info_sharedcount.setText(_core.getSharingManager().getFileCount()+""); } } --- NEW FILE: ServerList.java --- /* * JMule - Java file sharing client * Copyright (C) 2007-2008 JMule team ( jm...@jm... / 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.tab.main.serverlist; import java.util.List; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.graphics.Color; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.MenuItem; import org.jmule.core.JMRunnable; import org.jmule.core.JMThread; import org.jmule.core.JMuleCoreFactory; import org.jmule.core.edonkey.ED2KServerLink; import org.jmule.core.servermanager.Server; import org.jmule.core.servermanager.ServerManager; import org.jmule.core.servermanager.ServerManagerException; import org.jmule.core.utils.Misc; import org.jmule.countrylocator.CountryLocator; import org.jmule.ui.FlagPack.FlagSize; import org.jmule.ui.localizer.Localizer; import org.jmule.ui.localizer._; import org.jmule.ui.swt.Refreshable; import org.jmule.ui.swt.SWTConstants; import org.jmule.ui.swt.SWTImageRepository; import org.jmule.ui.swt.SWTPreferences; import org.jmule.ui.swt.SWTThread; import org.jmule.ui.swt.Utils; import org.jmule.ui.swt.common.CountryFlagPainter; import org.jmule.ui.swt.mainwindow.MainWindow; import org.jmule.ui.swt.tables.BufferedTableRow; import org.jmule.ui.swt.tables.JMTable; import org.jmule.ui.swt.tables.TableItemCountryFlag; import org.jmule.ui.utils.NumberFormatter; /** * * @author binary256 * @version $$Revision: 1.1 $$ * Last changed by $$Author: binary255 $$ on $$Date: 2011/03/27 16:51:29 $$ */ public class ServerList extends JMTable<Server> implements Refreshable { private ServerManager servers_manager; private Color server_down_color = new Color(getDisplay(),178,178,178); private Color server_connected_color = new Color(getDisplay(),124,152,225); private Color server_default_color = new Color(getDisplay(),0,0,0); private static final FlagSize default_flag_size = FlagSize.S25x15; private Menu no_servers_menu; private Menu no_selected_servers_menu; private Menu selected_server_menu; private Menu selected_multiple_servers_menu; private MenuItem selected_server_connect; private MenuItem selected_server_disconnect; private MenuItem no_selection_menu_disconnect; private MenuItem server_disconnect_multiselect,server_connect_multiselect; private MenuItem server_remove_all,server_remove_all_multiselect; private MenuItem add_to_static_list,remove_from_static_list; private MenuItem multisel_add_to_static_list,multisel_remove_from_static_list; private enum ServerListStatus { NO_SERVERS,NO_SERVERS_SELECTED_DISCONNECTED,NO_SERVERS_SELECTED_CONNECTED,SELECTED_DISCONNECTED_SERVER_NOT_CONNECTED, SELECTED_MULTIPLE_SERVERS_NOT_CONNECTED, SELECTED_CONNECTED_SERVER, SELECTED_MULTIPLE_SERVERS_WITH_ONE_CONNECTED,SELECTED_MULTIPLE_SERVERS_CONNECTED, SELECTED_DISCONNECTED_SERVER_CONNECTED } public ServerList(Composite composite, final ServerManager server_manager) { super(composite, SWT.NONE); SWTServerListWrapper.getInstance().setServerList(this); this.servers_manager = server_manager; int width; width = swt_preferences.getColumnWidth(SWTConstants.SERVER_LIST_NAME_COLUMN_ID); addColumn(SWT.LEFT, SWTConstants.SERVER_LIST_NAME_COLUMN_ID,Localizer._("mainwindow.serverlisttab.serverlist.column.name"), "",width); width = swt_preferences.getColumnWidth(SWTConstants.SERVER_LIST_CC_COLUMN_ID); addColumn(SWT.CENTER, SWTConstants.SERVER_LIST_CC_COLUMN_ID,Localizer._("mainwindow.serverlisttab.serverlist.column.country_code"), _._("mainwindow.serverlisttab.serverlist.column.country_code.desc"),width); if (CountryLocator.getInstance().isServiceDown()) disableColumn(SWTConstants.SERVER_LIST_CC_COLUMN_ID); width = swt_preferences.getColumnWidth(SWTConstants.SERVER_LIST_FLAG_COLUMN_ID); addColumn(SWT.LEFT, SWTConstants.SERVER_LIST_FLAG_COLUMN_ID,Localizer._("mainwindow.serverlisttab.serverlist.column.country"), "",width); if (CountryLocator.getInstance().isServiceDown()) disableColumn(SWTConstants.SERVER_LIST_FLAG_COLUMN_ID); width = swt_preferences.getColumnWidth(SWTConstants.SERVER_LIST_IP_COLUMN_ID); addColumn(SWT.LEFT, SWTConstants.SERVER_LIST_IP_COLUMN_ID, Localizer._("mainwindow.serverlisttab.serverlist.column.address"), "",width); width = swt_preferences.getColumnWidth(SWTConstants.SERVER_LIST_DESCRIPTION_COLUMN_ID); addColumn(SWT.LEFT, SWTConstants.SERVER_LIST_DESCRIPTION_COLUMN_ID,Localizer._("mainwindow.serverlisttab.serverlist.column.description"), "",width); width = swt_preferences.getColumnWidth(SWTConstants.SERVER_LIST_PING_COLUMN_ID); addColumn(SWT.RIGHT, SWTConstants.SERVER_LIST_PING_COLUMN_ID,Localizer._("mainwindow.serverlisttab.serverlist.column.ping"), "",width); width = swt_preferences.getColumnWidth(SWTConstants.SERVER_LIST_USERS_COLUMN_ID); addColumn(SWT.RIGHT, SWTConstants.SERVER_LIST_USERS_COLUMN_ID,Localizer._("mainwindow.serverlisttab.serverlist.column.users"), "",width); width = swt_preferences.getColumnWidth(SWTConstants.SERVER_LIST_MAX_USERS_COLUMN_ID); addColumn(SWT.RIGHT, SWTConstants.SERVER_LIST_MAX_USERS_COLUMN_ID,Localizer._("mainwindow.serverlisttab.serverlist.column.max_users"), _._("mainwindow.serverlisttab.serverlist.column.maxusers.desc"),width); width = swt_preferences.getColumnWidth(SWTConstants.SERVER_LIST_FILES_COLUMN_ID); addColumn(SWT.RIGHT, SWTConstants.SERVER_LIST_FILES_COLUMN_ID,Localizer._("mainwindow.serverlisttab.serverlist.column.files"), "",width); width = swt_preferences.getColumnWidth(SWTConstants.SERVER_LIST_SOFT_LIMIT_COLUMN_ID); addColumn(SWT.RIGHT, SWTConstants.SERVER_LIST_SOFT_LIMIT_COLUMN_ID,Localizer._("mainwindow.serverlisttab.serverlist.column.soft_limit"), _._("mainwindow.serverlisttab.serverlist.column.soft_limit.desc"),width); width = swt_preferences.getColumnWidth(SWTConstants.SERVER_LIST_HARD_LIMIT_COLUMN_ID); addColumn(SWT.RIGHT, SWTConstants.SERVER_LIST_HARD_LIMIT_COLUMN_ID,Localizer._("mainwindow.serverlisttab.serverlist.column.hard_limit"), _._("mainwindow.serverlisttab.serverlist.column.hard_limit.desc"),width); width = swt_preferences.getColumnWidth(SWTConstants.SERVER_LIST_VERSION_COLUMN_ID); addColumn(SWT.RIGHT, SWTConstants.SERVER_LIST_VERSION_COLUMN_ID,Localizer._("mainwindow.serverlisttab.serverlist.column.software"), "",width); width = swt_preferences.getColumnWidth(SWTConstants.SERVER_LIST_STATIC_COLUMN_ID); addColumn(SWT.LEFT, SWTConstants.SERVER_LIST_STATIC_COLUMN_ID,Localizer._("mainwindow.serverlisttab.serverlist.column.static"), "",width); updateColumnOrder(); updateColumnVisibility(); final SWTServerListWrapper wrapper = SWTServerListWrapper.getInstance(); // No servers no_servers_menu = new Menu(this); MenuItem no_servers_server_add = new MenuItem (no_servers_menu, SWT.PUSH); no_servers_server_add.setText (Localizer._("mainwindow.serverlisttab.serverlist.popupmenu.add_server")); no_servers_server_add.setImage(SWTImageRepository.getImage("server_add.png")); no_servers_server_add.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { showServerAddWindow(); } }); new MenuItem (no_servers_menu, SWT.SEPARATOR); MenuItem no_server_paste_ed2k_links = new MenuItem (no_servers_menu, SWT.PUSH); no_server_paste_ed2k_links.setText (Localizer._("mainwindow.serverlisttab.serverlist.popupmenu.paste_ed2k_links")); no_server_paste_ed2k_links.setImage(SWTImageRepository.getImage("ed2k_link_paste.png")); no_server_paste_ed2k_links.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { pasteED2KLinks(); } }); new MenuItem (no_servers_menu, SWT.SEPARATOR); MenuItem no_server_column_setup = new MenuItem (no_servers_menu, SWT.PUSH); no_server_column_setup.setText (Localizer._("mainwindow.serverlisttab.serverlist.popupmenu.column_setup")); no_server_column_setup.setImage(SWTImageRepository.getImage("columns_setup.png")); no_server_column_setup.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { showColumnEditorWindow(); } }); no_selected_servers_menu = new Menu(this); MenuItem no_selection_menu_add = new MenuItem(no_selected_servers_menu,SWT.PUSH); no_selection_menu_add.setText(Localizer._("mainwindow.serverlisttab.serverlist.popupmenu.add_server")); no_selection_menu_add.setImage(SWTImageRepository.getImage("server_add.png")); no_selection_menu_add.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { showServerAddWindow(); } }); new MenuItem(no_selected_servers_menu,SWT.SEPARATOR); no_selection_menu_disconnect = new MenuItem(no_selected_servers_menu,SWT.PUSH); no_selection_menu_disconnect.setText(Localizer._("mainwindow.serverlisttab.serverlist.popupmenu.disconnect_from")); no_selection_menu_disconnect.setImage(SWTImageRepository.getImage("server_disconnect.png")); no_selection_menu_disconnect.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { wrapper.disconnect(); } }); new MenuItem(no_selected_servers_menu,SWT.SEPARATOR); MenuItem no_selection_menu_remove_all = new MenuItem(no_selected_servers_menu,SWT.PUSH); no_selection_menu_remove_all.setText(Localizer._("mainwindow.serverlisttab.serverlist.popupmenu.remove_all")); no_selection_menu_remove_all.setImage(SWTImageRepository.getImage("remove_all.png")); no_selection_menu_remove_all.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { clearServerList(); } }); new MenuItem(no_selected_servers_menu,SWT.SEPARATOR); MenuItem no_selection_menu_paste_ed2k = new MenuItem(no_selected_servers_menu,SWT.PUSH); no_selection_menu_paste_ed2k.setText(Localizer._("mainwindow.serverlisttab.serverlist.popupmenu.paste_ed2k_links")); no_selection_menu_paste_ed2k.setImage(SWTImageRepository.getImage("ed2k_link_paste.png")); no_selection_menu_paste_ed2k.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { pasteED2KLinks(); } }); new MenuItem(no_selected_servers_menu,SWT.SEPARATOR); MenuItem no_selection_menu_column_setup = new MenuItem(no_selected_servers_menu,SWT.PUSH); no_selection_menu_column_setup.setText(Localizer._("mainwindow.serverlisttab.serverlist.popupmenu.column_setup")); no_selection_menu_column_setup.setImage(SWTImageRepository.getImage("columns_setup.png")); no_selection_menu_column_setup.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { showColumnEditorWindow(); } }); selected_server_menu = new Menu(this); selected_server_connect = new MenuItem (selected_server_menu, SWT.PUSH); selected_server_connect.setText (Localizer._("mainwindow.serverlisttab.serverlist.popupmenu.connect_to")); selected_server_connect.setImage(SWTImageRepository.getImage("server_connect.png")); selected_server_connect.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { Server selected_server = (Server) getSelectedObject(); wrapper.connectTo(selected_server); }} ); selected_server_disconnect = new MenuItem (selected_server_menu, SWT.PUSH); selected_server_disconnect.setText (Localizer._("mainwindow.serverlisttab.serverlist.popupmenu.disconnect_from")); selected_server_disconnect.setImage(SWTImageRepository.getImage("server_disconnect.png")); selected_server_disconnect.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { if (wrapper.isAutoconnecting()) wrapper.stopConnecting(); else wrapper.disconnect(); }} ); new MenuItem (selected_server_menu, SWT.SEPARATOR); MenuItem server_add = new MenuItem (selected_server_menu, SWT.PUSH); server_add.setText (Localizer._("mainwindow.serverlisttab.serverlist.popupmenu.add_server")); server_add.setImage(SWTImageRepository.getImage("server_add.png")); server_add.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { showServerAddWindow(); } }); final MenuItem server_remove = new MenuItem (selected_server_menu, SWT.PUSH); server_remove.setText (Localizer._("mainwindow.serverlisttab.serverlist.popupmenu.remove_server")); server_remove.setImage(SWTImageRepository.getImage("server_delete.png")); server_remove.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { removeSelectedServers(); } }); server_remove_all = new MenuItem (selected_server_menu, SWT.PUSH); server_remove_all.setText (Localizer._("mainwindow.serverlisttab.serverlist.popupmenu.remove_all")); server_remove_all.setImage(SWTImageRepository.getImage("remove_all.png")); server_remove_all.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { clearServerList(); } }); new MenuItem (selected_server_menu, SWT.SEPARATOR); final MenuItem server_copy_ed2k_link = new MenuItem (selected_server_menu, SWT.PUSH); server_copy_ed2k_link.setText (Localizer._("mainwindow.serverlisttab.serverlist.popupmenu.copy_ed2k_link")); server_copy_ed2k_link.setImage(SWTImageRepository.getImage("ed2k_link.png")); server_copy_ed2k_link.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { copyED2KLinks(); } }); MenuItem server_paste_ed2k_links = new MenuItem (selected_server_menu, SWT.PUSH); server_paste_ed2k_links.setText (Localizer._("mainwindow.serverlisttab.serverlist.popupmenu.paste_ed2k_links")); server_paste_ed2k_links.setImage(SWTImageRepository.getImage("ed2k_link_paste.png")); server_paste_ed2k_links.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { pasteED2KLinks(); } }); new MenuItem (selected_server_menu, SWT.SEPARATOR); add_to_static_list = new MenuItem (selected_server_menu, SWT.PUSH); add_to_static_list.setText (Localizer._("mainwindow.serverlisttab.serverlist.popupmenu.add_to_static_list")); add_to_static_list.setImage(SWTImageRepository.getImage("list_add.png")); add_to_static_list.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { addToStaticList(); } }); remove_from_static_list = new MenuItem (selected_server_menu, SWT.PUSH); remove_from_static_list.setText (Localizer._("mainwindow.serverlisttab.serverlist.popupmenu.remove_from_static_list")); remove_from_static_list.setImage(SWTImageRepository.getImage("list_remove.png")); remove_from_static_list.addSelectionListener(new SelectionAdapter() { public void widgetSelected(final SelectionEvent e) { removeFromStaticList(); } }); new MenuItem (selected_server_menu, SWT.SEPARATOR); MenuItem column_setup = new MenuItem (selected_server_menu, SWT.PUSH); column_setup.setText (Localizer._("mainwindow.serverlisttab.serverlist.popupme... [truncated message content] |
From: Binary <bin...@us...> - 2011-03-27 16:51:25
|
Update of /cvsroot/jmule/jmule2/src/org/jmule/ui/swt/tab/main/transfers In directory vz-cvs-3.sog:/tmp/cvs-serv26264/src/org/jmule/ui/swt/tab/main/transfers Log Message: Directory /cvsroot/jmule/jmule2/src/org/jmule/ui/swt/tab/main/transfers added to the repository |
From: Binary <bin...@us...> - 2011-03-27 16:51:24
|
Update of /cvsroot/jmule/jmule2/src/org/jmule/ui/swt/tab In directory vz-cvs-3.sog:/tmp/cvs-serv26264/src/org/jmule/ui/swt/tab Log Message: Directory /cvsroot/jmule/jmule2/src/org/jmule/ui/swt/tab added to the repository |
From: Binary <bin...@us...> - 2010-10-23 05:52:26
|
Update of /cvsroot/jmule/jmule2/src/org/jmule/core/networkmanager In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv3229/src/org/jmule/core/networkmanager Modified Files: NetworkManagerImpl.java Log Message: Removed debug code Index: NetworkManagerImpl.java =================================================================== RCS file: /cvsroot/jmule/jmule2/src/org/jmule/core/networkmanager/NetworkManagerImpl.java,v retrieving revision 1.51 retrieving revision 1.52 diff -C2 -d -r1.51 -r1.52 *** NetworkManagerImpl.java 31 Aug 2010 10:25:05 -0000 1.51 --- NetworkManagerImpl.java 23 Oct 2010 05:52:18 -0000 1.52 *************** *** 590,594 **** --- 590,614 ---- public void peerDisconnected(String ip, int port) { + _peer_manager.peerDisconnected(ip, port); + JMPeerConnection connection = null; + try { + connection = getPeerConnection(ip, port); + } catch (NetworkManagerException e) { + e.printStackTrace(); + return; + } + try { + connection.disconnect(); + peer_connections_monitor.send_queue.remove(connection); + peer_connections.remove(ip + KEY_SEPARATOR + port); + connection = null; + } catch (IOException e) { + e.printStackTrace(); + } + + //disconnectPeer(ip, port); + + /*_peer_manager.peerDisconnected(ip, port); JMPeerConnection connection = peer_connections.get(ip + KEY_SEPARATOR + port); if (connection != null) { *************** *** 596,604 **** connection.setStatus(ConnectionStatus.DISCONNECTED); } ! peer_connections.remove(ip + KEY_SEPARATOR + port); } public void peerIOError(String ip, int port, Throwable cause) { _peer_manager.peerDisconnected(ip, port); JMPeerConnection connection = peer_connections.get(ip + KEY_SEPARATOR + port); if (connection != null) { --- 616,643 ---- connection.setStatus(ConnectionStatus.DISCONNECTED); } ! peer_connections.remove(ip + KEY_SEPARATOR + port);*/ } public void peerIOError(String ip, int port, Throwable cause) { _peer_manager.peerDisconnected(ip, port); + JMPeerConnection connection = null; + try { + connection = getPeerConnection(ip, port); + } catch (NetworkManagerException e) { + e.printStackTrace(); + return; + } + try { + connection.disconnect(); + peer_connections_monitor.send_queue.remove(connection); + peer_connections.remove(ip + KEY_SEPARATOR + port); + connection = null; + } catch (IOException e) { + e.printStackTrace(); + } + + + //disconnectPeer(ip, port); + /*_peer_manager.peerDisconnected(ip, port); JMPeerConnection connection = peer_connections.get(ip + KEY_SEPARATOR + port); if (connection != null) { *************** *** 606,610 **** connection.setStatus(ConnectionStatus.DISCONNECTED); } ! peer_connections.remove(ip + KEY_SEPARATOR + port); } --- 645,649 ---- connection.setStatus(ConnectionStatus.DISCONNECTED); } ! peer_connections.remove(ip + KEY_SEPARATOR + port);*/ } *************** *** 2840,2847 **** --- 2879,2888 ---- SendPacketContainer c = peer_queue.poll(); c.packet.clear(); + } //System.out.println(" Remaining packets :: " + connection + " :: " + peer_queue.size() ); if (peer_queue.isEmpty()) { + //System.out.println("Disable OP_WRITE :: " + System.currentTimeMillis() + " :: " + connection +" :: send_queue :: " + peer_queue.size()); try { send_queue.remove(connection); *************** *** 2858,2863 **** } } - } - } --- 2899,2902 ---- *************** *** 2928,2933 **** Iterator<SelectionKey> keys = peerSelector.selectedKeys().iterator(); ! while (keys.hasNext()) { try { SelectionKey key = keys.next(); --- 2967,2973 ---- Iterator<SelectionKey> keys = peerSelector.selectedKeys().iterator(); ! long x = System.currentTimeMillis(); while (keys.hasNext()) { + long a = System.currentTimeMillis(); try { SelectionKey key = keys.next(); *************** *** 2983,2986 **** --- 3023,3027 ---- key.attach(connection); connection.removeOPS(InterestedOPS.OP_WRITE); + //System.out.println("Must install write :: " + System.currentTimeMillis() + " :: " + key.attachment()); must_install_write.add(key); } catch (Throwable t) { *************** *** 2994,2998 **** write(connection); } ! }catch(Throwable cause) { cause.printStackTrace(); --- 3035,3040 ---- write(connection); } ! long b = System.currentTimeMillis(); ! //System.out.println("NetworkManager TCP iteration :: " + (b - a) + " " + key.attachment()); }catch(Throwable cause) { cause.printStackTrace(); *************** *** 3001,3004 **** --- 3043,3048 ---- } } + long y = System.currentTimeMillis(); + //System.out.println("NetworkManager TCP fullIteration :: " + (y - x)); } *************** *** 3107,3111 **** PacketFragment fragment = fragmentMap.get(key); if (System.currentTimeMillis() - fragment.getLastUpdate() >= PACKET_PROCESSOR_DROP_TIMEOUT) { ! System.out.println("Drop partial packet for : " + fragment.getConnection()); fragmentMap.remove(key); fragment.clear(); --- 3151,3155 ---- PacketFragment fragment = fragmentMap.get(key); if (System.currentTimeMillis() - fragment.getLastUpdate() >= PACKET_PROCESSOR_DROP_TIMEOUT) { ! //System.out.println("Drop partial packet for : " + fragment.getConnection()); fragmentMap.remove(key); fragment.clear(); *************** *** 3116,3120 **** for(PacketFragment fragment : packetsToProcess) if (System.currentTimeMillis() - fragment.getLastUpdate() >= PACKET_PROCESSOR_DROP_TIMEOUT) { ! System.out.println("Drop completed packet for : " + fragment.getConnection()); packetsToProcess.remove(fragment); fragment.clear(); --- 3160,3164 ---- for(PacketFragment fragment : packetsToProcess) if (System.currentTimeMillis() - fragment.getLastUpdate() >= PACKET_PROCESSOR_DROP_TIMEOUT) { ! //System.out.println("Drop completed packet for : " + fragment.getConnection()); packetsToProcess.remove(fragment); fragment.clear(); *************** *** 3641,3646 **** Iterator<SelectionKey> keys = selector.selectedKeys().iterator(); while(keys.hasNext()) { ! if (!loop) return; --- 3685,3691 ---- Iterator<SelectionKey> keys = selector.selectedKeys().iterator(); + long x = System.currentTimeMillis(); while(keys.hasNext()) { ! long a = System.currentTimeMillis(); if (!loop) return; *************** *** 3694,3699 **** --- 3739,3748 ---- } } + long b = System.currentTimeMillis(); + //System.out.println("NetworkManager UDP Iteration :: " + (b - a)); } + long y = System.currentTimeMillis(); + //System.out.println("NetworkManager UDP FullIteration :: " + (y - x)); } catch (IOException e) { *************** *** 3759,3762 **** --- 3808,3812 ---- throw new JMException("UDP socket is not open"); sendQueue.offer(packet); + if (write_installed == false) { must_install_write = true; |
From: Binary <bin...@us...> - 2010-10-23 05:51:57
|
Update of /cvsroot/jmule/jmule2/src/org/jmule/core/jkad/search In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv3058/src/org/jmule/core/jkad/search Modified Files: SourceSearchTask.java NoteSearchTask.java KeywordSearchTask.java Log Message: Packet listeners replaced with methods Index: NoteSearchTask.java =================================================================== RCS file: /cvsroot/jmule/jmule2/src/org/jmule/core/jkad/search/NoteSearchTask.java,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** NoteSearchTask.java 4 Aug 2010 08:05:50 -0000 1.14 --- NoteSearchTask.java 23 Oct 2010 05:51:49 -0000 1.15 *************** *** 23,39 **** package org.jmule.core.jkad.search; - import static org.jmule.core.jkad.JKadConstants.*; - import java.util.List; - import org.jmule.core.JMException; - import org.jmule.core.edonkey.packet.tag.TagList; import org.jmule.core.jkad.ContactAddress; - import org.jmule.core.jkad.IPAddress; import org.jmule.core.jkad.Int128; import org.jmule.core.jkad.JKadConstants; - import org.jmule.core.jkad.JKadException; - import org.jmule.core.jkad.PacketListener; import org.jmule.core.jkad.JKadConstants.RequestType; import org.jmule.core.jkad.lookup.Lookup; import org.jmule.core.jkad.lookup.LookupTask; --- 23,33 ---- package org.jmule.core.jkad.search; import java.util.List; import org.jmule.core.jkad.ContactAddress; import org.jmule.core.jkad.Int128; import org.jmule.core.jkad.JKadConstants; import org.jmule.core.jkad.JKadConstants.RequestType; + import org.jmule.core.jkad.JKadException; import org.jmule.core.jkad.lookup.Lookup; import org.jmule.core.jkad.lookup.LookupTask; *************** *** 70,74 **** for(KadContact contact : results) { ! KadPacket packet = null; if (!contact.supportKad2()) try { --- 64,75 ---- for(KadContact contact : results) { ! KadPacket responsePacket = null; ! if (contact.supportKad2()) ! responsePacket = PacketFactory.getNotes2Req(searchID,fileSize); ! else ! responsePacket = PacketFactory.getNotes1Req(searchID); ! _network_manager.sendKadPacket(responsePacket, contact.getContactAddress().getAddress(), contact.getUDPPort()); ! ! /*KadPacket packet = null; if (!contact.supportKad2()) try { *************** *** 90,94 **** KadPacket responsePacket = PacketFactory.getNotes2Req(searchID,fileSize); _network_manager.sendKadPacket(responsePacket, new IPAddress(packet.getAddress()), packet.getAddress().getPort()); ! _jkad_manager.removePacketListener(this); } }; else --- 91,95 ---- KadPacket responsePacket = PacketFactory.getNotes2Req(searchID,fileSize); _network_manager.sendKadPacket(responsePacket, new IPAddress(packet.getAddress()), packet.getAddress().getPort()); ! removePacketListener(this); } }; else *************** *** 97,104 **** KadPacket responsePacket = PacketFactory.getNotes1Req(searchID); _network_manager.sendKadPacket(responsePacket, new IPAddress(packet.getAddress()), packet.getAddress().getPort()); ! _jkad_manager.removePacketListener(this); } }; ! _jkad_manager.addPacketListener(listener); } } --- 98,106 ---- KadPacket responsePacket = PacketFactory.getNotes1Req(searchID); _network_manager.sendKadPacket(responsePacket, new IPAddress(packet.getAddress()), packet.getAddress().getPort()); ! removePacketListener(this); } }; ! registerPacketListener(listener); ! _jkad_manager.addPacketListener(listener);*/ } } *************** *** 117,120 **** --- 119,123 ---- if (!isStarted) return; isStarted = false; + // ((InternalJKadManager)JKadManagerSingleton.getInstance()).removePacketListener(getPacketListenerList()); if (listener!=null) listener.searchFinished(); Index: KeywordSearchTask.java =================================================================== RCS file: /cvsroot/jmule/jmule2/src/org/jmule/core/jkad/search/KeywordSearchTask.java,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** KeywordSearchTask.java 4 Aug 2010 08:05:50 -0000 1.20 --- KeywordSearchTask.java 23 Oct 2010 05:51:49 -0000 1.21 *************** *** 23,40 **** package org.jmule.core.jkad.search; - import static org.jmule.core.jkad.JKadConstants.KADEMLIA2_HELLO_RES; - import static org.jmule.core.jkad.JKadConstants.KADEMLIA_HELLO_RES; - import java.util.List; - import org.jmule.core.JMException; - import org.jmule.core.edonkey.packet.tag.TagList; import org.jmule.core.jkad.ContactAddress; - import org.jmule.core.jkad.IPAddress; import org.jmule.core.jkad.Int128; import org.jmule.core.jkad.JKadConstants; import org.jmule.core.jkad.JKadConstants.RequestType; import org.jmule.core.jkad.JKadException; - import org.jmule.core.jkad.PacketListener; import org.jmule.core.jkad.lookup.Lookup; import org.jmule.core.jkad.lookup.LookupTask; --- 23,33 ---- *************** *** 66,69 **** --- 59,64 ---- } + + public void start() throws JKadException { isStarted = true; *************** *** 73,80 **** } ! public void processToleranceContacts(ContactAddress sender, ! List<KadContact> results) { for(KadContact contact : results) { ! KadPacket packet = null; if (!contact.supportKad2()) try { --- 68,82 ---- } ! public void processToleranceContacts(ContactAddress sender, List<KadContact> results) { for(KadContact contact : results) { ! ! KadPacket responsePacket = null; ! if (contact.supportKad2()) ! responsePacket = PacketFactory.getSearchKeyReq2Packet(searchID); ! else ! responsePacket = PacketFactory.getSearch1ReqPacket(searchID,false); ! _network_manager.sendKadPacket(responsePacket, contact.getContactAddress().getAddress(), contact.getUDPPort()); ! ! /*KadPacket packet = null; if (!contact.supportKad2()) try { *************** *** 98,101 **** --- 100,105 ---- _network_manager.sendKadPacket(responsePacket, new IPAddress(packet.getAddress()), packet.getAddress().getPort()); _jkad_manager.removePacketListener(this); + + removePacketListener(this); } }; *************** *** 106,113 **** _network_manager.sendKadPacket(responsePacket, new IPAddress(packet.getAddress()), packet.getAddress().getPort()); _jkad_manager.removePacketListener(this); } }; _jkad_manager.addPacketListener(listener); ! } } --- 110,122 ---- _network_manager.sendKadPacket(responsePacket, new IPAddress(packet.getAddress()), packet.getAddress().getPort()); _jkad_manager.removePacketListener(this); + + removePacketListener(this); } }; + + registerPacketListener(listener); + _jkad_manager.addPacketListener(listener); ! */ } } *************** *** 131,134 **** --- 140,145 ---- //Lookup.getSingleton().removeLookupTask(searchID); + /* ((InternalJKadManager)JKadManagerSingleton.getInstance()).removePacketListener(getPacketListenerList()); + */ if (listener!=null) listener.searchFinished(); Index: SourceSearchTask.java =================================================================== RCS file: /cvsroot/jmule/jmule2/src/org/jmule/core/jkad/search/SourceSearchTask.java,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** SourceSearchTask.java 4 Aug 2010 08:05:50 -0000 1.19 --- SourceSearchTask.java 23 Oct 2010 05:51:49 -0000 1.20 *************** *** 23,41 **** package org.jmule.core.jkad.search; - import static org.jmule.core.jkad.JKadConstants.KADEMLIA2_HELLO_RES; - import static org.jmule.core.jkad.JKadConstants.KADEMLIA_HELLO_RES; - import java.util.ArrayList; import java.util.List; - import org.jmule.core.JMException; - import org.jmule.core.edonkey.packet.tag.TagList; import org.jmule.core.jkad.ContactAddress; - import org.jmule.core.jkad.IPAddress; import org.jmule.core.jkad.Int128; import org.jmule.core.jkad.JKadConstants; - import org.jmule.core.jkad.JKadException; - import org.jmule.core.jkad.PacketListener; import org.jmule.core.jkad.JKadConstants.RequestType; import org.jmule.core.jkad.lookup.Lookup; import org.jmule.core.jkad.lookup.LookupTask; --- 23,34 ---- package org.jmule.core.jkad.search; import java.util.ArrayList; import java.util.List; import org.jmule.core.jkad.ContactAddress; import org.jmule.core.jkad.Int128; import org.jmule.core.jkad.JKadConstants; import org.jmule.core.jkad.JKadConstants.RequestType; + import org.jmule.core.jkad.JKadException; import org.jmule.core.jkad.lookup.Lookup; import org.jmule.core.jkad.lookup.LookupTask; *************** *** 67,75 **** } ! public void processToleranceContacts(ContactAddress sender, ! List<KadContact> results) { for(KadContact contact : results) { used_contacts.add(contact); ! KadPacket packet = null; if (contact.supportKad2()) try { --- 60,74 ---- } ! public void processToleranceContacts(ContactAddress sender, List<KadContact> results) { for(KadContact contact : results) { used_contacts.add(contact); ! KadPacket responsePacket = null; ! if (contact.supportKad2()) ! responsePacket = PacketFactory.getSearchSourceReq2Packet(searchID,(short)0,fileSize); ! else ! responsePacket = PacketFactory.getSearch1ReqPacket(searchID,true); ! _network_manager.sendKadPacket(responsePacket, contact.getContactAddress().getAddress(), contact.getUDPPort()); ! ! /*KadPacket packet = null; if (contact.supportKad2()) try { *************** *** 91,94 **** --- 90,94 ---- KadPacket responsePacket = PacketFactory.getSearchSourceReq2Packet(searchID,(short)0,fileSize); _network_manager.sendKadPacket(responsePacket, new IPAddress(packet.getAddress()), packet.getAddress().getPort()); + removePacketListener(this); } }; *************** *** 98,104 **** KadPacket responsePacket = PacketFactory.getSearch1ReqPacket(searchID,true); _network_manager.sendKadPacket(responsePacket, new IPAddress(packet.getAddress()), packet.getAddress().getPort()); } }; ! _jkad_manager.addPacketListener(listener); } } --- 98,106 ---- KadPacket responsePacket = PacketFactory.getSearch1ReqPacket(searchID,true); _network_manager.sendKadPacket(responsePacket, new IPAddress(packet.getAddress()), packet.getAddress().getPort()); + removePacketListener(this); } }; ! registerPacketListener(listener); ! _jkad_manager.addPacketListener(listener);*/ } } *************** *** 119,122 **** --- 121,125 ---- isStarted = false; + // ((InternalJKadManager)JKadManagerSingleton.getInstance()).removePacketListener(getPacketListenerList()); if (listener!=null) listener.searchFinished(); |
From: Binary <bin...@us...> - 2010-10-23 05:51:25
|
Update of /cvsroot/jmule/jmule2/src/org/jmule/core/jkad/search In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv2921/src/org/jmule/core/jkad/search Modified Files: Search.java Log Message: Index: Search.java =================================================================== RCS file: /cvsroot/jmule/jmule2/src/org/jmule/core/jkad/search/Search.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** Search.java 31 Aug 2010 10:28:30 -0000 1.10 --- Search.java 23 Oct 2010 05:51:17 -0000 1.11 *************** *** 72,76 **** for(Int128 key : searchTasks.keySet()) { SearchTask task = searchTasks.get(key); ! if (task.isStarted()) task.stop(); } isStarted = false; --- 72,78 ---- for(Int128 key : searchTasks.keySet()) { SearchTask task = searchTasks.get(key); ! if (task.isStarted()) { ! task.stop(); ! } } isStarted = false; |
From: Binary <bin...@us...> - 2010-10-23 05:50:57
|
Update of /cvsroot/jmule/jmule2/src/org/jmule/core/jkad In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv2730/src/org/jmule/core/jkad Removed Files: PacketListener.java Log Message: Packet listeners replaced with direct method calls --- PacketListener.java DELETED --- |
From: Binary <bin...@us...> - 2010-10-23 05:50:25
|
Update of /cvsroot/jmule/jmule2/src/org/jmule/core/jkad/routingtable In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv2549/src/org/jmule/core/jkad/routingtable Modified Files: RoutingTable.java Log Message: Packet listeners replaced with methods Index: RoutingTable.java =================================================================== RCS file: /cvsroot/jmule/jmule2/src/org/jmule/core/jkad/routingtable/RoutingTable.java,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** RoutingTable.java 4 Sep 2010 16:14:25 -0000 1.18 --- RoutingTable.java 23 Oct 2010 05:50:17 -0000 1.19 *************** *** 63,67 **** import org.jmule.core.jkad.JKadException; import org.jmule.core.jkad.JKadManagerSingleton; - import org.jmule.core.jkad.PacketListener; import org.jmule.core.jkad.lookup.Lookup; import org.jmule.core.jkad.lookup.LookupTask; --- 63,66 ---- *************** *** 96,100 **** private Map<ContactAddress,MaintenanceContact> maintenanceContacts = new ConcurrentHashMap<ContactAddress,MaintenanceContact>(); - private PacketListener helloListener; private boolean is_started = false; --- 95,98 ---- *************** *** 263,276 **** }; ! helloListener = new PacketListener(JKadConstants.KADEMLIA2_HELLO_RES) { ! public void packetReceived(KadPacket packet) { ! ContactAddress address = new ContactAddress(packet.getAddress()); ! if (maintenanceContacts.containsKey(address)) { ! MaintenanceContact contact = maintenanceContacts.get(address); ! contact.responseCount++; ! } ! ! } ! }; } --- 261,281 ---- }; ! ! } ! ! public void processHello1Res(IPAddress senderAddress, int senderPort) { ! ContactAddress address = new ContactAddress(senderAddress, senderPort); ! if (maintenanceContacts.containsKey(address)) { ! MaintenanceContact contact = maintenanceContacts.get(address); ! contact.responseCount++; ! } ! } ! ! public void processHello2Res(IPAddress senderAddress, int senderPort) { ! ContactAddress address = new ContactAddress(senderAddress, senderPort); ! if (maintenanceContacts.containsKey(address)) { ! MaintenanceContact contact = maintenanceContacts.get(address); ! contact.responseCount++; ! } } *************** *** 284,294 **** Timer.getSingleton().addTask(ROUTING_TABLE_SAVE_INTERVAL, routingTableSave, true); Timer.getSingleton().addTask(ROUTING_TABLE_CONTACTS_CHECK_INTERVAL, contact_checker, true); - _jkad_manager.addPacketListener(helloListener); is_started = true; } ! public void stop() { ! _jkad_manager.removePacketListener(helloListener); ! Timer.getSingleton().removeTask(maintenanceTask); Timer.getSingleton().removeTask(routingTableSave); --- 289,296 ---- Timer.getSingleton().addTask(ROUTING_TABLE_SAVE_INTERVAL, routingTableSave, true); Timer.getSingleton().addTask(ROUTING_TABLE_CONTACTS_CHECK_INTERVAL, contact_checker, true); is_started = true; } ! public void stop() { Timer.getSingleton().removeTask(maintenanceTask); Timer.getSingleton().removeTask(routingTableSave); *************** *** 313,326 **** return; } - if (contact.getUDPPort()==4666) return ; - if (hasContact(contact)){ return ; } - if (getTotalContacts() >= MAX_CONTACTS) return ; - newContacts++; --- 315,324 ---- |
From: Binary <bin...@us...> - 2010-10-23 05:49:37
|
Update of /cvsroot/jmule/jmule2/src/org/jmule/core/jkad In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv1887/src/org/jmule/core/jkad Modified Files: BootStrap.java Log Message: Implemented direct method calls for received packets Index: BootStrap.java =================================================================== RCS file: /cvsroot/jmule/jmule2/src/org/jmule/core/jkad/BootStrap.java,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** BootStrap.java 4 Sep 2010 16:10:36 -0000 1.12 --- BootStrap.java 23 Oct 2010 05:49:29 -0000 1.13 *************** *** 63,67 **** private boolean isStarted = false; - private PacketListener bootStrapResponseListener; private static class BootStrapSingletonHolder { --- 63,66 ---- *************** *** 92,96 **** for(KadContact contact : contactList) { - System.out.println("Try bootstrap from : " + contact); bootStrapContacts.add(contact); usedContacts.add(contact); --- 91,94 ---- *************** *** 119,123 **** public void run() { if (bootStrapResponses >= BOOTSTRAP_STOP_CONTACTS) { - System.out.println("Stop bootstrap"); completeBootStrap(); return ; --- 117,120 ---- *************** *** 126,130 **** long time = System.currentTimeMillis() - contact.getLastResponse(); if (time >= BOOTSTRAP_REMOVE_TIME) { - System.out.println("Bootstrap timeout : " + contact); bootStrapContacts.remove(contact); continue; --- 123,126 ---- *************** *** 134,147 **** int contactCount = BOOTSTRAP_CONTACTS - bootStrapContacts.size(); ! if (contactCount<=0) return ; List<KadContact> contactList = _routing_table.getRandomContacts(contactCount,usedContacts); - System.out.println("contactList :: size " + contactList.size()); for(KadContact contact : contactList) { - System.out.println("Try bootstrap from : " + contact); bootStrapContacts.add(contact); usedContacts.add(contact); try { ! if (_routing_table.getTotalContacts()<MIN_CONTACTS_TO_SEND_BOOTSTRAP) { KadPacket packet = null; if (contact.supportKad2()) --- 130,142 ---- int contactCount = BOOTSTRAP_CONTACTS - bootStrapContacts.size(); ! if (contactCount <= 0) ! return; List<KadContact> contactList = _routing_table.getRandomContacts(contactCount,usedContacts); for(KadContact contact : contactList) { bootStrapContacts.add(contact); usedContacts.add(contact); try { ! if (_routing_table.getTotalContacts() < MIN_CONTACTS_TO_SEND_BOOTSTRAP) { KadPacket packet = null; if (contact.supportKad2()) *************** *** 165,203 **** }; Timer.getSingleton().addTask(BOOTSTRAP_CHECK_INTERVAL, bootStrapTask, true); - - bootStrapResponseListener = new PacketListener(JKadConstants.KADEMLIA2_HELLO_RES) { - public void packetReceived(KadPacket packet) { - IPAddress address= new IPAddress(packet.getAddress()); - for(KadContact c : usedContacts) { - if (c.getContactAddress().getAddress().equals(address)) { - bootStrapResponses++; - break; - } - } - if (bootStrapResponses >= 10) { - completeBootStrap(); - return ; - } - } - }; - - _jkad_manager.addPacketListener(bootStrapResponseListener); - - bootStrapResponseListener = new PacketListener(JKadConstants.KADEMLIA_HELLO_RES) { - public void packetReceived(KadPacket packet) { - IPAddress address= new IPAddress(packet.getAddress()); - for(KadContact c : usedContacts) { - if (c.getContactAddress().getAddress().equals(address)) { - bootStrapResponses++; - break; - } - } - if (bootStrapResponses >= 10) { - completeBootStrap(); - return ; - } - } - }; - _jkad_manager.addPacketListener(bootStrapResponseListener); } --- 160,163 ---- *************** *** 206,210 **** usedContacts.clear(); bootStrapResponses = 0; - _jkad_manager.removePacketListener(bootStrapResponseListener); isStarted = false; if (bootStrapTask== null) return ; --- 166,169 ---- *************** *** 214,219 **** private void completeBootStrap() { _jkad_manager.setStatus(JKadStatus.CONNECTED); ! _jkad_manager.removePacketListener(bootStrapResponseListener); ! // stop task if already have enough contacts Timer.getSingleton().removeTask(bootStrapTask); --- 173,177 ---- private void completeBootStrap() { _jkad_manager.setStatus(JKadStatus.CONNECTED); ! // stop task if already have enough contacts Timer.getSingleton().removeTask(bootStrapTask); *************** *** 276,278 **** --- 234,262 ---- } } + + public void processHello1Res(IPAddress senderAddress, int senderPort) { + for (KadContact c : usedContacts) { + if (c.getContactAddress().getAddress().equals(senderAddress)) { + bootStrapResponses++; + break; + } + } + if (bootStrapResponses >= 10) { + completeBootStrap(); + return; + } + } + + public void processHello2Res(IPAddress senderAddress, int senderPort) { + for (KadContact c : usedContacts) { + if (c.getContactAddress().getAddress().equals(senderAddress)) { + bootStrapResponses++; + break; + } + } + if (bootStrapResponses >= 10) { + completeBootStrap(); + return; + } + } } |
From: Binary <bin...@us...> - 2010-10-23 05:45:44
|
Update of /cvsroot/jmule/jmule2/src/org/jmule/core/jkad In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv861/src/org/jmule/core/jkad Modified Files: InternalJKadManager.java Log Message: Removed listeners for Kad packets Index: InternalJKadManager.java =================================================================== RCS file: /cvsroot/jmule/jmule2/src/org/jmule/core/jkad/InternalJKadManager.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** InternalJKadManager.java 17 Sep 2009 17:58:36 -0000 1.1 --- InternalJKadManager.java 23 Oct 2010 05:45:36 -0000 1.2 *************** *** 36,42 **** public void setStatus(JKadStatus newStatus); - public void addPacketListener(PacketListener listener); - public void removePacketListener(PacketListener listener); - public void receivePacket(KadPacket packet); --- 36,39 ---- |
From: Binary <bin...@us...> - 2010-10-23 05:38:58
|
Update of /cvsroot/jmule/jmule2/src/org/jmule/core/jkad In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv30601/src/org/jmule/core/jkad Modified Files: JKadConstants.java Log Message: Removed unused constants. Index: JKadConstants.java =================================================================== RCS file: /cvsroot/jmule/jmule2/src/org/jmule/core/jkad/JKadConstants.java,v retrieving revision 1.23 retrieving revision 1.24 diff -C2 -d -r1.23 -r1.24 *** JKadConstants.java 4 Sep 2010 16:11:06 -0000 1.23 --- JKadConstants.java 23 Oct 2010 05:38:50 -0000 1.24 *************** *** 127,133 **** public static final long TIME_24_HOURS = 1000 * 60 * 60 * 24; public static final long TIME_5_HOURS = 1000 * 60 * 60 * 5; ! ! public static final long DEFAULT_PACKET_LISTENER_TIMEOUT = 5000; ! public static final long PUBLISH_KEYWORD_CHECK_INTERVAL = 1000 * 6; public static final long PUBLISH_KEYWORD_SCAN_INTERVAL = 1000 * 10; --- 127,131 ---- public static final long TIME_24_HOURS = 1000 * 60 * 60 * 24; public static final long TIME_5_HOURS = 1000 * 60 * 60 * 5; ! public static final long PUBLISH_KEYWORD_CHECK_INTERVAL = 1000 * 6; public static final long PUBLISH_KEYWORD_SCAN_INTERVAL = 1000 * 10; |
From: Binary <bin...@us...> - 2010-10-23 05:38:19
|
Update of /cvsroot/jmule/jmule2/src/org/jmule/core/jkad In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv30383/src/org/jmule/core/jkad Modified Files: JKadManager.java JKadManagerImpl.java Log Message: Removed listeners for Kad packets Index: JKadManagerImpl.java =================================================================== RCS file: /cvsroot/jmule/jmule2/src/org/jmule/core/jkad/JKadManagerImpl.java,v retrieving revision 1.25 retrieving revision 1.26 diff -C2 -d -r1.25 -r1.26 *** JKadManagerImpl.java 4 Sep 2010 16:15:26 -0000 1.25 --- JKadManagerImpl.java 23 Oct 2010 05:38:10 -0000 1.26 *************** *** 67,73 **** import java.util.Collection; import java.util.List; - import java.util.Map; - import java.util.concurrent.ConcurrentHashMap; - import java.util.concurrent.ConcurrentLinkedQueue; import org.jmule.core.JMRunnable; --- 67,70 ---- *************** *** 106,109 **** --- 103,108 ---- import org.jmule.core.peermanager.Peer.PeerSource; import org.jmule.core.peermanager.PeerManagerSingleton; + import org.jmule.core.utils.timer.JMTimer; + import org.jmule.core.utils.timer.JMTimerTask; /** *************** *** 136,140 **** private Publisher publisher = null; private JKadStatus status = DISCONNECTED; - private Map<Byte, Collection<PacketListener>> packetListeners = new ConcurrentHashMap<Byte, Collection<PacketListener>>(); private InternalConfigurationManager _config_manager = null; --- 135,138 ---- *************** *** 145,149 **** private boolean is_started = false; ! JKadManagerImpl() { } --- 143,147 ---- private boolean is_started = false; ! JKadManagerImpl() { } *************** *** 202,209 **** --- 200,211 ---- disconnect(); + timer.cancelAllTasks(); + Timer.getSingleton().stop(); } + JMTimerTask print_task; + JMTimer timer; public void start() { try { *************** *** 327,342 **** } - // notify packet listeners - Collection<PacketListener> listener_list = packetListeners.get(packet.getCommand()); - if (listener_list != null) - for (PacketListener listener : listener_list) - try { - if (listener.processAddress(packet.getAddress())) - listener.packetReceived(packet); - } catch (Throwable t) { - t.printStackTrace(); - //Logger.getSingleton().logException(t); - } - byte packetOPCode = packet.getCommand(); ByteBuffer rawData = packet.getAsByteBuffer(); --- 329,332 ---- *************** *** 404,407 **** --- 394,401 ---- contact.setUDPPort(udp_port); } + + if (bootStrap.isStarted()) + bootStrap.processHello1Res(sender_address, sender_port); + routing_table.processHello1Res(sender_address, sender_port); break; } *************** *** 718,721 **** --- 712,719 ---- * add_contact.setConnected(true); */ + + if (bootStrap.isStarted()) + bootStrap.processHello2Res(sender_address, sender_port); + routing_table.processHello2Res(sender_address, sender_port); break; } *************** *** 1033,1055 **** } - public void addPacketListener(PacketListener listener) { - Collection<PacketListener> list = packetListeners.get(listener.getPacketOPCode()); - if (list == null) { - list = new ConcurrentLinkedQueue<PacketListener>(); - packetListeners.put(listener.getPacketOPCode(), list); - } - - list.add(listener); - } - - public void removePacketListener(PacketListener listener) { - Collection<PacketListener> list = packetListeners.get(listener.getPacketOPCode()); - if (list == null) - return; - list.remove(listener); - if (list.isEmpty()) - packetListeners.remove(listener.getPacketOPCode()); - } - public IPAddress getIPAddress() { return firewallChecker.getMyIPAddress(); --- 1031,1034 ---- Index: JKadManager.java =================================================================== RCS file: /cvsroot/jmule/jmule2/src/org/jmule/core/jkad/JKadManager.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** JKadManager.java 13 Jan 2010 15:48:42 -0000 1.3 --- JKadManager.java 23 Oct 2010 05:38:10 -0000 1.4 *************** *** 60,64 **** public Publisher getPublisher(); public Search getSearch(); ! public void addJKadListener(JKadListener listener); public void removeJKadListener(JKadListener listener); --- 60,64 ---- public Publisher getPublisher(); public Search getSearch(); ! public void addJKadListener(JKadListener listener); public void removeJKadListener(JKadListener listener); |
From: javajox <ja...@us...> - 2010-09-09 06:26:21
|
Update of /cvsroot/jmule/jmule2/src/org/jmule/core/searchmanager In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv17173/jmule2/src/org/jmule/core/searchmanager Modified Files: SearchManagerSingleton.java Log Message: The constructor of singletons must be private Index: SearchManagerSingleton.java =================================================================== RCS file: /cvsroot/jmule/jmule2/src/org/jmule/core/searchmanager/SearchManagerSingleton.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** SearchManagerSingleton.java 26 Aug 2010 10:34:48 -0000 1.2 --- SearchManagerSingleton.java 9 Sep 2010 06:26:13 -0000 1.3 *************** *** 32,35 **** --- 32,39 ---- public class SearchManagerSingleton { + private SearchManagerSingleton() { + + } + private static class SearchManagerSingletonHolder { private static final SearchManager INSTANCE = new SearchManagerImpl(); |
From: javajox <ja...@us...> - 2010-09-09 06:23:41
|
Update of /cvsroot/jmule/jmule2/src/org/jmule/core/networkmanager In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv16869/jmule2/src/org/jmule/core/networkmanager Modified Files: NetworkManagerSingleton.java Log Message: The constructor of singletons must be private Index: NetworkManagerSingleton.java =================================================================== RCS file: /cvsroot/jmule/jmule2/src/org/jmule/core/networkmanager/NetworkManagerSingleton.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** NetworkManagerSingleton.java 26 Aug 2010 10:34:47 -0000 1.3 --- NetworkManagerSingleton.java 9 Sep 2010 06:23:29 -0000 1.4 *************** *** 32,35 **** --- 32,39 ---- public class NetworkManagerSingleton { + private NetworkManagerSingleton() { + + } + private static class NetworkManagerSingletonHolder { private static final NetworkManager INSTANCE = new NetworkManagerImpl(); |
From: javajox <ja...@us...> - 2010-09-09 06:23:40
|
Update of /cvsroot/jmule/jmule2/src/org/jmule/core/sharingmanager In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv16869/jmule2/src/org/jmule/core/sharingmanager Modified Files: SharingManagerSingleton.java Log Message: The constructor of singletons must be private Index: SharingManagerSingleton.java =================================================================== RCS file: /cvsroot/jmule/jmule2/src/org/jmule/core/sharingmanager/SharingManagerSingleton.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** SharingManagerSingleton.java 26 Aug 2010 10:34:48 -0000 1.2 --- SharingManagerSingleton.java 9 Sep 2010 06:23:29 -0000 1.3 *************** *** 31,34 **** --- 31,38 ---- public class SharingManagerSingleton { + private SharingManagerSingleton() { + + } + private static class SharingManagerSingletonHolder { private static final SharingManager INSTANCE = new SharingManagerImpl(); |