📄 ui.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 + -