📄 serverlist.java
字号:
multisel_remove_from_static_list.setEnabled(false); if (contain_static) { remove_from_static_list.setEnabled(true); multisel_remove_from_static_list.setEnabled(true); } if (contain_non_static) { add_to_static_list.setEnabled(true); multisel_add_to_static_list.setEnabled(true); } if (wrapper.isAutoconnecting()) { server_remove_all.setEnabled(false); server_remove_all_multiselect.setEnabled(false); selected_server_disconnect.setEnabled(true); selected_server_disconnect.setImage(SWTImageRepository.getImage("auto_connect_cancel.png")); selected_server_disconnect.setText(Localizer._("mainwindow.serverlisttab.serverlist.popupmenu.cancel")); server_disconnect_multiselect.setEnabled(true); server_disconnect_multiselect.setImage(SWTImageRepository.getImage("auto_connect_cancel.png")); server_disconnect_multiselect.setText(Localizer._("mainwindow.serverlisttab.serverlist.popupmenu.cancel")); } else { server_remove_all.setEnabled(true); server_remove_all_multiselect.setEnabled(true); selected_server_disconnect.setText(Localizer._("mainwindow.serverlisttab.serverlist.popupmenu.disconnect_from")); selected_server_disconnect.setImage(SWTImageRepository.getImage("server_disconnect.png")); server_disconnect_multiselect.setText(Localizer._("mainwindow.serverlisttab.serverlist.popupmenu.disconnect_from")); server_disconnect_multiselect.setImage(SWTImageRepository.getImage("server_disconnect.png")); } return result; } protected int compareObjects(Server object1, Server object2, int columnID, boolean order) { if (columnID == SWTConstants.SERVER_LIST_NAME_COLUMN_ID) { return Misc.compareAllObjects(object1, object2, "getName", order); } if ((columnID == SWTConstants.SERVER_LIST_CC_COLUMN_ID)||(columnID == SWTConstants.SERVER_LIST_FLAG_COLUMN_ID)) { String country1 = CountryLocator.getInstance().getCountryName(object1.getAddress()); String country2 = CountryLocator.getInstance().getCountryName(object2.getAddress()); int result = country1.compareTo(country2); if (order) return result; else return Misc.reverse(result); } if (columnID == SWTConstants.SERVER_LIST_DESCRIPTION_COLUMN_ID) { return Misc.compareAllObjects(object1, object2, "getDesc", order); } if (columnID == SWTConstants.SERVER_LIST_IP_COLUMN_ID) { return Misc.compareAllObjects(object1, object2, "getAddressAsInt", order); } if (columnID == SWTConstants.SERVER_LIST_PING_COLUMN_ID) { return Misc.compareAllObjects(object1, object2, "getPing", order); } if (columnID == SWTConstants.SERVER_LIST_USERS_COLUMN_ID) { return Misc.compareAllObjects(object1, object2, "getNumUsers", order); } if (columnID == SWTConstants.SERVER_LIST_MAX_USERS_COLUMN_ID) { return Misc.compareAllObjects(object1, object2, "getMaxUsers", order); } if (columnID == SWTConstants.SERVER_LIST_FILES_COLUMN_ID) { return Misc.compareAllObjects(object1, object2, "getNumFiles", order); } if (columnID == SWTConstants.SERVER_LIST_SOFT_LIMIT_COLUMN_ID) { return Misc.compareAllObjects(object1, object2, "getSoftLimit", order); } if (columnID == SWTConstants.SERVER_LIST_HARD_LIMIT_COLUMN_ID) { return Misc.compareAllObjects(object1, object2, "getHardLimit", order); } if (columnID == SWTConstants.SERVER_LIST_VERSION_COLUMN_ID) { return Misc.compareAllObjects(object1, object2, "getVersion", order); } if (columnID == SWTConstants.SERVER_LIST_STATIC_COLUMN_ID) { return Misc.compareAllObjects(object1, object2, "isStatic", order); } return 0; } private void addToStaticList() { final List<Server> list = getSelectedObjects(); new JMThread(new JMRunnable() { public void JMRun() { for(Server server : list) server.setStatic(true); try { servers_manager.storeServerList(); } catch (ServerManagerException e1) { SWTThread.getDisplay().asyncExec(new JMRunnable() { public void JMRun() { Utils.showWarningMessage(getShell(), Localizer._("mainwindow.serverlisttab.serverlist.server_list_store_error_title"), Localizer._("mainwindow.serverlisttab.serverlist.server_list_store_error")); MainWindow.getLogger().error(Localizer._("mainwindow.logtab.error_serverlist_save_failed")); } }); }}}).start(); } private void removeFromStaticList() { final List<Server> list = getSelectedObjects(); new JMThread(new JMRunnable() { public void JMRun() { for(Server server : list) server.setStatic(false); try { servers_manager.storeServerList(); } catch (ServerManagerException e1) { SWTThread.getDisplay().asyncExec(new JMRunnable() { public void JMRun() { Utils.showWarningMessage(getShell(), Localizer._("mainwindow.serverlisttab.serverlist.server_list_store_error_title"), Localizer._("mainwindow.serverlisttab.serverlist.server_list_store_error")); MainWindow.getLogger().error(Localizer._("mainwindow.logtab.error_serverlist_save_failed")); } }); }}}).start(); } private void removeSelectedServers() { final List<Server> list = getSelectedObjects(); boolean result; if ( list.size()== 1) result = Utils.showConfirmMessage(getShell(),Localizer._("mainwindow.serverlisttab.serverlist.server_delete_confirm_title"), Localizer._("mainwindow.serverlisttab.serverlist.server_delete_confirm")); else result = Utils.showConfirmMessage(getShell(),Localizer._("mainwindow.serverlisttab.serverlist.server_delete_confirm_title"), Localizer._("mainwindow.serverlisttab.serverlist.servers_delete_confirm")); if (result) new JMThread(new JMRunnable() { public void JMRun() { SWTServerListWrapper.getInstance().removeServer(list); } }).start(); } private void clearServerList() { boolean returnvalue = Utils.showConfirmMessage(getShell(),Localizer._("mainwindow.serverlisttab.serverlist.clear_confirm_title"), Localizer._("mainwindow.serverlisttab.serverlist.clear_confirm")); if (returnvalue) { new JMThread( new JMRunnable() { public void JMRun() { SWTServerListWrapper.getInstance().clearServerList(); } }).start(); } } private void copyED2KLinks() { String str = ""; List<Server> selected_servers = getSelectedObjects(); for(Server server : selected_servers) { str+=server.getServerLink().getAsString()+System.getProperty("line.separator"); } Utils.setClipBoardText(str); } private void pasteED2KLinks() { final String clipboard_content = Utils.getClipboardText(); new JMThread( new JMRunnable() { public void JMRun() { List<ED2KServerLink> server_links = ED2KServerLink.extractLinks(clipboard_content); SWTServerListWrapper wrapper = SWTServerListWrapper.getInstance(); for(ED2KServerLink ed2k_link : server_links) { Server server = new Server(ed2k_link); wrapper.addServer(server); } } }).start(); } private void showServerAddWindow() { ServerAddWindow add_server_window = new ServerAddWindow(); add_server_window.getCoreComponents(); add_server_window.initUIComponents(); } public void addServer(final Server server) { addRow(server); if (!CountryLocator.getInstance().isServiceDown()) { Image image = SWTImageRepository.getFlagByAddress(server.getAddress(),default_flag_size); CountryFlagPainter painter = new CountryFlagPainter(image); TableItemCountryFlag table_item_painter = new TableItemCountryFlag(SWTPreferences.getDefaultColumnOrder(SWTConstants.SERVER_LIST_FLAG_COLUMN_ID),painter); addCustumControl(getItemCount()-1, table_item_painter); } //updateLine(server); } public void removeServer(Server server) { removeRow(server); } public void serverDisconnected(Server server) { updateRow(server); } public void updateRow(Server server) { if (server.isDown()) { setRowImage(server,SWTConstants.SERVER_LIST_NAME_COLUMN_ID, SWTImageRepository.getImage("server_error.png")); setForegroundColor(server, server_down_color); int id = getObjectID(server); if ((id)%2==0) setBackgroundColor(server, ROW_ALTERNATE_COLOR_2); else setBackgroundColor(server, ROW_ALTERNATE_COLOR_1); } else if (server.isConnected()) { setRowImage(server,SWTConstants.SERVER_LIST_NAME_COLUMN_ID,SWTImageRepository.getImage("server_connected.png")); setForegroundColor(server,SWTThread.getDisplay().getSystemColor(SWT.COLOR_WHITE)); setBackgroundColor(server,server_connected_color); } else { setForegroundColor(server,server_default_color); int id = getObjectID(server); if ((id)%2==0) setBackgroundColor(server, ROW_ALTERNATE_COLOR_2); else setBackgroundColor(server, ROW_ALTERNATE_COLOR_1); setRowImage(server,SWTConstants.SERVER_LIST_NAME_COLUMN_ID, SWTImageRepository.getImage("server.png")); } setRowText(server, SWTConstants.SERVER_LIST_IP_COLUMN_ID, server.getAddress()+":"+server.getPort()); if (!CountryLocator.getInstance().isServiceDown()) { String country_code = CountryLocator.getInstance().getCountryCode(server.getAddress()); setRowText(server, SWTConstants.SERVER_LIST_CC_COLUMN_ID, country_code); } setRowText(server, SWTConstants.SERVER_LIST_NAME_COLUMN_ID, server.getName()); setRowText(server, SWTConstants.SERVER_LIST_DESCRIPTION_COLUMN_ID,server.getDesc()); setRowText(server, SWTConstants.SERVER_LIST_PING_COLUMN_ID,server.getPing()+""); setRowText(server, SWTConstants.SERVER_LIST_USERS_COLUMN_ID,NumberFormatter.formatSizeHumanReadable(server.getNumUsers())); setRowText(server, SWTConstants.SERVER_LIST_MAX_USERS_COLUMN_ID,NumberFormatter.formatSizeHumanReadable(server.getMaxUsers())); setRowText(server, SWTConstants.SERVER_LIST_FILES_COLUMN_ID,NumberFormatter.formatSizeHumanReadable(server.getNumFiles())); setRowText(server, SWTConstants.SERVER_LIST_SOFT_LIMIT_COLUMN_ID,NumberFormatter.formatSizeHumanReadable(server.getSoftLimit())); setRowText(server, SWTConstants.SERVER_LIST_HARD_LIMIT_COLUMN_ID,NumberFormatter.formatSizeHumanReadable(server.getHardLimit())); setRowText(server, SWTConstants.SERVER_LIST_VERSION_COLUMN_ID,server.getVersion()+""); if (server.isStatic()) setRowText(server, SWTConstants.SERVER_LIST_STATIC_COLUMN_ID,_._("mainwindow.serverlisttab.serverlist.column.static.yes")); else setRowText(server, SWTConstants.SERVER_LIST_STATIC_COLUMN_ID,_._("mainwindow.serverlisttab.serverlist.column.static.no")); } public void refresh() { // Refresh server's data for(Server server : servers_manager.getServers()) { BufferedTableRow row = getRow(server); if (row == null) continue; if (!row.isVisible()) continue; if (is_sorted) sortColumn(last_sort_column,last_sort_dir); updateRow(server); } } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -