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

📄 multitrackerpanel.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:   MultiTrackerPanel.java

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

import java.util.*;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.*;
import org.gudy.azureus2.core3.internat.MessageText;
import org.gudy.azureus2.core3.util.TrackersUtil;
import org.gudy.azureus2.ui.swt.Messages;
import org.gudy.azureus2.ui.swt.wizard.*;

// Referenced classes of package org.gudy.azureus2.ui.swt.maketorrent:
//			DirectoryPanel, NewTorrentWizard, SingleFilePanel, TrackerEditorListener, 
//			WebSeedPanel, MultiTrackerEditor

public class MultiTrackerPanel extends AbstractWizardPanel
	implements TrackerEditorListener
{

	private Combo configList;
	private Tree configDetails;
	private Button btnNew;
	private Button btnEdit;
	private Button btnDelete;

	public MultiTrackerPanel(NewTorrentWizard wizard, AbstractWizardPanel previous)
	{
		super(wizard, previous);
	}

	public void show()
	{
		wizard.setTitle(MessageText.getString("wizard.multitracker.title"));
		wizard.setCurrentInfo("");
		Composite rootPanel = wizard.getPanel();
		GridLayout layout = new GridLayout();
		layout.numColumns = 1;
		rootPanel.setLayout(layout);
		Composite panel = new Composite(rootPanel, 0);
		GridData gridData = new GridData(772);
		panel.setLayoutData(gridData);
		layout = new GridLayout();
		layout.numColumns = 3;
		panel.setLayout(layout);
		Label labelTitle = new Label(panel, 0);
		Messages.setLanguageText(labelTitle, "wizard.multitracker.configuration");
		gridData = new GridData();
		gridData.horizontalSpan = 3;
		labelTitle.setLayoutData(gridData);
		configList = new Combo(panel, 8);
		gridData = new GridData(768);
		gridData.horizontalSpan = 3;
		configList.setLayoutData(gridData);
		configList.addListener(13, new Listener() {

			final MultiTrackerPanel this$0;

			public void handleEvent(Event e)
			{
				updateTrackers();
				refreshDetails();
			}

			
			{
				this$0 = MultiTrackerPanel.this;
				super();
			}
		});
		btnNew = new Button(panel, 8);
		Messages.setLanguageText(btnNew, "wizard.multitracker.new");
		gridData = new GridData();
		gridData.widthHint = 100;
		btnNew.setLayoutData(gridData);
		btnNew.addListener(13, new Listener() );
		btnEdit = new Button(panel, 8);
		Messages.setLanguageText(btnEdit, "wizard.multitracker.edit");
		gridData = new GridData();
		gridData.widthHint = 100;
		btnEdit.setLayoutData(gridData);
		btnEdit.addListener(13, new Listener() {

			final MultiTrackerPanel this$0;

			public void handleEvent(Event e)
			{
				int selection = configList.getSelectionIndex();
				String selected = configList.getItem(selection);
				Map multiTrackers = TrackersUtil.getInstance().getMultiTrackers();
				new MultiTrackerEditor(selected, (List)multiTrackers.get(selected), MultiTrackerPanel.this);
			}

			
			{
				this$0 = MultiTrackerPanel.this;
				super();
			}
		});
		btnDelete = new Button(panel, 8);
		Messages.setLanguageText(btnDelete, "wizard.multitracker.delete");
		gridData = new GridData(128);
		gridData.widthHint = 100;
		btnDelete.setLayoutData(gridData);
		btnDelete.addListener(13, new Listener() {

			final MultiTrackerPanel this$0;

			public void handleEvent(Event e)
			{
				int selection = configList.getSelectionIndex();
				String selected = configList.getItem(selection);
				TrackersUtil.getInstance().removeMultiTracker(selected);
				refreshList("");
				refreshDetails();
				setEditDeleteEnable();
			}

			
			{
				this$0 = MultiTrackerPanel.this;
				super();
			}
		});
		Label labelSeparator = new Label(panel, 258);
		gridData = new GridData(768);
		gridData.horizontalSpan = 3;
		labelSeparator.setLayoutData(gridData);
		configDetails = new Tree(panel, 2048);
		gridData = new GridData(768);
		gridData.heightHint = 150;
		gridData.horizontalSpan = 3;
		configDetails.setLayoutData(gridData);
		refreshList(((NewTorrentWizard)wizard).multiTrackerConfig);
		refreshDetails();
		setEditDeleteEnable();
	}

	public IWizardPanel getNextPanel()
	{
		if (((NewTorrentWizard)wizard).useWebSeed)
			return new WebSeedPanel((NewTorrentWizard)wizard, this);
		if (((NewTorrentWizard)wizard).create_from_dir)
			return new DirectoryPanel((NewTorrentWizard)wizard, this);
		else
			return new SingleFilePanel((NewTorrentWizard)wizard, this);
	}

	public boolean isNextEnabled()
	{
		return true;
	}

	void refreshDetails()
	{
		configDetails.removeAll();
		List trackers = ((NewTorrentWizard)wizard).trackers;
		TreeItem itemRoot;
		for (Iterator iter = trackers.iterator(); iter.hasNext(); itemRoot.setExpanded(true))
		{
			List trackerGroup = (List)iter.next();
			itemRoot = new TreeItem(configDetails, 0);
			Messages.setLanguageText(itemRoot, "wizard.multitracker.group");
			String url;
			for (Iterator iter2 = trackerGroup.iterator(); iter2.hasNext(); (new TreeItem(itemRoot, 0)).setText(url))
				url = (String)iter2.next();

		}

	}

	void setEditDeleteEnable()
	{
		if (configList.getItemCount() > 0)
		{
			btnEdit.setEnabled(true);
			btnDelete.setEnabled(true);
		} else
		{
			btnEdit.setEnabled(false);
			btnDelete.setEnabled(false);
		}
	}

	public void trackersChanged(String oldName, String newName, List trackers)
	{
		TrackersUtil util = TrackersUtil.getInstance();
		if (oldName != null && !oldName.equals(newName))
			util.removeMultiTracker(oldName);
		util.addMultiTracker(newName, trackers);
		refreshList(newName);
		refreshDetails();
		setEditDeleteEnable();
	}

	private void refreshList(String toBeSelected)
	{
		Map multiTrackers = TrackersUtil.getInstance().getMultiTrackers();
		configList.removeAll();
		for (Iterator iter = multiTrackers.keySet().iterator(); iter.hasNext(); configList.add((String)iter.next()));
		int selection = configList.indexOf(toBeSelected);
		if (selection != -1)
			configList.select(selection);
		else
		if (configList.getItemCount() > 0)
			configList.select(0);
		updateTrackers();
	}

	private void updateTrackers()
	{
		int selection = configList.getSelectionIndex();
		if (selection == -1)
		{
			List group = new ArrayList();
			List tracker = new ArrayList();
			tracker.add(((NewTorrentWizard)wizard).trackerURL);
			group.add(tracker);
			((NewTorrentWizard)wizard).trackers = group;
			((NewTorrentWizard)wizard).multiTrackerConfig = "";
			setNext();
			return;
		} else
		{
			String selected = configList.getItem(selection);
			((NewTorrentWizard)wizard).multiTrackerConfig = selected;
			Map multiTrackers = TrackersUtil.getInstance().getMultiTrackers();
			((NewTorrentWizard)wizard).trackers = (List)multiTrackers.get(selected);
			setNext();
			return;
		}
	}

	private void setNext()
	{
		String trackerUrl = ((NewTorrentWizard)wizard).trackerURL;
		List groups = ((NewTorrentWizard)wizard).trackers;
		Iterator iterGroups = groups.iterator();
label0:
		do
			if (iterGroups.hasNext())
			{
				List trackers = (List)iterGroups.next();
				Iterator iterTrackers = trackers.iterator();
				String tracker;
				do
				{
					if (!iterTrackers.hasNext())
						continue label0;
					tracker = (String)iterTrackers.next();
				} while (!trackerUrl.equals(tracker));
				break;
			} else
			{
				wizard.setNextEnabled(false);
				wizard.setErrorMessage(MessageText.getString("wizard.multitracker.noannounce"));
				return;
			}
		while (true);
		wizard.setNextEnabled(true);
		wizard.setErrorMessage("");
	}




}

⌨️ 快捷键说明

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