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

📄 mytorrentsview.java

📁 这是一个基于java编写的torrent的P2P源码
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
				setSelectedTorrentsUpSpeed(newSpeed);
			}
		});

		// advanced > Tracker Menu //
		final Menu menuTracker = new Menu(getComposite().getShell(), SWT.DROP_DOWN);
		final MenuItem itemTracker = new MenuItem(menuAdvanced, SWT.CASCADE);
		Messages.setLanguageText(itemTracker, "MyTorrentsView.menu.tracker");
		itemTracker.setMenu(menuTracker);

		final MenuItem itemChangeTracker = new MenuItem(menuTracker, SWT.PUSH);
		Messages.setLanguageText(itemChangeTracker,
				"MyTorrentsView.menu.changeTracker"); //$NON-NLS-1$
		Utils.setMenuItemImage(itemChangeTracker, "add_tracker");
		itemChangeTracker.addListener(SWT.Selection,
				new SelectedTableRowsListener() {
					public void run(TableRowCore row) {
						TRTrackerAnnouncer tc = ((DownloadManager) row.getDataSource(true))
								.getTrackerClient();
						if (tc != null)
							new TrackerChangerWindow(getComposite().getDisplay(), tc);
					}
				});
		itemChangeTracker.setEnabled(changeUrl);


		final MenuItem itemEditTracker = new MenuItem(menuTracker, SWT.PUSH);
		Messages
				.setLanguageText(itemEditTracker, "MyTorrentsView.menu.editTracker");
		Utils.setMenuItemImage(itemEditTracker, "edit_trackers");
		itemEditTracker.addListener(SWT.Selection, new SelectedTableRowsListener() {
			public void run(TableRowCore row) {
				final DownloadManager dm = (DownloadManager) row.getDataSource(true);
				if (dm.getTorrent() != null) {
					final TOTorrent torrent = dm.getTorrent();

					java.util.List group = TorrentUtils.announceGroupsToList(torrent);

					new MultiTrackerEditor(null, group, new TrackerEditorListener() {
						public void trackersChanged(String str, String str2,
								java.util.List group) {
							TorrentUtils.listToAnnounceGroups(group, torrent);

							try {
								TorrentUtils.writeToFile(torrent);
							} catch (Throwable e) {
								Debug.printStackTrace(e);
							}

							if (dm.getTrackerClient() != null)
								dm.getTrackerClient().resetTrackerUrl(true);
						}
					}, true);
				}
			} // run
		});
		itemEditTracker.setEnabled(hasSelection);

		final MenuItem itemManualUpdate = new MenuItem(menuTracker, SWT.PUSH);
		Messages.setLanguageText(itemManualUpdate,
				"GeneralView.label.trackerurlupdate"); //$NON-NLS-1$
		//itemManualUpdate.setImage(ImageRepository.getImage("edit_trackers"));
		itemManualUpdate.addListener(SWT.Selection,
				new SelectedTableRowsListener() {
					public void run(TableRowCore row) {
						((DownloadManager) row.getDataSource(true)).requestTrackerAnnounce(false);
					}
				});
		itemManualUpdate.setEnabled(manualUpdate);

		boolean	scrape_enabled = COConfigurationManager.getBooleanParameter("Tracker Client Scrape Enable");
		
		boolean scrape_stopped = COConfigurationManager.getBooleanParameter("Tracker Client Scrape Stopped Enable");
		
		boolean manualScrape = 
			(!scrape_enabled) ||
			((!scrape_stopped) && allStopped );
		
		final MenuItem itemManualScrape = new MenuItem(menuTracker, SWT.PUSH);
		Messages.setLanguageText(itemManualScrape,
				"GeneralView.label.trackerscrapeupdate");
		//itemManualUpdate.setImage(ImageRepository.getImage("edit_trackers"));
		itemManualScrape.addListener(SWT.Selection,
				new SelectedTableRowsListener() {
					public void run(TableRowCore row) {
						((DownloadManager) row.getDataSource(true)).requestTrackerScrape(true);
					}
				});
		itemManualScrape.setEnabled(manualScrape);

		// advanced > files

		final MenuItem itemFiles = new MenuItem(menuAdvanced, SWT.CASCADE);
		Messages.setLanguageText(itemFiles, "ConfigView.section.files");

		final Menu menuFiles = new Menu(getComposite().getShell(), SWT.DROP_DOWN);
		itemFiles.setMenu(menuFiles);

		final MenuItem itemFileMoveData = new MenuItem(menuFiles, SWT.PUSH);
		Messages.setLanguageText(itemFileMoveData, "MyTorrentsView.menu.movedata");
		itemFileMoveData.addListener(SWT.Selection, new Listener() {
			public void handleEvent(Event event) {
				Object[] dms = getSelectedDataSources();

				if (dms != null && dms.length > 0) {

					DirectoryDialog dd = new DirectoryDialog(getComposite().getShell());

					dd.setFilterPath(TorrentOpener.getFilterPathData());

					dd.setText(MessageText
							.getString("MyTorrentsView.menu.movedata.dialog"));

					String path = dd.open();

					if (path != null) {

						TorrentOpener.setFilterPathData(path);

						File target = new File(path);

						for (int i = 0; i < dms.length; i++) {

							try {
								((DownloadManager) dms[i]).moveDataFiles(target);

							} catch (Throwable e) {

								Logger.log(new LogAlert(LogAlert.REPEATABLE,
										"Download data move operation failed", e));
							}
						}
					}
				}
			}
		});
		itemFileMoveData.setEnabled(fileMove);
		
		final MenuItem itemFileMoveTorrent = new MenuItem(menuFiles, SWT.PUSH);
		Messages.setLanguageText(itemFileMoveTorrent,
				"MyTorrentsView.menu.movetorrent");
		itemFileMoveTorrent.addListener(SWT.Selection, new Listener() {
			public void handleEvent(Event event) {
				Object[] dms = getSelectedDataSources();

				if (dms != null && dms.length > 0) {

					DirectoryDialog dd = new DirectoryDialog(getComposite().getShell());

					dd.setFilterPath(TorrentOpener.getFilterPathTorrent());

					dd.setText(MessageText
							.getString("MyTorrentsView.menu.movedata.dialog"));

					String path = dd.open();

					if (path != null) {

						File target = new File(path);

						TorrentOpener.setFilterPathTorrent(target.toString());

						for (int i = 0; i < dms.length; i++) {

							try {
								((DownloadManager) dms[i]).moveTorrentFile(target);

							} catch (Throwable e) {

								Logger.log(new LogAlert(LogAlert.REPEATABLE,
										"Download torrent move operation failed", e));
							}
						}
					}
				}
			}
		});		
		itemFileMoveTorrent.setEnabled(fileMove);
		
		final MenuItem itemFileRescan = new MenuItem(menuFiles, SWT.CHECK );
		Messages.setLanguageText(itemFileRescan,
				"MyTorrentsView.menu.rescanfile");
		itemFileRescan.addListener(SWT.Selection, new SelectedTableRowsListener() {
			public void run(TableRowCore row) {
				DownloadManager dm = (DownloadManager) row.getDataSource(true);
				
				dm.getDownloadState().setFlag( 
						DownloadManagerState.FLAG_SCAN_INCOMPLETE_PIECES,
						itemFileRescan.getSelection());
			}
		});

		itemFileRescan.setSelection( allScanSelected );
		itemFileRescan.setEnabled( fileRescan );
		
		// === advanced > export ===
		// =========================

		if (userMode > 0) {
			final MenuItem itemExport = new MenuItem(menuAdvanced, SWT.CASCADE);
			Messages.setLanguageText(itemExport, "MyTorrentsView.menu.exportmenu"); //$NON-NLS-1$
			Utils.setMenuItemImage(itemExport, "export");
			itemExport.setEnabled(hasSelection);
	
			final Menu menuExport = new Menu(getComposite().getShell(), SWT.DROP_DOWN);
			itemExport.setMenu(menuExport);
	
			// Advanced > Export > Export XML
			final MenuItem itemExportXML = new MenuItem(menuExport, SWT.PUSH);
			Messages.setLanguageText(itemExportXML, "MyTorrentsView.menu.export");
			itemExportXML.addListener(SWT.Selection, new Listener() {
				public void handleEvent(Event event) {
					DownloadManager dm = (DownloadManager) getFirstSelectedDataSource();
					if (dm != null)
						new ExportTorrentWizard(azureus_core, itemExportXML.getDisplay(), dm);
				}
			});
	
			// Advanced > Export > Export Torrent
			final MenuItem itemExportTorrent = new MenuItem(menuExport, SWT.PUSH);
			Messages.setLanguageText(itemExportTorrent,
					"MyTorrentsView.menu.exporttorrent");
			itemExportTorrent.addListener(SWT.Selection, new Listener() {
				public void handleEvent(Event event) {
					DownloadManager dm = (DownloadManager) getFirstSelectedDataSource();
					if (dm != null) {
						FileDialog fd = new FileDialog(getComposite().getShell(), SWT.SAVE );
	
						fd.setFileName(dm.getTorrentFileName());
	
						String path = fd.open();
	
						if (path != null) {
	
							try {
								File target = new File(path);
	
								if ( target.exists()){
									
									MessageBox mb = new MessageBox(getComposite().getShell(),SWT.ICON_QUESTION | SWT.YES | SWT.NO);
									
									mb.setText(MessageText.getString("exportTorrentWizard.process.outputfileexists.title"));
									
									mb.setMessage(MessageText.getString("exportTorrentWizard.process.outputfileexists.message"));
									
									int result = mb.open();
								
									if( result == SWT.NO ){
										
										return;
									}
									
									if ( !target.delete()){
										
										throw( new Exception( "Failed to delete file" ));
									}
								}
								
								// first copy the torrent - DON'T use "writeTorrent" as this amends the
								// "filename" field in the torrent
	
								TorrentUtils.copyToFile(dm.getDownloadState().getTorrent(),	target);
	
								// now remove the non-standard entries
	
								TOTorrent dest = TOTorrentFactory
										.deserialiseFromBEncodedFile(target);
	
								dest.removeAdditionalProperties();
	
								dest.serialiseToBEncodedFile(target);
	
							} catch (Throwable e) {
								Logger.log(new LogAlert(LogAlert.UNREPEATABLE,
										"Torrent export failed", e));
							}
	
						}
					}
				}
			});
		} // export menu

		// === advanced > peer sources ===
		// ===============================

		if (userMode > 0) {
			final MenuItem itemPeerSource = new MenuItem(menuAdvanced, SWT.CASCADE);
			Messages.setLanguageText(itemPeerSource, "MyTorrentsView.menu.peersource"); //$NON-NLS-1$
	
			final Menu menuPeerSource = new Menu(getComposite().getShell(),
					SWT.DROP_DOWN);
			itemPeerSource.setMenu(menuPeerSource);
	
			for (int i = 0; i < PEPeerSource.PS_SOURCES.length; i++) {
	
				final String p = PEPeerSource.PS_SOURCES[i];
				String msg_text = "ConfigView.section.connection.peersource." + p;
				final MenuItem itemPS = new MenuItem(menuPeerSource, SWT.CHECK);
				itemPS.setData("peerSource", p);
				Messages.setLanguageText(itemPS, msg_text); //$NON-NLS-1$
				itemPS.addListener(SWT.Selection, new SelectedTableRowsListener() {
					public void run(TableRowCore row) {
						((DownloadManager) row.getDataSource(true)).getDownloadState()
								.setPeerSourceEnabled(p, itemPS.getSelection());
					}
				});
				itemPS.setSelection(true);
				
				boolean bChecked = hasSelection;
				boolean bEnabled = !hasSelection;
				if (bChecked) {
					bEnabled = true;
					
					// turn on check if just one dm is not enabled
					for (int j = 0; j < dms.length; j++) {
						DownloadManager dm = (DownloadManager) dms[j];
						
						if (!dm.getDownloadState().isPeerSourceEnabled(p)) {
							bChecked = false;
						}
						if (!dm.getDownloadState().isPeerSourcePermitted(p)) {
							bEnabled = false;
						}
					}
				}
				
				itemPS.setSelection(bChecked);
				itemPS.setEnabled(bEnabled);
			}
		}
		

		// === advanced > networks ===
		// ===========================

		if (userMode > 1) {
			final MenuItem itemNetworks = new MenuItem(menuAdvanced, SWT.CASCADE);
			Messages.setLanguageText(itemNetworks, "MyTorrentsView.menu.networks"); //$NON-NLS-1$
	
			final Menu menuNetworks = new Menu(getComposite().getShell(), SWT.DROP_DOWN);
			itemNetworks.setMenu(menuNetworks);
	
			for (int i = 0; i < AENetworkClassifier.AT_NETWORKS.length; i++) {
				final String nn = AENetworkClassifier.AT_NETWORKS[i];
				String msg_text = "ConfigView.section.connection.networks." + nn;
				final MenuItem itemNetwork = new MenuItem(menuNetworks, SWT.CHECK);
				itemNetwork.setData("network", nn);
				Messages.setLanguageText(itemNetwork, msg_text); //$NON-NLS-1$
				itemNetwork.addListener(SWT.Selection, new SelectedTableRowsListener() {
					public void run(TableRowCore row) {
						((DownloadManager) row.getDataSource(true)).getDownloadState()
								.setNetworkEnabled(nn, itemNetwork.getSelection());
					}
				});
				boolean bChecked = hasSelection;
				if (bChecked) {
					// turn on check if just one dm is not enabled
					for (int j = 0; j < dms.length; j++) {
						DownloadManager dm = (DownloadManager) dms[j];
						
						if (!dm.getDownloadState().isNetworkEnabled(nn)) {
							bChecked = false;
							break;
						}

⌨️ 快捷键说明

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