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

📄 mytorrentsview.java

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

		final MenuItem itemPositionManual = new MenuItem(menuAdvanced, SWT.PUSH);
		Messages.setLanguageText(itemPositionManual,
				"MyTorrentsView.menu.reposition.manual");
		itemPositionManual.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent e) {
				InputShell is = new InputShell(
						"MyTorrentsView.dialog.setPosition.title",
						"MyTorrentsView.dialog.setPosition.text");

				String sReturn = is.open();
				if (sReturn == null)
					return;

				int newPosition = -1;
				try {
					newPosition = Integer.valueOf(sReturn).intValue();
				} catch (NumberFormatException er) {
					// Ignore
				}

				int size = globalManager.downloadManagerCount(isSeedingView);
				if (newPosition > size)
					newPosition = size;

				if (newPosition <= 0) {
					MessageBox mb = new MessageBox(getComposite().getShell(),
							SWT.ICON_ERROR | SWT.OK);
					mb.setText(MessageText
							.getString("MyTorrentsView.dialog.NumberError.title"));
					mb.setMessage(MessageText
							.getString("MyTorrentsView.dialog.NumberError.text"));

					mb.open();
					return;
				}

				moveSelectedTorrentsTo(newPosition);
			}
		});

		// back to main menu

		if (userMode > 0 && isTrackerOn) {
			// Host
			final MenuItem itemHost = new MenuItem(menu, SWT.PUSH);
			Messages.setLanguageText(itemHost, "MyTorrentsView.menu.host");
			Utils.setMenuItemImage(itemHost, "host");
			itemHost.addListener(SWT.Selection, new Listener() {
				public void handleEvent(Event event) {
					hostSelectedTorrents();
				}
			});
	
			// Publish
			final MenuItem itemPublish = new MenuItem(menu, SWT.PUSH);
			Messages.setLanguageText(itemPublish, "MyTorrentsView.menu.publish");
			Utils.setMenuItemImage(itemPublish, "publish");
			itemPublish.addListener(SWT.Selection, new Listener() {
				public void handleEvent(Event event) {
					publishSelectedTorrents();
				}
			});

			itemHost.setEnabled(hasSelection);
			itemPublish.setEnabled(hasSelection);
		}
