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

📄 adjustspeedlimitsdialog.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.dialogs;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.Insets;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.text.DecimalFormat;import javax.swing.ButtonGroup;import javax.swing.JButton;import javax.swing.JCheckBox;import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JRadioButton;import javax.swing.JTextField;import javax.swing.SwingUtilities;import org.jmule.core.JMRunnable;import org.jmule.core.JMThread;import org.jmule.core.JMuleCore;import org.jmule.core.JMuleCoreFactory;import org.jmule.core.configmanager.ConfigurationAdapter;import org.jmule.core.configmanager.ConfigurationManager;import org.jmule.ui.IDialog;/** * * Created on Sep 27, 2008 * @author javajox * @version $Revision: 1.1 $ * Last changed by $Author: javajox $ on $Date: 2008/10/16 17:35:11 $ */public class AdjustSpeedLimitsDialog extends JDialog implements IDialog {	private JLabel download_speed_label = new JLabel();	private JRadioButton up_mbytes_s = new JRadioButton();	private JRadioButton up_kbytes_s = new JRadioButton();	private JRadioButton down_mbytes_s = new JRadioButton();	private JRadioButton down_kbytes_s = new JRadioButton();	private JTextField upload_speed_text_field = new JTextField();	private JTextField download_speed_text_field = new JTextField();	private JButton cancel_button = new JButton();	private JButton ok_button = new JButton();	private JLabel upload_speed_label = new JLabel();	private ButtonGroup download_group = new ButtonGroup();	private ButtonGroup upload_group = new ButtonGroup();	private JCheckBox enabled_upload_limit_check_box = new JCheckBox();	private JCheckBox enabled_download_limit_check_box = new JCheckBox();		private DialogAction dialog_action = DialogAction.CANCEL;		private static String kbytes_s = "KBytes/s";	private static String mbytes_s = "MBytes/s";		JMuleCore _core = JMuleCoreFactory.getSingleton();	ConfigurationManager _config_manager = _core.getConfigurationManager();		JRadioButton d_prec;	JRadioButton u_prec;		DecimalFormat format = new DecimalFormat("0.00");		ActionListener d_action_listener = new ActionListener() {		public void actionPerformed(ActionEvent e) {			if(e.getSource() == d_prec) return;			d_prec = (JRadioButton)e.getSource();			float down_speed = Float.parseFloat(download_speed_text_field.getText());			if(down_kbytes_s.isSelected()) 				down_speed *= 1024;			else 				down_speed /= 1024;			download_speed_text_field.setText( format.format(down_speed) );		}	};		ActionListener u_action_listener = new ActionListener() {		public void actionPerformed(ActionEvent e) {			if(e.getSource() == u_prec) return;			u_prec = (JRadioButton)e.getSource();			float up_speed = Float.parseFloat(upload_speed_text_field.getText());			if(up_kbytes_s.isSelected()) 				up_speed *= 1024;			else 				up_speed /= 1024;			upload_speed_text_field.setText( format.format(up_speed) );		}	};		public AdjustSpeedLimitsDialog(JFrame frame) {		super(frame, true);					this.setTitle("Set download/upload limits");				enabled_upload_limit_check_box.setText("Enabled");		enabled_download_limit_check_box.setText("Enabled");				download_speed_label.setText("Download");		upload_speed_label.setText("Upload");				up_kbytes_s.setText(kbytes_s);		up_mbytes_s.setText(mbytes_s);				up_kbytes_s.addActionListener(u_action_listener);		up_mbytes_s.addActionListener(u_action_listener);				down_kbytes_s.setText(kbytes_s);		down_mbytes_s.setText(mbytes_s);				down_kbytes_s.addActionListener(d_action_listener);		down_mbytes_s.addActionListener(d_action_listener);				ok_button.setText("OK");		cancel_button.setText("Cancel");				GridBagLayout grid_bag_layout = new GridBagLayout();		grid_bag_layout.rowWeights = new double[] {0.0, 0.0, 0.0, 0.0, 0.0, 0.1, 0.0};		grid_bag_layout.rowHeights = new int[] {7, 23, 30, 32, 30, 20, 7};		grid_bag_layout.columnWeights = new double[] {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1};		grid_bag_layout.columnWidths = new int[] {7, 179, 116, 83, 103, 50, 83, 7};		getContentPane().setLayout(grid_bag_layout);						getContentPane().add(download_speed_label, new GridBagConstraints(1, 2, 1, 1, 0.0, 0.0, GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(0, 0, 0, 10), 0, 0));        getContentPane().add(upload_speed_label, new GridBagConstraints(1, 4, 1, 1, 0.0, 0.0, GridBagConstraints.EAST, GridBagConstraints.NONE, new Insets(0, 0, 0, 10), 0, 0));        getContentPane().add(ok_button, new GridBagConstraints(3, 5, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0));        getContentPane().add(cancel_button, new GridBagConstraints(4, 5, 2, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 10, 0, 30), 0, 0));        getContentPane().add(download_speed_text_field, new GridBagConstraints(2, 2, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0));		getContentPane().add(upload_speed_text_field, new GridBagConstraints(2, 4, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0));		getContentPane().add(down_kbytes_s, new GridBagConstraints(3, 2, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));		down_kbytes_s.setSelected(true);		getContentPane().add(down_mbytes_s, new GridBagConstraints(4, 2, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));		getContentPane().add(up_kbytes_s, new GridBagConstraints(3, 4, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));		up_kbytes_s.setSelected(true);		getContentPane().add(up_mbytes_s, new GridBagConstraints(4, 4, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));		getContentPane().add(enabled_download_limit_check_box, new GridBagConstraints(2, 1, 1, 1, 0.0, 0.0, GridBagConstraints.SOUTHWEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));		getContentPane().add(enabled_upload_limit_check_box, new GridBagConstraints(2, 3, 1, 1, 0.0, 0.0, GridBagConstraints.SOUTHWEST, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0));		download_group.add(down_kbytes_s);		download_group.add(down_mbytes_s);				upload_group.add(up_kbytes_s);		upload_group.add(up_mbytes_s);				final AdjustSpeedLimitsDialog _this = this;		ok_button.addActionListener(new ActionListener() {			public void actionPerformed(ActionEvent event) {				dialog_action = DialogAction.OK;				(new JMThread(new JMRunnable() {					public void JMRun() {						float d_limit = _this.getDownloadLimit();						float u_limit = _this.getUploadLimit();						if( _config_manager.getDownloadLimit() != d_limit ) 							_config_manager.setDownloadLimit(Math.round(d_limit));				        if( _config_manager.getUploadLimit() != u_limit )						    _config_manager.setUploadLimit(Math.round(u_limit));					}				})).start();				_this.setVisible(false);			}		});				cancel_button.addActionListener(new ActionListener() {			public void actionPerformed(ActionEvent event) {			    _this.setVisible(false);				}		});				enabled_download_limit_check_box.addActionListener(new ActionListener() {			public void actionPerformed(ActionEvent event) {			      if( enabled_download_limit_check_box.isSelected() ) 			    	    setDownloadSpeedEnabled(true);			      else  setDownloadSpeedEnabled(false);			}		});				enabled_upload_limit_check_box.addActionListener(new ActionListener() {			public void actionPerformed(ActionEvent event) {			      if( enabled_upload_limit_check_box.isSelected() )			    	   setUploadSpeedEnabled(true);			      else setUploadSpeedEnabled(false);			}		});				/*_config_manager.addConfigurationListener(new ConfigurationAdapter() {			public void downloadLimitChanged(final long downloadLimit) {			  			  SwingUtilities.invokeLater( new Runnable() {				   public void run() {						 if( downloadLimit == 0 ) 							   setDownloadSpeedEnabled(false);						 else {							   setDownloadSpeedEnabled(true);							   setDownloadLimit(downloadLimit);						 }				   }			  });			}			public void uploadLimitChanged(final long uploadLimit) {				SwingUtilities.invokeLater(new Runnable() {					public void run() {						if( uploadLimit == 0 )							   setUploadSpeedEnabled(false);						else {							  setUploadSpeedEnabled(true);							  setUploadLimit(uploadLimit);						}						}				});			}		});*/				setInitData();				this.setResizable(false);		this.setSize(451, 201);            }		private void setInitData() {		if(_config_manager.getDownloadLimit() == 0) 			setDownloadSpeedEnabled(false);		else {			setDownloadSpeedEnabled(true);			setDownloadLimit(_config_manager.getDownloadLimit() );		}		if(_config_manager.getUploadLimit() == 0) 			   setUploadSpeedEnabled(false);		else {			  setUploadSpeedEnabled(true);			  setUploadLimit(_config_manager.getUploadLimit());		}	}		public void setDownloadLimit(long downloadLimit) {				if(downloadLimit >= 1024 * 1024) {			downloadLimit /= 1024;			downloadLimit /= 1024;			down_mbytes_s.setSelected(true);			d_prec = down_mbytes_s;		} else {			downloadLimit /= 1024;			down_kbytes_s.setSelected(true);			d_prec = down_kbytes_s;		}		download_speed_text_field.setText(format.format(downloadLimit));	}		public void setUploadLimit(long uploadLimit) {				if(uploadLimit >= 1024 * 1024) {			uploadLimit /= 1024;			uploadLimit /= 1024;			up_mbytes_s.setSelected(true);			u_prec = up_mbytes_s;		} else {			uploadLimit /= 1024;			up_kbytes_s.setSelected(true);			u_prec = up_kbytes_s;		}		upload_speed_text_field.setText(format.format(uploadLimit));	}		public float getDownloadLimit() {				Float d_limit = Float.parseFloat(download_speed_text_field.getText()) * 1024;		if(down_mbytes_s.isSelected()) d_limit*=1024;		else return d_limit;		return d_limit;	}		public float getUploadLimit() {				Float u_limit = Float.parseFloat(upload_speed_text_field.getText()) * 1024;		if(up_mbytes_s.isSelected()) u_limit*=1024;		else return u_limit;		return u_limit;	}		private void setDownloadSpeedEnabled(boolean value) {		enabled_download_limit_check_box.setSelected(value);		download_speed_label.setEnabled(value);		down_mbytes_s.setEnabled(value);		down_kbytes_s.setEnabled(value);		download_speed_text_field.setEnabled(value);		download_speed_text_field.setText(format.format(0));	}		private void setUploadSpeedEnabled(boolean value) {		enabled_upload_limit_check_box.setSelected(value);		upload_speed_label.setEnabled(value);		up_mbytes_s.setEnabled(value);		up_kbytes_s.setEnabled(value);		upload_speed_text_field.setEnabled(value);		upload_speed_text_field.setText(format.format(0));	}		public DialogAction getDialogAction() {				return dialog_action;	}	}

⌨️ 快捷键说明

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