📄 mysharesview.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: 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 + -