📄 mytorrentsview.java
字号:
{
HealthHelpWindow.show(Display.getDefault());
}
{
this$0 = MyTorrentsView.this;
super();
}
});
} else
if (sColumnName.equals("maxuploads"))
{
int iStart = COConfigurationManager.getIntParameter("Max Uploads") - 2;
if (iStart < 2)
iStart = 2;
for (int i = iStart; i < iStart + 6; i++)
{
MenuItem item = new MenuItem(menuThisColumn, 8);
item.setText(String.valueOf(i));
item.setData("MaxUploads", new Long(i));
item.addListener(13, new TableSelectedRowsListener(tv) {
final MyTorrentsView this$0;
public void run(TableRowCore row)
{
DownloadManager dm = (DownloadManager)row.getDataSource(true);
MenuItem item = (MenuItem)event.widget;
if (item != null)
{
int value = ((Long)item.getData("MaxUploads")).intValue();
dm.setMaxUploads(value);
}
}
{
this$0 = MyTorrentsView.this;
super(x0);
}
});
}
}
}
public void fillMenu(Menu menu)
{
Object dm_items[] = tv.getSelectedDataSources().toArray();
boolean hasSelection = dm_items.length > 0;
if (hasSelection)
{
DownloadManager dms[] = new DownloadManager[dm_items.length];
for (int i = 0; i < dm_items.length; i++)
dms[i] = (DownloadManager)dm_items[i];
TorrentUtil.fillTorrentMenu(menu, dms, azureus_core, cTablePanel, true, isSeedingView ? 2 : 1, tv);
new MenuItem(menu, 2);
}
MenuItem itemFilter = new MenuItem(menu, 8);
Messages.setLanguageText(itemFilter, "MyTorrentsView.menu.filter");
itemFilter.addListener(13, new Listener() {
final MyTorrentsView this$0;
public void handleEvent(Event event)
{
openFilterDialog();
}
{
this$0 = MyTorrentsView.this;
super();
}
});
}
private void createDragDrop()
{
try
{
Transfer types[] = {
TextTransfer.getInstance()
};
if (dragSource != null && !dragSource.isDisposed())
dragSource.dispose();
if (dropTarget != null && !dropTarget.isDisposed())
dropTarget.dispose();
dragSource = tv.createDragSource(3);
if (dragSource != null)
{
dragSource.setTransfer(types);
dragSource.addDragListener(new DragSourceAdapter() {
private String eventData;
final MyTorrentsView this$0;
public void dragStart(DragSourceEvent event)
{
DownloadManager selectedDownloads[];
int i;
TableRowCore rows[] = tv.getSelectedRows();
if (rows.length != 0)
{
event.doit = true;
drag_drop_line_start = rows[0].getIndex();
drag_drop_rows = rows;
} else
{
event.doit = false;
drag_drop_line_start = -1;
drag_drop_rows = null;
}
selectedDownloads = getSelectedDownloads();
eventData = "DownloadManager\n";
i = 0;
_L3:
if (i >= selectedDownloads.length) goto _L2; else goto _L1
_L1:
TOTorrent torrent;
DownloadManager dm = selectedDownloads[i];
torrent = dm.getTorrent();
new StringBuilder();
this;
JVM INSTR dup_x1 ;
eventData;
append();
torrent.getHashWrapper().toBase32String();
append();
"\n";
append();
toString();
eventData;
continue; /* Loop/switch isn't completed */
Exception e;
e;
i++;
goto _L3
_L2:
}
public void dragSetData(DragSourceEvent event)
{
event.data = eventData;
}
{
this$0 = MyTorrentsView.this;
super();
}
});
}
dropTarget = tv.createDropTarget(31);
if (dropTarget != null)
{
if (SWT.getVersion() >= 3107)
dropTarget.setTransfer(new Transfer[] {
HTMLTransfer.getInstance(), URLTransfer.getInstance(), FileTransfer.getInstance(), TextTransfer.getInstance()
});
else
dropTarget.setTransfer(new Transfer[] {
URLTransfer.getInstance(), FileTransfer.getInstance(), TextTransfer.getInstance()
});
dropTarget.addDropListener(new DropTargetAdapter() {
final MyTorrentsView this$0;
public void dropAccept(DropTargetEvent event)
{
event.currentDataType = URLTransfer.pickBestType(event.dataTypes, event.currentDataType);
}
public void dragEnter(DropTargetEvent event)
{
if (drag_drop_line_start < 0)
{
if (event.detail != 1)
if ((event.operations & 4) > 0)
event.detail = 4;
else
if ((event.operations & 1) > 0)
event.detail = 1;
} else
if (TextTransfer.getInstance().isSupportedType(event.currentDataType))
{
event.detail = event.item != null ? 2 : 0;
event.feedback = 10;
}
}
public void dragOver(DropTargetEvent event)
{
if (drag_drop_line_start >= 0)
{
event.detail = event.item != null ? 2 : 0;
event.feedback = 10;
}
}
public void drop(DropTargetEvent event)
{
if (!(event.data instanceof String) || !((String)event.data).startsWith("DownloadManager\n"))
{
TorrentOpener.openDroppedTorrents(azureus_core, event, true);
return;
}
event.detail = 0;
if (drag_drop_line_start >= 0)
{
event.detail = 0;
TableRowCore row = tv.getRow(event);
if (row == null)
return;
int drag_drop_line_end = row.getIndex();
if (drag_drop_line_end != drag_drop_line_start)
{
DownloadManager dm = (DownloadManager)row.getDataSource(true);
moveRowsTo(drag_drop_rows, dm.getPosition());
event.detail = 2;
}
drag_drop_line_start = -1;
drag_drop_rows = null;
}
}
{
this$0 = MyTorrentsView.this;
super();
}
});
}
}
catch (Throwable t)
{
Logger.log(new LogEvent(LOGID, "failed to init drag-n-drop", t));
}
}
private void moveRowsTo(TableRowCore rows[], int iNewPos)
{
if (rows == null || rows.length == 0)
return;
TableColumnCore sortColumn = tv.getSortColumn();
boolean isSortAscending = sortColumn != null ? sortColumn.isSortAscending() : true;
for (int i = 0; i < rows.length; i++)
{
TableRowCore row = rows[i];
DownloadManager dm = (DownloadManager)row.getDataSource(true);
int iOldPos = dm.getPosition();
globalManager.moveTo(dm, iNewPos);
if (isSortAscending)
{
if (iOldPos > iNewPos)
iNewPos++;
continue;
}
if (iOldPos < iNewPos)
iNewPos--;
}
boolean bForceSort = sortColumn.getName().equals("#");
tv.columnInvalidate("#");
tv.refreshTable(bForceSort);
}
public void tableRefresh()
{
if (tv.isDisposed())
{
return;
} else
{
refreshTorrentMenu();
return;
}
}
public void keyPressed(KeyEvent e)
{
int key = e.character;
if (key <= 26 && key > 0)
key += 96;
if (e.stateMask == 0x60000)
{
if (key == 115)
{
ManagerUtils.asyncStopAll();
e.doit = false;
return;
}
if (e.keyCode == 0x1000002)
{
moveSelectedTorrents(10);
e.doit = false;
return;
}
if (e.keyCode == 0x1000001)
{
moveSelectedTorrents(-10);
e.doit = false;
return;
}
}
if (e.stateMask == SWT.MOD1)
{
switch (key)
{
case 97: // 'a'
if (e.widget != txtFilter)
{
tv.selectAll();
e.doit = false;
}
break;
case 99: // 'c'
if (e.widget != txtFilter)
{
tv.clipboardSelected();
e.doit = false;
}
break;
case 102: // 'f'
openFilterDialog();
e.doit = false;
break;
case 105: // 'i'
showSelectedDetails();
e.doit = false;
break;
}
if (!e.doit)
return;
}
if (e.stateMask == 0x40000)
{
switch (e.keyCode)
{
case 16777217:
moveSelectedTorrentsUp();
e.doit = false;
break;
case 16777218:
moveSelectedTorrentsDown();
e.doit = false;
break;
case 16777223:
moveSelectedTorrentsTop();
e.doit = false;
break;
case 16777224:
moveSelectedTorrentsEnd();
e.doit = false;
break;
}
if (!e.doit)
return;
switch (key)
{
case 114: // 'r'
TorrentUtil.resumeTorrents(tv.getSelectedDataSources().toArray());
e.doit = false;
break;
case 115: // 's'
TorrentUtil.stopTorrents(tv.getSelectedDataSources().toArray(), cTablePanel.getShell());
e.doit = false;
break;
case 120: // 'x'
bRegexSearch = !bRegexSearch;
e.doit = false;
updateLastSearch();
break;
}
if (!e.doit)
return;
}
if (e.stateMask == 0 && e.keyCode == 127 && e.widget != txtFilter)
{
TorrentUtil.removeTorrents(tv.getSelectedDataSources().toArray(), cTablePanel.getShell());
e.doit = false;
return;
}
if (e.keyCode != 8 && ((e.stateMask & 0xfffdffff) != 0 || e.character < ' '))
return;
if (e.widget == txtFilter)
return;
if (e.keyCode != 8) goto _L2; else goto _L1
_L1:
if (e.stateMask == 0x40000)
sLastSearch = "";
else
if (sLastSearch.length() > 0)
sLastSearch = sLastSearch.substring(0, sLastSearch.length() - 1);
goto _L3
_L2:
new StringBuilder();
this;
JVM INSTR dup_x1 ;
sLastSearch;
append();
String.valueOf(e.character);
append();
toString();
sLastSearch;
_L3:
if (txtFilter != null && !txtFilter.isDisposed())
txtFilter.setFocus();
updateLastSearch();
e.doit = false;
return;
}
private void openFilterDialog()
{
InputShell is = new InputShell("MyTorrentsView.dialog.setFilter.title", "MyTorrentsView.dialog.setFilter.text");
is.setTextValue(sLastSearch);
is.setLabelParameters(new String[] {
MessageText.getString((new StringBuilder()).append(tv.getTableID()).append("View").append(".header").toString())
});
String sReturn = is.open();
if (sReturn == null)
{
return;
} else
{
sLastSearch = sReturn;
updateLastSearch();
return;
}
}
private void updateLastSearch()
{
if (lblHeader == null || lblHeader.isDisposed())
createTabs();
if (txtFilter != null && !txtFilter.isDisposed())
{
cFilterArea.setVisible(true);
if (!sLastSearch.equals(txtFilter.getText()))
{
txtFilter.setText(sLastSearch);
txtFilter.setSelection(sLastSearch.length());
}
if (bRegexSearch)
{
try
{
Pattern.compile(sLastSearch, 2);
txtFilter.setBackground(Colors.colorAltRow);
Messages.setLanguageTooltip(txtFilter, "MyTorrentsView.filter.tooltip");
}
catch (Exception e)
{
txtFilter.setBackground(Colors.colorErrorBG);
txtFilter.setToolTipText(e.getMessage());
}
} else
{
txtFilter.setBackground(null);
Messages.setLanguageTooltip(txtFilter, "MyTorrentsView.filter.tooltip");
}
}
if (lblX != null && !lblX.isDisposed())
{
String oldID = (String)lblX.getData("ImageID");
String id = sLastSearch.length() <= 0 ? "smallx-gray" : "smallx";
if (oldID == null || !oldID.equals(id))
{
ImageLoader.getInstance().setLabelImage(lblX, id);
lblX.setData("ImageID", id);
}
}
if (searchUpdateEvent != null)
searchUpdateEvent.cancel();
searchUpdateEvent = SimpleTimer.addEvent("SearchUpdate", SystemTime.getOffsetTime(300L), new TimerEventPerformer() {
final MyTorrentsView this$0;
public void perform(TimerEvent event)
{
if (searchUpdateEvent.isCancelled())
{
searchUpdateEvent = null;
return;
} else
{
searchUpdateEvent = null;
activateCategory(currentCategory);
return;
}
}
{
this$0 = MyTorrentsView.this;
super();
}
});
}
public void keyReleased(KeyEvent keyevent)
{
}
private void moveSelectedTorrentsDown()
{
Object dataSources[] = tv.getSelectedDataSources().toArray();
Arrays.sort(dataSources, new Comparator() {
final MyTorrentsView this$0;
public int compare(Object a, Object b)
{
return ((DownloadManager)a).getPosition() - ((DownloadManager)b).getPosition();
}
{
this$0 = MyTorrentsView.this;
super();
}
});
for (int i = dataSources.length - 1; i >= 0; i--)
{
DownloadManager dm = (DownloadManager)dataSources[i];
if (dm.getGlobalManager().isMoveableDown(dm))
dm.getGlobalManager().moveDown(dm);
}
boolean bForceSort = tv.getSortColumn().getName().equals("#");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -