亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rssreadermidlet.java

?? rss readerr ss readerr ss reader
?? JAVA
字號:
/**
 * RssReaderMIDlet.java
 */

package RssReader;

import java.util.*;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

/**
 * RSS feed reader MIDlet
 *
 * RssReaderMIDlet is an application that can read RSS feeds. User can store
 * multiple RSS feeds as bookmarks into application's record store.
 */
public class RssReaderMIDlet extends MIDlet
        implements CommandListener, Runnable {
    
    // Attributes
    private Display     m_display;          // The display for this MIDlet
    private Settings    m_settings;         // The settings
    private Hashtable   m_rssFeeds;         // The bookmark URLs
    private Thread      m_netThread;        // The thread for networking
    private boolean     m_getPage;          // The noticy flag for HTTP
    
    // Currently selected bookmark
    private int             m_curBookmark;  // The currently selected item
    private RssFeedParser   m_curRssParser; // The currently selected RSS
    
    // GUI items
    private List        m_bookmarkList;     // The bookmark list
    private List        m_headerList;       // The header list
    private Form        m_itemForm;         // The item form
    private Form        m_addNewBMForm;     // The add new bookmark form
    private Form        m_loadForm;         // The "loading..." form
    private TextField   m_bmName;           // The RSS feed name field
    private TextField   m_bmURL;            // The RSS feed URL field
    
    // Commands
    private Command     m_addOkCmd;         // The OK command
    private Command     m_addCancelCmd;     // The Cancel command
    private Command     m_exitCommand;      // The exit command
    private Command     m_addNewBookmark;   // The add new bookmark command
    private Command     m_openBookmark;     // The open bookmark command
    private Command     m_editBookmark;     // The edit bookmark command
    private Command     m_delBookmark;      // The delete bookmark command
    private Command     m_backCommand;      // The back to header list command
    private Command     m_openHeaderCmd;    // The open header command
    private Command     m_backHeaderCmd;    // The back to bookmark list command
    private Command     m_updateCmd;        // The update headers command
    
    
    public RssReaderMIDlet() {
        m_display = Display.getDisplay(this);
        
        /** Initialize commands */
        m_addOkCmd          = new Command("OK", Command.OK, 1);
        m_addCancelCmd      = new Command("Cancel", Command.CANCEL, 2);
        m_backCommand       = new Command("Back", Command.SCREEN, 1);
        m_exitCommand       = new Command("Exit", Command.SCREEN, 4);
        m_addNewBookmark    = new Command("Add new", Command.SCREEN, 2);
        m_openBookmark      = new Command("Open", Command.SCREEN, 1);
        m_editBookmark      = new Command("Edit", Command.SCREEN, 2);
        m_delBookmark       = new Command("Delete", Command.SCREEN, 3);
        m_openHeaderCmd     = new Command("Open", Command.SCREEN, 1);
        m_backHeaderCmd     = new Command("Back", Command.SCREEN, 2);
        m_updateCmd         = new Command("Update", Command.SCREEN, 2);
        
        m_getPage = false;
        m_curBookmark = -1;
        
        /** Initialize GUI items */
        initializeBookmarkList();
        initializeAddBookmarkForm();
        initializeHeadersList();
        initializeLoadingForm();
        
        m_display.setCurrent(m_bookmarkList);
        
        /** Initialize thread for http connection operations */
        m_netThread = new Thread(this);
        m_netThread.start();
    }
    
    /** Load bookmarks from record store */
    private void initializeBookmarkList() {
        try {
            m_bookmarkList = new List("Bookmarks", List.IMPLICIT);
            m_bookmarkList.addCommand( m_exitCommand );
            m_bookmarkList.addCommand( m_addNewBookmark );
            m_bookmarkList.addCommand( m_openBookmark );
            m_bookmarkList.addCommand( m_editBookmark );
            m_bookmarkList.addCommand( m_delBookmark );
            m_bookmarkList.setCommandListener( this );
            
            boolean stop = false;
            int i = 1;
            
            m_rssFeeds = new Hashtable();
            m_settings = Settings.getInstance(this);
            String bms = m_settings.getStringProperty("bookmarks", "");
            
            if(bms.length()>0) {
                do{
                    System.out.println("bms: " + bms);
                    String part = "";
                    if(bms.indexOf("^")>0)
                        part = bms.substring(0, bms.indexOf("^"));
                    bms = bms.substring(bms.indexOf("^")+1);
                    RssFeed bm = new RssFeed( part );
                    if(bm.getName().length()>0){
                        m_bookmarkList.append(bm.getName(),null);
                        m_rssFeeds.put(bm.getName(), bm);
                    }
                    if( part.length()==0)
                        stop = true;
                }while(!stop);
            }
        } catch(Exception e) {
            
        }
    }
    
    /** Initialize loading form */
    private void initializeLoadingForm() {
        m_loadForm = new Form("Loading");
        m_loadForm.append("Loading RSS feed...");
        m_loadForm.addCommand( m_backHeaderCmd );
        m_loadForm.setCommandListener( this );
    }
    
    /** Initialize bookmark adding form */
    private void initializeAddBookmarkForm() {
        m_addNewBMForm = new Form("New bookmark");
        m_bmName = new TextField("Name", "", 35, TextField.ANY);
        m_bmURL  = new TextField("URL", "http://", 64, TextField.URL);
        m_addNewBMForm.append( m_bmName );
        m_addNewBMForm.append( m_bmURL );
        m_addNewBMForm.addCommand( m_addOkCmd );
        m_addNewBMForm.addCommand( m_addCancelCmd );
        m_addNewBMForm.setCommandListener(this);
    }
    
    /** Run method is used to get RSS feed with HttpConnection */
    public void run(){
        /* Use networking if necessary */
        long lngStart;
        long lngTimeTaken;
        while(true) {
            try {
                if( m_getPage ) {
                    try {
                        /** Get RSS feed */
                        m_curRssParser.parseRssFeed();
                        fillHeadersList();
                        m_display.setCurrent( m_headerList );
                    }catch(Exception e) {
                        /** Error while parsing RSS feed */
                        System.out.println("Error: " + e.getMessage());
                        m_loadForm.append("\nError parsing RSS feed on:\n" + 
                                m_curRssParser.getRssFeed().getUrl());
                        m_display.setCurrent( m_loadForm );
                    }
                    m_getPage = false;
                }
                lngStart = System.currentTimeMillis();
                lngTimeTaken = System.currentTimeMillis()-lngStart;
                if(lngTimeTaken<100)
                    m_netThread.sleep(75-lngTimeTaken);
            } catch (InterruptedException e) {
                break;
            }
        }
    }
    
    /** Save bookmark into record store and bookmark list */
    private void SaveBookmark(){
        String name = "";
        String url  = "";
        name = m_bmName.getString();
        url  = m_bmURL.getString();
        RssFeed bm = new RssFeed(m_bmName.getString(), m_bmURL.getString());
        String key;
        if( m_curBookmark>=0 ){
            m_bookmarkList.set(m_curBookmark, bm.getName(), null);
        } else{
            m_bookmarkList.insert(m_bookmarkList.size(), bm.getName(), null);
        }
        m_rssFeeds.put(bm.getName(), bm);
        System.out.println("bm: " + bm.getStoreString());
    }
    
    /** Fill RSS header list */
    private void fillHeadersList() {
        while(m_headerList.size()>0)
            m_headerList.delete(0);
        for(int i=0; i<m_curRssParser.getRssFeed().getItems().size(); i++){
            RssFeed feed = m_curRssParser.getRssFeed();
            RssItem r = (RssItem)feed.getItems().elementAt(i);
            m_headerList.append( r.getTitle(), null );
        }
    }
    
    /** Initialize RSS headers list */
    private void initializeHeadersList() {
        m_headerList = new List("Headers", List.IMPLICIT);
        m_headerList.addCommand(m_openHeaderCmd);
        m_headerList.addCommand(m_backHeaderCmd);
        m_headerList.addCommand(m_updateCmd);
        m_headerList.setCommandListener(this);
    }
    
    /** Initialize RSS item form */
    private void initializeItemForm(RssItem item) {
        if( m_itemForm == null){
            System.out.println("Create new item form");
            m_itemForm = new Form( item.getTitle() );
            m_itemForm.addCommand( m_backCommand );
            m_itemForm.setCommandListener(this);
        }
        while(m_itemForm.size()>0) {
            System.out.println("Delete item");
            m_itemForm.delete(0);
        }
        m_itemForm.append(new StringItem("Title:", 
                item.getTitle()));
        m_itemForm.append(new StringItem("Description:", 
                item.getDescription()));
        m_itemForm.append(new StringItem("Link:", 
                item.getLink()));
    }
    
    /**
     * Start up the Hello MIDlet by creating the TextBox and associating
     * the exit command and listener.
     */
    public void startApp() {
        m_display.setCurrent( m_bookmarkList );
    }
    
    /**
     * Pause is a no-op since there are no background activities or
     * record stores that need to be closed.
     */
    public void pauseApp() {
    }
    
    /**
     * Destroy must cleanup everything not handled by the garbage collector.
     * In this case there is nothing to cleanup.
     */
    public void destroyApp(boolean unconditional) {
    }
    
    /** Save bookmarks to record store */
    public void saveBookmarks() {
        String bookmarks = "";
        for( int i=0; i<m_bookmarkList.size(); i++) {
            String name = m_bookmarkList.getString(i);
            RssFeed rss = (RssFeed)m_rssFeeds.get( name );
            if( name.length()>0)
                bookmarks += rss.getName() + "|" + rss.getUrl() + "^";
        }
        m_settings.setStringProperty("bookmarks",bookmarks);
    }
    
    /** Update RSS feed's headers */
    private void updateHeaders() {
        initializeLoadingForm();
        m_display.setCurrent( m_loadForm );
        if(m_curRssParser.getRssFeed().getUrl().length()>0) {
            m_getPage = true;
        }
    }
    
    /** Respond to commands */
    public void commandAction(Command c, Displayable s) {
        /** Add new RSS feed bookmark */
        if( c == m_addNewBookmark ){
            m_curBookmark = -1;
            m_bmName.setString("");
            m_bmURL.setString("http://");
            m_display.setCurrent( m_addNewBMForm );
        }
        
        /** Exit from MIDlet and save bookmarks */
        if( c == m_exitCommand ){
            try {
                saveBookmarks();
                m_settings.save(false);
            } catch(Exception e) {}
            destroyApp(false);
            notifyDestroyed();
        }
        
        /** Save currently edited (or added) RSS feed's properties */
        if( c == m_addOkCmd ){
            SaveBookmark();
            m_display.setCurrent( m_bookmarkList );
        }
        
        /** Cancel currently edited (or added) RSS feed's properties */
        if( c == m_addCancelCmd ){
            m_display.setCurrent( m_bookmarkList );
        }
        
        /** Edit currently selected RSS feed bookmark */
        if( c == m_editBookmark ){
            if( m_bookmarkList.size()>0 ){
                m_curBookmark = m_bookmarkList.getSelectedIndex();
                RssFeed bm = (RssFeed)m_rssFeeds.get(
                        m_bookmarkList.getString(m_curBookmark));
                m_bmName.setString( bm.getName() );
                m_bmURL.setString(  bm.getUrl() );
                m_display.setCurrent( m_addNewBMForm );
            }
        }
        
        /** Delete currently selected RSS feed bookmark */
        if( c == m_delBookmark ){
            if( m_bookmarkList.size()>0 ){
                m_curBookmark = m_bookmarkList.getSelectedIndex();
                m_bookmarkList.delete( m_curBookmark );
            }
        }
        
        /** Open RSS feed bookmark */
        if( c == m_openBookmark || (c == List.SELECT_COMMAND && 
                m_display.getCurrent()==m_bookmarkList)){
            if( m_bookmarkList.size()>0 ){
                m_curBookmark = m_bookmarkList.getSelectedIndex();
                
                RssFeed feed = (RssFeed)m_rssFeeds.get(
                        m_bookmarkList.getString(m_curBookmark));
                m_curRssParser = new RssFeedParser( feed );
                if( m_curRssParser.getRssFeed().getItems().size()==0 ) {
                    /** Update RSS feed headers only if this is a first time */
                    updateHeaders();
                } else {
                    /**
                     * Show currently selected RSS feed
                     * headers without updating them
                     */
                    fillHeadersList();
                    m_display.setCurrent( m_headerList );
                }
            }
        }
        
        /** Open RSS feed's selected topic */
        if( c == m_openHeaderCmd || (c == List.SELECT_COMMAND &&
                m_display.getCurrent()==m_headerList)) {
            if( m_headerList.size()>0 ) {
                RssFeed feed = m_curRssParser.getRssFeed();
                RssItem item = (RssItem) feed.getItems().elementAt(
                        m_headerList.getSelectedIndex() );
                initializeItemForm( item );
                m_display.setCurrent( m_itemForm );
            }
        }
        
        /** Get back to RSS feed headers */
        if( c == m_backCommand ){
            m_display.setCurrent( m_headerList );
        }
        
        /** Get back to RSS feed bookmarks */
        if( c == m_backHeaderCmd ){
            m_display.setCurrent( m_bookmarkList );
        }
        
        /** Update currently selected RSS feed's headers */
        if( c == m_updateCmd ) {
            updateHeaders();
        }
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区免费在线观看| 91免费视频观看| 一本一道波多野结衣一区二区| 日韩欧美国产精品一区| 亚洲欧洲日韩av| 国产精品白丝jk黑袜喷水| 在线成人免费视频| 自拍偷在线精品自拍偷无码专区| 国产一区二区三区四区在线观看 | 国产美女视频91| 在线观看av不卡| 国产精品欧美一级免费| 国产在线不卡一区| 欧美一区午夜精品| 亚洲超丰满肉感bbw| 色狠狠色噜噜噜综合网| 国产精品全国免费观看高清| 久99久精品视频免费观看| 欧美一区二区三区日韩视频| 亚洲国产一区视频| 日本高清成人免费播放| 亚洲视频一区在线| 99久久精品免费看| 亚洲欧美日韩一区二区| 97久久久精品综合88久久| 国产精品不卡在线观看| 成人精品在线视频观看| 亚洲国产高清aⅴ视频| 高清国产一区二区| 国产精品视频看| 99久久精品免费看国产免费软件| 国产精品久线在线观看| a级精品国产片在线观看| 国产精品美女久久久久aⅴ国产馆| 国产精品一区在线| 国产日产精品1区| 成人av动漫在线| 亚洲欧美在线视频观看| 在线精品视频免费播放| 丝袜诱惑制服诱惑色一区在线观看| 欧美午夜宅男影院| 日韩电影在线一区| 久久亚洲精华国产精华液| 国产成人亚洲综合色影视| 国产精品国产自产拍在线| 91蝌蚪porny成人天涯| 亚洲成人av在线电影| 日韩你懂的电影在线观看| 国产成人综合网| 亚洲免费在线电影| 欧美精品日韩一本| 国产一区不卡视频| 亚洲欧美色一区| 欧美精品tushy高清| 国产综合色产在线精品| 亚洲少妇屁股交4| 777午夜精品免费视频| 狠狠色综合播放一区二区| 国产精品无遮挡| 欧美探花视频资源| 国产精品1区二区.| 亚洲一区二区三区免费视频| 亚洲精品在线免费播放| 91小视频免费看| 久久电影网电视剧免费观看| 国产精品久久综合| 91精品国产色综合久久不卡电影 | 精品国产伦一区二区三区观看方式| 国产精品亚洲专一区二区三区| 亚洲精品久久7777| 精品成人a区在线观看| 一本一道久久a久久精品综合蜜臀| 日本不卡中文字幕| 亚洲品质自拍视频网站| 国产精品三级视频| 91精品国产乱| 色欧美片视频在线观看| 国产专区欧美精品| 亚洲成人免费视频| 成人欧美一区二区三区视频网页 | 久久99最新地址| 亚洲美女视频在线| 久久精品夜色噜噜亚洲a∨| 欧美伊人精品成人久久综合97 | 欧美在线观看一二区| 国产乱码字幕精品高清av| 亚洲一卡二卡三卡四卡 | 精品成人a区在线观看| 欧美日韩一区二区在线观看| 国产 欧美在线| 狠狠色狠狠色合久久伊人| 亚洲电影第三页| 亚洲欧美日韩国产手机在线| 国产亚洲欧美日韩俺去了| 日韩小视频在线观看专区| 欧美视频一区在线| 91在线精品一区二区| 粉嫩久久99精品久久久久久夜| 免费欧美日韩国产三级电影| 亚洲高清视频中文字幕| 亚洲精品国产无套在线观| 国产欧美日韩另类视频免费观看| 91精品国产入口| 欧美一区二区视频在线观看2020 | 欧美精品一区二区三区高清aⅴ| 欧美日本国产一区| 欧美无乱码久久久免费午夜一区| 91视频观看视频| 99re在线视频这里只有精品| 成人福利视频网站| 从欧美一区二区三区| 成人性色生活片| 成人精品在线视频观看| 99精品久久久久久| 91麻豆蜜桃一区二区三区| 91国偷自产一区二区开放时间 | 成人性生交大片免费看中文 | 麻豆精品视频在线| 久久不见久久见免费视频7 | 色猫猫国产区一区二在线视频| 99久久伊人网影院| 色欧美乱欧美15图片| 欧美日韩一区二区在线观看| 欧美日韩国产高清一区二区三区 | 国产成人福利片| 成人中文字幕在线| 色诱亚洲精品久久久久久| 欧美专区日韩专区| 欧美日韩国产综合久久| 欧美电影免费观看完整版| 久久蜜桃香蕉精品一区二区三区| 国产欧美日韩精品一区| 亚洲三级电影全部在线观看高清| 一区二区三区视频在线观看| 视频一区在线播放| 狠狠色狠狠色综合系列| 99re亚洲国产精品| 制服丝袜日韩国产| 国产欧美精品一区二区色综合| 国产精品不卡在线| 日韩精品亚洲一区| 国产风韵犹存在线视精品| 色一区在线观看| 在线播放欧美女士性生活| 久久久精品欧美丰满| 亚洲欧美日韩系列| 蜜桃av一区二区三区| 成人综合在线观看| 欧美肥妇毛茸茸| 国产午夜亚洲精品不卡| 一区二区三区四区高清精品免费观看 | 欧美不卡在线视频| 综合欧美亚洲日本| 麻豆成人免费电影| 不卡一二三区首页| 日韩欧美国产综合一区| 国产精品久久久久久久久免费樱桃| 亚洲a一区二区| 国产91在线观看丝袜| 欧美另类变人与禽xxxxx| 国产女人aaa级久久久级| 日韩综合小视频| 99精品国产91久久久久久 | 欧美日韩成人综合| 中文字幕精品在线不卡| 日韩电影在线观看一区| 成人黄色软件下载| 久久色在线视频| 亚洲国产成人av好男人在线观看| 国产高清不卡一区二区| 欧美一区二区三区爱爱| 亚洲一区二区偷拍精品| 成人午夜免费av| 欧美精品一区二区久久婷婷| 亚洲午夜在线电影| 欧美mv日韩mv国产| 亚洲午夜精品网| 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 亚洲精品国产a| 国产丶欧美丶日本不卡视频| 欧美一区二区三区视频在线| 亚洲一区二区成人在线观看| 色综合天天性综合| 一区在线观看免费| 国产一区三区三区| 欧美一卡在线观看| 亚洲成人午夜影院| 欧美羞羞免费网站| 依依成人综合视频| 91亚洲精品一区二区乱码| 国产欧美日韩精品a在线观看| 精品亚洲成av人在线观看| 日韩欧美国产不卡| 老司机精品视频一区二区三区| 欧美日本在线播放| 日韩国产欧美在线视频| 91精品国产综合久久精品性色| 日韩黄色小视频| 日韩一级高清毛片| 精品一区二区三区久久|