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

📄 webseedseditor.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:   WebSeedsEditor.java

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

import java.net.URL;
import java.util.*;
import org.eclipse.swt.custom.TreeEditor;
import org.eclipse.swt.events.*;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.*;
import org.gudy.azureus2.ui.swt.Messages;
import org.gudy.azureus2.ui.swt.Utils;
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.maketorrent:
//			WebSeedsEditorListener

public class WebSeedsEditor
{

	WebSeedsEditorListener listener;
	String oldName;
	String currentName;
	boolean anonymous;
	Map webseeds;
	Display display;
	Shell shell;
	Text textName;
	Tree treeGroups;
	TreeEditor editor;
	TreeItem itemEdited;
	Button btnSave;
	Button btnCancel;
	Menu menu;

	public WebSeedsEditor(String name, Map webseeds, WebSeedsEditorListener listener)
	{
		this(name, webseeds, listener, false);
	}

	public WebSeedsEditor(String name, Map webseeds, WebSeedsEditorListener listener, boolean _anonymous)
	{
		oldName = name;
		if (name != null)
			currentName = name;
		else
			currentName = "";
		this.listener = listener;
		anonymous = _anonymous;
		this.webseeds = new HashMap(webseeds);
		createWindow();
	}

	private void createWindow()
	{
		display = Display.getCurrent();
		shell = ShellFactory.createShell(0x10860);
		Messages.setLanguageText(shell, "wizard.multitracker.edit.title");
		Utils.setShellIcon(shell);
		GridLayout layout = new GridLayout();
		layout.numColumns = 3;
		shell.setLayout(layout);
		GridData gridData;
		if (!anonymous)
		{
			Label labelName = new Label(shell, 0);
			Messages.setLanguageText(labelName, "wizard.multitracker.edit.name");
			textName = new Text(shell, 2048);
			textName.setText(currentName);
			gridData = new GridData(768);
			gridData.horizontalSpan = 2;
			textName.setLayoutData(gridData);
			textName.addModifyListener(new ModifyListener() {

				final WebSeedsEditor this$0;

				public void modifyText(ModifyEvent arg0)
				{
					currentName = textName.getText();
					computeSaveEnable();
				}

			
			{
				this$0 = WebSeedsEditor.this;
				super();
			}
			});
		}
		treeGroups = new Tree(shell, 2048);
		gridData = new GridData(1808);
		gridData.horizontalSpan = 3;
		gridData.heightHint = 150;
		treeGroups.setLayoutData(gridData);
		treeGroups.addMouseListener(new MouseAdapter() {

			final WebSeedsEditor this$0;

			public void mouseDoubleClick(MouseEvent arg0)
			{
				if (treeGroups.getSelectionCount() == 1)
				{
					TreeItem treeItem = treeGroups.getSelection()[0];
					String type = (String)treeItem.getData("type");
					if (type.equals("tracker"))
						editTreeItem(treeItem);
				}
			}

			
			{
				this$0 = WebSeedsEditor.this;
				super();
			}
		});
		Label labelSeparator = new Label(shell, 258);
		gridData = new GridData(768);
		gridData.horizontalSpan = 3;
		labelSeparator.setLayoutData(gridData);
		Label label = new Label(shell, 0);
		gridData = new GridData(768);
		label.setLayoutData(gridData);
		Composite cButtons = new Composite(shell, 0);
		gridData = new GridData(768);
		gridData.horizontalSpan = 2;
		cButtons.setLayoutData(gridData);
		GridLayout layoutButtons = new GridLayout();
		layoutButtons.numColumns = 3;
		cButtons.setLayout(layoutButtons);
		label = new Label(cButtons, 0);
		gridData = new GridData(768);
		label.setLayoutData(gridData);
		btnSave = new Button(cButtons, 8);
		gridData = new GridData();
		gridData.widthHint = 70;
		gridData.horizontalAlignment = 3;
		btnSave.setLayoutData(gridData);
		Messages.setLanguageText(btnSave, "wizard.multitracker.edit.save");
		btnSave.addListener(13, new Listener() {

			final WebSeedsEditor this$0;

			public void handleEvent(Event e)
			{
				update();
				shell.dispose();
			}

			
			{
				this$0 = WebSeedsEditor.this;
				super();
			}
		});
		btnCancel = new Button(cButtons, 8);
		gridData = new GridData();
		gridData.horizontalAlignment = 3;
		gridData.widthHint = 70;
		btnCancel.setLayoutData(gridData);
		Messages.setLanguageText(btnCancel, "Button.cancel");
		btnCancel.addListener(13, new Listener() {

			final WebSeedsEditor this$0;

			public void handleEvent(Event e)
			{
				shell.dispose();
			}

			
			{
				this$0 = WebSeedsEditor.this;
				super();
			}
		});
		shell.setDefaultButton(btnSave);
		shell.addListener(31, new Listener() {

			final WebSeedsEditor this$0;

			public void handleEvent(Event e)
			{
				if (e.character == '\033')
					shell.dispose();
			}

			
			{
				this$0 = WebSeedsEditor.this;
				super();
			}
		});
		computeSaveEnable();
		refresh();
		constructMenu();
		editor = new TreeEditor(treeGroups);
		treeGroups.addSelectionListener(new SelectionAdapter() {

			final WebSeedsEditor this$0;

			public void widgetSelected(SelectionEvent arg0)
			{
				if (itemEdited != null && !editor.getEditor().isDisposed())
					itemEdited.setText(((Text)editor.getEditor()).getText());
				removeEditor();
			}

			
			{
				this$0 = WebSeedsEditor.this;
				super();
			}
		});
		org.eclipse.swt.graphics.Point size = shell.computeSize(400, -1);
		shell.setSize(size);
		Utils.centreWindow(shell);
		shell.open();
	}

