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

📄 linkarea.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:   LinkArea.java

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

import java.util.ArrayList;
import java.util.List;
import org.eclipse.swt.custom.StyleRange;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.graphics.Cursor;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.*;
import org.gudy.azureus2.core3.html.HTMLUtils;
import org.gudy.azureus2.core3.util.Debug;
import org.gudy.azureus2.ui.swt.Utils;
import org.gudy.azureus2.ui.swt.mainwindow.Colors;

public class LinkArea
{
	public static class linkInfo
	{

		int ofsStart;
		int ofsEnd;
		String url;

		linkInfo(int s, int e, String url)
		{
			ofsStart = s;
			ofsEnd = e;
			this.url = url;
		}
	}


	private StyledText styled_text;
	private ArrayList links;
	private int ofs;
	private String relative_url_base;

	public LinkArea(Composite comp)
	{
		links = new ArrayList();
		relative_url_base = "";
		styled_text = new StyledText(comp, 2824);
		styled_text.setWordWrap(true);
		styled_text.addListener(4, new Listener() {

			final LinkArea this$0;

			public void handleEvent(Event event)
			{
				if (links.size() == 0)
					return;
				try
				{
					int ofs = styled_text.getOffsetAtLocation(new Point(event.x, event.y));
					int i = 0;
					do
					{
						if (i >= links.size())
							break;
						linkInfo linkInfo = (linkInfo)links.get(i);
						if (ofs >= linkInfo.ofsStart && ofs <= linkInfo.ofsEnd)
						{
							Utils.launch(linkInfo.url);
							break;
						}
						i++;
					} while (true);
				}
				catch (Exception e) { }
			}

			
			{
				this$0 = LinkArea.this;
				Object();
			}
		});
		final Cursor handCursor = new Cursor(comp.getDisplay(), 21);
		styled_text.addListener(5, new Listener() {

			Cursor curCursor;
			final Cursor val$handCursor;
			final LinkArea this$0;

			public void handleEvent(Event event)
			{
				if (links.size() == 0)
					return;
				boolean onLink = false;
				try
				{
					int ofs = styled_text.getOffsetAtLocation(new Point(event.x, event.y));
					int i = 0;
					do
					{
						if (i >= links.size())
							break;
						linkInfo linkInfo = (linkInfo)links.get(i);
						if (ofs >= linkInfo.ofsStart && ofs <= linkInfo.ofsEnd)
						{
							onLink = true;
							break;
						}
						i++;
					} while (true);
				}
				catch (Exception e) { }
				try
				{
					Cursor cursor = onLink ? handCursor : null;
					if (curCursor != cursor)
					{
						styled_text.setCursor(cursor);
						curCursor = cursor;
					}
				}
				catch (Exception e) { }
			}

			
			{
				this$0 = LinkArea.this;
				handCursor = cursor;
				Object();
				curCursor = null;
			}
		});
		styled_text.addListener(12, new Listener() {

			final Cursor val$handCursor;
			final LinkArea this$0;

			public void handleEvent(Event event)
			{
				styled_text.setCursor(null);
				handCursor.dispose();
			}

			
			{
				this$0 = LinkArea.this;
				handCursor = cursor;
				Object();
			}
		});
	}

	public Composite getComponent()
	{
		return styled_text;
	}

	public void reset()
	{
		if (styled_text.isDisposed())
		{
			return;
		} else
		{
			ofs = 0;
			styled_text.setText("");
			links.clear();
			return;
		}
	}

	public void setRelativeURLBase(String str)
	{
		relative_url_base = str;
	}

	public void addLine(String line)
	{
		if (styled_text.isDisposed())
			return;
		try
		{
			line = HTMLUtils.expand(line);
			Object url_details[] = HTMLUtils.getLinks(line);
			String modified_line = (String)url_details[0];
			styled_text.append((new StringBuilder()).append(modified_line).append("\n").toString());
			List urls = (List)url_details[1];
			for (int i = 0; i < urls.size(); i++)
			{
				Object entry[] = (Object[])(Object[])urls.get(i);
				String url = (String)entry[0];
				int det[] = (int[])(int[])entry[1];
				if (!url.toLowerCase().startsWith("http") && relative_url_base.length() > 0)
					url = (new StringBuilder()).append(relative_url_base).append(url).toString();
				linkInfo info = new linkInfo(ofs + det[0], ofs + det[0] + det[1], url);
				links.add(info);
				StyleRange sr = new StyleRange();
				sr.start = info.ofsStart;
				sr.length = info.ofsEnd - info.ofsStart;
				sr.underline = true;
				sr.foreground = Colors.blue;
				styled_text.setStyleRange(sr);
			}

			ofs += modified_line.length() + 1;
		}
		catch (Throwable e)
		{
			Debug.printStackTrace(e);
			styled_text.append((new StringBuilder()).append(line).append("\n").toString());
		}
	}


}

⌨️ 快捷键说明

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