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

📄 mysharesview.java

📁 java 文件下载器。可自定义
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
// 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:   MySharesView.java

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

import com.aelitis.azureus.core.AzureusCore;
import com.aelitis.azureus.core.AzureusCoreFactory;
import com.aelitis.azureus.ui.UIFunctions;
import com.aelitis.azureus.ui.UIFunctionsManager;
import com.aelitis.azureus.ui.common.table.TableColumnCore;
import com.aelitis.azureus.ui.common.table.TableGroupRowRunner;
import com.aelitis.azureus.ui.common.table.TableLifeCycleListener;
import com.aelitis.azureus.ui.common.table.TableRefreshListener;
import com.aelitis.azureus.ui.common.table.TableRowCore;
import com.aelitis.azureus.ui.common.table.TableSelectionAdapter;
import com.aelitis.azureus.ui.common.table.TableSelectionListener;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.gudy.azureus2.core3.category.Category;
import org.gudy.azureus2.core3.category.CategoryManager;
import org.gudy.azureus2.core3.download.DownloadManager;
import org.gudy.azureus2.core3.global.GlobalManager;
import org.gudy.azureus2.core3.torrent.TOTorrent;
import org.gudy.azureus2.core3.util.Debug;
import org.gudy.azureus2.plugins.PluginInterface;
import org.gudy.azureus2.plugins.PluginManager;
import org.gudy.azureus2.plugins.download.Download;
import org.gudy.azureus2.plugins.sharing.ShareException;
import org.gudy.azureus2.plugins.sharing.ShareItem;
import org.gudy.azureus2.plugins.sharing.ShareManager;
import org.gudy.azureus2.plugins.sharing.ShareManagerListener;
import org.gudy.azureus2.plugins.sharing.ShareResource;
import org.gudy.azureus2.plugins.sharing.ShareResourceDir;
import org.gudy.azureus2.plugins.sharing.ShareResourceDirContents;
import org.gudy.azureus2.plugins.sharing.ShareResourceFile;
import org.gudy.azureus2.plugins.torrent.Torrent;
import org.gudy.azureus2.plugins.torrent.TorrentAttribute;
import org.gudy.azureus2.plugins.tracker.Tracker;
import org.gudy.azureus2.plugins.tracker.TrackerTorrent;
import org.gudy.azureus2.pluginsimpl.local.torrent.TorrentManagerImpl;
import org.gudy.azureus2.ui.swt.Alerts;
import org.gudy.azureus2.ui.swt.CategoryAdderWindow;
import org.gudy.azureus2.ui.swt.Messages;
import org.gudy.azureus2.ui.swt.Utils;
import org.gudy.azureus2.ui.swt.views.table.TableViewSWTMenuFillListener;
import org.gudy.azureus2.ui.swt.views.table.impl.TableViewSWTImpl;
import org.gudy.azureus2.ui.swt.views.table.impl.TableViewTab;
import org.gudy.azureus2.ui.swt.views.tableitems.myshares.CategoryItem;
import org.gudy.azureus2.ui.swt.views.tableitems.myshares.NameItem;
import org.gudy.azureus2.ui.swt.views.tableitems.myshares.TypeItem;