	private void update()
	{
		webseeds = new HashMap();
		TreeItem groupItems[] = treeGroups.getItems();
		for (int i = 0; i < groupItems.length; i++)
		{
			TreeItem group = groupItems[i];
			TreeItem trackerItems[] = group.getItems();
			List groupList = new ArrayList(group.getItemCount());
			for (int j = 0; j < trackerItems.length; j++)
				groupList.add(trackerItems[j].getText());

			webseeds.put(group.getText(), groupList);
		}

		listener.webSeedsChanged(oldName, currentName, webseeds);
		oldName = currentName;
	}

	private void computeSaveEnable()
	{
		boolean enabled = anonymous || !"".equals(currentName);
		if (enabled)
		{
			TreeItem groupItems[] = treeGroups.getItems();
label0:
			for (int i = 0; i < groupItems.length; i++)
			{
				TreeItem group = groupItems[i];
				TreeItem trackerItems[] = group.getItems();
				int j = 0;
				do
				{
					if (j >= trackerItems.length)
						continue label0;
					if (!validURL(trackerItems[j].getText()))
					{
						enabled = false;
						break label0;
					}
					j++;
				} while (true);
			}

		}
		if (enabled != btnSave.getEnabled())
			btnSave.setEnabled(enabled);
	}

	private void refresh()
	{
		treeGroups.removeAll();
		for (Iterator iter = webseeds.entrySet().iterator(); iter.hasNext();)
		{
			java.util.Map.Entry entry = (java.util.Map.Entry)iter.next();
			TreeItem itemRoot = newGroup((String)entry.getKey());
			Iterator iter2 = ((List)entry.getValue()).iterator();
			while (iter2.hasNext()) 
			{
				String url = (String)iter2.next();
				newTracker(itemRoot, url);
			}
		}

	}

