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

📄 mytorrentsview.java

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