📄 mynewsmain.java
字号:
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 + -