/*  Do we really need the Move submenu?  There's shortcut keys and toolbar
 *  buttons..

		new MenuItem(menu, SWT.SEPARATOR);

		final MenuItem itemMove = new MenuItem(menu, SWT.CASCADE);
		Messages.setLanguageText(itemMove, "MyTorrentsView.menu.move");
		Utils.setMenuItemImage(itemMove, "move");
		itemMove.setEnabled(hasSelection);

		final Menu menuMove = new Menu(getComposite().getShell(), SWT.DROP_DOWN);
		itemMove.setMenu(menuMove);

		final MenuItem itemMoveTop = new MenuItem(menuMove, SWT.PUSH);
		Messages.setLanguageText(itemMoveTop, "MyTorrentsView.menu.moveTop");
		Utils.setMenuItemImage(itemMoveTop, "top");
		itemMoveTop.addListener(SWT.Selection, new Listener() {
			public void handleEvent(Event event) {
				moveSelectedTorrentsTop();
			}
		});
		itemMoveTop.setEnabled(moveUp);

		final MenuItem itemMoveUp = new MenuItem(menuMove, SWT.PUSH);
		Messages.setLanguageText(itemMoveUp, "MyTorrentsView.menu.moveUp");
		Utils.setMenuItemImage(itemMoveUp, "up");
		itemMoveUp.addListener(SWT.Selection, new Listener() {
			public void handleEvent(Event event) {
				moveSelectedTorrentsUp();
			}
		});

		final MenuItem itemMoveDown = new MenuItem(menuMove, SWT.PUSH);
		Messages.setLanguageText(itemMoveDown, "MyTorrentsView.menu.moveDown");
		Utils.setMenuItemImage(itemMoveDown, "down");
		itemMoveDown.addListener(SWT.Selection, new Listener() {
			public void handleEvent(Event event) {
				moveSelectedTorrentsDown();
			}
		});

		final MenuItem itemMoveEnd = new MenuItem(menuMove, SWT.PUSH);
		Messages.setLanguageText(itemMoveEnd, "MyTorrentsView.menu.moveEnd");
		Utils.setMenuItemImage(itemMoveEnd, "bottom");
		itemMoveEnd.addListener(SWT.Selection, new Listener() {
			public void handleEvent(Event event) {
				moveSelectedTorrentsEnd();
			}
		});
		itemMoveEnd.setEnabled(moveDown);
*/
		/*  //TODO ensure that all limits combined don't go under the min 5kbs ?
		 //Disable at the end of the list, thus the first item of the array is instanciated last.
		 itemsSpeed[0] = new MenuItem(menuSpeed,SWT.PUSH);
		 Messages.setLanguageText(itemsSpeed[0],"MyTorrentsView.menu.setSpeed.disable");
		 itemsSpeed[0].setData("maxul", new Integer(-1));    
		 itemsSpeed[0].addListener(SWT.Selection,itemsSpeedListener);
		 */

		// Category
		menuCategory = new Menu(getComposite().getShell(), SWT.DROP_DOWN);
		final MenuItem itemCategory = new MenuItem(menu, SWT.CASCADE);
		Messages.setLanguageText(itemCategory, "MyTorrentsView.menu.setCategory"); //$NON-NLS-1$
		//itemCategory.setImage(ImageRepository.getImage("speed"));
		itemCategory.setMenu(menuCategory);
		itemCategory.setEnabled(hasSelection);

		addCategorySubMenu();

        // Rename
        final MenuItem itemRename = new MenuItem(menu, SWT.CASCADE);
        Messages.setLanguageText(itemRename, "MyTorrentsView.menu.rename");
        itemRename.setEnabled(hasSelection);
        
        final Menu menuRename = new Menu(getComposite().getShell(), SWT.DROP_DOWN);
        itemRename.setMenu(menuRename);
        
        DownloadManager first_selected = ((DownloadManager)this.getFirstSelectedDataSource());
        
        // Rename -> Displayed Name
        final MenuItem itemRenameDisplayed = new MenuItem(menuRename, SWT.CASCADE);
        Messages.setLanguageText(itemRenameDisplayed, "MyTorrentsView.menu.rename.displayed");
        itemRenameDisplayed.setEnabled(hasSelection);
        if (itemRenameDisplayed.isEnabled()) {
        	itemRenameDisplayed.setData("suggested_text", first_selected.getDisplayName());
        	itemRenameDisplayed.setData("display_name", Boolean.valueOf(true));
        	itemRenameDisplayed.setData("save_name", Boolean.valueOf(false));
        	itemRenameDisplayed.setData("msg_key", "displayed");
        }
        
        // Rename -> Save Name
        final MenuItem itemRenameSavePath = new MenuItem(menuRename, SWT.CASCADE);
        Messages.setLanguageText(itemRenameSavePath, "MyTorrentsView.menu.rename.save_path");
        itemRenameSavePath.setEnabled(fileMove && dms.length == 1);
        if (itemRenameSavePath.isEnabled()) {
        	itemRenameSavePath.setData("suggested_text", first_selected.getAbsoluteSaveLocation().getName());
        	itemRenameSavePath.setData("display_name", Boolean.valueOf(false));
        	itemRenameSavePath.setData("save_name", Boolean.valueOf(true));
        	itemRenameSavePath.setData("msg_key", "save_path");
        }

        
        // Rename -> Both
        final MenuItem itemRenameBoth = new MenuItem(menuRename, SWT.CASCADE);
        Messages.setLanguageText(itemRenameBoth, "MyTorrentsView.menu.rename.displayed_and_save_path");
        itemRenameBoth.setEnabled(fileMove && dms.length == 1);
        if (itemRenameBoth.isEnabled()) {
        	itemRenameBoth.setData("suggested_text", first_selected.getAbsoluteSaveLocation().getName());
        	itemRenameBoth.setData("display_name", Boolean.valueOf(true));
        	itemRenameBoth.setData("save_name", Boolean.valueOf(true));
        	itemRenameBoth.setData("msg_key", "displayed_and_save_path");
        }
        
        Listener rename_listener = new Listener() {
        	public void handleEvent(Event event) {
        		MenuItem mi = (MenuItem)event.widget;
        		String suggested = (String)mi.getData("suggested_text");
        		final boolean change_displayed_name = ((Boolean)mi.getData("display_name")).booleanValue();
        		final boolean change_save_name = ((Boolean)mi.getData("save_name")).booleanValue();
        		String msg_key_prefix = "MyTorrentsView.menu.rename." + (String)mi.getData("msg_key") + ".enter.";
        		SimpleTextEntryWindow text_entry = new SimpleTextEntryWindow(getComposite().getDisplay());
        		text_entry.setTitle(msg_key_prefix + "title");
        		text_entry.setMessages(new String[]{msg_key_prefix + "message", msg_key_prefix + "message.2"});
        		text_entry.setPreenteredText(suggested, false);
        		text_entry.prompt();
        		if (text_entry.hasSubmittedInput()) {
        			String value = text_entry.getSubmittedInput();
        			final String value_to_set = (value.length() == 0) ? null : value;
        			MyTorrentsView.this.runForSelectedRows(new GroupTableRowRunner() {
                        public void run(TableRowCore row) {
                        	DownloadManager dm = (DownloadManager)row.getDataSource(true);
                        	if (change_displayed_name) {
                        		dm.getDownloadState().setDisplayName(value_to_set);
                        	}
                            if (change_save_name) {
                            	try {dm.renameDownload((value_to_set==null) ? dm.getDisplayName() : value_to_set);}
                            	catch (Exception e) {
                                    Logger.log(new LogAlert(LogAlert.REPEATABLE,
                                            "Download data rename operation failed", e));
                            	}
                            }
                        }
                    });
        		}
        	}
        };
        
        itemRenameDisplayed.addListener(SWT.Selection, rename_listener);
        itemRenameSavePath.addListener(SWT.Selection, rename_listener);
        itemRenameBoth.addListener(SWT.Selection, rename_listener);

        // Edit Comment
        final MenuItem itemEditComment = new MenuItem(menu, SWT.CASCADE);
        Messages.setLanguageText(itemEditComment, "MyTorrentsView.menu.edit_comment");
        itemEditComment.setEnabled(dms.length > 0);
        if (itemEditComment.isEnabled()) {
        	itemEditComment.setData("suggested_text", first_selected.getDownloadState().getUserComment());
        }
        
        Listener edit_comment_listener = new Listener() {
        	public void handleEvent(Event event) {
        		MenuItem mi = (MenuItem)event.widget;
        		String suggested = (String)mi.getData("suggested_text");
        		String msg_key_prefix = "MyTorrentsView.menu.edit_comment.enter.";
        		SimpleTextEntryWindow text_entry = new SimpleTextEntryWindow(getComposite().getDisplay());
        		text_entry.setTitle(msg_key_prefix + "title");
        		text_entry.setMessage(msg_key_prefix + "message");
        		text_entry.setPreenteredText(suggested, false);
        		text_entry.prompt();
        		if (text_entry.hasSubmittedInput()) {
        			String value = text_entry.getSubmittedInput();
        			final String value_to_set = (value.length() == 0) ? null : value;
        			MyTorrentsView.this.runForSelectedRows(new GroupTableRowRunner() {
                        public void run(TableRowCore row) {
                        	((DownloadManager)row.getDataSource(true)).getDownloadState().setUserComment(value_to_set);
                        }
        			});
        		}
        	}
        };  
        
        itemEditComment.addListener(SWT.Selection, edit_comment_listener);
        
		// ---
		new MenuItem(menu, SWT.SEPARATOR);

		// Queue
		final MenuItem itemQueue = new MenuItem(menu, SWT.PUSH);
		Messages.setLanguageText(itemQueue, "MyTorrentsView.menu.queue"); //$NON-NLS-1$
		Utils.setMenuItemImage(itemQueue, "start");
		itemQueue.addListener(SWT.Selection, new Listener() {
			public void handleEvent(Event e) {
				queueSelectedTorrents();
			}
		});
		itemQueue.setEnabled(start);

		// Force Start
		if (userMode > 0) {
			final MenuItem itemForceStart = new MenuItem(menu, SWT.CHECK);
			Messages.setLanguageText(itemForceStart, "MyTorrentsView.menu.forceStart");
			Utils.setMenuItemImage(itemForceStart, "forcestart");
			itemForceStart.addListener(SWT.Selection, new SelectedTableRowsListener() {
				public void run(TableRowCore row) {
					DownloadManager dm = (DownloadManager) row.getDataSource(true);
	
					if (ManagerUtils.isForceStartable(dm)) {
						dm.setForceStart(itemForceStart.getSelection());
					}
				}
			});
			itemForceStart.setSelection(forceStart);
			itemForceStart.setEnabled(forceStartEnabled);
		}

		// Stop
		final MenuItem itemStop = new MenuItem(menu, SWT.PUSH);
		Messages.setLanguageText(itemStop, "MyTorrentsView.menu.stop"); //$NON-NLS-1$
		Utils.setMenuItemImage(itemStop, "stop");
		itemStop.addListener(SWT.Selection, new Listener() {
			public void handleEvent(Event e) {
				stopSelectedTorrents();
			}
		});
		itemStop.setEnabled(stop);

		// Force Recheck
		final MenuItem itemRecheck = new MenuItem(menu, SWT.PUSH);
		Messages.setLanguageText(itemRecheck, "MyTorrentsView.menu.recheck");
		Utils.setMenuItemImage(itemRecheck, "recheck");
		itemRecheck.addListener(SWT.Selection, new SelectedTableRowsListener() {
			public void run(TableRowCore row) {
				DownloadManager dm = (DownloadManager) row.getDataSource(true);

				if (dm.canForceRecheck()) {

					dm.forceRecheck();
				}
			}
		});
		itemRecheck.setEnabled(recheck);
		
		// Remove
		final MenuItem itemRemove = new MenuItem(menu, SWT.PUSH);
		Messages.setLanguageText(itemRemove, "MyTorrentsView.menu.remove"); //$NON-NLS-1$
		Utils.setMenuItemImage(itemRemove, "delete");
		itemRemove.addListener(SWT.Selection, new SelectedTableRowsListener() {
			public void run(TableRowCore row) {
				removeTorrent((DownloadManager) row.getDataSource(true), false, false);
			}
		});
		itemRemove.setEnabled(hasSelection);

		// === Remove And ===
		// ==================
		
		final MenuItem itemRemoveAnd = new MenuItem(menu, SWT.CASCADE);
		Messages.setLanguageText(itemRemoveAnd, "MyTorrentsView.menu.removeand"); //$NON-NLS-1$
		Utils.setMenuItemImage(itemRemoveAnd, "delete");
		itemRemoveAnd.setEnabled(hasSelection);

		final Menu menuRemove = new Menu(getComposite().getShell(), SWT.DROP_DOWN);
		itemRemoveAnd.setMenu(menuRemove);

		// Remove And > Delete Torrent
		final MenuItem itemDeleteTorrent = new MenuItem(menuRemove, SWT.PUSH);
		Messages.setLanguageText(itemDeleteTorrent,
				"MyTorrentsView.menu.removeand.deletetorrent"); //$NON-NLS-1$
		itemDeleteTorrent.addListener(SWT.Selection,
				new SelectedTableRowsListener() {
					public void run(TableRowCore row) {
						removeTorrent((DownloadManager) row.getDataSource(true), true,
								false);
					}
				});

		// Remove And > Delete Data
		final MenuItem itemDeleteData = new MenuItem(menuRemove, SWT.PUSH);
		Messages.setLanguageText(itemDeleteData,
				"MyTorrentsView.menu.removeand.deletedata");
		itemDeleteData.addListener(SWT.Selection, new SelectedTableRowsListener() {
			public void run(TableRowCore row) {
				removeTorrent((DownloadManager) row.getDataSource(true), false, true);
			}
		});

		// Remove And > Delete Both
		final MenuItem itemDeleteBoth = new MenuItem(menuRemove, SWT.PUSH);
		Messages.setLanguageText(itemDeleteBoth,
				"MyTorrentsView.menu.removeand.

⌨️ 快捷键说明

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