📄 managerview.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: ManagerView.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.updater.UIUpdatable;
import com.aelitis.azureus.ui.common.updater.UIUpdater;
import com.aelitis.azureus.ui.common.viewtitleinfo.ViewTitleInfo;
import com.aelitis.azureus.ui.common.viewtitleinfo.ViewTitleInfoManager;
import com.aelitis.azureus.ui.swt.UIFunctionsManagerSWT;
import com.aelitis.azureus.ui.swt.UIFunctionsSWT;
import java.io.PrintStream;
import java.util.*;
import org.eclipse.swt.custom.CTabFolder;
import org.eclipse.swt.custom.CTabItem;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.widgets.*;
import org.gudy.azureus2.core3.disk.DiskManagerFileInfo;
import org.gudy.azureus2.core3.download.*;
import org.gudy.azureus2.core3.global.GlobalManager;
import org.gudy.azureus2.core3.global.GlobalManagerAdapter;
import org.gudy.azureus2.core3.internat.MessageText;
import org.gudy.azureus2.core3.logging.Logger;
import org.gudy.azureus2.core3.util.*;
import org.gudy.azureus2.plugins.download.DownloadException;
import org.gudy.azureus2.pluginsimpl.local.download.DownloadImpl;
import org.gudy.azureus2.pluginsimpl.local.download.DownloadManagerImpl;
import org.gudy.azureus2.ui.swt.*;
import org.gudy.azureus2.ui.swt.debug.ObfusticateImage;
import org.gudy.azureus2.ui.swt.debug.ObfusticateTab;
import org.gudy.azureus2.ui.swt.plugins.*;
import org.gudy.azureus2.ui.swt.pluginsimpl.*;
import org.gudy.azureus2.ui.swt.views.utils.ManagerUtils;
// Referenced classes of package org.gudy.azureus2.ui.swt.views:
// FilesView, GeneralView, IView, LoggerView,
// PeersGraphicView, PeersView, PiecesView, TorrentInfoView,
// TorrentOptionsView
public class ManagerView
implements DownloadManagerListener, ObfusticateTab, ObfusticateImage, ViewTitleInfo, UISWTViewCoreEventListener, IconBarEnabler, UIUpdatable
{
private DownloadManager manager;
private CTabFolder folder;
private ArrayList tabViews;
int lastCompleted;
private UISWTView swtView;
private GlobalManagerAdapter gmListener;
private Composite parent;
protected IView activeView;
public ManagerView()
{
tabViews = new ArrayList();
lastCompleted = -1;
GlobalManager gm = AzureusCoreFactory.getSingleton().getGlobalManager();
gmListener = new GlobalManagerAdapter() {
final ManagerView this$0;
public void downloadManagerRemoved(DownloadManager dm)
{
if (dm.equals(manager))
Utils.execSWTThread(new AERunnable() {
final 1 this$1;
public void runSupport()
{
delete();
}
{
this$1 = 1.this;
super();
}
});
}
{
this$0 = ManagerView.this;
super();
}
};
gm.addListener(gmListener, false);
UIFunctionsManagerSWT.getUIFunctionsSWT().getUIUpdater().addUpdater(this);
}
private void dataSourceChanged(Object newDataSource)
{
if (manager != null)
manager.removeListener(this);
DownloadImpl dataSourcePlugin = null;
if (newDataSource instanceof DownloadImpl)
{
dataSourcePlugin = (DownloadImpl)newDataSource;
manager = dataSourcePlugin.getDownload();
} else
if (newDataSource instanceof DownloadManager)
{
manager = (DownloadManager)newDataSource;
try
{
dataSourcePlugin = DownloadManagerImpl.getDownloadStatic(manager);
}
catch (DownloadException e) { }
} else
{
manager = null;
}
if (manager != null)
manager.addListener(this);
for (int i = 0; i < tabViews.size(); i++)
{
IView view = (IView)tabViews.get(i);
if (view == null)
continue;
if (view instanceof UISWTViewImpl)
((UISWTViewImpl)view).dataSourceChanged(dataSourcePlugin);
else
view.dataSourceChanged(newDataSource);
}
refreshTitle();
ViewTitleInfoManager.refreshTitleInfo(this);
}
private void delete()
{
UIFunctions uiFunctions = UIFunctionsManager.getUIFunctions();
if (uiFunctions != null)
{
uiFunctions.removeManagerView(manager);
uiFunctions.getUIUpdater().removeUpdater(this);
}
if (manager != null)
manager.removeListener(this);
try
{
GlobalManager gm = AzureusCoreFactory.getSingleton().getGlobalManager();
gm.removeListener(gmListener);
}
catch (Exception e)
{
Debug.out(e);
}
if (folder != null && !folder.isDisposed())
folder.setSelection(0);
if (Constants.isOSX && folder != null && !folder.isDisposed())
{
CTabItem items[] = folder.getItems();
for (int i = 0; i < items.length; i++)
if (!items[i].isDisposed())
items[i].dispose();
}
for (int i = 0; i < tabViews.size(); i++)
{
IView view = (IView)tabViews.get(i);
try
{
if (view != null)
view.delete();
}
catch (Throwable t)
{
Debug.out(t);
}
}
tabViews.clear();
Utils.disposeSWTObjects(new Object[] {
folder, parent
});
}
private void initialize(Composite composite)
{
parent = composite;
if (folder == null)
{
folder = new CTabFolder(composite, 16384);
folder.setBorderVisible(true);
} else
{
System.out.println("ManagerView::initialize : folder isn't null !!!");
}
if (composite.getLayout() instanceof FormLayout)
folder.setLayoutData(Utils.getFilledFormData());
else
if (composite.getLayout() instanceof GridLayout)
folder.setLayoutData(new GridData(1808));
Label lblClose = new Label(folder, 64);
lblClose.setText("x");
lblClose.addListener(4, new Listener() {
final ManagerView this$0;
public void handleEvent(Event event)
{
delete();
}
{
this$0 = ManagerView.this;
super();
}
});
folder.setTopRight(lblClose);
folder.setTabHeight(20);
ArrayList iviews_to_use = new ArrayList();
iviews_to_use.add(new GeneralView());
iviews_to_use.add(new PeersView());
iviews_to_use.add(new PeersGraphicView());
iviews_to_use.add(new PiecesView());
iviews_to_use.add(new FilesView());
iviews_to_use.add(new TorrentInfoView());
iviews_to_use.add(new TorrentOptionsView());
if (Logger.isEnabled())
iviews_to_use.add(new LoggerView(true));
IView views[] = (IView[])(IView[])iviews_to_use.toArray(new IView[iviews_to_use.size()]);
for (int i = 0; i < views.length; i++)
addSection(views[i], manager);
UIFunctionsSWT uiFunctions = UIFunctionsManagerSWT.getUIFunctionsSWT();
if (uiFunctions != null)
{
UISWTInstanceImpl pluginUI = uiFunctions.getSWTPluginInstanceImpl();
Map pluginViews = pluginUI != null ? pluginUI.getViewListeners("MyTorrents") : null;
if (pluginViews != null)
{
String sNames[] = (String[])(String[])pluginViews.keySet().toArray(new String[0]);
for (int i = 0; i < sNames.length; i++)
{
UISWTViewEventListener l = (UISWTViewEventListener)pluginViews.get(sNames[i]);
if (l == null)
continue;
try
{
UISWTViewImpl view = new UISWTViewImpl("MyTorrents", sNames[i], l);
addSection(view);
}
catch (Exception e) { }
}
}
}
folder.addSelectionListener(new SelectionAdapter() {
final ManagerView this$0;
public void widgetSelected(SelectionEvent e)
{
CTabItem item = (CTabItem)e.item;
if (item != null)
{
IView view = (IView)item.getData("IView");
activeView = view;
if (item.getControl() == null)
{
view.initialize(folder);
item.setControl(view.getComposite());
}
item.getControl().setFocus();
}
refresh();
ViewTitleInfoManager.refreshTitleInfo(ManagerView.this);
}
{
this$0 = ManagerView.this;
super();
}
});
views[0].initialize(folder);
folder.getItem(0).setControl(views[0].getComposite());
views[0].refresh();
views[0].getComposite().layout(true);
views[0].getComposite().setFocus();
activeView = views[0];
ViewTitleInfoManager.refreshTitleInfo(this);
}
private IView getActiveView()
{
return activeView;
}
private void refresh()
{
if (folder == null || folder.isDisposed())
return;
IView view;
CTabItem items[];
int i;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -