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

📄 minibar.java

📁 java 文件下载器。可自定义
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space 
// Source File Name:   MiniBar.java

package org.gudy.azureus2.ui.swt.minibar;

import com.aelitis.azureus.ui.swt.imageloader.ImageLoader;
import java.util.Iterator;
import org.eclipse.swt.events.*;
import org.eclipse.swt.graphics.*;
import org.eclipse.swt.widgets.*;
import org.gudy.azureus2.core3.internat.MessageText;
import org.gudy.azureus2.core3.util.*;
import org.gudy.azureus2.ui.common.util.MenuItemManager;
import org.gudy.azureus2.ui.swt.MenuBuildUtils;
import org.gudy.azureus2.ui.swt.components.shell.ShellFactory;
import org.gudy.azureus2.ui.swt.mainwindow.Colors;

// Referenced classes of package org.gudy.azureus2.ui.swt.minibar:
//			MiniBarManager

public abstract class MiniBar
	implements org.gudy.azureus2.ui.swt.MenuBuildUtils.MenuBuilder
{
	protected static interface ProgressBarText
	{

		public abstract String convert(int i);
	}


	protected Label lDrag;
	protected MiniBar stucked;
	protected Monitor screens[];
	protected int xPressed;
	protected int yPressed;
	protected boolean moving;
	protected int hSize;
	protected Shell splash;
	protected MiniBarManager manager;
	private Font bold_font;
	private boolean constructing;
	private boolean constructed;
	private Menu menu;
	private MouseMoveListener mMoveListener;
	private MouseListener mListener;
	private int xSize;
	private boolean separateDataProt;

	protected MiniBar(MiniBarManager manager)
	{
		bold_font = null;
		constructing = false;
		constructed = false;
		this.manager = manager;
		setPrebuildValues();
		separateDataProt = DisplayFormatters.isDataProtSeparate();
	}

	private void setPrebuildValues()
	{
		constructing = false;
		constructed = false;
		xSize = 0;
		hSize = -1;
	}

	private void assertConstructing()
	{
		if (!constructing)
			throw new RuntimeException("not constructing!");
		else
			return;
	}

	private Font createBoldFont(Font original)
	{
		FontData font_data[] = original.getFontData();
		for (int i = 0; i < font_data.length; i++)
			font_data[i].setStyle(font_data[i].getStyle() | 1);

		return new Font(original.getDevice(), font_data);
	}

	protected final void createGap(int width)
	{
		assertConstructing();
		Label result = new Label(splash, 0);
		result.setBackground(Colors.blues[0]);
		result.setForeground(Colors.blues[9]);
		result.setText("");
		result.addMouseListener(mListener);
		result.addMouseMoveListener(mMoveListener);
		result.setLocation(xSize, 0);
		result.setSize(width, hSize);
		result.setMenu(menu);
		xSize += width;
	}

	protected final void createFixedTextLabel(String msg_key, boolean add_colon, boolean bold)
	{
		assertConstructing();
		Label result = new Label(splash, 0);
		result.setBackground(Colors.blues[0]);
		result.setForeground(Colors.blues[9]);
		result.setText((new StringBuilder()).append(MessageText.getString(msg_key)).append(add_colon ? ":" : "").toString());
		if (bold)
		{
			if (bold_font == null)
				bold_font = createBoldFont(result.getFont());
			result.setFont(bold_font);
		}
		result.addMouseListener(mListener);
		result.addMouseMoveListener(mMoveListener);
		result.pack();
		result.setLocation(xSize, 0);
		result.setMenu(menu);
		if (hSize == -1)
		{
			int hSizeText = result.getSize().y;
			int hSizeImage = lDrag.getSize().y;
			hSize = hSizeText <= hSizeImage ? hSizeImage : hSizeText;
		}
		xSize += result.getSize().x + 3;
	}

	protected final Label createDataLabel(int width, boolean centered)
	{
		assertConstructing();
		Label result = new Label(splash, centered ? 0x1000000 : 0);
		result.setBackground(Colors.blues[0]);
		result.setText("");
		result.addMouseListener(mListener);
		result.addMouseMoveListener(mMoveListener);
		if (hSize == -1)
		{
			throw new RuntimeException("must add fixed text label first!");
		} else
		{
			result.setSize(width, hSize);
			result.setLocation(xSize, 0);
			result.setMenu(menu);
			xSize += width + 3;
			return result;
		}
	}

	protected final Label createDataLabel(int width)
	{
		return createDataLabel(width, false);
	}

	protected final Label createSpeedLabel()
	{
		return createDataLabel(separateDataProt ? 110 : 65, separateDataProt);
	}

	protected void updateSpeedLabel(Label label, long data_rate, long protocol_rate)
	{
		if (separateDataProt)
			label.setText(DisplayFormatters.formatDataProtByteCountToKiBEtcPerSec(data_rate, protocol_rate));
		else
			label.setText(DisplayFormatters.formatByteCountToKiBEtcPerSec(data_rate));
	}

	protected final ProgressBar createProgressBar(int min, int max, int width, final ProgressBarText pbt)
	{
		final ProgressBar result = new ProgressBar(splash, 0x10000);
		result.setBackground(Colors.blues[0]);
		result.setForeground(Colors.blues[2]);
		result.setMinimum(min);
		result.setMaximum(max);
		result.addMouseListener(mListener);
		result.addMouseMoveListener(mMoveListener);
		if (hSize == -1)
			throw new RuntimeException("must add fixed text label first!");
		result.setSize(width, hSize);
		result.setLocation(xSize, 0);
		result.setMenu(menu);
		xSize += width + 3;
		if (pbt != null)
			result.addListener(9, new Listener() {

				final ProgressBarText val$pbt;
				final ProgressBar val$result;
				final MiniBar this$0;

				public void handleEvent(Event event)
				{
					org.eclipse.swt.graphics.Color old = event.gc.getForeground();
					event.gc.setForeground(Colors.black);
					int char_width = event.gc.getFontMetrics().getAverageCharWidth();
					String pb_text = pbt.convert(result.getSelection());
					event.gc.drawText(pb_text, (result.getSize().x - pb_text.length() * char_width) / 2, -1, true);
					event.gc.setForeground(old);
				}

			
			{
				this$0 = MiniBar.this;
				pbt = progressbartext;
				result = progressbar;
				super();
			}
			});
		return result;
	}

	protected final ProgressBar createPercentProgressBar(int width)
	{
		return createProgressBar(0, 1000, width, new ProgressBarText() {

			final MiniBar this$0;

			public String convert(int value)
			{
				return DisplayFormatters.formatPercentFromThousands(value);
			}

			
			{
				this$0 = MiniBar.this;
				super();
			}
		});
	}

	public final void construct(final Shell main)
	{
		if (constructed)
		{
			throw new RuntimeException("already constructed!");
		} else
		{
			constructing = true;
			stucked = null;
			splash = ShellFactory.createShell(16384);
			manager.register(this);
			final DisposeListener mainDisposeListener;
			main.addDisposeListener(mainDisposeListener = new DisposeListener() {

				final MiniBar this$0;

				public void widgetDisposed(DisposeEvent event)
				{
					close();
				}

			
			{
				this$0 = MiniBar.this;
				super();
			}
			});
			splash.addDisposeListener(new DisposeListener() {

				final Shell val$main;
				final DisposeListener val$mainDisposeListener;
				final MiniBar this$0;

				public void widgetDisposed(DisposeEvent e)
				{
					if (main.isDisposed())
					{
						return;
					} else
					{
						main.removeDisposeListener(mainDisposeListener);
						return;
					}
				}

			
			{
				this$0 = MiniBar.this;
				main = shell;
				mainDisposeListener = disposelistener;
				super();
			}
			});
			screens = main.getDisplay().getMonitors();
			build();
			return;
		}
	}

	private void build()
	{
		lDrag = new Label(splash, 0);
		if (!Constants.isOSX)
		{
			lDrag.setImage(ImageLoader.getInstance().getImage("dragger"));
			lDrag.addDisposeListener(new DisposeListener() {

				final MiniBar this$0;

				public void widgetDisposed(DisposeEvent e)
				{
					ImageLoader.getInstance().releaseImage("dragger");
				}

			
			{
				this$0 = MiniBar.this;
				super();
			}
			});
		}
		lDrag.pack();
		xSize = lDrag.getSize().x + 3;
		lDrag.setLocation(0, 0);
		mListener = new MouseAdapter() {

			final MiniBar this$0;

			public void mouseDown(MouseEvent e)
			{
				xPressed = e.x;
				yPressed = e.y;
				moving = true;
			}

⌨️ 快捷键说明

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