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

📄 downloadgeneraltab.java

📁 JMule是一个基于Java开发
💻 JAVA
字号:
/* *  JMule - Java file sharing client *  Copyright (C) 2007-2008 JMule team ( jmule@jmule.org / http://jmule.org ) * *  Any parts of this program derived from other projects, or contributed *  by third-party developers are copyrighted by their respective authors. * *  This program is free software; you can redistribute it and/or *  modify it under the terms of the GNU General Public License *  as published by the Free Software Foundation; either version 2 *  of the License, or (at your option) any later version. * *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU General Public License for more details. * *  You should have received a copy of the GNU General Public License *  along with this program; if not, write to the Free Software *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA. * */package org.jmule.ui.swt.maintabs.transfers;import org.eclipse.swt.SWT;import org.eclipse.swt.custom.CTabFolder;import org.eclipse.swt.custom.CTabItem;import org.eclipse.swt.events.PaintEvent;import org.eclipse.swt.events.PaintListener;import org.eclipse.swt.graphics.Cursor;import org.eclipse.swt.layout.GridData;import org.eclipse.swt.layout.GridLayout;import org.eclipse.swt.widgets.Canvas;import org.eclipse.swt.widgets.Composite;import org.eclipse.swt.widgets.Event;import org.eclipse.swt.widgets.Group;import org.eclipse.swt.widgets.Label;import org.eclipse.swt.widgets.Listener;import org.jmule.core.downloadmanager.DownloadSession;import org.jmule.ui.JMuleUIManager;import org.jmule.ui.localizer.Localizer;import org.jmule.ui.localizer._;import org.jmule.ui.swt.Refreshable;import org.jmule.ui.swt.SWTThread;import org.jmule.ui.swt.Utils;import org.jmule.ui.swt.common.GapListPainter;import org.jmule.ui.swt.skin.SWTSkin;import org.jmule.ui.utils.FileFormatter;import org.jmule.ui.utils.SpeedFormatter;import org.jmule.ui.utils.TimeFormatter;/** * Created on Aug 7, 2008 * @author binary256 * @version $Revision: 1.3 $ * Last changed by $Author: binary256_ $ on $Date: 2008/10/16 18:20:01 $ */public class DownloadGeneralTab extends CTabItem implements Refreshable {	private DownloadSession download_session;	private Label part_status,download_status,sources_count, download_size,remaining_label,speed, eta;		private GapListPainter gap_list_painter;	private Canvas total_progress;	public DownloadGeneralTab(CTabFolder tabFolder, final DownloadSession download_Session) {		super(tabFolder, SWT.NONE);				download_session = download_Session;		setText(Localizer._("downloadinfowindow.tab.general.title"));		SWTSkin skin = null;		try {		    skin = (SWTSkin) JMuleUIManager.getJMuleUI().getSkin();		}catch(Throwable t) {}				Composite content = new Composite(tabFolder,SWT.NONE);		setControl(content);		content.setLayout(new GridLayout(1,false));				Label label;				Group transfer_group = new Group(content,SWT.NONE);		transfer_group.setLayout(new GridLayout(2,false));		transfer_group.setText(Localizer._("downloadinfowindow.tab.general.group.transfer"));		transfer_group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));				label = new Label(transfer_group,SWT.NONE);		label.setText(Localizer._("downloadinfowindow.tab.general.label.status")+" : ");		label.setFont(skin.getLabelFont());		label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));		download_status = new Label(transfer_group,SWT.NONE);		download_status.setFont(skin.getLabelFont());		download_status.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));		download_status.setText(download_session.getStatus()==DownloadSession.STATUS_STARTED ? Localizer._("mainwindow.transferstab.downloads.column.status.started") : Localizer._("mainwindow.transferstab.downloads.column.status.stopped") );		label = new Label(transfer_group,SWT.NONE);		label.setText(Localizer._("downloadinfowindow.tab.general.label.totalprogress")+" : ");		label.setFont(skin.getLabelFont());		label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));				total_progress = new Canvas(transfer_group,SWT.NONE);		GridData grid_data = new GridData(GridData.FILL_HORIZONTAL);		grid_data.heightHint = 20;		total_progress.setLayoutData(grid_data);		gap_list_painter = new GapListPainter(download_session.getGapList(),download_session.getFileSize());		gap_list_painter.setMarginWidth(0);		total_progress.addPaintListener(new PaintListener() {			public void paintControl(PaintEvent arg0) {				gap_list_painter.draw(arg0.gc,0,0,arg0.width,arg0.height);			}		});				label = new Label(transfer_group,SWT.NONE);		label.setText(Localizer._("downloadinfowindow.tab.general.label.sources")+" : ");		label.setFont(skin.getLabelFont());		label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));		sources_count = new Label(transfer_group,SWT.NONE);		sources_count.setFont(skin.getLabelFont());		sources_count.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));		sources_count.setText(download_session.getPeersCount()+"("+download_session.getPartialSources()+")");				label = new Label(transfer_group,SWT.NONE);		label.setText(Localizer._("downloadinfowindow.tab.general.label.filesize")+" : ");		label.setFont(skin.getLabelFont());		label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));		label = new Label(transfer_group,SWT.NONE);		label.setFont(skin.getLabelFont());		label.setText(FileFormatter.formatFileSize(download_session.getFileSize()));				label = new Label(transfer_group,SWT.NONE);		label.setText(Localizer._("downloadinfowindow.tab.general.label.transferred")+" : ");		label.setFont(skin.getLabelFont());		label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));		download_size = new Label(transfer_group,SWT.NONE);		download_size.setFont(skin.getLabelFont());		download_size.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));		download_size.setText(FileFormatter.formatFileSize(download_session.getTransferredBytes()));						label = new Label(transfer_group,SWT.NONE);		label.setText(Localizer._("downloadinfowindow.tab.general.label.remaining")+" : ");		label.setFont(skin.getLabelFont());		label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));		remaining_label = new Label(transfer_group,SWT.NONE);		remaining_label.setFont(skin.getLabelFont());		remaining_label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));		long remaining = (download_session.getFileSize() - download_session.getTransferredBytes());		remaining_label.setText(FileFormatter.formatFileSize(remaining));				label = new Label(transfer_group,SWT.NONE);		label.setText(Localizer._("downloadinfowindow.tab.general.label.parts")+" : ");		label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));		label.setFont(skin.getLabelFont());		part_status = new Label(transfer_group,SWT.NONE);		part_status.setFont(skin.getLabelFont());		part_status.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));		part_status.setText(download_session.getPartCount()+"; "+Localizer._("downloadinfowindow.tab.general.label.parts_available")+" : "+download_session.getAvailablePartCount());				label = new Label(transfer_group,SWT.NONE);		label.setText(Localizer._("downloadinfowindow.tab.general.label.download_speed")+" : ");		label.setFont(skin.getLabelFont());		label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));		speed = new Label(transfer_group,SWT.NONE);		speed.setFont(skin.getLabelFont());		speed.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));		String download_speed = SpeedFormatter.formatSpeed(download_session.getSpeed());		speed.setText(download_speed);				label = new Label(transfer_group,SWT.NONE);		label.setText(Localizer._("downloadinfowindow.tab.general.label.eta")+" : ");		label.setFont(skin.getLabelFont());		label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));				eta = new Label(transfer_group,SWT.NONE);		eta.setFont(skin.getLabelFont());		eta.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));		String download_eta = TimeFormatter.formatColon(download_session.getETA());		eta.setText(download_eta);				Group general_group = new Group(content,SWT.NONE);		GridLayout layout = new GridLayout(2,false);		layout.marginWidth = 10;		general_group.setLayout(layout);		general_group.setText(Localizer._("downloadinfowindow.group.general"));		general_group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));						label = new Label(general_group,SWT.NONE);		label.setText(Localizer._("downloadinfowindow.tab.general.label.filename")+" : ");		label.setFont(skin.getLabelFont());		label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));		label = new Label(general_group,SWT.NONE);		label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));		label.setText(download_session.getSharingName());		label.setToolTipText(download_session.getSharingName());				label = new Label(general_group,SWT.NONE);		label.setText(Localizer._("downloadinfowindow.tab.general.label.partmet")+" : ");		label.setFont(skin.getLabelFont());		label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));		label = new Label(general_group,SWT.NONE);		label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));		label.setText(download_session.getSharingName()+".part.met");		label.setToolTipText(download_session.getMetFilePath());				label = new Label(general_group,SWT.NONE);		label.setText(Localizer._("downloadinfowindow.tab.general.label.filehash")+" : ");		label.setFont(skin.getLabelFont());		label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));		label = new Label(general_group,SWT.NONE);		label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));		label.setText(download_session.getFileHash()+"");		label.setForeground(SWTThread.getDisplay().getSystemColor(SWT.COLOR_BLUE));								label = new Label(general_group,SWT.NONE);		label.setFont(skin.getLabelFont());		label.setText(Localizer._("downloadinfowindow.tab.general.label.ed2k_link") + " : ");		label.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));		label = new Label(general_group,SWT.NONE);		label.setFont(skin.getDefaultFont());		label.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));		label.setText(download_session.getED2KLink().getAsString());		label.setToolTipText(_._("downloadinfowindow.tab.general.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(download_session.getED2KLink().getAsString());			}		});			}		public void refresh() {		if (isDisposed()) return ;		if (!getParent().getSelection().equals(this)) return ;		part_status.setText(download_session.getPartCount()+"; "+Localizer._("downloadinfowindow.tab.general.label.parts_available")+" : "+download_session.getAvailablePartCount());		download_status.setText(download_session.getStatus()==DownloadSession.STATUS_STARTED ? Localizer._("mainwindow.transferstab.downloads.column.status.started") : Localizer._("mainwindow.transferstab.downloads.column.status.stopped") );				total_progress.redraw();				sources_count.setText(download_session.getPeersCount()+"("+download_session.getPartialSources()+")");		download_size.setText(FileFormatter.formatFileSize(download_session.getTransferredBytes()));		long remaining = (download_session.getFileSize() - download_session.getTransferredBytes());		remaining_label.setText(FileFormatter.formatFileSize(remaining));				String download_speed = SpeedFormatter.formatSpeed(download_session.getSpeed());		speed.setText(download_speed);				String download_eta = TimeFormatter.formatColon(download_session.getETA());		eta.setText(download_eta);	}	protected void checkSubclass() {}	}

⌨️ 快捷键说明

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