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

📄 transferstatsview.java

📁 java 文件下载器。可自定义
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
				}
				gc.setForeground(Colors.black);
			}
			SpeedManagerLimitEstimate bad_down[] = mapper.getBadDownloadHistory();
			if (bad_down.length > 0)
			{
				gc.setForeground(Colors.red);
				gc.setLineWidth(3);
				for (int i = 0; i < bad_down.length; i++)
				{
					int speed = bad_down[i].getBytesPerSec();
					int y = max_y != 0 ? (speed * usable_height) / max_y : 0;
					gc.drawLine(y_axis_bottom_x + 0, y_axis_bottom_y - y, y_axis_bottom_x + 10, y_axis_bottom_y - y);
				}

				gc.setForeground(Colors.black);
				gc.setLineWidth(1);
			}
			String y_text = (new StringBuilder()).append(labels[1]).append(" - ").append(formatters[1].format(max_y + 1)).toString();
			gc.drawText(y_text, y_axis_top_x + 4, y_axis_top_y + 2, 1);
			gc.drawText(title, (bounds.width - title.length() * char_width) / 2, 1, 1);
			gc.dispose();
			return image;
		}

		protected void dispose()
		{
			if (buffer_image != null && !buffer_image.isDisposed())
				buffer_image.dispose();
			COConfigurationManager.removeParameterListener("Graphics Update", this);
		}


		protected zoneView(SpeedManagerPingMapper _mapper, Canvas _canvas, String _labels[], ValueFormater _formatters[])
		{
			this$0 = TransferStatsView.this;
			super();
			zones = new SpeedManagerPingZone[0];
			title = "";
			mapper = _mapper;
			canvas = _canvas;
			labels = _labels;
			formatters = _formatters;
			COConfigurationManager.addAndFireParameterListener("Graphics Update", this);
		}
	}


	GlobalManager manager;
	AzureusCore core;
	GlobalManagerStats stats;
	SpeedManager speedManager;
	OverallStats totalStats;
	Composite mainPanel;
	Composite blahPanel;
	BufferedLabel asn;
	BufferedLabel estUpCap;
	BufferedLabel estDownCap;
	Composite generalPanel;
	BufferedLabel nowUp;
	BufferedLabel nowDown;
	BufferedLabel sessionDown;
	BufferedLabel sessionUp;
	BufferedLabel session_ratio;
	BufferedLabel sessionTime;
	BufferedLabel totalDown;
	BufferedLabel totalUp;
	BufferedLabel total_ratio;
	BufferedLabel totalTime;
	Group autoSpeedPanel;
	StackLayout autoSpeedPanelLayout;
	Composite autoSpeedInfoPanel;
	Composite autoSpeedDisabledPanel;
	PingGraphic pingGraph;
	plotView plot_views[];
	zoneView zone_views[];
	limitToTextHelper limit_to_text;
	private final DecimalFormat formatter = new DecimalFormat("##.#");

	public TransferStatsView(GlobalManager manager, AzureusCore core)
	{
		limit_to_text = new limitToTextHelper();
		this.core = core;
		this.manager = manager;
		stats = manager.getStats();
		totalStats = StatsFactory.getStats();
		speedManager = core.getSpeedManager();
	}

	public void initialize(Composite composite)
	{
		mainPanel = new Composite(composite, 0);
		GridLayout mainLayout = new GridLayout();
		mainPanel.setLayout(mainLayout);
		createGeneralPanel();
		createBlahPanel();
		createAutoSpeedPanel();
	}

	private void createGeneralPanel()
	{
		generalPanel = new Composite(mainPanel, 2048);
		GridData generalPanelData = new GridData(768);
		generalPanel.setLayoutData(generalPanelData);
		GridLayout panelLayout = new GridLayout();
		panelLayout.numColumns = 5;
		panelLayout.makeColumnsEqualWidth = true;
		generalPanel.setLayout(panelLayout);
		Label lbl = new Label(generalPanel, 0);
		lbl = new Label(generalPanel, 0);
		Messages.setLanguageText(lbl, "SpeedView.stats.downloaded");
		lbl = new Label(generalPanel, 0);
		Messages.setLanguageText(lbl, "SpeedView.stats.uploaded");
		lbl = new Label(generalPanel, 0);
		Messages.setLanguageText(lbl, "SpeedView.stats.ratio");
		lbl = new Label(generalPanel, 0);
		Messages.setLanguageText(lbl, "SpeedView.stats.uptime");
		lbl = new Label(generalPanel, 0);
		lbl = new Label(generalPanel, 0);
		lbl = new Label(generalPanel, 0);
		lbl = new Label(generalPanel, 0);
		lbl = new Label(generalPanel, 0);
		lbl = new Label(generalPanel, 0);
		Messages.setLanguageText(lbl, "SpeedView.stats.now");
		nowDown = new BufferedLabel(generalPanel, 0);
		GridData gridData = new GridData(768);
		nowDown.setLayoutData(gridData);
		nowUp = new BufferedLabel(generalPanel, 0);
		gridData = new GridData(768);
		nowUp.setLayoutData(gridData);
		lbl = new Label(generalPanel, 0);
		lbl = new Label(generalPanel, 0);
		lbl = new Label(generalPanel, 0);
		Messages.setLanguageText(lbl, "SpeedView.stats.session");
		sessionDown = new BufferedLabel(generalPanel, 0);
		gridData = new GridData(768);
		sessionDown.setLayoutData(gridData);
		sessionUp = new BufferedLabel(generalPanel, 0);
		gridData = new GridData(768);
		sessionUp.setLayoutData(gridData);
		session_ratio = new BufferedLabel(generalPanel, 0);
		gridData = new GridData(768);
		session_ratio.setLayoutData(gridData);
		sessionTime = new BufferedLabel(generalPanel, 0);
		gridData = new GridData(768);
		sessionTime.setLayoutData(gridData);
		lbl = new Label(generalPanel, 0);
		Messages.setLanguageText(lbl, "SpeedView.stats.total");
		totalDown = new BufferedLabel(generalPanel, 0);
		gridData = new GridData(768);
		totalDown.setLayoutData(gridData);
		totalUp = new BufferedLabel(generalPanel, 0);
		gridData = new GridData(768);
		totalUp.setLayoutData(gridData);
		total_ratio = new BufferedLabel(generalPanel, 0);
		gridData = new GridData(768);
		total_ratio.setLayoutData(gridData);
		totalTime = new BufferedLabel(generalPanel, 0);
		gridData = new GridData(768);
		totalTime.setLayoutData(gridData);
	}

	private void createBlahPanel()
	{
		blahPanel = new Composite(mainPanel, 0);
		GridData blahPanelData = new GridData(768);
		blahPanel.setLayoutData(blahPanelData);
		GridLayout panelLayout = new GridLayout();
		panelLayout.numColumns = 8;
		blahPanel.setLayout(panelLayout);
		Label label = new Label(blahPanel, 0);
		Messages.setLanguageText(label, "SpeedView.stats.asn");
		asn = new BufferedLabel(blahPanel, 0);
		GridData gridData = new GridData(768);
		asn.setLayoutData(gridData);
		label = new Label(blahPanel, 0);
		Messages.setLanguageText(label, "SpeedView.stats.estupcap");
		estUpCap = new BufferedLabel(blahPanel, 0);
		gridData = new GridData(768);
		estUpCap.setLayoutData(gridData);
		label = new Label(blahPanel, 0);
		Messages.setLanguageText(label, "SpeedView.stats.estdowncap");
		estDownCap = new BufferedLabel(blahPanel, 0);
		gridData = new GridData(768);
		estDownCap.setLayoutData(gridData);
		label = new Label(blahPanel, 0);
		label = new Label(blahPanel, 0);
	}

	private void createAutoSpeedPanel()
	{
		autoSpeedPanel = new Group(mainPanel, 0);
		GridData generalPanelData = new GridData(1808);
		autoSpeedPanel.setLayoutData(generalPanelData);
		Messages.setLanguageText(autoSpeedPanel, "SpeedView.stats.autospeed");
		autoSpeedPanelLayout = new StackLayout();
		autoSpeedPanel.setLayout(autoSpeedPanelLayout);
		autoSpeedInfoPanel = new Composite(autoSpeedPanel, 0);
		autoSpeedInfoPanel.setLayoutData(new GridData(1808));
		GridLayout layout = new GridLayout();
		layout.numColumns = 8;
		layout.makeColumnsEqualWidth = true;
		autoSpeedInfoPanel.setLayout(layout);
		Canvas pingCanvas = new Canvas(autoSpeedInfoPanel, 0x40000);
		GridData gridData = new GridData(1808);
		gridData.horizontalSpan = 4;
		pingCanvas.setLayoutData(gridData);
		pingGraph = PingGraphic.getInstance();
		pingGraph.initialize(pingCanvas);
		TabFolder folder = new TabFolder(autoSpeedInfoPanel, 16384);
		gridData = new GridData(1808);
		gridData.horizontalSpan = 4;
		folder.setLayoutData(gridData);
		folder.setBackground(Colors.background);
		ValueFormater speed_formatter = new ValueFormater() {

			final TransferStatsView this$0;

			public String format(int value)
			{
				return DisplayFormatters.formatByteCountToKiBEtc(value);
			}

			
			{
				this$0 = TransferStatsView.this;
				super();
			}
		};
		ValueFormater time_formatter = new ValueFormater() {

			final TransferStatsView this$0;

			public String format(int value)
			{
				return (new StringBuilder()).append(value).append(" ms").toString();
			}

			
			{
				this$0 = TransferStatsView.this;
				super();
			}
		};
		ValueFormater formatters[] = {
			speed_formatter, speed_formatter, time_formatter
		};
		String labels[] = {
			"up", "down", "ping"
		};
		SpeedManagerPingMapper mappers[] = this.speedManager.getMappers();
		plot_views = new plotView[mappers.length];
		zone_views = new zoneView[mappers.length];
		for (int i = 0; i < mappers.length; i++)
		{
			SpeedManagerPingMapper mapper = mappers[i];
			TabItem plot_item = new TabItem(folder, 0);
			plot_item.setText((new StringBuilder()).append("Plot ").append(mapper.getName()).toString());
			Canvas plotCanvas = new Canvas(folder, 0x40000);
			gridData = new GridData(1808);
			plotCanvas.setLayoutData(gridData);
			plot_views[i] = new plotView(mapper, plotCanvas, labels, formatters);
			plot_item.setControl(plotCanvas);
			TabItem zones_item = new TabItem(folder, 0);
			zones_item.setText((new StringBuilder()).append("Zones ").append(mapper.getName()).toString());
			Canvas zoneCanvas = new Canvas(folder, 0x40000);
			gridData = new GridData(1808);
			zoneCanvas.setLayoutData(gridData);
			zone_views[i] = new zoneView(mapper, zoneCanvas, labels, formatters);
			zones_item.setControl(zoneCanvas);
		}

		autoSpeedDisabledPanel = new Composite(autoSpeedPanel, 0);
		autoSpeedDisabledPanel.setLayout(new GridLayout());
		Label disabled = new Label(autoSpeedDisabledPanel, 0);
		disabled.setEnabled(false);
		Messages.setLanguageText(disabled, "SpeedView.stats.autospeed.disabled");
		disabled.setLayoutData(new GridData(832));
		SpeedManager speedManager = core.getSpeedManager();
		autoSpeedPanelLayout.topControl = speedManager.isAvailable() ? ((org.eclipse.swt.widgets.Control) (autoSpeedInfoPanel)) : ((org.eclipse.swt.widgets.Control) (autoSpeedDisabledPanel));
		gridData = new GridData(768);
		gridData.horizontalSpan = 8;
		Legend.createLegendComposite(autoSpeedInfoPanel, PingGraphic.colors, new String[] {
			"TransferStatsView.legend.pingaverage", "TransferStatsView.legend.ping1", "TransferStatsView.legend.ping2", "TransferStatsView.legend.ping3"
		}, gridData);
	}

	public void delete()
	{
		Utils.disposeComposite(generalPanel);
		Utils.disposeComposite(blahPanel);
		pingGraph.dispose();
		for (int i = 0; i < plot_views.length; i++)
			plot_views[i].dispose();

		for (int i = 0; i < zone_views.length; i++)
			zone_views[i].dispose();

	}

	public String getFullTitle()
	{
		return MessageText.getString("SpeedView.title.full");
	}

	public Composite getComposite()
	{
		return mainPanel;
	}

	public void refresh()
	{
		refreshGeneral();
		refreshBlahPanel();
		refreshPingPanel();
	}

	private void refreshGeneral()
	{
		int now_prot_down_rate = stats.getProtocolReceiveRate();
		int now_prot_up_rate = stats.getProtocolSendRate();
		int now_total_down_rate = stats.getDataReceiveRate() + now_prot_down_rate;
		int now_total_up_rate = stats.getDataSendRate() + now_prot_up_rate;
		float now_perc_down = (float)(now_prot_down_rate * 100) / (float)(now_total_down_rate != 0 ? now_total_down_rate : 1);
		float now_perc_up = (float)(now_prot_up_rate * 100) / (float)(now_total_up_rate != 0 ? now_total_up_rate : 1);
		nowDown.setText((new StringBuilder()).append(DisplayFormatters.formatByteCountToKiBEtcPerSec(now_total_down_rate)).append("  (").append(DisplayFormatters.formatByteCountToKiBEtcPerSec(now_prot_down_rate)).append(", ").append(formatter.format(now_perc_down)).append("%)").toString());
		nowUp.setText((new StringBuilder()).append(DisplayFormatters.formatByteCountToKiBEtcPerSec(now_total_up_rate)).append("  (").append(DisplayFormatters.formatByteCountToKiBEtcPerSec(now_prot_up_rate)).append(", ").append(formatter.format(now_perc_up)).append("%)").toString());
		long session_prot_received = stats.getTotalProtocolBytesReceived();
		long session_prot_sent = stats.getTotalProtocolBytesSent();
		long session_total_received = stats.getTotalDataBytesReceived() + session_prot_received;
		long session_total_sent = stats.getTotalDataBytesSent() + session_prot_sent;
		float session_perc_received = (float)(session_prot_received * 100L) / (float)(session_total_received != 0L ? session_total_received : 1L);
		float session_perc_sent = (float)(session_prot_sent * 100L) / (float)(session_total_sent != 0L ? session_total_sent : 1L);
		sessionDown.setText((new StringBuilder()).append(DisplayFormatters.formatByteCountToKiBEtc(session_total_received)).append("  (").append(DisplayFormatters.formatByteCountToKiBEtc(session_prot_received)).append(", ").append(formatter.format(session_perc_received)).append("%)").toString());
		sessionUp.setText((new StringBuilder()).append(DisplayFormatters.formatByteCountToKiBEtc(session_total_sent)).append("  (").append(DisplayFormatters.formatByteCountToKiBEtc(session_prot_sent)).append(", ").append(formatter.format(session_perc_sent)).append("%)").toString());
		totalDown.setText(DisplayFormatters.formatByteCountToKiBEtc(totalStats.getDownloadedBytes()));
		totalUp.setText(DisplayFormatters.formatByteCountToKiBEtc(totalStats.getUploadedBytes()));
		sessionTime.setText(DisplayFormatters.formatETA(totalStats.getSessionUpTime()));
		totalTime.setText(DisplayFormatters.formatETA(totalStats.getTotalUpTime()));
		long dl_bytes = totalStats.getDownloadedBytes();
		long t_ratio_raw = (1000L * totalStats.getUploadedBytes()) / (dl_bytes != 0L ? dl_bytes : 1L);
		long s_ratio_raw = (1000L * session_total_sent) / (session_total_received != 0L ? session_total_received : 1L);
		String t_ratio = "";
		String s_ratio = "";
		String partial;
		for (partial = String.valueOf(t_ratio_raw % 1000L); partial.length() < 3; partial = (new StringBuilder()).append("0").append(partial).toString());
		t_ratio = (new StringBuilder()).append(t_ratio_raw / 1000L).append(".").append(partial).toString();
		for (partial = String.valueOf(s_ratio_raw % 1000L); partial.length() < 3; partial = (new StringBuilder()).append("0").append(partial).toString());
		s_ratio = (new StringBuilder()).append(s_ratio_raw / 1000L).append(".").append(partial).toString();
		total_ratio.setText(t_ratio);
		session_ratio.setText(s_ratio);
	}

	private void refreshBlahPanel()
	{
		asn.setText(speedManager.getASN());
		estUpCap.setText(limit_to_text.getLimitText(speedManager.getEstimatedUploadCapacityBytesPerSec()));
		estDownCap.setText(limit_to_text.getLimitText(speedManager.getEstimatedDownloadCapacityBytesPerSec()));
	}

	private void refreshPingPanel()
	{
		SpeedManager speedManager = core.getSpeedManager();
		if (speedManager.isAvailable() && speedManager.isEnabled())
		{
			autoSpeedPanelLayout.topControl = autoSpeedInfoPanel;
			autoSpeedPanel.layout();
			pingGraph.refresh();
			for (int i = 0; i < plot_views.length; i++)
				plot_views[i].refresh();

			for (int i = 0; i < zone_views.length; i++)
				zone_views[i].refresh();

		} else
		{
			autoSpeedPanelLayout.topControl = autoSpeedDisabledPanel;
			autoSpeedPanel.layout();
		}
	}

	public void periodicUpdate()
	{
		if (speedManager.isAvailable() && speedManager.isEnabled())
		{
			SpeedManagerPingSource sources[] = speedManager.getPingSources();
			if (sources.length > 0)
			{
				int pings[] = new int[sources.length];
				for (int i = 0; i < sources.length; i++)
					pings[i] = sources[i].getPingTime();

				pingGraph.addIntsValue(pings);
				for (int i = 0; i < plot_views.length; i++)
					plot_views[i].update();

				for (int i = 0; i < zone_views.length; i++)
					zone_views[i].update();

			}
		}
	}

	public String getData()
	{
		return "TransferStatsView.title.full";
	}

	protected String getMapperTitle(SpeedManagerPingMapper mapper)
	{
		if (mapper.isActive())
		{
			SpeedManagerLimitEstimate up_1 = mapper.getEstimatedUploadLimit(false);
			SpeedManagerLimitEstimate up_2 = mapper.getEstimatedUploadLimit(true);
			SpeedManagerLimitEstimate down_1 = mapper.getEstimatedDownloadLimit(false);
			SpeedManagerLimitEstimate down_2 = mapper.getEstimatedDownloadLimit(true);
			return (new StringBuilder()).append("ul=").append(DisplayFormatters.formatByteCountToKiBEtc(up_1.getBytesPerSec())).append(":").append(DisplayFormatters.formatByteCountToKiBEtc(up_2.getBytesPerSec())).append(",dl=").append(DisplayFormatters.formatByteCountToKiBEtc(down_1.getBytesPerSec())).append(":").append(DisplayFormatters.formatByteCountToKiBEtc(down_2.getBytesPerSec())).append(",mr=").append(DisplayFormatters.formatDecimal(mapper.getCurrentMetricRating(), 2)).toString();
		} else
		{
			return "";
		}
	}
}

⌨️ 快捷键说明

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