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

📄 mynewsmain.java

📁 RSS一般理解为Rich Site Summary的所写
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
					TreeItem ti = (TreeItem)i.next();
					if (ti == tmp){
						//delete it! (is this the right way?)
						tree_1.setSelection(ti.getParentItem());
						i.remove();
						ti.dispose();
						break;
					}
				}
			}
		});
		
		menuRename.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(final SelectionEvent e) {
				RenameDialog rd = new RenameDialog(shell);
				Object tmpName = rd.open();
				if (tmpName == null)
					return;
				TreeItem tmp = tree_1.getSelection()[0];
				java.util.Vector<TreeItem> itemsArray = (java.util.Vector<TreeItem>)shell.getData("feedItems");
				for (Iterator i = itemsArray.iterator(); i.hasNext(); ){
					TreeItem ti = (TreeItem)i.next();
					if (ti == tmp){
						//rename
						ti.setText(tmpName.toString());
						ti.setData("title", tmpName.toString());
						break;
					}
				}
			}
		});
		
		menuItem_11.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(final SelectionEvent e) {
				RenameDialog rd = new RenameDialog(shell);
				Object tmpName = rd.open();
				if (tmpName == null)
					return;
				TreeItem tmp = tree_1.getSelection()[0];
				//rename the group name in all affected feeds.
				java.util.Vector<TreeItem> itemsArray = (java.util.Vector<TreeItem>)shell.getData("feedItems");
				for (Iterator i = itemsArray.iterator(); i.hasNext(); ){
					TreeItem ti = (TreeItem)i.next();
					if (ti.getData("group").equals(tmp.getText())){
						//delete it! (is this the right way?)
						ti.setData("group", tmpName.toString());
					}
				}
				itemsArray = (java.util.Vector<TreeItem>)shell.getData("groupItems");
				for (Iterator i = itemsArray.iterator(); i.hasNext(); ){
					TreeItem ti = (TreeItem)i.next();
					if (ti == tmp){
						//rename
						ti.setText(tmpName.toString());
						ti.setData("name", tmpName.toString());
						break;
					}
				}
			}
		});
		
		menuItem_10.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(final SelectionEvent e) {
				if (!MessageDialog.openConfirm(shell, "Are you sure?", "Are you sure you want delete this group? This will delete ALL the feeds under this group!"))
					return;
				TreeItem tmp = tree_1.getSelection()[0];
				java.util.Vector<TreeItem> itemsArray = (java.util.Vector<TreeItem>)shell.getData("feedItems");
				for (Iterator i = itemsArray.iterator(); i.hasNext(); ){
					TreeItem ti = (TreeItem)i.next();
					if (ti.getData("group").equals(tmp.getText())){
						//delete it! (is this the right way?)
						tree_1.setSelection(ti.getParentItem());
						i.remove();
						ti.dispose();
					}
				}
				itemsArray = (java.util.Vector<TreeItem>)shell.getData("groupItems");
				for (Iterator i = itemsArray.iterator(); i.hasNext(); ){
					TreeItem ti = (TreeItem)i.next();
					if (ti == tmp){
						//delete it!
						i.remove();
						ti.dispose();
						break;
					}
				}
			}
		});
		
		java.util.Vector<TreeItem> groupItems = new java.util.Vector<TreeItem>();
		for(Object obj : groups.getChildren()){
			Element el = (Element)obj;
			TreeItem treeItem = new TreeItem(tree_1, SWT.NONE);
			treeItem.setText(el.getAttributeValue("name"));
			treeItem.setData("name", el.getAttributeValue("name"));
			treeItem.setImage(SWTResourceManager.getImage(MyNewsMain.class, "/img/mbi_023.gif"));
			groupItems.add(treeItem);
		}
		shell.setData("groupItems", groupItems);	// 鍜屽瓙绐楀彛浜ゆ崲淇℃伅
		java.util.Vector<TreeItem> feedItems = new java.util.Vector<TreeItem>();
		for(Object obj : feeds.getChildren()){
			Element el = (Element)obj;
			TreeItem myGroup = null;
			for(TreeItem obj1 : groupItems){
				if (el.getAttributeValue("group").equals(obj1.getText())){
					myGroup = obj1;
					break;
				}
			}
			TreeItem treeItem = new TreeItem(myGroup, SWT.NONE);
			treeItem.setText(el.getAttributeValue("title"));
			treeItem.setImage(SWTResourceManager.getImage(MyNewsMain.class, "/img/mbi_039.gif"));
			treeItem.setData("rss", el.getAttributeValue("rss"));
			treeItem.setData("url", el.getAttributeValue("url"));
			treeItem.setData("title", el.getAttributeValue("title"));
			treeItem.setData("group", el.getAttributeValue("group"));
			feedItems.add(treeItem);
		}
		shell.setData("feedItems", feedItems);
		
		final Browser browser = new Browser(shell, SWT.NONE);
		final FormData fd_browser = new FormData();
		fd_browser.top = new FormAttachment(0, 40);
		fd_browser.right = new FormAttachment(100, -10);
		fd_browser.left = new FormAttachment(tree_1, 10);
		fd_browser.bottom = new FormAttachment(100, -10);
		browser.setLayoutData(fd_browser);
		browser.setUrl("file:///" + System.getProperty("user.dir") + "/Welcome.html");
		
		menuItem_15.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(final SelectionEvent e) {
				AboutDialog ad = new AboutDialog(shell);
				Object ret = ad.open();
				if (ret != null)
					browser.setUrl(ret.toString());
			}
		});
		
		menuItem_14.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(final SelectionEvent e) {
				browser.setUrl("file:///" + System.getProperty("user.dir") + "/UserGuide.html");
				//browser.setText(getFileContents("UserGuide.html"));
			}
		});
		
		tree_1.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(final SelectionEvent e) {
				TreeItem tmp = (TreeItem)e.item;
				if (tmp.getParentItem() == null){ //group item
					menuDelete.setEnabled(false);
					menuRename.setEnabled(false);
					menuProperity.setEnabled(false);
					menuItem_10.setEnabled(true);
					menuItem_11.setEnabled(true);
					menuItem_13.setEnabled(true);
				} else { // feed item
					menuDelete.setEnabled(true);
					menuRename.setEnabled(true);
					menuProperity.setEnabled(true);
					menuItem_10.setEnabled(false);
					menuItem_11.setEnabled(false);
					menuItem_13.setEnabled(false);
					shell.setText("MyNewsReader - Fetching RSS feed, please wait......");
					Document doc = null;
					try {
						doc = new SAXBuilder().build(new java.net.URL(tmp.getData("rss").toString()));
					} catch (Exception ex){
						MessageDialog.openError(shell, "Error", "The rss feed seems got some errors, see below:\n\n" + ex.getMessage());
						shell.setText("MyNewsReader");
						return;
					}
					Element channel = doc.getRootElement().getChild("channel");
					if (channel == null){
						MessageDialog.openError(shell, "Error", "This is not a valid rss feed!");
						shell.setText("MyNewsReader");
						return;
					}
					curHtml = skinTemplate.replaceFirst("\\{title\\}", channel.getChildTextTrim("title"));
					curHtml = curHtml.replaceFirst("\\{desc\\}", channel.getChildTextTrim("description"));
					String itemContent = new String();
					List items = channel.getChildren("item");
					for (Iterator i = items.iterator(); i.hasNext();){
						Element el = (Element)i.next();
						String test = itemTemplate.replaceFirst("\\{title\\}", el.getChildTextTrim("title"));
						test = test.replaceFirst("\\{link\\}", el.getChildTextTrim("link"));
						test = test.replaceFirst("\\{description\\}", el.getChildTextTrim("description"));
						test = test.replaceFirst("\\{date\\}", el.getChildTextTrim("pubDate"));
						itemContent += test;
					}
					curHtml = curHtml.replaceFirst("\\{items\\}", itemContent);
					browser.setText(curHtml);
					text.setText(tmp.getData("url").toString());
					shell.setText("MyNewsReader");
				}
			}
		});

		final Button backButton = new Button(shell, SWT.NONE);
		backButton.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(final SelectionEvent e) {
				browser.back();
			}
		});
		backButton.setToolTipText("Back");
		backButton.setImage(SWTResourceManager.getImage(MyNewsMain.class, "/img/mbi_003.gif"));
		final FormData fd_backButton = new FormData();
		fd_backButton.right = new FormAttachment(0, 225);
		fd_backButton.bottom = new FormAttachment(browser, -5, SWT.TOP);
		fd_backButton.top = new FormAttachment(tree_1, 0, SWT.TOP);
		fd_backButton.left = new FormAttachment(browser, 0, SWT.LEFT);
		backButton.setLayoutData(fd_backButton);

		final Button button_1 = new Button(shell, SWT.NONE);
		button_1.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(final SelectionEvent e) {
				browser.forward();
			}
		});
		button_1.setToolTipText("Foward");
		button_1.setImage(SWTResourceManager.getImage(MyNewsMain.class, "/img/mbi_005.gif"));
		final FormData fd_button_1 = new FormData();
		fd_button_1.bottom = new FormAttachment(0, 35);
		fd_button_1.top = new FormAttachment(0, 10);
		fd_button_1.left = new FormAttachment(0, 230);
		fd_button_1.right = new FormAttachment(0, 270);
		button_1.setLayoutData(fd_button_1);

		final Button backButton_1 = new Button(shell, SWT.FLAT);
		backButton_1.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(final SelectionEvent e) {
				browser.setUrl("file:///" + System.getProperty("user.dir") + "/Welcome.html");
			}
		});
		backButton_1.setToolTipText("Home");
		backButton_1.setImage(SWTResourceManager.getImage(MyNewsMain.class, "/img/gif_57_030.gif"));
		final FormData fd_backButton_1 = new FormData();
		fd_backButton_1.bottom = new FormAttachment(0, 35);
		fd_backButton_1.top = new FormAttachment(0, 10);
		fd_backButton_1.left = new FormAttachment(0, 275);
		fd_backButton_1.right = new FormAttachment(0, 315);
		backButton_1.setLayoutData(fd_backButton_1);

		final Button backButton_1_1 = new Button(shell, SWT.FLAT);
		backButton_1_1.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(final SelectionEvent e) {
				if (!browser.getUrl().equalsIgnoreCase("about:blank"))
					browser.setUrl(browser.getUrl());
			}
		});
		backButton_1_1.setToolTipText("Refresh");
		backButton_1_1.setImage(SWTResourceManager.getImage(MyNewsMain.class, "/img/iecool_arrow_227.gif"));
		final FormData fd_backButton_1_1 = new FormData();
		fd_backButton_1_1.bottom = new FormAttachment(0, 35);
		fd_backButton_1_1.top = new FormAttachment(0, 10);
		fd_backButton_1_1.right = new FormAttachment(backButton_1, 45, SWT.RIGHT);
		fd_backButton_1_1.left = new FormAttachment(backButton_1, 5, SWT.RIGHT);
		backButton_1_1.setLayoutData(fd_backButton_1_1);

		text = new Text(shell, SWT.BORDER);
		text.addKeyListener(new KeyAdapter() {
			public void keyReleased(final KeyEvent e) {
				if (e.keyCode == 13){
					if (text.getText().equals(""))
						return;
					browser.setUrl(text.getText());
				}
			}
		});
		text.setToolTipText("Enter a url here");
		final FormData fd_text = new FormData();
		fd_text.bottom = new FormAttachment(0, 35);
		fd_text.top = new FormAttachment(0, 12);
		fd_text.left = new FormAttachment(backButton_1_1, 5, SWT.RIGHT);
		text.setLayoutData(fd_text);

		Button button;
		button = new Button(shell, SWT.ARROW | SWT.RIGHT);
		button.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(final SelectionEvent e) {
				if (text.getText().equals(""))
					return;
				browser.setUrl(text.getText());
			}
		});
		button.setToolTipText("Go!");
		fd_text.right = new FormAttachment(button, -5, SWT.LEFT);
		final FormData fd_button = new FormData();
		fd_button.top = new FormAttachment(browser, -30, SWT.TOP);
		fd_button.bottom = new FormAttachment(browser, -5, SWT.TOP);
		fd_button.right = new FormAttachment(100, -10);
		fd_button.left = new FormAttachment(100, -43);
		button.setLayoutData(fd_button);
		//
	}
}

⌨️ 快捷键说明

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