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

📄 ui.java

📁 java 文件下载器。可自定义
💻 JAVA
字号:
// 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:   UI.java

package org.gudy.azureus2.ui.console;

import com.aelitis.azureus.core.AzureusCore;
import java.io.File;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.URL;
import org.apache.log4j.Logger;
import org.gudy.azureus2.core3.config.COConfigurationManager;
import org.gudy.azureus2.core3.global.GlobalManager;
import org.gudy.azureus2.core3.torrentdownloader.TorrentDownloaderFactory;
import org.gudy.azureus2.core3.util.TorrentUtils;
import org.gudy.azureus2.plugins.PluginInterface;
import org.gudy.azureus2.plugins.PluginManager;
import org.gudy.azureus2.plugins.ui.UIException;
import org.gudy.azureus2.plugins.ui.UIInputReceiver;
import org.gudy.azureus2.plugins.ui.UIInstance;
import org.gudy.azureus2.plugins.ui.UIInstanceFactory;
import org.gudy.azureus2.plugins.ui.UIManager;
import org.gudy.azureus2.plugins.ui.UIManagerEvent;
import org.gudy.azureus2.plugins.ui.UIManagerEventListener;
import org.gudy.azureus2.plugins.ui.UIMessage;
import org.gudy.azureus2.ui.common.IUserInterface;
import org.gudy.azureus2.ui.common.UIConst;
import org.gudy.azureus2.ui.common.UITemplateHeadless;
import org.gudy.azureus2.ui.console.multiuser.UserManager;
import org.gudy.azureus2.ui.console.multiuser.commands.UserCommand;

// Referenced classes of package org.gudy.azureus2.ui.console:
//			ConsoleInput

public class UI extends UITemplateHeadless
	implements IUserInterface, UIInstanceFactory, UIInstance, UIManagerEventListener
{

	private ConsoleInput console;

	public UI()
	{
		console = null;
	}

	public void init(boolean first, boolean others)
	{
		super.init(first, others);
		System.setProperty("java.awt.headless", "true");
	}

	public String[] processArgs(String args[])
	{
		return args;
	}

	public void startUI()
	{
		super.startUI();
		boolean created_console = false;
		if (!isStarted() || console == null || !console.isAlive())
		{
			System.out.println();
			PrintStream this_out = System.out;
			if (!"on".equals(System.getProperty("azureus.console.noisy")))
			{
				PrintStream ps = new PrintStream(new OutputStream() {

					final UI this$0;

					public void write(int i)
					{
					}

					public void write(byte abyte0[], int i, int j)
					{
					}

			
			{
				this$0 = UI.this;
				super();
			}
				});
				System.setOut(ps);
				System.setErr(ps);
				org.gudy.azureus2.core3.logging.Logger.allowLoggingToStdErr(false);
			}
			console = new ConsoleInput("Main", UIConst.getAzureusCore(), System.in, this_out, Boolean.TRUE);
			console.printwelcome();
			console.printconsolehelp();
			created_console = true;
		}
		PluginInterface pi = UIConst.getAzureusCore().getPluginManager().getDefaultPluginInterface();
		UIManager ui_manager = pi.getUIManager();
		ui_manager.addUIEventListener(this);
		try
		{
			ui_manager.attachUI(this);
		}
		catch (UIException e)
		{
			e.printStackTrace();
		}
		TorrentDownloaderFactory.initManager(UIConst.getGlobalManager(), true, true, COConfigurationManager.getStringParameter("Default save path"));
		if (created_console && System.getProperty("azureus.console.multiuser") != null)
		{
			UserManager manager = UserManager.getInstance(pi);
			console.registerCommand(new UserCommand(manager));
		}
	}

	public void openRemoteTorrent(String url)
	{
		if (console != null)
		{
			console.downloadRemoteTorrent(url);
			return;
		} else
		{
			console.out.println((new StringBuilder()).append("Downloading torrent from url: ").append(url).toString());
			TorrentDownloaderFactory.downloadManaged(url);
			return;
		}
	}

	public void openTorrent(String fileName)
	{
		if (console != null)
		{
			console.downloadTorrent(fileName);
			return;
		}
		if (fileName.toUpperCase().startsWith("HTTP://") || fileName.toUpperCase().startsWith("HTTPS://"))
		{
			console.out.println((new StringBuilder()).append("Downloading torrent from url: ").append(fileName).toString());
			TorrentDownloaderFactory.downloadManaged(fileName);
			return;
		}
		try
		{
			if (!TorrentUtils.isTorrentFile(fileName))
			{
				Logger.getLogger("azureus2.ui.console").error((new StringBuilder()).append(fileName).append(" doesn't seem to be a torrent file. Not added.").toString());
				return;
			}
		}
		catch (Exception e)
		{
			Logger.getLogger("azureus2.ui.console").error((new StringBuilder()).append("Something is wrong with ").append(fileName).append(". Not added. (Reason: ").append(e.getMessage()).append(")").toString());
			return;
		}
		if (UIConst.getGlobalManager() != null)
			try
			{
				String downloadDir = COConfigurationManager.getDirectoryParameter("Default save path");
				console.out.println((new StringBuilder()).append("Adding torrent: ").append(fileName).append(" and saving to ").append(downloadDir).toString());
				UIConst.getGlobalManager().addDownloadManager(fileName, downloadDir);
			}
			catch (Exception e)
			{
				Logger.getLogger("azureus2.ui.console").error((new StringBuilder()).append("The torrent ").append(fileName).append(" could not be added.").toString(), e);
			}
	}

	public UIInstance getInstance(PluginInterface plugin_interface)
	{
		return this;
	}

	public void detach()
		throws UIException
	{
	}

	public boolean eventOccurred(UIManagerEvent event)
	{
		Object data = event.getData();
		switch (event.getType())
		{
		case 4: // '\004'
		case 5: // '\005'
		case 6: // '\006'
		case 7: // '\007'
		case 8: // '\b'
		case 9: // '\t'
		case 11: // '\013'
		case 12: // '\f'
		default:
			break;

		case 1: // '\001'
			String bits[] = (String[])(String[])data;
			for (int i = 0; i < bits.length; i++)
				console.out.println(bits[i]);

			break;

		case 2: // '\002'
			openTorrent(((File)data).toString());
			break;

		case 3: // '\003'
			openRemoteTorrent(((URL)((Object[])(Object[])data)[0]).toExternalForm());
			break;

		case 10: // '\n'
			return false;

		case 13: // '\r'
			event.setResult(new Boolean(false));
			break;
		}
		return true;
	}

	public int promptUser(String title, String text, String options[], int defaultOption)
	{
		console.out.println((new StringBuilder()).append("Prompt: ").append(title).toString());
		console.out.println(text);
		String sOptions = "Options: ";
		for (int i = 0; i < options.length; i++)
		{
			if (i != 0)
				sOptions = (new StringBuilder()).append(sOptions).append(", ").toString();
			sOptions = (new StringBuilder()).append(sOptions).append("[").append(i).append("]").append(options[i]).toString();
		}

		console.out.println(sOptions);
		console.out.println((new StringBuilder()).append("WARNING: Option [").append(defaultOption).append("] automatically selected. ").append("Console UI devs need to implement this function!").toString());
		return defaultOption;
	}

	public UIInputReceiver getInputReceiver()
	{
		return null;
	}

	public UIMessage createMessage()
	{
		return null;
	}
}

⌨️ 快捷键说明

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