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

📄 serverdetailsdialog.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.serverlist;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Font;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.Insets;import java.awt.Toolkit;import java.awt.datatransfer.Clipboard;import java.awt.datatransfer.ClipboardOwner;import java.awt.datatransfer.DataFlavor;import java.awt.datatransfer.Transferable;import java.awt.datatransfer.UnsupportedFlavorException;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.io.IOException;import javax.swing.BorderFactory;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.SwingConstants;import javax.swing.border.BevelBorder;import org.jmule.core.edonkey.impl.Server;import org.jmule.ui.swing.dialogs.RefreshableDialog;import org.jmule.ui.utils.NumberFormatter;/** * * Created on Oct 4, 2008 * @author javajox * @version $Revision: 1.1 $ * Last changed by $Author: javajox $ on $Date: 2008/10/16 17:35:15 $ */public class ServerDetailsDialog extends RefreshableDialog {		class BottomPanel extends JPanel {		private JButton close_button;				public BottomPanel() {						init();		}				private void init() {			GridBagLayout thisLayout = new GridBagLayout();			thisLayout.rowWeights = new double[] {0.1};			thisLayout.rowHeights = new int[] {7};			thisLayout.columnWeights = new double[] {0.0, 0.0, 0.1};			thisLayout.columnWidths = new int[] {230, 126, 20};			this.setPreferredSize(new java.awt.Dimension(375, 44));			this.setLayout(thisLayout);			{				close_button = new JButton("Close");				this.add(close_button, new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0));				close_button.setName("close_button");			}		}				public JButton getCloseButton() {			return close_button;		}	}		private JLabel server_name_label = new JLabel("Name");	private JLabel ip_label = new JLabel("IP");	private JLabel files_value = new JLabel();	private JLabel connected_to_value = new JLabel();	private JLabel down_value = new JLabel();	private JLabel static_value = new JLabel();	private JLabel users_value = new JLabel();	private JLabel ping_value = new JLabel();	private JLabel ed2k_link_value = new JLabel();	private JLabel ip_value = new JLabel();	private JLabel server_name_value = new JLabel();	private JTextArea description_text_area = new JTextArea();	private JScrollPane description_scroll_pane = new JScrollPane();	private JLabel description_label = new JLabel("Description");	private JLabel connected_to_label = new JLabel("Connected to");	private JLabel down_label = new JLabel("Down");	private JLabel static_label = new JLabel("Static");	private JLabel files_label = new JLabel("Files");	private JLabel users_label = new JLabel("Users");	private JLabel ping_label = new JLabel("Ping");	private JLabel ed2k_link_label = new JLabel("ED2K Link");		private JPanel center_panel = new JPanel();	//private JPanel north_panel = new JPanel();    private GridBagLayout grid_bag_layout = new GridBagLayout();    private BorderLayout border_layout = new BorderLayout();        private BottomPanel bottom_panel = new BottomPanel();    private final static Font label_value_font = new java.awt.Font("Dialog", 0, 12);    private final static Font lable_font = new java.awt.Font("Dialog", 1, 12);        private Server server;	    private final Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();    	public ServerDetailsDialog(JFrame parent, Server server) {		super(parent, "Server details", true);	    this.server = server;			init();	}		private void init() {        this.setLayout(border_layout);		this.setSize(new java.awt.Dimension(381, 442));		this.setResizable(false);        server_name_label.setHorizontalAlignment(SwingConstants.RIGHT);        ip_label.setHorizontalAlignment(SwingConstants.RIGHT);        description_label.setHorizontalAlignment(SwingConstants.RIGHT);        connected_to_label.setHorizontalAlignment(SwingConstants.RIGHT);        down_label.setHorizontalAlignment(SwingConstants.RIGHT);        static_label.setHorizontalAlignment(SwingConstants.RIGHT);        files_label.setHorizontalAlignment(SwingConstants.RIGHT);        users_label.setHorizontalAlignment(SwingConstants.RIGHT);        ping_label.setHorizontalAlignment(SwingConstants.RIGHT);        ed2k_link_label.setHorizontalAlignment(SwingConstants.RIGHT);        		grid_bag_layout.rowWeights = new double[] {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1};		grid_bag_layout.rowHeights = new int[] {31, 29, 29, 29, 29, 31, 29, 29, 31, 90, 7};		grid_bag_layout.columnWeights = new double[] {0.0, 0.0, 0.1};		grid_bag_layout.columnWidths = new int[] {92, 10, 7};		center_panel.setLayout(grid_bag_layout);				server_name_value.setFont(label_value_font);		ip_value.setFont(label_value_font);		ed2k_link_value.setFont(label_value_font);		ed2k_link_value.setForeground(Color.BLUE);		ed2k_link_value.setToolTipText("Click to copy ED2K link");		ping_value.setFont(label_value_font);		users_value.setFont(label_value_font);		files_value.setFont(label_value_font);		static_value.setFont(label_value_font);		down_value.setFont(label_value_font);		connected_to_value.setFont(label_value_font);		description_text_area.setFont(label_value_font);				server_name_label.setFont(lable_font);		ip_label.setFont(lable_font);		ed2k_link_label.setFont(lable_font);		ping_label.setFont(lable_font);		users_label.setFont(lable_font);		files_label.setFont(lable_font);		static_label.setFont(lable_font);		down_label.setFont(lable_font);		connected_to_label.setFont(lable_font);		description_label.setFont(lable_font);				ed2k_link_value.addMouseListener(new MouseAdapter() {			public void mouseClicked(MouseEvent event) {				clipboard.setContents(new Transferable() {					public Object getTransferData(DataFlavor flavor)							throws UnsupportedFlavorException,							IOException {						return server.getServerLink().getAsString();					}					public DataFlavor[] getTransferDataFlavors() {						DataFlavor[] data_flavours = new DataFlavor[1];						data_flavours[0] = DataFlavor.stringFlavor;						return data_flavours;					}					public boolean isDataFlavorSupported(							DataFlavor flavor) {					    return flavor.isFlavorTextType();					}									}, new ClipboardOwner() {					public void lostOwnership(Clipboard clipboard, Transferable contents) {											}									});			}		});				center_panel.setBorder(BorderFactory.createEtchedBorder(BevelBorder.RAISED));		center_panel.add(server_name_label, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		center_panel.add(ip_label, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		center_panel.add(ed2k_link_label, new GridBagConstraints(0, 2, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		center_panel.add(ping_label, new GridBagConstraints(0, 3, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		center_panel.add(users_label, new GridBagConstraints(0, 4, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		center_panel.add(files_label, new GridBagConstraints(0, 5, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		center_panel.add(static_label, new GridBagConstraints(0, 6, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		center_panel.add(down_label, new GridBagConstraints(0, 7, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		center_panel.add(connected_to_label, new GridBagConstraints(0, 8, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		center_panel.add(description_label, new GridBagConstraints(0, 9, 1, 1, 0.0, 0.0, GridBagConstraints.NORTHEAST, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0));		center_panel.add(description_scroll_pane, new GridBagConstraints(2, 9, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(4, 0, 0, 15), 0, 0));		description_scroll_pane.setViewportView(description_text_area);		description_text_area.setEditable(false);		description_text_area.setBackground(this.getBackground());		center_panel.add(server_name_value, new GridBagConstraints(2, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		center_panel.add(ip_value, new GridBagConstraints(2, 1, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		center_panel.add(ed2k_link_value, new GridBagConstraints(2, 2, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		center_panel.add(ping_value, new GridBagConstraints(2, 3, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		center_panel.add(users_value, new GridBagConstraints(2, 4, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		center_panel.add(files_value, new GridBagConstraints(2, 5, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		center_panel.add(static_value, new GridBagConstraints(2, 6, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		center_panel.add(down_value, new GridBagConstraints(2, 7, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		center_panel.add(connected_to_value, new GridBagConstraints(2, 8, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));		update_server_info();		this.add(center_panel,BorderLayout.CENTER);		this.add(bottom_panel, BorderLayout.SOUTH);		final JDialog _this = this;		bottom_panel.getCloseButton().addActionListener(new ActionListener() {			public void actionPerformed(ActionEvent event) {			   _this.setVisible(false);    				}		});	}		public void refresh() {				update_server_info();	}		private void update_server_info() {		server_name_value.setText(server.getName());		server_name_value.setToolTipText(server.getName());		ip_value.setText(server.getAddress() + " : " + server.getPort());		ed2k_link_value.setText(server.getServerLink().getAsString());		ping_value.setText(server.getPing() + "");		String users = NumberFormatter.formatSizeHumanReadable(server.getNumUsers()) +		               " (max " + NumberFormatter.formatSizeHumanReadable(server.getMaxUsers()) + ")";		users_value.setText(users);		String files = NumberFormatter.formatSizeHumanReadable(server.getNumFiles()) +		               " limits [soft: " + NumberFormatter.formatSizeHumanReadable(server.getSoftLimit()) +		               " hard: " + NumberFormatter.formatSizeHumanReadable(server.getHardLimit()) + "]";		files_value.setText(files);		static_value.setText(server.isStatic()?"Yes":"No");		boolean is_down = server.isDown();		if(is_down) down_value.setForeground(Color.RED);		else down_value.setForeground(Color.BLACK);		down_value.setText(is_down?"Yes":"No");		connected_to_value.setText(server.isConnected()?"Yes":"No");		description_text_area.setText(server.getDesc());	}		public DialogAction getDialogAction() {		return null;	}}

⌨️ 快捷键说明

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