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

📄 opentorrentwindow.java

📁 java 文件下载器。可自定义
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
		{
			OpenTorrentWindow openTorrentWindow = stOpenTorrentWindow;
			openTorrentWindow.bOverrideStartModeToStopped = bDefaultStopped;
			openTorrentWindow.bDefaultForSeeding = bForSeeding;
			if (sFilesToOpen != null && !bPopupOpenURL && openTorrentWindow.addTorrents(sPathOfFilesToOpen, sFilesToOpen) == 0 && openTorrentWindow.torrentList.size() == 0 && openTorrentWindow.downloaders.size() == 0)
			{
				openTorrentWindow.close(true, true);
				return;
			}
			if (bPopupOpenURL)
				openTorrentWindow.browseURL();
			if (saveSilentlyDir != null)
			{
				openTorrentWindow.sDestDir = saveSilentlyDir;
				for (int i = 0; i < openTorrentWindow.torrentList.size(); i++)
				{
					TorrentInfo info = (TorrentInfo)openTorrentWindow.torrentList.get(i);
					info.renameDuplicates();
				}

				openTorrentWindow.openTorrents();
				openTorrentWindow.close(true, false);
			}
		}
	}

	public static final synchronized void invoke(Shell parent, GlobalManager gm)
	{
		invoke(parent, gm, null, null, false, false, false);
	}

	public static final synchronized void invokeURLPopup(Shell parent, GlobalManager gm)
	{
		invoke(parent, gm, null, null, false, false, true);
	}

	private OpenTorrentWindow(Shell parent, GlobalManager gm, boolean bOpenWindow)
	{
		cmbStartMode = null;
		cmbQueueLocation = null;
		dataFiles = new ArrayList();
		torrentList = new ArrayList();
		downloaders = new ArrayList();
		bOverrideStartModeToStopped = false;
		disposeList = new ArrayList();
		bClosed = false;
		bSkipDataDirModify = false;
		activeTorrentCount = 0;
		diskFreeInfoRefreshPending = false;
		diskFreeInfoRefreshRunning = false;
		this.gm = gm;
		sDestDir = COConfigurationManager.getStringParameter("Default save path");
		if (bOpenWindow)
			openWindow(parent);
		else
			shellForChildren = parent;
	}

	private void openWindow(Shell parent)
	{
		boolean bTorrentInClipboard = false;
		shell = ShellFactory.createShell(parent, 2160);
		shellForChildren = shell;
		shell.setText(MessageText.getString("OpenTorrentWindow.title"));
		Utils.setShellIcon(shell);
		GridLayout layout = FixupLayout(new GridLayout(), false);
		shell.setLayout(layout);
		shell.addListener(11, new Listener() {

			final OpenTorrentWindow this$0;

			public void handleEvent(Event e)
			{
				resizeTables(3);
			}

			
			{
				this$0 = OpenTorrentWindow.this;
				super();
			}
		});
		Clipboard clipboard = new Clipboard(shell.getDisplay());
		String sClipText = (String)clipboard.getContents(TextTransfer.getInstance());
		if (sClipText != null)
			bTorrentInClipboard = addTorrentsFromTextList(sClipText, true) > 0;
		Composite cButtons = new Composite(shell, 0);
		RowLayout rLayout = new RowLayout(256);
		rLayout.marginBottom = 0;
		rLayout.marginLeft = 0;
		rLayout.marginRight = 0;
		rLayout.marginTop = 0;
		cButtons.setLayout(rLayout);
		Button browseTorrent = new Button(cButtons, 8);
		Messages.setLanguageText(browseTorrent, "OpenTorrentWindow.addFiles");
		browseTorrent.addListener(13, new Listener() {

			final OpenTorrentWindow this$0;

			public void handleEvent(Event event)
			{
				FileDialog fDialog = new FileDialog(shell, 4098);
				fDialog.setFilterExtensions(new String[] {
					"*.torrent", "*.tor", Constants.FILE_WILDCARD
				});
				fDialog.setFilterNames(new String[] {
					"*.torrent", "*.tor", Constants.FILE_WILDCARD
				});
				fDialog.setFilterPath(TorrentOpener.getFilterPathTorrent());
				fDialog.setText(MessageText.getString("MainWindow.dialog.choose.file"));
				String fileName = TorrentOpener.setFilterPathTorrent(fDialog.open());
				if (fileName != null)
					addTorrents(fDialog.getFilterPath(), fDialog.getFileNames());
			}

			
			{
				this$0 = OpenTorrentWindow.this;
				super();
			}
		});
		Utils.setGridData(cButtons, 768, browseTorrent, MIN_BUTTON_HEIGHT);
		Button browseURL = new Button(cButtons, 8);
		Messages.setLanguageText(browseURL, "OpenTorrentWindow.addFiles.URL");
		browseURL.addListener(13, new Listener() {

			final OpenTorrentWindow this$0;

			public void handleEvent(Event event)
			{
				browseURL();
			}

			
			{
				this$0 = OpenTorrentWindow.this;
				super();
			}
		});
		Button browseFolder = new Button(cButtons, 8);
		Messages.setLanguageText(browseFolder, "OpenTorrentWindow.addFiles.Folder");
		browseFolder.addListener(13, new Listener() {

			final OpenTorrentWindow this$0;

			public void handleEvent(Event event)
			{
				DirectoryDialog fDialog = new DirectoryDialog(shell, 0);
				fDialog.setFilterPath(TorrentOpener.getFilterPathTorrent());
				fDialog.setMessage(MessageText.getString("MainWindow.dialog.choose.folder"));
				String path = TorrentOpener.setFilterPathTorrent(fDialog.open());
				if (path != null)
					addTorrents(path, null);
			}

			
			{
				this$0 = OpenTorrentWindow.this;
				super();
			}
		});
		if (bTorrentInClipboard)
		{
			Button pasteOpen = new Button(cButtons, 8);
			Messages.setLanguageText(pasteOpen, "OpenTorrentWindow.addFiles.Clipboard");
			pasteOpen.setToolTipText(sClipText);
			pasteOpen.addListener(13, new Listener() {

				final OpenTorrentWindow this$0;

				public void handleEvent(Event event)
				{
					Clipboard clipboard = new Clipboard(shell.getDisplay());
					String sClipText = (String)clipboard.getContents(TextTransfer.getInstance());
					if (sClipText != null)
						addTorrentsFromTextList(sClipText.trim(), false);
				}

			
			{
				this$0 = OpenTorrentWindow.this;
				super();
			}
			});
		}
		Group gTorrentsArea = new Group(shell, 0);
		GridData gridData = new GridData(768);
		gTorrentsArea.setLayoutData(gridData);
		layout = FixupLayout(new GridLayout(), true);
		gTorrentsArea.setLayout(layout);
		Messages.setLanguageText(gTorrentsArea, "OpenTorrentWindow.torrentLocation");
		Composite cTorrentList = new Composite(gTorrentsArea, 0);
		gridData = new GridData(768);
		cTorrentList.setLayoutData(gridData);
		createTorrentListArea(cTorrentList);
		Composite cTorrentOptions = new Composite(gTorrentsArea, 0);
		gridData = new GridData(768);
		cTorrentOptions.setLayoutData(gridData);
		layout = FixupLayout(new GridLayout(), true);
		layout.marginHeight = 0;
		layout.marginWidth = 0;
		cTorrentOptions.setLayout(layout);
		Label label = new Label(cTorrentOptions, 0);
		gridData = new GridData(768);
		label.setLayoutData(gridData);
		Messages.setLanguageText(label, "OpenTorrentWindow.torrent.options");
		int userMode = COConfigurationManager.getIntParameter("User Mode");
		if (userMode > 0)
		{
			Composite cTorrentModes = new Composite(cTorrentOptions, 0);
			gridData = new GridData(768);
			cTorrentModes.setLayoutData(gridData);
			layout = new GridLayout();
			layout.numColumns = 4;
			layout.marginWidth = 0;
			layout.marginHeight = 0;
			cTorrentModes.setLayout(layout);
			label = new Label(cTorrentModes, 0);
			gridData = new GridData(4);
			label.setLayoutData(gridData);
			Messages.setLanguageText(label, "OpenTorrentWindow.startMode");
			cmbStartMode = new Combo(cTorrentModes, 2056);
			gridData = new GridData(768);
			cmbStartMode.setLayoutData(gridData);
			updateStartModeCombo();
			cmbStartMode.addSelectionListener(new SelectionAdapter() {

				final OpenTorrentWindow this$0;

				public void widgetSelected(SelectionEvent e)
				{
					setSelectedStartMode(cmbStartMode.getSelectionIndex());
				}

			
			{
				this$0 = OpenTorrentWindow.this;
				super();
			}
			});
			label = new Label(cTorrentModes, 0);
			gridData = new GridData(4);
			label.setLayoutData(gridData);
			Messages.setLanguageText(label, "OpenTorrentWindow.addPosition");
			cmbQueueLocation = new Combo(cTorrentModes, 2056);
			gridData = new GridData(768);
			cmbQueueLocation.setLayoutData(gridData);
			updateQueueLocationCombo();
			cmbQueueLocation.addSelectionListener(new SelectionAdapter() {

				final OpenTorrentWindow this$0;

				public void widgetSelected(SelectionEvent e)
				{
					setSelectedQueueLocation(cmbQueueLocation.getSelectionIndex());
				}

			
			{
				this$0 = OpenTorrentWindow.this;
				super();
			}
			});
		}
		cSaveTo = new Composite(cTorrentOptions, 0);
		layout = FixupLayout(new GridLayout(), false);
		layout.marginHeight = 0;
		layout.marginWidth = 0;
		layout.verticalSpacing = 0;
		layout.numColumns = 2;
		cSaveTo.setLayout(layout);
		Label lblDataDir = new Label(cSaveTo, 0);
		gridData = new GridData(256);
		gridData.horizontalSpan = 2;
		lblDataDir.setLayoutData(gridData);
		Messages.setLanguageText(lblDataDir, "OpenTorrentWindow.dataLocation");
		cmbDataDir = new Combo(cSaveTo, 2048);
		gridData = new GridData(768);
		cmbDataDir.setLayoutData(gridData);
		cmbDataDir.addModifyListener(new ModifyListener() {

			final OpenTorrentWindow this$0;

			public void modifyText(ModifyEvent e)
			{
				if (bSkipDataDirModify)
					return;
				sDestDir = cmbDataDir.getText();
				int indexes[] = torrentTable.getSelectionIndices();
				for (int i = 0; i < indexes.length; i++)
				{
					TorrentInfo info = (TorrentInfo)torrentList.get(indexes[i]);
					info.sDestDir = sDestDir;
				}

				torrentTable.clearAll();
				checkSeedingMode();
				File file = new File(sDestDir);
				if (!file.isDirectory())
					cmbDataDir.setBackground(Colors.colorErrorBG);
				else
					cmbDataDir.setBackground(null);
				cmbDataDir.redraw();
				cmbDataDir.update();
				diskFreeInfoRefreshPending = true;
			}

			
			{
				this$0 = OpenTorrentWindow.this;
				super();
			}
		});
		updateDataDirCombo();
		if (sDestDir != null && sDestDir.length() > 0)
			cmbDataDir.add(sDestDir);
		dirList = COConfigurationManager.getStringListParameter("saveTo_list");
		StringIterator iter = dirList.iterator();
		do
		{
			if (!iter.hasNext())
				break;
			String s = iter.next();
			if (!s.equals(sDestDir))
				cmbDataDir.add(s);
		} while (true);
		Button browseData = new Button(cSaveTo, 8);
		Messages.setLanguageText(browseData, "ConfigView.button.browse");
		browseData.addListener(13, new Listener() {

			final OpenTorrentWindow this$0;

			public void handleEvent(Event event)
			{
				String sDefPath = cmbDataDir.getText();
				File f = new File(sDefPath);
				if (sDefPath.length() > 0)
					do
					{
						if (f.exists())
							break;
						f = f.getParentFile();
						if (f != null)
							continue;
						f = new File(sDefPath);
						break;
					} while (true);
				DirectoryDialog dDialog = new DirectoryDialog(shell, 0x20000);
				dDialog.setFilterPath(f.getAbsolutePath());
				dDialog.setMessage(MessageText.getString("MainWindow.dialog.choose.savepath_forallfiles"));
				String sSavePath = dDialog.open();
				if (sSavePath != null)
					cmbDataDir.setText(sSavePath);
			}

			
			{
				this$0 = OpenTorrentWindow.this;
				super();
			}
		});
		gridData = new GridData(768);
		cSaveTo.setLayoutData(gridData);
		Group gFilesArea = new Group(shell, 0);
		gridData = new GridData(1808);
		gFilesArea.setLayoutData(gridData);
		layout = FixupLayout(new GridLayout(), true);
		gFilesArea.setLayout(layout);
		Messages.setLanguageText(gFilesArea, "OpenTorrentWindow.fileList");
		createTableDataFiles(gFilesArea);
		Composite cArea = new Composite(shell, 0);
		layout = new GridLayout();
		layout.marginHeight = 0;
		layout.numColumns = 2;
		cArea.setLayout(layout);
		ok = new Button(cArea, 8);
		Messages.setLanguageText(ok, "Button.ok");
		gridData = new GridData(128);
		gridData.widthHint = 70;
		ok.setLayoutData(gridData);
		shell.setDefaultButton(ok);
		ok.addListener(13, new Listener() {

			final OpenTorrentWindow this$0;

			public void handleEvent(Event event)
			{
				okPressed();
			}

			
			{
				this$0 = OpenTorrentWindow.this;
				super();
			}
		});
		checkSeedingMode();
		Button cancel = new Button(cArea, 8);
		Messages.setLanguageText(cancel, "Button.cancel");
		gridData = new GridData();
		gridData.widthHint = 70;
		cancel.setLayoutData(gridData);
		cancel.addListener(13, new Listener() {

			final OpenTorrentWindow this$0;

			public void handleEvent(Event event)
			{
				close(true, true);
			}

			
			{
				this$0 = OpenTorrentWindow.this;
				super();
			}
		});
		Utils.setGridData(cArea, 128, ok, MIN_BUTTON_HEIGHT);
		shell.addDisposeListener(new DisposeListener() {

			final OpenTorrentWindow this$0;

			public void widgetDisposed(DisposeEvent e)
			{
				if (!bClosed)
					close(false, true);
			}

			
			{
				this$0 = OpenTorrentWindow.this;
				super();
			}
		});
		shell.addListener(31, new Listener() {

			final OpenTorrentWindow this$0;

			public void handleEvent(Event e)
			{
				if (e.detail == 2)
					close(true, true);
			}

			
			{
				this$0 = OpenTorrentWindow.this;
				super();
			}
		});
		KeyListener pasteKeyListener = new KeyAdapter() {

			final OpenTorrentWindow this$0;

			public void keyPressed(KeyEvent e)
			{
				int key = e.character;
				if ((e.stateMask & SWT.MOD1) != 0 && e.character <= '\032' && e.character > 0)
					key += 96;
				if (key == 118 && (e.stateMask & SWT.MOD1) > 0 || e.keyCode == 0x1000009 && (e.stateMask & 0x20000) > 0)
				{
					e.doit = false;
					Clipboard clipboard = new Clipboard(shell.getDisplay());
					String sClipText = (String)clipboard.getContents(TextTransfer.getInstance());
					if (sClipText != null)
						addTorrentsFromTextList(sClipText, false);
				}
			}

⌨️ 快捷键说明

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