public class MySharesView extends TableViewTab
	implements ShareManagerListener, TableLifeCycleListener, TableViewSWTMenuFillListener, TableRefreshListener, TableSelectionListener
{

	private static final TableColumnCore basicItems[] = {
		new NameItem(), new TypeItem(), new CategoryItem()
	};
	protected static final TorrentAttribute category_attribute = TorrentManagerImpl.getSingleton().getAttribute("Category");
	private AzureusCore azureus_core;
	private GlobalManager global_manager;
	private Menu menuCategory;
	private TableViewSWTImpl tv;
	private boolean start;
	private boolean stop;
	private boolean remove;

	public MySharesView()
	{
		this(AzureusCoreFactory.getSingleton());
	}

	public MySharesView(AzureusCore _azureus_core)
	{
		tv = new TableViewSWTImpl("MyShares", "MySharesView", basicItems, "name", 0x10010802);
		setTableView(tv);
		azureus_core = _azureus_core;
		global_manager = azureus_core.getGlobalManager();
		tv.addSelectionListener(new TableSelectionAdapter() {

			final MySharesView this$0;

			public void defaultSelected(TableRowCore rows[], int stateMask)
			{
				MySharesView.this.defaultSelected(rows);
			}

			
			{
				this$0 = MySharesView.this;
				super();
			}
		}, false);
		tv.addLifeCycleListener(this);
		tv.addMenuFillListener(this);
		tv.addRefreshListener(this, false);
		tv.addSelectionListener(this, false);
	}

	private void defaultSelected(TableRowCore rows[])
	{
		ShareResource share = (ShareResource)tv.getFirstSelectedDataSource();
		if (share == null)
			return;
		List dms = global_manager.getDownloadManagers();
		for (int i = 0; i < dms.size(); i++)
		{
			DownloadManager dm = (DownloadManager)dms.get(i);
			try
			{
				byte share_hash[] = null;
				if (share.getType() == 2)
					share_hash = ((ShareResourceDir)share).getItem().getTorrent().getHash();
				else
				if (share.getType() == 1)
					share_hash = ((ShareResourceFile)share).getItem().getTorrent().getHash();
				if (!Arrays.equals(share_hash, dm.getTorrent().getHash()))
					continue;
				UIFunctions uiFunctions = UIFunctionsManager.getUIFunctions();
				if (uiFunctions != null)
					uiFunctions.openView(5, dm);
				break;
			}
			catch (Throwable e)
			{
				Debug.printStackTrace(e);
			}
		}

	}

	public void tableViewInitialized()
	{
		createRows();
	}

	public void tableViewDestroyed()
	{
		try
		{
			azureus_core.getPluginManager().getDefaultPluginInterface().getShareManager().removeListener(this);
		}
		catch (ShareException e)
		{
			Debug.printStackTrace(e);
		}
	}

	private void createRows()
	{
		try
		{
			ShareManager sm = azureus_core.getPluginManager().getDefaultPluginInterface().getShareManager();
			ShareResource shares[] = sm.getShares();
			for (int i = 0; i < shares.length; i++)
				resourceAdded(shares[i]);

			sm.addListener(this);
		}
		catch (ShareException e)
		{
			Debug.printStackTrace(e);
		}
	}

	public void fillMenu(Menu menu)
	{
		org.eclipse.swt.widgets.Shell shell = menu.getShell();
		menuCategory = new Menu(shell, 4);
		MenuItem itemCategory = new MenuItem(menu, 64);
		Messages.setLanguageText(itemCategory, "MyTorrentsView.menu.setCategory");
		itemCategory.setMenu(menuCategory);
		addCategorySubMenu();
		new MenuItem(menu, 2);
		MenuItem itemRemove = new MenuItem(menu, 8);
		Messages.setLanguageText(itemRemove, "MySharesView.menu.remove");
		Utils.setMenuItemImage(itemRemove, "delete");
		Object shares[] = tv.getSelectedDataSources().toArray();
		itemRemove.setEnabled(shares.length > 0);
		itemRemove.addListener(13, new Listener() {

			final MySharesView this$0;

			public void handleEvent(Event e)
			{
				removeSelectedShares();
			}

			
			{
				this$0 = MySharesView.this;
				super();
			}
		});
		new MenuItem(menu, 2);
	}

	public void resourceAdded(ShareResource resource)
	{
		tv.addDataSource(resource);
	}

	public void resourceModified(ShareResource shareresource)
	{
	}

	public void resourceDeleted(ShareResource resource)
	{
		tv.removeDataSource(resource);
	}

	public void reportProgress(int i)
	{
	}

	public void reportCurrentTask(String s)
	{
	}

	public void tableRefresh()
	{
		computePossibleActions();
		UIFunctions uiFunctions = UIFunctionsManager.getUIFunctions();
		if (uiFunctions != null)
			uiFunctions.refreshIconBar();
	}

	private void addCategorySubMenu()
	{
		MenuItem items[] = menuCategory.getItems();
		for (int i = 0; i < items.length; i++)
			items[i].dispose();

		Category categories[] = CategoryManager.getCategories();
		Arrays.sort(categories);
		if (categories.length > 0)
		{
			Category catUncat = CategoryManager.getCategory(2);
			if (catUncat != null)
			{
				MenuItem itemCategory = new MenuItem(menuCategory, 8);
				Messages.setLanguageText(itemCategory, catUncat.getName());
				itemCategory.setData("Category", catUncat);
				itemCategory.addListener(13, new Listener() {

					final MySharesView this$0;

					public void handleEvent(Event event)
					{
						MenuItem item = (MenuItem)event.widget;
						assignSelectedToCategory((Category)item.getData("Category"));
					}

			
			{
				this$0 = MySharesView.this;
				super();
			}
				});
				new MenuItem(menuCategory, 2);
			}
			for (int i = 0; i < categories.length; i++)
				if (categories[i].getType() == 0)
				{
					MenuItem itemCategory = new MenuItem(menuCategory, 8);
					itemCategory.setText(categories[i].getName());
					itemCategory.setData("Category", categories[i]);
					itemCategory.addListener(13, new Listener() {

						final MySharesView this$0;

						public void handleEvent(Event event)
						{
							MenuItem item = (MenuItem)event.widget;
							assignSelectedToCategory((Category)item.getData("Category"));
						}

			
			{
				this$0 = MySharesView.this;
				super();
			}
					});
				}

			new MenuItem(menuCategory, 2);
		}
		MenuItem itemAddCategory = new MenuItem(menuCategory, 8);
		Messages.setLanguageText(itemAddCategory, "MyTorrentsView.menu.setCategory.add");
		itemAddCategory.addListener(13, new Listener() {

			final MySharesView this$0;

			public void handleEvent(Event event)
			{
				addCategory();
			}

			
			{
				this$0 = MySharesView.this;
				super();
			}
		});
	}

⌨️ 快捷键说明

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