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

📄 downloaddetailspanel.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.swing.maintabs.transfers;import java.awt.Color;import java.awt.Font;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.GridLayout;import java.awt.Insets;import javax.swing.BorderFactory;import javax.swing.ImageIcon;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.SwingConstants;import org.jmule.core.JMuleCore;import org.jmule.core.JMuleCoreFactory;import org.jmule.core.downloadmanager.DownloadSession;import org.jmule.core.uploadmanager.UploadManager;import org.jmule.ui.UIConstants;import org.jmule.ui.swing.common.PiecesPanel;import org.jmule.ui.utils.FileFormatter;import org.jmule.ui.utils.SpeedFormatter;import org.jmule.util.Misc;/** * * Created on Oct 5, 2008 * @author javajox * @version $Revision: 1.1 $ * Last changed by $Author: javajox $ on $Date: 2008/10/16 17:35:15 $ */public class DownloadDetailsPanel extends JPanel {	// ---------- Transfers panel -----------------------------	private JLabel pieces_label = new JLabel("Pieces");	private JLabel up_speed_value = new JLabel();	private JLabel transferred_label = new JLabel("Transferred");	private PiecesPanel pieces_panel;	private JLabel down_speed_value = new JLabel();	private JLabel remaining_value = new JLabel();	private JLabel transferred_value = new JLabel();	private JLabel partial_sources_value = new JLabel();	private JLabel complete_sources_value = new JLabel();	private JLabel upload_speed_label = new JLabel("Up speed");	private JLabel download_speed_label = new JLabel("Down speed");	private JLabel remaining_label = new JLabel("Remaining");	private JLabel partial_sources_label = new JLabel("Partial sources");	private JLabel complete_sources_label = new JLabel("Complete sources");			// ------------- File details panel ------------------------------	private JLabel file_name_label = new JLabel("File name");	private JLabel status_label = new JLabel("Status");	private JLabel file_hash_label = new JLabel("File hash");	private JLabel parts_label = new JLabel("Parts");	private JLabel ed2k_link_label = new JLabel("ED2K Link");	private JLabel file_size_label = new JLabel("File size");	private JLabel part_met_file_label = new JLabel("part.met");	private JLabel file_name_value = new JLabel();	private JLabel file_size_value = new JLabel();	private JLabel status_value = new JLabel();	private JLabel file_hash_value = new JLabel();	private JLabel part_met_file_value = new JLabel();	private JLabel parts_value = new JLabel();	private JLabel ed2k_link_value = new JLabel();		private JPanel transfer_panel = new JPanel();	private JPanel general_info_panel = new JPanel();			private GridLayout grid_layout = new GridLayout(2,1);	    private final static Font label_value_font = new java.awt.Font("Dialog", 0, 12);    private final static Font label_font = new java.awt.Font("Dialog", 1, 12);		private DownloadSession session;	private JMuleCore _core = JMuleCoreFactory.getSingleton();	private UploadManager _upload_manager = _core.getUploadManager();		public DownloadDetailsPanel(DownloadSession session) {		this.session = session;		init();	}		private void init() {				this.setLayout(grid_layout);				// ----------------- Transfers panel --------------------------------		GridBagLayout transfer_grid_bag_layout = new GridBagLayout();		transfer_grid_bag_layout.rowWeights = new double[] {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1};		transfer_grid_bag_layout.rowHeights = new int[] {10, 24, 24, 24, 24, 24, 24, 24, 7};		transfer_grid_bag_layout.columnWeights = new double[] {0.0, 0.0, 0.1};		transfer_grid_bag_layout.columnWidths = new int[] {111, 17, 7};				pieces_label.setFont(label_font);		transferred_label.setFont(label_font);		upload_speed_label.setFont(label_font);		download_speed_label.setFont(label_font);		remaining_label.setFont(label_font);		partial_sources_label.setFont(label_font);		complete_sources_label.setFont(label_font);				pieces_label.setHorizontalAlignment(SwingConstants.RIGHT);		transferred_label.setHorizontalAlignment(SwingConstants.RIGHT);		upload_speed_label.setHorizontalAlignment(SwingConstants.RIGHT);		download_speed_label.setHorizontalAlignment(SwingConstants.RIGHT);		remaining_label.setHorizontalAlignment(SwingConstants.RIGHT);		partial_sources_label.setHorizontalAlignment(SwingConstants.RIGHT);		complete_sources_label.setHorizontalAlignment(SwingConstants.RIGHT);				transferred_value.setFont(label_value_font);		up_speed_value.setFont(label_value_font);		down_speed_value.setFont(label_value_font);		remaining_value.setFont(label_value_font);		partial_sources_value.setFont(label_value_font);		complete_sources_value.setFont(label_value_font);				pieces_panel = new PiecesPanel(session);		ed2k_link_value.setForeground(Color.BLUE);		ed2k_link_value.setToolTipText("Click to copy ed2k link");		file_hash_value.setForeground(Color.BLUE);				transfer_panel.setBorder(BorderFactory.createTitledBorder("Transfer"));		transfer_panel.setLayout(transfer_grid_bag_layout);		transfer_panel.setPreferredSize(new java.awt.Dimension(436, 202));		transfer_panel.add(pieces_label, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		transfer_panel.add(complete_sources_label, new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		transfer_panel.add(partial_sources_label, new GridBagConstraints(0, 3, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		transfer_panel.add(transferred_label, new GridBagConstraints(0, 4, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		transfer_panel.add(remaining_label, new GridBagConstraints(0, 5, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		transfer_panel.add(download_speed_label, new GridBagConstraints(0, 6, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		transfer_panel.add(upload_speed_label, new GridBagConstraints(0, 7, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		transfer_panel.add(pieces_panel, new GridBagConstraints(2, 1, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 5), 0, 0));		transfer_panel.add(complete_sources_value, new GridBagConstraints(2, 2, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		transfer_panel.add(partial_sources_value, new GridBagConstraints(2, 3, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		transfer_panel.add(transferred_value, new GridBagConstraints(2, 4, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		transfer_panel.add(remaining_value, new GridBagConstraints(2, 5, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		transfer_panel.add(down_speed_value, new GridBagConstraints(2, 6, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		transfer_panel.add(up_speed_value, new GridBagConstraints(2, 7, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		this.add(transfer_panel);				file_name_label.setFont(label_font);		status_label.setFont(label_font);		file_hash_label.setFont(label_font);		parts_label.setFont(label_font);		ed2k_link_label.setFont(label_font);		file_size_label.setFont(label_font);		part_met_file_label.setFont(label_font);				file_name_value.setFont(label_value_font);		status_value.setFont(label_value_font);		file_hash_value.setFont(label_value_font);		parts_value.setFont(label_value_font);		ed2k_link_value.setFont(label_value_font);		file_size_value.setFont(label_value_font);		part_met_file_value.setFont(label_value_font);				file_name_label.setHorizontalAlignment(SwingConstants.RIGHT);		status_label.setHorizontalAlignment(SwingConstants.RIGHT);		file_hash_label.setHorizontalAlignment(SwingConstants.RIGHT);		parts_label.setHorizontalAlignment(SwingConstants.RIGHT);		ed2k_link_label.setHorizontalAlignment(SwingConstants.RIGHT);		file_size_label.setHorizontalAlignment(SwingConstants.RIGHT);		part_met_file_label.setHorizontalAlignment(SwingConstants.RIGHT);				GridBagLayout general_info_ayout = new GridBagLayout();		general_info_panel.setPreferredSize(new java.awt.Dimension(382, 185));		general_info_ayout.rowWeights = new double[] {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1};		general_info_ayout.rowHeights = new int[] {26, 25, 24, 26, 24, 25, 26, 7};		general_info_ayout.columnWeights = new double[] {0.0, 0.0, 0.1};		general_info_ayout.columnWidths = new int[] {90, 15, 7};		general_info_panel.setLayout(general_info_ayout);		general_info_panel.add(file_name_label, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		general_info_panel.add(part_met_file_label, new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		general_info_panel.add(status_label, new GridBagConstraints(0, 4, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		general_info_panel.add(file_size_label, new GridBagConstraints(0, 5, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		general_info_panel.add(ed2k_link_label, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		general_info_panel.add(parts_label, new GridBagConstraints(0, 6, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		general_info_panel.add(file_hash_label, new GridBagConstraints(0, 3, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		general_info_panel.add(file_name_value, new GridBagConstraints(2, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		general_info_panel.add(ed2k_link_value, new GridBagConstraints(2, 1, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		general_info_panel.add(part_met_file_value, new GridBagConstraints(2, 2, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		general_info_panel.add(file_hash_value, new GridBagConstraints(2, 3, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		general_info_panel.add(status_value, new GridBagConstraints(2, 4, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		general_info_panel.add(file_size_value, new GridBagConstraints(2, 5, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		general_info_panel.add(parts_value, new GridBagConstraints(2, 6, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));        general_info_panel.setBorder(BorderFactory.createTitledBorder("File info"));		this.add(general_info_panel);		file_name_value.setIcon(new ImageIcon(UIConstants.getMimeURLByExtension(Misc.getFileExtension(session.getSharingName()))));		updateData();	}		public void updateData() {		pieces_panel.repaint();		complete_sources_value.setText(session.getCompletedSources() + "");		partial_sources_value.setText(session.getPartialSources() + "");		transferred_value.setText(FileFormatter.formatFileSize(session.getTransferredBytes()));		remaining_value.setText(FileFormatter.formatFileSize(session.getFileSize() - 				                 session.getTransferredBytes()));		down_speed_value.setText(SpeedFormatter.formatSpeed(session.getSpeed()));		up_speed_value.setText(_upload_manager.hasUpload(session.getFileHash()) ?				                   SpeedFormatter.formatSpeed(_upload_manager.getUpload(session.getFileHash()).getSpeed()) :				            	   SpeedFormatter.formatSpeed(0) );		file_name_value.setText(session.getSharingName());		file_name_value.setToolTipText(session.getSharingName());		ed2k_link_value.setText(session.getED2KLink().getAsString());		part_met_file_value.setText(session.getTempFileName());		part_met_file_value.setToolTipText(session.getMetFilePath());		file_hash_value.setText(session.getFileHash().getAsString());		switch(session.getStatus()) {		    case DownloadSession.STATUS_STARTED : status_value.setText("Started"); break;		    case DownloadSession.STATUS_STOPPED : status_value.setText("Stopped");		}		file_size_value.setText(FileFormatter.formatFileSize(session.getFileSize()));		parts_value.setText(session.getPartCount() + ", available " + session.getAvailablePartCount());	}}

⌨️ 快捷键说明

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