	private void constructMenu()
	{
		menu = new Menu(shell, 0);
		menu.addListener(22, new Listener() {

			final WebSeedsEditor this$0;

			public void handleEvent(Event e)
			{
				MenuItem items[] = menu.getItems();
				for (int i = 0; i < items.length; i++)
					items[i].dispose();

				final TreeItem treeItem = treeGroups.getSelection()[0];
				String type = (String)treeItem.getData("type");
				if (type.equals("tracker"))
				{
					MenuItem item = new MenuItem(menu, 0);
					Messages.setLanguageText(item, "wizard.multitracker.edit.deletetracker");
					item.addListener(13, new Listener() {

						final TreeItem val$treeItem;
						final 7 this$1;

						public void handleEvent(Event arg0)
						{
							treeItem.dispose();
						}

					
					{
						this$1 = 7.this;
						treeItem = treeitem;
						super();
					}
					});
					item = new MenuItem(menu, 0);
					Messages.setLanguageText(item, "wizard.multitracker.edit.edit");
					item.addListener(13, new Listener() {

						final TreeItem val$treeItem;
						final 7 this$1;

						public void handleEvent(Event arg0)
						{
							editTreeItem(treeItem);
						}

					
					{
						this$1 = 7.this;
						treeItem = treeitem;
						super();
					}
					});
				} else
				if (type.equals("group"))
				{
					MenuItem item = new MenuItem(menu, 0);
					Messages.setLanguageText(item, "wizard.multitracker.edit.newtracker");
					item.addListener(13, new Listener() {

						final TreeItem val$treeItem;
						final 7 this$1;

						public void handleEvent(Event arg0)
						{
							TreeItem itemTracker = newTracker(treeItem, "http://");
							editTreeItem(itemTracker);
						}

					
					{
						this$1 = 7.this;
						treeItem = treeitem;
						super();
					}
					});
				}
			}

			
			{
				this$0 = WebSeedsEditor.this;
				super();
			}
		});
		treeGroups.setMenu(menu);
	}

	private void editTreeItem(final TreeItem item)
	{
		Control oldEditor = editor.getEditor();
		if (oldEditor != null)
			oldEditor.dispose();
		itemEdited = item;
		final Text text = new Text(treeGroups, 2048);
		text.setText(item.getText());
		text.setForeground(item.getForeground());
		text.setSelection(item.getText().length());
		text.addListener(14, new Listener() {

			final Text val$text;
			final TreeItem val$item;
			final WebSeedsEditor this$0;

			public void handleEvent(Event e)
			{
				String url = text.getText();
				if (validURL(url))
				{
					text.setForeground(null);
					item.setForeground(null);
				} else
				{
					text.setForeground(Colors.colorError);
					item.setForeground(Colors.colorError);
				}
				item.setText(url);
				computeSaveEnable();
				removeEditor();
			}

			
			{
				this$0 = WebSeedsEditor.this;
				text = text1;
				item = treeitem;
				super();
			}
		});
		text.addListener(24, new Listener() {

			final Text val$text;
			final TreeItem val$item;
			final WebSeedsEditor this$0;

			public void handleEvent(Event e)
			{
				String url = text.getText();
				if (validURL(url))
				{
					text.setForeground(null);
					item.setForeground(null);
				} else
				{
					text.setForeground(Colors.colorError);
					item.setForeground(Colors.colorError);
				}
				item.setText(url);
				computeSaveEnable();
			}

			
			{
				this$0 = WebSeedsEditor.this;
				text = text1;
				item = treeitem;
				super();
			}
		});
		text.addKeyListener(new KeyAdapter() {

			final WebSeedsEditor this$0;

			public void keyReleased(KeyEvent keyEvent)
			{
				if (keyEvent.character == '\033')
					removeEditor();
			}

			
			{
				this$0 = WebSeedsEditor.this;
				super();
			}
		});
		editor.horizontalAlignment = 16384;
		editor.grabHorizontal = true;
		editor.minimumWidth = 50;
		Rectangle r = text.computeTrim(0, 0, 100, text.getLineHeight());
		editor.minimumHeight = r.height;
		editor.setEditor(text, item);
		text.setFocus();
	}

	private boolean validURL(String str)
	{
		String prot;
		URL url = new URL(str);
		prot = url.getProtocol().toLowerCase();
		if (prot.equals("http"))
			return true;
		return false;
		Throwable e;
		e;
		return false;
	}

	private void removeEditor()
	{
		Control oldEditor = editor.getEditor();
		if (oldEditor != null)
			oldEditor.dispose();
	}

	private TreeItem newGroup(String name)
	{
		TreeItem item = new TreeItem(treeGroups, 0);
		item.setData("type", "group");
		item.setText(name);
		return item;
	}

	private TreeItem newTracker(TreeItem root, String url)
	{
		TreeItem item = new TreeItem(root, 0);
		item.setText(url);
		item.setData("type", "tracker");
		root.setExpanded(true);
		return item;
	}






}

⌨️ 快捷键说明

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