Changeset 15143

Show
Ignore:
Timestamp:
07/04/08 12:48:31 (5 years ago)
Author:
yamashiro
Message:

マルチサービスでうまく動くようにしてコミットした。

Location:
platform/eclipse/sabotter/trunk
Files:
7 added
26 modified
1 moved

Legend:

Unmodified
Added
Removed
  • platform/eclipse/sabotter/trunk/jp.xet.sabotter.core/src/jp/xet/sabotter/core/MiniblogEntry.java

    r15108 r15143  
    1414        /** 
    1515         * サービスIDを取得する。 
     16         *  
    1617         * @return サービスID 
    1718         */ 
     
    7273         *  
    7374         * ダイレクトメッセージであれば、常に<code>true</code>を返す。 
    74          * @param myId  
    7575         *  
    7676         * @return 自分宛返信であれば<code>true</code> 
    7777         */ 
    78         boolean isMessageToMe(String myId); 
     78        boolean isMessageToMe(); 
    7979         
    8080        /** 
    8181         * 自分によるEntryかどうかを調べる。 
    82          * @param myId  
     82         *  
    8383         *  
    8484         * @return 自分によるEntryであれば<code>true</code> 
    8585         */ 
    86         boolean isMyEntry(String myId); 
     86        boolean isMyEntry(); 
    8787} 
  • platform/eclipse/sabotter/trunk/jp.xet.sabotter.core/src/jp/xet/sabotter/core/mock/MockEntry.java

    r15108 r15143  
    8888         * {@inheritDoc} 
    8989         */ 
    90         public boolean isMessageToMe(String myId) { 
    91                 return getText().contains("@" + myId); 
     90        public boolean isMessageToMe() { 
     91                return getText().contains("@" + this.user.getUserId()); 
    9292        } 
    9393         
     
    9595         * {@inheritDoc} 
    9696         */ 
    97         public boolean isMyEntry(String myId) { 
    98                 return user.getUserId().equals(myId); 
     97        public boolean isMyEntry() { 
     98                return user.getUserId().equals(this.user.getUserId()); 
    9999        } 
    100100         
  • platform/eclipse/sabotter/trunk/jp.xet.sabotter.core/src/jp/xet/sabotter/core/mock/MockService.java

    r15114 r15143  
    2020 */ 
    2121public class MockService implements MiniblogService { 
     22         
     23        public static final String SERVICE_ID = "Mock"; 
    2224         
    2325        private int nextId = 1000; 
     
    9193         */ 
    9294        public String getServiceId() { 
    93                 return "Mock"; 
     95                return SERVICE_ID; 
    9496        } 
    9597         
     
    197199                for (int i = 0; i < num; i++) { 
    198200                        miniblogEntry = createDummyEntry(new Date(prev.getTime() + (10000 * i)), false); 
    199                         if (miniblogEntry.isMessageToMe(user.getUserId())) { 
     201                        if (miniblogEntry.isMessageToMe()) { 
    200202                                add(replies, miniblogEntry); 
    201203                        } 
  • platform/eclipse/sabotter/trunk/jp.xet.sabotter.core/src/jp/xet/sabotter/core/twitter/TwitterAdapterWrapper.java

    r15107 r15143  
    2424        private MiniblogServiceResponceListener listener; 
    2525         
     26        private String userId; 
     27         
    2628 
    2729        /** 
    2830         * コンストラクタ。 
    2931         *  
     32         * @param userId サービスを利用中のuserId 
    3033         * @param listener 
    3134         */ 
    32         public TwitterAdapterWrapper(MiniblogServiceResponceListener listener) { 
     35        public TwitterAdapterWrapper(MiniblogServiceResponceListener listener, String userId) { 
    3336                this.listener = listener; 
     37                this.userId = userId; 
    3438        } 
    3539         
     
    4448                 
    4549                for (Status status : statuses) { 
    46                         wrapList.add(new TwitterStatusEntry(status)); 
     50                        wrapList.add(new TwitterStatusEntry(status, this.userId)); 
    4751                } 
    4852                 
     
    6064                 
    6165                for (DirectMessage message : messages) { 
    62                         wrapList.add(new TwitterDirectMessageEntry(message)); 
     66                        wrapList.add(new TwitterDirectMessageEntry(message, this.userId)); 
    6367                } 
    6468                 
     
    7680                 
    7781                for (Status status : statuses) { 
    78                         wrapList.add(new TwitterStatusEntry(status)); 
     82                        wrapList.add(new TwitterStatusEntry(status, this.userId)); 
    7983                } 
    8084                 
     
    9094        public void onException(TwitterException ex, int method) { 
    9195                // FIXME 
    92 //              if (ex.getStatusCode() == 400) { // タイムライン取得制限 
    93 //                      SabotterPlugin.handleException(ex, SabotterPlugin.DIALOG, "API limit rate over."); 
    94 //              } 
    95 //              ex.printStackTrace(); 
     96// if (ex.getStatusCode() == 400) { // タイムライン取得制限 
     97// SabotterPlugin.handleException(ex, SabotterPlugin.DIALOG, "API limit rate over."); 
     98// } 
     99// ex.printStackTrace(); 
    96100                this.listener.onException(new MiniblogServiceException(ex), method); 
    97101        } 
  • platform/eclipse/sabotter/trunk/jp.xet.sabotter.core/src/jp/xet/sabotter/core/twitter/TwitterDirectMessageEntry.java

    r15090 r15143  
    1818        private DirectMessage directMessage; 
    1919         
     20        private String userId; 
     21         
    2022 
    2123        /** 
    2224         * コンストラクタ。 
    2325         *  
     26         * @param userId サービスを利用中のID 
    2427         * @param directMessage 
    2528         */ 
    26         public TwitterDirectMessageEntry(DirectMessage directMessage) { 
     29        public TwitterDirectMessageEntry(DirectMessage directMessage, String userId) { 
    2730                this.directMessage = directMessage; 
     31                this.userId = userId; 
    2832        } 
    2933         
     
    8084         * {@inheritDoc} 
    8185         */ 
    82         public boolean isMessageToMe(String myId) { 
     86        public boolean isMessageToMe() { 
    8387                return true; 
    8488        } 
     
    8791         * {@inheritDoc} 
    8892         */ 
    89         public boolean isMyEntry(String myId) { 
    90                 return directMessage.getSender().getScreenName().equals(myId); 
     93        public boolean isMyEntry() { 
     94                return directMessage.getSender().getScreenName().equals(this.userId); 
    9195        } 
    9296         
  • platform/eclipse/sabotter/trunk/jp.xet.sabotter.core/src/jp/xet/sabotter/core/twitter/TwitterService.java

    r15114 r15143  
    2121         
    2222        private PatentAsyncTwitterImpl twitter; 
     23         
     24        /** ツイッターサービスの ID です */ 
     25        public static final String SERVICE_ID = "Twitter"; 
    2326         
    2427 
     
    7174         */ 
    7275        public String getServiceId() { 
    73                 return "Twitter"; 
     76                return SERVICE_ID; 
    7477        } 
    7578         
     
    7881         */ 
    7982        public final void createFavorite(String statusId, MiniblogServiceResponceListener listener) { 
    80                 this.twitter.createFavoriteAsync(Integer.parseInt(statusId), new TwitterAdapterWrapper(listener)); 
     83                this.twitter.createFavoriteAsync(Integer.parseInt(statusId), new TwitterAdapterWrapper(listener, twitter 
     84                        .getUserId())); 
    8185        } 
    8286         
     
    8690        public final void getFriendsTimeline(MiniblogServiceResponceListener listener) { 
    8791                // this.twitter.verifyCredentials(); 
    88                 this.twitter.getFriendsTimelineAsync(new TwitterAdapterWrapper(listener)); 
     92                this.twitter.getFriendsTimelineAsync(new TwitterAdapterWrapper(listener, twitter.getUserId())); 
    8993        } 
    9094         
     
    9498        public MiniblogEntry update(String statusText) throws MiniblogServiceException { 
    9599                try { 
    96                         return new TwitterStatusEntry(this.twitter.update(statusText)); 
     100                        return new TwitterStatusEntry(this.twitter.update(statusText), twitter.getUserId()); 
    97101                } catch (TwitterException e) { 
    98102                        throw new MiniblogServiceException(e); 
     
    115119         */ 
    116120        public void getReplies(MiniblogServiceResponceListener listener) { 
    117                 twitter.getRepliesAsync(new TwitterAdapterWrapper(listener)); 
     121                twitter.getRepliesAsync(new TwitterAdapterWrapper(listener, twitter.getUserId())); 
    118122        } 
    119123         
     
    124128         */ 
    125129        public void getDirectMessages(MiniblogServiceResponceListener listener) { 
    126                 twitter.getDirectMessagesAsync(new TwitterAdapterWrapper(listener)); 
     130                twitter.getDirectMessagesAsync(new TwitterAdapterWrapper(listener, twitter.getUserId())); 
    127131        } 
    128132         
  • platform/eclipse/sabotter/trunk/jp.xet.sabotter.core/src/jp/xet/sabotter/core/twitter/TwitterStatusEntry.java

    r15108 r15143  
    1515/** 
    1616 * TODO describe 
     17 *  
    1718 * @author daisuke 
    1819 */ 
     
    2223        private Status status; 
    2324         
     25        private String userId; 
     26         
    2427 
    2528        /** 
    2629         * コンストラクタ。 
    2730         *  
     31         * @param userId サービスを利用中の人の iD 
    2832         * @param status 
    2933         */ 
    30         public TwitterStatusEntry(Status status) { 
     34        public TwitterStatusEntry(Status status, String userId) { 
    3135                this.status = status; 
     36                this.userId = userId; 
    3237        } 
    3338         
     
    8085         * {@inheritDoc} 
    8186         */ 
    82         public boolean isMessageToMe(String myId) { 
    83                 return getText().contains("@" + myId); 
     87        public boolean isMessageToMe() { 
     88                return getText().contains("@" + this.userId); 
    8489        } 
    8590         
     
    8792         * {@inheritDoc} 
    8893         */ 
    89         public boolean isMyEntry(String myId) { 
    90                 return status.getUser().getScreenName().equals(myId); 
     94        public boolean isMyEntry() { 
     95                return status.getUser().getScreenName().equals(this.userId); 
    9196        } 
    9297         
  • platform/eclipse/sabotter/trunk/jp.xet.sabotter.core/src/jp/xet/sabotter/core/wassr/WassrEntry.java

    r15114 r15143  
    9999         * {@inheritDoc} 
    100100         */ 
    101         public boolean isMessageToMe(String myId) { 
     101        public boolean isMessageToMe() { 
    102102                return isMessageToMe; 
    103103        } 
     
    106106         * {@inheritDoc} 
    107107         */ 
    108         public boolean isMyEntry(String myId) { 
     108        public boolean isMyEntry() { 
    109109                return isMyEntry; 
    110110        } 
  • platform/eclipse/sabotter/trunk/jp.xet.sabotter.core/src/jp/xet/sabotter/core/wassr/WassrService.java

    r15114 r15143  
    3434        private String myId; 
    3535         
     36        /** wassr サービスの ID です */ 
     37        public static final String SERVICE_ID = "Wassr"; 
     38         
    3639 
    3740        /** 
     
    4750         */ 
    4851        public String getServiceId() { 
    49                 return "Wassr"; 
     52                return SERVICE_ID; 
    5053        } 
    5154         
     
    5457         */ 
    5558        public void setAccount(String userId, String password) { 
    56                 // TODO! 
     59                client.setUserId(userId); 
     60                client.setPassword(password); 
    5761        } 
    5862         
     
    6064         * {@inheritDoc} 
    6165         */ 
    62         public void changeAccount(String username, String password) { 
    63                 // TODO Auto-generated method stub 
    64                  
     66        public void changeAccount(String userId, String password) { 
     67                client.setUserId(userId); 
     68                client.setPassword(password); 
    6569        } 
    6670         
  • platform/eclipse/sabotter/trunk/jp.xet.sabotter.eclipse.service.mock/plugin.xml

    r15101 r15143  
    1212      <page 
    1313            class="jp.xet.sabotter.eclipse.service.mock.MockPreferencePage" 
    14             id="jp.xet.sabotter.preference.twitter" 
     14            id="jp.xet.sabotter.preference.mock" 
    1515            category="jp.xet.sabotter.preference" 
    16             name="Twitter"/> 
     16            name="Mock"/> 
    1717   </extension> 
    1818   <extension 
    1919         point="org.eclipse.core.runtime.preferences"> 
     20      <initializer class="jp.xet.sabotter.eclipse.service.mock.preferences.MockPreferenceInitializer"/> 
    2021   </extension> 
    2122</plugin> 
  • platform/eclipse/sabotter/trunk/jp.xet.sabotter.eclipse.service.mock/src/jp/xet/sabotter/eclipse/service/mock/MockPreferencePage.java

    r15114 r15143  
    11package jp.xet.sabotter.eclipse.service.mock; 
    22 
     3import jp.xet.sabotter.core.mock.MockService; 
    34import jp.xet.sabotter.eclipse.SabotterPlugin; 
    4 import jp.xet.sabotter.eclipse.preferences.BaloonDispayType; 
    5 import jp.xet.sabotter.eclipse.preferences.MiniblogServicePreferencePage; 
    6 import jp.xet.sabotter.eclipse.preferences.PreferenceKeys; 
    7 import jp.xet.sabotter.eclipse.preferences.SabotterPreferenceInitializer; 
    8  
    9 import org.eclipse.jface.preference.IPreferenceStore; 
     5import jp.xet.sabotter.eclipse.preferences.AbstractServiceCommonPreferencePage; 
     6import jp.xet.sabotter.eclipse.service.mock.preferences.MockPreferenceInitializer; 
    107 
    118/** 
    12  * Twitter用設定ページクラス。 UNDONE 未実装 
     9 * Mock用設定ページクラス。 UNDONE 未実装 
    1310 *  
    1411 * @author daisuke 
    1512 */ 
    16 public class MockPreferencePage extends MiniblogServicePreferencePage { 
     13public class MockPreferencePage extends AbstractServiceCommonPreferencePage { 
    1714         
     15        /** 
     16         * {@inheritDoc} 
     17         */ 
    1818        @Override 
    19         protected void setCurrentValueToControls() { 
    20                 IPreferenceStore ps = SabotterPlugin.getDefault().getPreferenceStore(); 
    21                 txtUsername.setText(ps.getString(PreferenceKeys.USERID)); 
    22                 txtPassword.setText(ps.getString(PreferenceKeys.PASSWORD)); 
    23                  
    24                 spnAPILimitRate.setSelection(ps.getInt(PreferenceKeys.API_LIMIT_RATE)); 
    25                 spnAPILimitRate.addSelectionListener(intervalListener); 
    26                 spnTimeLineInterval.setSelection(ps.getInt(PreferenceKeys.INTERVAL_FRIEND_TIMELINE)); 
    27                 spnTimeLineInterval.addSelectionListener(intervalListener); 
    28                 spnRepliesInterval.setSelection(ps.getInt(PreferenceKeys.INTERVAL_REPLIES)); 
    29                 spnRepliesInterval.addSelectionListener(intervalListener); 
    30                 spnDirectMessagesInterval.setSelection(ps.getInt(PreferenceKeys.INTERVAL_DIRECT_MESSAGES)); 
    31                 spnDirectMessagesInterval.addSelectionListener(intervalListener); 
     19        public String getServiceId() { 
     20                return MockService.SERVICE_ID; 
    3221        } 
    3322         
     23        /** 
     24         * {@inheritDoc} 
     25         */ 
    3426        @Override 
    35         protected void loadDefaultValues() { 
    36                 IPreferenceStore ps = SabotterPlugin.getDefault().getPreferenceStore(); 
    37                 ps.setValue(PreferenceKeys.USERID, SabotterPreferenceInitializer.DEF_USERNAME); 
    38                 ps.setValue(PreferenceKeys.PASSWORD, SabotterPreferenceInitializer.DEF_PASSWORD); 
    39                 ps.setValue(PreferenceKeys.API_LIMIT_RATE, 30); 
    40                 ps.setValue(PreferenceKeys.INTERVAL_FRIEND_TIMELINE, 5); 
    41                 ps.setValue(PreferenceKeys.INTERVAL_REPLIES, 12); 
    42                 ps.setValue(PreferenceKeys.INTERVAL_DIRECT_MESSAGES, 20); 
    43                 ps.setValue(PreferenceKeys.BALOON_DISPLAY_TYPE, BaloonDispayType.ALL.toString()); 
     27        public void loadServiceOwnDefaultValues() { 
     28                MockPreferenceInitializer.init(SabotterPlugin.getDefault().getPreferenceStore(), getServiceId()); 
    4429        } 
    45          
    46         @Override 
    47         protected void storeValues() { 
    48                 IPreferenceStore ps = SabotterPlugin.getDefault().getPreferenceStore(); 
    49                 ps.setValue(PreferenceKeys.USERID, txtUsername.getText()); 
    50                 ps.setValue(PreferenceKeys.PASSWORD, txtPassword.getText()); 
    51                  
    52                 int apiLimitRate = spnAPILimitRate.getSelection(); 
    53                 ps.setValue(PreferenceKeys.API_LIMIT_RATE, apiLimitRate); 
    54                  
    55                 int timeLineInterval = spnTimeLineInterval.getSelection(); 
    56                 ps.setValue(PreferenceKeys.INTERVAL_FRIEND_TIMELINE, timeLineInterval); 
    57                  
    58                 int replyInterval = spnRepliesInterval.getSelection(); 
    59                 ps.setValue(PreferenceKeys.INTERVAL_REPLIES, replyInterval); 
    60                  
    61                 int dmInterval = spnDirectMessagesInterval.getSelection(); 
    62                 ps.setValue(PreferenceKeys.INTERVAL_DIRECT_MESSAGES, dmInterval); 
    63         } 
    64          
    6530} 
  • platform/eclipse/sabotter/trunk/jp.xet.sabotter.eclipse.service.twitter/plugin.xml

    r15101 r15143  
    1818   <extension 
    1919         point="org.eclipse.core.runtime.preferences"> 
     20      <initializer class="jp.xet.sabotter.eclipse.service.twitter.preferences.TwitterPreferenceInitializer"/> 
    2021   </extension> 
    2122</plugin> 
  • platform/eclipse/sabotter/trunk/jp.xet.sabotter.eclipse.service.twitter/src/jp/xet/sabotter/eclipse/service/twitter/TwitterPreferencePage.java

    r15114 r15143  
    11package jp.xet.sabotter.eclipse.service.twitter; 
    22 
     3import jp.xet.sabotter.core.twitter.TwitterService; 
    34import jp.xet.sabotter.eclipse.SabotterPlugin; 
    4 import jp.xet.sabotter.eclipse.preferences.BaloonDispayType; 
    5 import jp.xet.sabotter.eclipse.preferences.MiniblogServicePreferencePage; 
    6 import jp.xet.sabotter.eclipse.preferences.PreferenceKeys; 
    7 import jp.xet.sabotter.eclipse.preferences.SabotterPreferenceInitializer; 
    8  
    9 import org.eclipse.jface.preference.IPreferenceStore; 
     5import jp.xet.sabotter.eclipse.preferences.AbstractServiceCommonPreferencePage; 
     6import jp.xet.sabotter.eclipse.service.twitter.preferences.TwitterPreferenceInitializer; 
    107 
    118/** 
    12  * Twitter用設定ページクラス。 UNDONE 未実装 
     9 * Twitter用設定ページクラス。 
    1310 *  
    14  * @author daisuke 
     11 * @author daisuke yamashiro 
    1512 */ 
    16 public class TwitterPreferencePage extends MiniblogServicePreferencePage { 
     13public class TwitterPreferencePage extends AbstractServiceCommonPreferencePage { 
    1714         
     15        /** 
     16         * {@inheritDoc} 
     17         */ 
    1818        @Override 
    19         protected void setCurrentValueToControls() { 
    20                 IPreferenceStore ps = SabotterPlugin.getDefault().getPreferenceStore(); 
    21                 txtUsername.setText(ps.getString(PreferenceKeys.USERID)); 
    22                 txtPassword.setText(ps.getString(PreferenceKeys.PASSWORD)); 
    23                  
    24                 spnAPILimitRate.setSelection(ps.getInt(PreferenceKeys.API_LIMIT_RATE)); 
    25                 spnAPILimitRate.addSelectionListener(intervalListener); 
    26                 spnTimeLineInterval.setSelection(ps.getInt(PreferenceKeys.INTERVAL_FRIEND_TIMELINE)); 
    27                 spnTimeLineInterval.addSelectionListener(intervalListener); 
    28                 spnRepliesInterval.setSelection(ps.getInt(PreferenceKeys.INTERVAL_REPLIES)); 
    29                 spnRepliesInterval.addSelectionListener(intervalListener); 
    30                 spnDirectMessagesInterval.setSelection(ps.getInt(PreferenceKeys.INTERVAL_DIRECT_MESSAGES)); 
    31                 spnDirectMessagesInterval.addSelectionListener(intervalListener); 
     19        public String getServiceId() { 
     20                return TwitterService.SERVICE_ID; 
    3221        } 
    3322         
     23        /** 
     24         * {@inheritDoc} 
     25         */ 
    3426        @Override 
    35         protected void loadDefaultValues() { 
    36                 IPreferenceStore ps = SabotterPlugin.getDefault().getPreferenceStore(); 
    37                 ps.setValue(PreferenceKeys.USERID, SabotterPreferenceInitializer.DEF_USERNAME); 
    38                 ps.setValue(PreferenceKeys.PASSWORD, SabotterPreferenceInitializer.DEF_PASSWORD); 
    39                 ps.setValue(PreferenceKeys.API_LIMIT_RATE, 30); 
    40                 ps.setValue(PreferenceKeys.INTERVAL_FRIEND_TIMELINE, 5); 
    41                 ps.setValue(PreferenceKeys.INTERVAL_REPLIES, 12); 
    42                 ps.setValue(PreferenceKeys.INTERVAL_DIRECT_MESSAGES, 20); 
    43                 ps.setValue(PreferenceKeys.BALOON_DISPLAY_TYPE, BaloonDispayType.ALL.toString()); 
    44         } 
    45          
    46         @Override 
    47         protected void storeValues() { 
    48                 IPreferenceStore ps = SabotterPlugin.getDefault().getPreferenceStore(); 
    49                 ps.setValue(PreferenceKeys.USERID, txtUsername.getText()); 
    50                 ps.setValue(PreferenceKeys.PASSWORD, txtPassword.getText()); 
    51                  
    52                 int apiLimitRate = spnAPILimitRate.getSelection(); 
    53                 ps.setValue(PreferenceKeys.API_LIMIT_RATE, apiLimitRate); 
    54                  
    55                 int timeLineInterval = spnTimeLineInterval.getSelection(); 
    56                 ps.setValue(PreferenceKeys.INTERVAL_FRIEND_TIMELINE, timeLineInterval); 
    57                  
    58                 int replyInterval = spnRepliesInterval.getSelection(); 
    59                 ps.setValue(PreferenceKeys.INTERVAL_REPLIES, replyInterval); 
    60                  
    61                 int dmInterval = spnDirectMessagesInterval.getSelection(); 
    62                 ps.setValue(PreferenceKeys.INTERVAL_DIRECT_MESSAGES, dmInterval); 
     27        public void loadServiceOwnDefaultValues() { 
     28                TwitterPreferenceInitializer.init(SabotterPlugin.getDefault().getPreferenceStore(), getServiceId()); 
    6329        } 
    6430         
  • platform/eclipse/sabotter/trunk/jp.xet.sabotter.eclipse.service.wassr/plugin.xml

    r15101 r15143  
    1414            id="jp.xet.sabotter.preference.wassr" 
    1515            category="jp.xet.sabotter.preference" 
    16             name="Wassr"/> 
     16            name="Wasr"/> 
    1717   </extension> 
    18    <extension 
     18    <extension 
    1919         point="org.eclipse.core.runtime.preferences"> 
     20      <initializer class="jp.xet.sabotter.eclipse.service.wassr.preferences.WassrPreferenceInitializer"/> 
     21   </extension> 
     22    
     23      <extension 
     24         point="org.eclipse.core.runtime.preferences"> 
     25      <initializer class="jp.xet.sabotter.eclipse.preferences.SabotterPreferenceInitializer"/> 
    2026   </extension> 
    2127</plugin> 
  • platform/eclipse/sabotter/trunk/jp.xet.sabotter.eclipse.service.wassr/src/jp/xet/sabotter/eclipse/service/wassr/WassrPreferencePage.java

    r15114 r15143  
    11package jp.xet.sabotter.eclipse.service.wassr; 
    22 
     3import jp.xet.sabotter.core.wassr.WassrService; 
    34import jp.xet.sabotter.eclipse.SabotterPlugin; 
    4 import jp.xet.sabotter.eclipse.preferences.BaloonDispayType; 
    5 import jp.xet.sabotter.eclipse.preferences.MiniblogServicePreferencePage; 
    6 import jp.xet.sabotter.eclipse.preferences.PreferenceKeys; 
    7 import jp.xet.sabotter.eclipse.preferences.SabotterPreferenceInitializer; 
    8  
    9 import org.eclipse.jface.preference.IPreferenceStore; 
     5import jp.xet.sabotter.eclipse.preferences.AbstractServiceCommonPreferencePage; 
     6import jp.xet.sabotter.eclipse.service.wassr.preferences.WassrPreferenceInitializer; 
    107 
    118/** 
    12  * Wassr用設定ページクラス。 UNDONE 未実装 
     9 * Wassr用設定ページクラス。 
    1310 *  
    14  * @author daisuke 
     11 * @author daisuke yamashiro 
    1512 */ 
    16 public class WassrPreferencePage extends MiniblogServicePreferencePage { 
     13public class WassrPreferencePage extends AbstractServiceCommonPreferencePage { 
    1714         
     15        /** 
     16         * {@inheritDoc} 
     17         */ 
    1818        @Override 
    19         protected void setCurrentValueToControls() { 
    20                 IPreferenceStore ps = SabotterPlugin.getDefault().getPreferenceStore(); 
    21                 txtUsername.setText(ps.getString(PreferenceKeys.USERID)); 
    22                 txtPassword.setText(ps.getString(PreferenceKeys.PASSWORD)); 
    23                  
    24                 spnAPILimitRate.setSelection(ps.getInt(PreferenceKeys.API_LIMIT_RATE)); 
    25                 spnAPILimitRate.addSelectionListener(intervalListener); 
    26                 spnTimeLineInterval.setSelection(ps.getInt(PreferenceKeys.INTERVAL_FRIEND_TIMELINE)); 
    27                 spnTimeLineInterval.addSelectionListener(intervalListener); 
    28                 spnRepliesInterval.setSelection(ps.getInt(PreferenceKeys.INTERVAL_REPLIES)); 
    29                 spnRepliesInterval.addSelectionListener(intervalListener); 
    30                 spnDirectMessagesInterval.setSelection(ps.getInt(PreferenceKeys.INTERVAL_DIRECT_MESSAGES)); 
    31                 spnDirectMessagesInterval.addSelectionListener(intervalListener); 
     19        public String getServiceId() { 
     20                return WassrService.SERVICE_ID; 
    3221        } 
    3322         
     23        /** 
     24         * {@inheritDoc} 
     25         */ 
    3426        @Override 
    35         protected void loadDefaultValues() { 
    36                 IPreferenceStore ps = SabotterPlugin.getDefault().getPreferenceStore(); 
    37                 ps.setValue(PreferenceKeys.USERID, SabotterPreferenceInitializer.DEF_USERNAME); 
    38                 ps.setValue(PreferenceKeys.PASSWORD, SabotterPreferenceInitializer.DEF_PASSWORD); 
    39                 ps.setValue(PreferenceKeys.API_LIMIT_RATE, 30); 
    40                 ps.setValue(PreferenceKeys.INTERVAL_FRIEND_TIMELINE, 5); 
    41                 ps.setValue(PreferenceKeys.INTERVAL_REPLIES, 12); 
    42                 ps.setValue(PreferenceKeys.INTERVAL_DIRECT_MESSAGES, 20); 
    43                 ps.setValue(PreferenceKeys.BALOON_DISPLAY_TYPE, BaloonDispayType.ALL.toString()); 
     27        public void loadServiceOwnDefaultValues() { 
     28                WassrPreferenceInitializer.init(SabotterPlugin.getDefault().getPreferenceStore(), getServiceId()); 
    4429        } 
    45          
    46         @Override 
    47         protected void storeValues() { 
    48                 IPreferenceStore ps = SabotterPlugin.getDefault().getPreferenceStore(); 
    49                 ps.setValue(PreferenceKeys.USERID, txtUsername.getText()); 
    50                 ps.setValue(PreferenceKeys.PASSWORD, txtPassword.getText()); 
    51                  
    52                 int apiLimitRate = spnAPILimitRate.getSelection(); 
    53                 ps.setValue(PreferenceKeys.API_LIMIT_RATE, apiLimitRate); 
    54                  
    55                 int timeLineInterval = spnTimeLineInterval.getSelection(); 
    56                 ps.setValue(PreferenceKeys.INTERVAL_FRIEND_TIMELINE, timeLineInterval); 
    57                  
    58                 int replyInterval = spnRepliesInterval.getSelection(); 
    59                 ps.setValue(PreferenceKeys.INTERVAL_REPLIES, replyInterval); 
    60                  
    61                 int dmInterval = spnDirectMessagesInterval.getSelection(); 
    62                 ps.setValue(PreferenceKeys.INTERVAL_DIRECT_MESSAGES, dmInterval); 
    63         } 
    64          
    6530} 
  • platform/eclipse/sabotter/trunk/jp.xet.sabotter.eclipse/src/jp/xet/sabotter/eclipse/action/CreateFavoriteAction.java

    r15092 r15143  
    22 
    33import jp.xet.sabotter.core.MiniblogEntry; 
    4 import jp.xet.sabotter.core.MiniblogServiceResponceListener; 
    54import jp.xet.sabotter.eclipse.manager.MiniblogServiceManager; 
    65import jp.xet.sabotter.eclipse.views.SabotterView; 
     
    2221        private SabotterView view; 
    2322         
    24         /** 結果ハンドラ */ 
    25         private MiniblogServiceResponceListener listener; 
    26          
    2723 
    2824        /** 
     
    3228         * @param listener creation 
    3329         */ 
    34         public CreateFavoriteAction(SabotterView view, MiniblogServiceResponceListener listener) { 
     30        public CreateFavoriteAction(SabotterView view) { 
    3531                setText(Messages.action_create_favorite); 
    3632                setToolTipText(Messages.tooltip_create_favorite); 
    3733                this.view = view; 
    38                 this.listener = listener; 
    3934        } 
    4035         
     
    5247                        if (entryObj instanceof MiniblogEntry) { 
    5348                                String targetEntryId = ((MiniblogEntry) entryObj).getId(); 
    54                                 MiniblogServiceManager.getInstance().createFavorite(targetEntryId, listener); 
     49                                MiniblogServiceManager.getInstance().createFavorite(targetEntryId); 
    5550                        } 
    5651                } 
  • platform/eclipse/sabotter/trunk/jp.xet.sabotter.eclipse/src/jp/xet/sabotter/eclipse/action/ReloadTimeLineAction.java

    r15092 r15143  
    3030         *  
    3131         * @param listener 
    32          * @param view  
    33          * @category instance creation 
     32         * @param view creation 
    3433         */ 
    3534        public ReloadTimeLineAction(MiniblogServiceResponceListener listener, SabotterView view) { 
     
    4746        @Override 
    4847        public void run() { 
    49 //              SabotterPlugin.log(org.eclipse.core.runtime.Status.INFO, 0, "Sabotter: update timeline on " + new Date()); // $NON-NLS-1$ 
     48// SabotterPlugin.log(org.eclipse.core.runtime.Status.INFO, 0, "Sabotter: update timeline on " + new Date()); // 
     49                // $NON-NLS-1$ 
    5050                System.out.println("Sabotter: update timeline on " + new Date()); 
    5151                // ↓ちと強引だなぁ。。。 
    5252                ApplicationWindow window = (ApplicationWindow) view.getViewSite().getWorkbenchWindow(); 
    5353                window.setStatus("Requesting friends time line"); 
    54                 MiniblogServiceManager.getInstance().getFriendsTimeline(listener); 
     54                MiniblogServiceManager.getInstance().getFriendsTimeline(); 
    5555                window.setStatus("Requesting replies"); 
    56                 MiniblogServiceManager.getInstance().getReplies(listener); 
     56                MiniblogServiceManager.getInstance().getReplies(); 
    5757                window.setStatus("Requesting direct messages"); 
    58                 MiniblogServiceManager.getInstance().getDirectMessages(listener); 
     58                MiniblogServiceManager.getInstance().getDirectMessages(); 
    5959                window.setStatus("Waiting responses..."); 
    6060        } 
  • platform/eclipse/sabotter/trunk/jp.xet.sabotter.eclipse/src/jp/xet/sabotter/eclipse/manager/MiniblogServiceManager.java

    r15114 r15143  
    2828import org.eclipse.jface.viewers.TableViewer; 
    2929import org.eclipse.jface.viewers.ViewerFilter; 
     30import org.eclipse.swt.widgets.Display; 
    3031 
    3132/** 
     
    3637public class MiniblogServiceManager implements IPropertyChangeListener { 
    3738         
     39        private static final int ONE_MINUTE = 1000 * 60; 
     40         
    3841        /** Miniblog APIラッパー */ 
    3942        private List<MiniblogService> miniblogServices = new ArrayList<MiniblogService>(); 
     
    4144        /** 取得したEntryを保持するSet */ 
    4245        private SortedSet<MiniblogEntry> allEntries = new TreeSet<MiniblogEntry>(new EntryComparator()); 
     46         
     47        private MiniblogServiceResponceListener responceListener; 
     48         
     49        private boolean disposed; 
    4350         
    4451        /** singletonインスタンス */ 
     
    7582                ps.addPropertyChangeListener(this); // Preferenceの変更をリスン 
    7683                 
    77                 String userId = ps.getString(PreferenceKeys.USERID); 
    78                 String password = ps.getString(PreferenceKeys.PASSWORD); 
    79                  
    8084                Map<String, IConfigurationElement> factoryMap = SabotterPlugin.getServiceResolver().getServiceFactories(); 
    8185                for (Map.Entry<String, IConfigurationElement> entry : factoryMap.entrySet()) { 
     
    8387                                IConfigurationElement factory = entry.getValue(); 
    8488                                try { 
    85                                         MiniblogService service = (MiniblogService) factory.createExecutableExtension("class"); 
     89                                        final MiniblogService service = (MiniblogService) factory.createExecutableExtension("class"); 
     90                                         
     91                                        // String userId = ps.getString(service.getServiceId() + PreferenceKeys.USERID); 
     92                                        // String password = ps.getString(service.getServiceId() + PreferenceKeys.PASSWORD); 
     93                                        String userId = ps.getString(PreferenceKeys.USERID); 
     94                                        String password = ps.getString(PreferenceKeys.PASSWORD); 
     95                                         
    8696                                        service.setAccount(userId, password); 
    8797                                        miniblogServices.add(service); 
     98                                         
     99                                        final Display display = SabotterPlugin.getDefault().getWorkbench().getDisplay(); 
     100                                        startInterval(display, new Runnable() { 
     101                                                 
     102                                                public void run() { 
     103                                                        if (display.isDisposed() || disposed) { 
     104                                                                return; 
     105                                                        } 
     106                                                        getFriendsTimeline(); 
     107                                                        display.timerExec(pref.getTimeLineInterval(service) * ONE_MINUTE, this); 
     108                                                } 
     109                                        }); 
     110                                         
     111                                        startInterval(display, new Runnable() { 
     112                                                 
     113                                                public void run() { 
     114                                                        if (display.isDisposed() || disposed) { 
     115                                                                return; 
     116                                                        } 
     117                                                        getReplies(); 
     118                                                        display.timerExec(pref.getReplyInterval(service) * ONE_MINUTE, this); 
     119                                                } 
     120                                        }); 
     121                                         
     122                                        startInterval(display, new Runnable() { 
     123                                                 
     124                                                public void run() { 
     125                                                        if (display.isDisposed() || disposed) { 
     126                                                                return; 
     127                                                        } 
     128                                                        getDirectMessages(); 
     129                                                        display.timerExec(pref.getDMInterval(service) * ONE_MINUTE, this); 
     130                                                } 
     131                                        }); 
    88132                                } catch (CoreException e) { 
    89133                                        SabotterPlugin.handleException(e); 
    90134                                } 
    91135                        } 
     136                } 
     137        } 
     138         
     139        private void startInterval(final Display display, Runnable runnable) { 
     140                if (display.isDisposed() == false && disposed == false) { 
     141                        display.timerExec(ONE_MINUTE, runnable); 
    92142                } 
    93143        } 
     
    164214                while (numberToCutoff > 0 && ite.hasNext()) { 
    165215                        MiniblogEntry miniblogEntry = ite.next(); 
    166                         if (miniblogEntry.isMessageToMe(pref.getUserId()) && miniblogEntry.isUnread()) { 
     216                        if (miniblogEntry.isMessageToMe() && miniblogEntry.isUnread()) { 
    167217                                continue; 
    168218                        } 
     
    221271         * @param listener 取得した後のデータハンドラ 
    222272         */ 
    223         public void getFriendsTimeline(MiniblogServiceResponceListener listener) { 
    224                 for (MiniblogService service : miniblogServices) { 
    225                         service.getFriendsTimeline(listener); 
     273        public void getFriendsTimeline() { 
     274                for (MiniblogService service : miniblogServices) { 
     275                        service.getFriendsTimeline(responceListener); 
    226276                } 
    227277        } 
     
    232282         * @param listener 取得した後のデータハンドラ 
    233283         */ 
    234         public void getReplies(MiniblogServiceResponceListener listener) { 
    235                 for (MiniblogService service : miniblogServices) { 
    236                         service.getReplies(listener); 
     284        public void getReplies() { 
     285                for (MiniblogService service : miniblogServices) { 
     286                        service.getReplies(responceListener); 
    237287                } 
    238288        } 
     
    241291         * DirectMessageを取得する。 
    242292         *  
    243          * @param listener 
    244          */ 
    245         public void getDirectMessages(MiniblogServiceResponceListener listener) { 
    246                 for (MiniblogService service : miniblogServices) { 
    247                         service.getDirectMessages(listener); 
     293         */ 
     294        public void getDirectMessages() { 
     295                for (MiniblogService service : miniblogServices) { 
     296                        service.getDirectMessages(responceListener); 
    248297                } 
    249298        } 
     
    278327         * @param listener ふぁぼった後のデータハンドラ 
    279328         */ 
    280         public void createFavorite(String id, MiniblogServiceResponceListener listener) { 
    281                 for (MiniblogService service : miniblogServices) { 
    282                         service.createFavorite(id, listener); 
    283                 } 
     329        public void createFavorite(String id) { 
     330                for (MiniblogService service : miniblogServices) { 
     331                        service.createFavorite(id, responceListener); 
     332                } 
     333        } 
     334         
     335        public void setMiniblogServiceResponceListener(MiniblogServiceResponceListener responceListener) { 
     336                this.responceListener = responceListener; 
     337        } 
     338         
     339        public void dispose() { 
     340                this.disposed = true; 
    284341        } 
    285342} 
  • platform/eclipse/sabotter/trunk/jp.xet.sabotter.eclipse/src/jp/xet/sabotter/eclipse/preferences/AbstractServiceCommonPreferencePage.java

    r15092 r15143  
    44import jp.xet.sabotter.eclipse.helper.TextSelectionOnFocusAdapter; 
    55 
     6import org.eclipse.jface.preference.IPreferenceStore; 
    67import org.eclipse.jface.preference.PreferencePage; 
    78import org.eclipse.swt.SWT; 
     
    2021 
    2122/** 
    22  * 設定ページクラス。 
     23 * 共通設定ページクラス。 
    2324 *  
    24  * @author daisuke 
     25 * @author daisuke yamashiro 
    2526 */ 
    26 public abstract class MiniblogServicePreferencePage extends PreferencePage implements IWorkbenchPreferencePage { 
     27public abstract class AbstractServiceCommonPreferencePage extends PreferencePage implements IWorkbenchPreferencePage { 
    2728         
    2829        protected Text txtUsername; 
     
    220221        } 
    221222         
    222         protected abstract void setCurrentValueToControls(); 
    223          
    224         protected abstract void loadDefaultValues(); 
    225          
    226         protected abstract void storeValues(); 
    227          
     223        protected void setCurrentValueToControls() { 
     224                IPreferenceStore ps = SabotterPlugin.getDefault().getPreferenceStore(); 
     225                txtUsername.setText(ps.getString(getServiceId() + PreferenceKeys.USERID)); 
     226                txtPassword.setText(ps.getString(getServiceId() + PreferenceKeys.PASSWORD)); 
     227                 
     228                spnAPILimitRate.setSelection(ps.getInt(getServiceId() + PreferenceKeys.API_LIMIT_RATE)); 
     229                spnAPILimitRate.addSelectionListener(intervalListener); 
     230                spnTimeLineInterval.setSelection(ps.getInt(getServiceId() + PreferenceKeys.INTERVAL_FRIEND_TIMELINE)); 
     231                spnTimeLineInterval.addSelectionListener(intervalListener); 
     232                spnRepliesInterval.setSelection(ps.getInt(getServiceId() + PreferenceKeys.INTERVAL_REPLIES)); 
     233                spnRepliesInterval.addSelectionListener(intervalListener); 
     234                spnDirectMessagesInterval.setSelection(ps.getInt(getServiceId() + PreferenceKeys.INTERVAL_DIRECT_MESSAGES)); 
     235                spnDirectMessagesInterval.addSelectionListener(intervalListener); 
     236        } 
     237         
     238        protected void loadDefaultValues() { 
     239                loadServiceOwnDefaultValues(); 
     240                 
     241                IPreferenceStore ps = SabotterPlugin.getDefault().getPreferenceStore(); 
     242                ps.setValue(getServiceId() + PreferenceKeys.USERID, SabotterPreferenceInitializer.DEF_USERNAME); 
     243                ps.setValue(getServiceId() + PreferenceKeys.PASSWORD, SabotterPreferenceInitializer.DEF_PASSWORD); 
     244                ps.setValue(getServiceId() + PreferenceKeys.BALOON_DISPLAY_TYPE, BaloonDispayType.ALL.toString()); 
     245        } 
     246         
     247        protected void storeValues() { 
     248                IPreferenceStore ps = SabotterPlugin.getDefault().getPreferenceStore(); 
     249                ps.setValue(getServiceId() + PreferenceKeys.USERID, txtUsername.getText()); 
     250                ps.setValue(getServiceId() + PreferenceKeys.PASSWORD, txtPassword.getText()); 
     251                 
     252                int apiLimitRate = spnAPILimitRate.getSelection(); 
     253                ps.setValue(getServiceId() + PreferenceKeys.API_LIMIT_RATE, apiLimitRate); 
     254                 
     255                int timeLineInterval = spnTimeLineInterval.getSelection(); 
     256                ps.setValue(getServiceId() + PreferenceKeys.INTERVAL_FRIEND_TIMELINE, timeLineInterval); 
     257                 
     258                int replyInterval = spnRepliesInterval.getSelection(); 
     259                ps.setValue(getServiceId() + PreferenceKeys.INTERVAL_REPLIES, replyInterval); 
     260                 
     261                int dmInterval = spnDirectMessagesInterval.getSelection(); 
     262                ps.setValue(getServiceId() + PreferenceKeys.INTERVAL_DIRECT_MESSAGES, dmInterval); 
     263        } 
     264         
     265        /** 
     266         * サービスの ID を返します 
     267         *  
     268         * @return サービスのID 
     269         */ 
     270        public abstract String getServiceId(); 
     271         
     272        /** 
     273         * サービス固有のデフォルト値を元に戻します 
     274         */ 
     275        public abstract void loadServiceOwnDefaultValues(); 
    228276} 
  • platform/eclipse/sabotter/trunk/jp.xet.sabotter.eclipse/src/jp/xet/sabotter/eclipse/preferences/BaloonDispayType.java

    r15108 r15143  
    55/** 
    66 * バルーンを表示する際のフィルタリングの種別を表します 
     7 *  
    78 * @author daisuke 
    89 */ 
     
    2223        /** 
    2324         * @return the displayName 
    24          * @category accessing 
     25         *  
    2526         */ 
    2627        public String getDisplayName() { 
     
    3031        /** 
    3132         * @param miniblogEntry 
    32          * @param myId 
    3333         * @return 指定されたエントリーが設定上表示しない場合falseを返します 
    3434         */ 
    35         public boolean shouldDisplay(MiniblogEntry miniblogEntry, String myId) { 
    36                 if (this == REPLY_TO_ME && !miniblogEntry.isMessageToMe(myId)) { 
     35        public boolean shouldDisplay(MiniblogEntry miniblogEntry) { 
     36                if (this == REPLY_TO_ME && !miniblogEntry.isMessageToMe()) { 
    3737                        return false; 
    3838                } 
  • platform/eclipse/sabotter/trunk/jp.xet.sabotter.eclipse/src/jp/xet/sabotter/eclipse/preferences/SabotterPreference.java

    r15114 r15143  
    11package jp.xet.sabotter.eclipse.preferences; 
     2 
     3import jp.xet.sabotter.core.MiniblogService; 
    24 
    35import org.eclipse.jface.preference.IPreferenceStore; 
     
    2224         * 設定されたユーザ名を取得する。 
    2325         *  
     26         * @param service サービス 
    2427         * @return ユーザ名 
    2528         */ 
    26         String getUserId(); 
     29        String getUserId(MiniblogService service); 
    2730         
    2831        /** 
    2932         * 設定されたパスワードを取得する。 
    3033         *  
     34         * @param service サービス 
    3135         * @return パスワード 
    3236         */ 
    33         String getPassword(); 
    34          
    35         /** 
    36          * 設定された画像加工タイプを取得する。 
     37        String getPassword(MiniblogService service); 
     38         
     39        /** 
     40         * a 設定された画像加工タイプを取得する。 
    3741         *  
    3842         * @return 画像加工タイプ 
     
    184188         * TimeLineの取得間隔を取得する。 
    185189         *  
     190         * @param service サービス 
    186191         * @return TimeLineの取得間隔 
    187192         */ 
    188         public int getTimeLineInterval(); 
     193        public int getTimeLineInterval(MiniblogService service); 
    189194         
    190195        /** 
    191196         * Replyの取得間隔を取得する。 
    192197         *  
     198         * @param service サービス 
    193199         * @return Replyの取得間隔 
    194200         */ 
    195         public int getReplyInterval(); 
     201        public int getReplyInterval(MiniblogService service); 
    196202         
    197203        /** 
    198204         * DirectMessageの取得間隔取得する。 
    199205         *  
     206         * @param service サービス 
    200207         * @return DirectMessageの 
    201208         */ 
    202         public int getDMInterval(); 
     209        public int getDMInterval(MiniblogService service); 
    203210         
    204211        /** 
  • platform/eclipse/sabotter/trunk/jp.xet.sabotter.eclipse/src/jp/xet/sabotter/eclipse/preferences/SabotterPreferenceImpl.java

    r15114 r15143  
    11package jp.xet.sabotter.eclipse.preferences; 
    22 
     3import jp.xet.sabotter.core.MiniblogService; 
    34import jp.xet.sabotter.eclipse.SabotterPlugin; 
    45import jp.xet.sabotter.eclipse.exception.SabotterRuntimeException; 
     
    3233         * Override method. 
    3334         *  
    34          * @see jp.xet.sabotter.eclipse.preferences.SabotterPreference#getPassword() 
    35          */ 
    36         public String getPassword() { 
    37                 return ps.getString(PreferenceKeys.PASSWORD); 
    38         } 
    39          
    40         /** 
    41          * Override method. 
    42          *  
    43          * @see jp.xet.sabotter.eclipse.preferences.SabotterPreference#getUserId() 
    44          */ 
    45         public String getUserId() { 
    46                 return ps.getString(PreferenceKeys.USERID); 
     35         * @see jp.xet.sabotter.eclipse.preferences.SabotterPreference#getPassword(MiniblogService) 
     36         */ 
     37        public String getPassword(MiniblogService service) { 
     38                return ps.getString(service.getServiceId() + PreferenceKeys.PASSWORD); 
     39        } 
     40         
     41        /** 
     42         * Override method. 
     43         *  
     44         * @see jp.xet.sabotter.eclipse.preferences.SabotterPreference#getUserId(MiniblogService) 
     45         */ 
     46        public String getUserId(MiniblogService service) { 
     47                return ps.getString(service.getServiceId() + PreferenceKeys.USERID); 
    4748        } 
    4849         
     
    273274         
    274275        /** 
    275          * @see jp.xet.sabotter.eclipse.preferences.SabotterPreference#getTimeLineInterval() 
    276          */ 
    277         public int getTimeLineInterval() { 
    278                 return ps.getInt(PreferenceKeys.INTERVAL_FRIEND_TIMELINE); 
    279         } 
    280          
    281         /** 
    282          * Override method. 
    283          *  
    284          * @see jp.xet.sabotter.eclipse.preferences.SabotterPreference#getReplyInterval() 
    285          */ 
    286         public int getReplyInterval() { 
    287                 return ps.getInt(PreferenceKeys.INTERVAL_REPLIES); 
    288         } 
    289          
    290         /** 
    291          * Override method. 
    292          *  
    293          * @see jp.xet.sabotter.eclipse.preferences.SabotterPreference#getDMInterval() 
    294          */ 
    295         public int getDMInterval() { 
    296                 return ps.getInt(PreferenceKeys.INTERVAL_DIRECT_MESSAGES); 
     276         * @see jp.xet.sabotter.eclipse.preferences.SabotterPreference#getTimeLineInterval(MiniblogService) 
     277         */ 
     278        public int getTimeLineInterval(MiniblogService service) { 
     279                int result = ps.getInt(service.getServiceId() + PreferenceKeys.INTERVAL_FRIEND_TIMELINE); 
     280                return result; 
     281        } 
     282         
     283        /** 
     284         * Override method. 
     285         *  
     286         * @see jp.xet.sabotter.eclipse.preferences.SabotterPreference#getReplyInterval(MiniblogService) 
     287         */ 
     288        public int getReplyInterval(MiniblogService service) { 
     289                int result = ps.getInt(service.getServiceId() + PreferenceKeys.INTERVAL_REPLIES); 
     290                return result; 
     291        } 
     292         
     293        /** 
     294         * Override method. 
     295         *  
     296         * @see jp.xet.sabotter.eclipse.preferences.SabotterPreference#getDMInterval(MiniblogService) 
     297         */ 
     298        public int getDMInterval(MiniblogService service) { 
     299                int result = ps.getInt(service.getServiceId() + PreferenceKeys.INTERVAL_DIRECT_MESSAGES); 
     300                return result; 
    297301        } 
    298302         
  • platform/eclipse/sabotter/trunk/jp.xet.sabotter.eclipse/src/jp/xet/sabotter/eclipse/preferences/SabotterPreferenceInitializer.java

    r15114 r15143  
    2828        public void initializeDefaultPreferences() { 
    2929                Preferences preferences = SabotterPlugin.getDefault().getPluginPreferences(); 
    30                  
    31                 preferences.setDefault(PreferenceKeys.USERID, DEF_USERNAME); 
    32                 preferences.setDefault(PreferenceKeys.PASSWORD, DEF_PASSWORD); 
    3330                preferences.setDefault(PreferenceKeys.IMAGE_PROCESS_TYPE, ImageProcessType.SIZE16.getId()); 
    3431                preferences.setDefault(PreferenceKeys.NAME_TYPE, NameDisplayType.NAME.getId()); 
     
    3734                preferences.setDefault(PreferenceKeys.UNREAD_MANAGEMENT, true); 
    3835                preferences.setDefault(PreferenceKeys.INTERNAL_BROWSER, true); 
    39                 preferences.setDefault(PreferenceKeys.API_LIMIT_RATE, 30); 
    40                 preferences.setDefault(PreferenceKeys.INTERVAL_FRIEND_TIMELINE, 5); 
    41                 preferences.setDefault(PreferenceKeys.INTERVAL_REPLIES, 12); 
    42                 preferences.setDefault(PreferenceKeys.INTERVAL_DIRECT_MESSAGES, 20); 
     36                 
    4337                preferences.setDefault(PreferenceKeys.BALOON_DISPLAY_TYPE, BaloonDispayType.ALL.toString()); 
    4438                 
  • platform/eclipse/sabotter/trunk/jp.xet.sabotter.eclipse/src/jp/xet/sabotter/eclipse/views/LabelProcessor.java

    r15114 r15143  
    2323         
    2424        /** 表示する日付のフォーマット */ 
    25         private DateFormat dfOut = new SimpleDateFormat("HH:mm:ss yyyy/MM/dd", Locale.getDefault()); // TODO 国際化で外部化した方がいいかな? 
     25        private DateFormat dfOut = new SimpleDateFormat("HH:mm:ss yyyy/MM/dd", Locale.getDefault()); // TODO 
     26         
     27        // 国際化で外部化した方がいいかな? 
    2628         
    2729        private ImageManager imageManager = ImageManager.getInstance(); 
     
    108110         */ 
    109111        public Color getBackgroundColor(MiniblogEntry status) { 
    110                 if (status.isMyEntry(pref.getUserId())) { 
     112                if (status.isMyEntry()) { 
    111113                        return pref.getOwnEntryBackgroundColor(); 
    112                 } else if (status.isMessageToMe(pref.getUserId())) { 
     114                } else if (status.isMessageToMe()) { 
    113115                        return pref.getReplyEntryBackgroundColor(); 
    114116                } else if (status.isUnread()) { 
     
    126128         */ 
    127129        public Color getForegroundColor(MiniblogEntry status) { 
    128                 if (status.isMyEntry(pref.getUserId())) { 
     130                if (status.isMyEntry()) { 
    129131                        return pref.getOwnEntryForegroundColor(); 
    130                 } else if (status.isMessageToMe(pref.getUserId())) { 
     132                } else if (status.isMessageToMe()) { 
    131133                        return pref.getReplyEntryForegroundColor(); 
    132134                } else if (status.isUnread()) { 
     
    144146         */ 
    145147        public Font getFont(MiniblogEntry status) { 
    146                 if (!status.isMyEntry(pref.getUserId()) && status.isUnread()) { 
     148                if (!status.isMyEntry() && status.isUnread()) { 
    147149                        return pref.getUnreadEntryFont(); 
    148150                } 
  • platform/eclipse/sabotter/trunk/jp.xet.sabotter.eclipse/src/jp/xet/sabotter/eclipse/views/SabotterView.java

    r15141 r15143  
    221221                                        StringBuilder sb = new StringBuilder(); 
    222222                                        for (MiniblogEntry miniblogEntry : toAdd) { 
    223                                                 if (pref.getBaloonDisplayType().shouldDisplay(miniblogEntry, pref.getUserId())) { 
     223                                                if (pref.getBaloonDisplayType().shouldDisplay(miniblogEntry)) { 
    224224                                                        sb.append(miniblogEntry.getUser().getName()).append(" : ").append(miniblogEntry.getText()) 
    225225                                                                .append("\n"); 
     
    252252                        SabotterPlugin.handleException(e, SabotterPlugin.LOG); 
    253253                } 
     254                MiniblogServiceManager.getInstance().setMiniblogServiceResponceListener(new SabotterListener()); 
    254255                TagManager.setTagMap(state.getTagMap()); 
    255256        } 
     
    399400                }); 
    400401                 
    401                 contentProvider = new TimeLineContentProvider(this, pref); 
     402                contentProvider = new TimeLineContentProvider(); 
    402403                labelProvider = new TimeLineViewLabelProvider(); 
    403404        } 
     
    501502                actions.put(ReloadTimeLineAction.ACTION_ID, reloadTimeLineAction); 
    502503                 
    503                 Action createFavoriteAction = new CreateFavoriteAction(this, new MiniblogServiceResponceAdapter()); 
     504                Action createFavoriteAction = new CreateFavoriteAction(this); 
    504505                createFavoriteAction.setImageDescriptor(imageRegistry.getDescriptor(Images.ICON_FAVO)); 
    505506                actions.put(CreateFavoriteAction.ACTION_ID, createFavoriteAction); 
     
    591592         
    592593        /** 
    593          * タイムラインを取得する。 
    594          */ 
    595         public void getTimeLine() { 
    596                 getFriendsTimeLine(); 
    597                 getReplies(); 
    598                 getDirectMessages(); 
    599         } 
    600          
    601         /** 
    602          * フレンドタイムラインの取得処理を始める。 
    603          */ 
    604         public void getFriendsTimeLine() { 
    605                 SabotterListener listener = new SabotterListener(); 
    606                 MiniblogServiceManager.getInstance().getFriendsTimeline(listener); 
    607         } 
    608          
    609         /** 
    610          * 返信の取得処理を始める。 
    611          */ 
    612         public void getReplies() { 
    613                 SabotterListener listener = new SabotterListener(); 
    614                 MiniblogServiceManager.getInstance().getReplies(listener); 
    615         } 
    616          
    617         /** 
    618          * ダイレクトメッセージの取得処理を始める。 
    619          */ 
    620         public void getDirectMessages() { 
    621                 SabotterListener listener = new SabotterListener(); 
    622                 MiniblogServiceManager.getInstance().getDirectMessages(listener); 
    623         } 
    624          
    625         /** 
    626594         * ビューがフォーカスを受け取った時に実行される。フォーカスをビューアに渡す。 
    627595         *  
     
    680648                return actions; 
    681649        } 
     650         
     651        /** 
     652         * {@inheritDoc} 
     653         */ 
     654        @Override 
     655        public void dispose() { 
     656                super.dispose(); 
     657                MiniblogServiceManager.getInstance().dispose(); 
     658        } 
    682659} 
  • platform/eclipse/sabotter/trunk/jp.xet.sabotter.eclipse/src/jp/xet/sabotter/eclipse/views/TimeLineContentProvider.java

    r15092 r15143  
    11package jp.xet.sabotter.eclipse.views; 
    22 
    3 import jp.xet.sabotter.eclipse.SabotterPlugin; 
    43import jp.xet.sabotter.eclipse.manager.MiniblogServiceManager; 
    5 import jp.xet.sabotter.eclipse.preferences.SabotterPreference; 
    6  
    74import org.eclipse.jface.viewers.IStructuredContentProvider; 
    85import org.eclipse.jface.viewers.Viewer; 
    9 import org.eclipse.swt.widgets.Display; 
    106 
    117/** 
     
    1612public class TimeLineContentProvider implements IStructuredContentProvider { 
    1713         
    18         private static final int ONE_MINUTE = 1000 * 60; 
    19          
    20         private boolean disposed = false; 
    21          
    22         private SabotterPreference pref = null; 
    23          
    24  
    2514        /** 
    2615         * コンストラクタ。 
    2716         *  
    28          * @param view 
    29          * @param preference 
    30          * @category instance creation 
    3117         */ 
    32         public TimeLineContentProvider(final SabotterView view, SabotterPreference preference) { 
    33                 this.pref = preference; 
    34                 final Display display = SabotterPlugin.getDefault().getWorkbench().getDisplay(); 
    35                  
    36                 startInterval(display, new Runnable() { 
    37                          
    38                         public void run() { 
    39                                 if (display.isDisposed() || disposed) { 
    40                                         return; 
    41                                 } 
    42                                 view.getFriendsTimeLine(); 
    43                                 display.timerExec(pref.getTimeLineInterval() * ONE_MINUTE, this); 
    44                         } 
    45                 }); 
    46                  
    47                 startInterval(display, new Runnable() { 
    48                          
    49                         public void run() { 
    50                                 if (display.isDisposed() || disposed) { 
    51                                         return; 
    52                                 } 
    53                                 view.getReplies(); 
    54                                 display.timerExec(pref.getReplyInterval() * ONE_MINUTE, this); 
    55                         } 
    56                 }); 
    57                  
    58                 startInterval(display, new Runnable() { 
    59                          
    60                         public void run() { 
    61                                 if (display.isDisposed() || disposed) { 
    62                                         return; 
    63                                 } 
    64                                 view.getDirectMessages(); 
    65                                 display.timerExec(pref.getTimeLineInterval() * ONE_MINUTE, this); 
    66                         } 
    67                 }); 
    68         } 
    69          
    70         private void startInterval(final Display display, Runnable runnable) { 
    71                 if (display.isDisposed() == false && disposed == false) { 
    72                         display.timerExec(ONE_MINUTE, runnable); 
    73                 } 
     18        public TimeLineContentProvider() { 
    7419        } 
    7520         
     
    7722         * Override method. 
    7823         *  
    79          * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, 
    80          *      java.lang.Object, java.lang.Object) 
     24         * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, 
     25         *      java.lang.Object) 
    8126         */ 
    8227        public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { 
     
    8934         */ 
    9035        public void dispose() { 
    91                 disposed = true; 
    9236        } 
    9337         
  • platform/eclipse/sabotter/trunk/jp.xet.sabotter.eclipse/src/jp/xet/sabotter/eclipse/views/listeners/StatusTextModifyListener.java

    r15114 r15143  
    2929        /** 
    3030         * コンストラクタ。 
     31         *  
    3132         * @param txtStatusText 
    3233         *  
    33          * @param charCount 
    34          * @category instance creation 
     34         * @param charCount creation 
    3535         */ 
    3636        public StatusTextModifyListener(Text txtStatusText, Label charCount) { 
     
    5353                        Color fg; 
    5454                         
    55                         if (txtStatusText.getText().contains("@" + pref.getUserId() + " ")) { 
    56                                 bg = new Color(null, 128, 0, 128); // TODO テーマ化 
    57                                 fg = new Color(null, 255, 255, 255); 
    58                         } else if (remain >= 20) { 
     55                        /* 
     56                         * TODO if (txtStatusText.getText().contains("@" + pref.getUserId() + " ")) { bg = new Color(null, 128, 0, 
     57                         * 128); // TODO テーマ化 fg = new Color(null, 255, 255, 255); } else 
     58                         */if (remain >= 20) { 
    5959                                bg = pref.getColor(PreferColor.INPUT_NORMAL_BACKGROUND); 
    6060                                fg = pref.getColor(PreferColor.INPUT_NORMAL_FOREGROUND);