Changeset 10440

Show
Ignore:
Timestamp:
04/25/08 17:57:17 (5 years ago)
Author:
daisuke_m
Message:

TwitterManagerの整理。

Location:
lang/java/sabotter/trunk/src/jp/xet/eclipse/sabotter
Files:
13 modified

Legend:

Unmodified
Added
Removed
  • lang/java/sabotter/trunk/src/jp/xet/eclipse/sabotter/TODO.java

    r10355 r10440  
    2525        // TODO 条件フィルタリングをおこなったタイムラインを、タブに表示する。 
    2626         
     27        // FIXME 自分宛@のColor/Fontよりも、未読のスタイルが優先されている。 
     28         
     29        // FIXME こんな例外が飛んでる。 
     30 
     31/* 
     32java.lang.IllegalArgumentException: ImageRegistry key already in use: http://s3.amazonaws.com/twitter_production/profile_images/NNNNNNNN/XXXXXXXX.jpg 
     33        at org.eclipse.jface.resource.ImageRegistry.put(ImageRegistry.java:283) 
     34        at jp.xet.eclipse.sabotter.views.LabelProcessor.getImage(LabelProcessor.java:141) 
     35        at jp.xet.eclipse.sabotter.views.TimeLineViewLabelProvider.getImage(TimeLineViewLabelProvider.java:86) 
     36        at jp.xet.eclipse.sabotter.views.TimeLineViewLabelProvider.getColumnImage(TimeLineViewLabelProvider.java:74) 
     37        at org.eclipse.jface.viewers.TableColumnViewerLabelProvider.update(TableColumnViewerLabelProvider.java:71) 
     38        at org.eclipse.jface.viewers.ViewerColumn.refresh(ViewerColumn.java:135) 
     39        at org.eclipse.jface.viewers.AbstractTableViewer.doUpdateItem(AbstractTableViewer.java:386) 
     40        at org.eclipse.jface.viewers.StructuredViewer$UpdateItemSafeRunnable.run(StructuredViewer.java:466) 
     41        at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37) 
     42        at org.eclipse.core.runtime.Platform.run(Platform.java:857) 
     43        at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:46) 
     44        at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:199) 
     45        at org.eclipse.jface.viewers.StructuredViewer.updateItem(StructuredViewer.java:2026) 
     46        at org.eclipse.jface.viewers.AbstractTableViewer.createItem(AbstractTableViewer.java:264) 
     47        at org.eclipse.jface.viewers.AbstractTableViewer.add(AbstractTableViewer.java:250) 
     48        at jp.xet.eclipse.sabotter.views.SabotterView$SabotterListener$1.run(SabotterView.java:184) 
     49        at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) 
     50        at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:129) 
     51        at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:3659) 
     52        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3296) 
     53        at org.eclipse.jface.window.Window.runEventLoop(Window.java:820) 
     54        at org.eclipse.jface.window.Window.open(Window.java:796) 
     55        at org.eclipse.ui.texteditor.GotoLineAction.run(GotoLineAction.java:202) 
     56        at org.eclipse.jface.action.Action.runWithEvent(Action.java:498) 
     57        at org.eclipse.ui.commands.ActionHandler.execute(ActionHandler.java:185) 
     58        at org.eclipse.ui.internal.handlers.LegacyHandlerWrapper.execute(LegacyHandlerWrapper.java:109) 
     59        at org.eclipse.core.commands.Command.executeWithChecks(Command.java:475) 
     60        at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:429) 
     61        at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:165) 
     62        at org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:470) 
     63        at org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:821) 
     64        at org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:879) 
     65        at org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java:568) 
     66        at org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$3(WorkbenchKeyboard.java:510) 
     67        at org.eclipse.ui.internal.keys.WorkbenchKeyboard$KeyDownFilter.handleEvent(WorkbenchKeyboard.java:126) 
     68        at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66) 
     69        at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1141) 
     70        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:937) 
     71        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:962) 
     72        at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:947) 
     73        at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:975) 
     74        at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:971) 
     75        at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1285) 
     76        at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:3772) 
     77        at org.eclipse.swt.widgets.Control.windowProc(Control.java:3672) 
     78        at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:291) 
     79        at org.eclipse.swt.widgets.Display.windowProc(Display.java:4351) 
     80        at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method) 
     81        at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2265) 
     82        at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3291) 
     83        at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2389) 
     84        at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2353) 
     85        at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2219) 
     86        at org.eclipse.ui.internal.Workbench$4.run(Workbench.java:466) 
     87        at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:289) 
     88        at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:461) 
     89        at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149) 
     90        at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:106) 
     91        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:169) 
     92        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:106) 
     93        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:76) 
     94        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:363) 
     95        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:176) 
     96        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     97        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
     98        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
     99        at java.lang.reflect.Method.invoke(Unknown Source) 
     100        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:508) 
     101        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:447) 
     102        at org.eclipse.equinox.launcher.Main.run(Main.java:1173) 
     103 */ 
    27104} 
  • lang/java/sabotter/trunk/src/jp/xet/eclipse/sabotter/action/AddTabAction.java

    r10355 r10440  
    5050        private ILabelProvider labelProvider; 
    5151         
    52         private TwitterManager twitterManager; 
    53          
    5452        private CTabFolder tabFolder; 
    5553         
     
    6462         * @param contentProvider 
    6563         * @param labelProvider 
    66          * @param twitterManager 
    6764         * @param tabFolder 
    6865         * @param listener 
     
    7168         */ 
    7269        public AddTabAction(IContentProvider contentProvider, 
    73                         ILabelProvider labelProvider, TwitterManager twitterManager, 
    74                         CTabFolder tabFolder, ISelectionChangedListener listener, 
    75                         List<TableViewer> viewers) { 
     70                        ILabelProvider labelProvider, CTabFolder tabFolder, 
     71                        ISelectionChangedListener listener, List<TableViewer> viewers) { 
    7672                super(); 
    7773                this.contentProvider = contentProvider; 
    7874                this.labelProvider = labelProvider; 
    79                 this.twitterManager = twitterManager; 
    8075                this.tabFolder = tabFolder; 
    8176                this.listener = listener; 
     
    122117                viewer.setLabelProvider(labelProvider); 
    123118                viewer.setSorter(new TimeLineSorter(viewer.getTable().getColumn(2))); 
    124                 viewer.setInput(twitterManager); 
     119                viewer.setInput(TwitterManager.getInstance()); 
    125120                viewer.addSelectionChangedListener(listener); 
    126121                viewer.getTable().addKeyListener( 
    127                                 new SabotterKeyListener(new TableManager(viewer, 
    128                                                 twitterManager), twitterManager)); 
     122                                new SabotterKeyListener(new TableManager(viewer))); 
    129123                 
    130124                tabItem.setControl(viewer.getTable()); 
  • lang/java/sabotter/trunk/src/jp/xet/eclipse/sabotter/action/CreateFavoriteAction.java

    r10355 r10440  
    2121        public static final String ACTION_ID = "createFavorite"; // $NON-NLS-1$ 
    2222         
    23         /** APIマネージャ */ 
    24         private TwitterManager manager; 
    25          
    2623        /** 結果ハンドラ */ 
    2724        private TwitterListener listener; 
     
    3229         *  
    3330         * @param viewers 
    34          * @param manager 
    3531         * @param tabFolder 
    3632         * @param listener 
     
    3834         */ 
    3935        public CreateFavoriteAction(List<TableViewer> viewers, 
    40                         CTabFolder tabFolder, TwitterManager manager, 
    41                         TwitterListener listener) { 
     36                        CTabFolder tabFolder, TwitterListener listener) { 
    4237                super(viewers, tabFolder); 
    43                 this.manager = manager; 
    4438                this.listener = listener; 
    4539        } 
     
    5953                        if (statusObj instanceof Status) { 
    6054                                int targetStatusId = ((Status) statusObj).getId(); 
    61                                 manager.createFavorite(targetStatusId, listener); 
     55                                TwitterManager.getInstance().createFavorite(targetStatusId, 
     56                                                listener); 
    6257                        } 
    6358                } 
  • lang/java/sabotter/trunk/src/jp/xet/eclipse/sabotter/action/FilterSettingAction.java

    r10355 r10440  
    44import java.util.List; 
    55 
    6 import jp.xet.eclipse.sabotter.manager.TwitterManager; 
    76import jp.xet.eclipse.sabotter.views.UnreadFilter; 
    87 
     
    2120        public static final String ACTION_ID = "filterSetting"; // $NON-NLS-1$ 
    2221         
    23         private TwitterManager twitterManager; 
    24          
    2522        private List<ViewerFilter> filters = new ArrayList<ViewerFilter>(); 
    2623         
     
    3330         * @param viewers 
    3431         * @param tabFolder 
    35          * @param twitterManager 
    3632         * @category instance creation 
    3733         */ 
    38         public FilterSettingAction(List<TableViewer> viewers, 
    39                         CTabFolder tabFolder, TwitterManager twitterManager) { 
     34        public FilterSettingAction(List<TableViewer> viewers, CTabFolder tabFolder) { 
    4035                super(viewers, tabFolder); 
    41                 this.twitterManager = twitterManager; 
    4236        } 
    4337         
     
    5044        public void run() { 
    5145                if (flag) { 
    52                         filters.add(new UnreadFilter(twitterManager)); 
     46                        filters.add(new UnreadFilter()); 
    5347                } else { 
    5448                        filters.clear(); 
  • lang/java/sabotter/trunk/src/jp/xet/eclipse/sabotter/action/GetNewFriendTimeLineAction.java

    r10355 r10440  
    2020        public static final String ACTION_ID = "getNewFriendTimeLine"; // $NON-NLS-1$ 
    2121         
    22         /** APIマネージャ */ 
    23         private TwitterManager manager; 
    24          
    2522        /** 取得したタイムラインの非同期ハンドラ */ 
    2623        private TwitterListener listener; 
     
    3027         * コンストラクタ。 
    3128         *  
    32          * @param manager 
    3329         * @param listener 
    3430         * @category instance creation 
    3531         */ 
    36         public GetNewFriendTimeLineAction(TwitterManager manager, 
    37                         TwitterListener listener) { 
    38                 this.manager = manager; 
     32        public GetNewFriendTimeLineAction(TwitterListener listener) { 
    3933                this.listener = listener; 
    4034        } 
     
    4943                SabotterPlugin.log(org.eclipse.core.runtime.Status.INFO, 0, 
    5044                                "Sabotter: update timeline on " + new Date()); // $NON-NLS-1$ 
    51                 manager.getFriendsTimeline(listener); 
     45                TwitterManager.getInstance().getFriendsTimeline(listener); 
    5246        } 
    5347} 
  • lang/java/sabotter/trunk/src/jp/xet/eclipse/sabotter/manager/TableManager.java

    r10352 r10440  
    2121        private TableViewer viewer; 
    2222         
    23         private TwitterManager twitterManager; 
    24          
    2523 
    2624        /** 
     
    2826         *  
    2927         * @param viewer 
    30          * @param twitterManager 
    3128         * @category instance creation 
    3229         */ 
    33         public TableManager(TableViewer viewer, TwitterManager twitterManager) { 
     30        public TableManager(TableViewer viewer) { 
    3431                this.viewer = viewer; 
    35                 this.twitterManager = twitterManager; 
    3632        } 
    3733         
     
    4137        public void oldestUnread() { 
    4238                ISelection sel = 
    43                                 new StructuredSelection(twitterManager.getOldestUnread()); 
     39                                new StructuredSelection(TwitterManager.getInstance() 
     40                                        .getOldestUnread()); 
    4441                viewer.setSelection(sel); 
    4542        } 
  • lang/java/sabotter/trunk/src/jp/xet/eclipse/sabotter/manager/TwitterManager.java

    r10363 r10440  
    11package jp.xet.eclipse.sabotter.manager; 
    22 
    3 import java.util.ArrayList; 
    43import java.util.Comparator; 
    5 import java.util.EventListener; 
    64import java.util.HashSet; 
    75import java.util.Iterator; 
     
    1210 
    1311import jp.xet.eclipse.sabotter.SabotterPlugin; 
    14 import jp.xet.eclipse.sabotter.event.UserEvent; 
    15 import jp.xet.eclipse.sabotter.event.UserEventListener; 
    1612import jp.xet.eclipse.sabotter.preferences.PreferenceKeys; 
    1713import jp.xet.eclipse.sabotter.preferences.SabotterPreference; 
     
    4743        private static TwitterManager singleton; 
    4844         
    49         /** オブザーバ */ 
    50         private List<UserEventListener> listeners = 
    51                         new ArrayList<UserEventListener>(); 
    52          
    5345        /** プリファレンス */ 
    54         private SabotterPreference pref = SabotterPlugin.getPreference(); 
     46        private static SabotterPreference pref = SabotterPlugin.getPreference(); 
    5547         
    5648 
     
    8173         
    8274        /** 
    83          * リスナーを追加します。 
    84          *  
    85          * @param listener 追加するリスナー 
    86          */ 
    87         public void addPropertyChangeListener(UserEventListener listener) { 
    88                 listeners.add(listener); 
    89         } 
    90          
    91         /** 
    92          * リスナーに変更を通知します。 
    93          *  
    94          * @param propName 
    95          * @param status 
    96          */ 
    97         public void fireUnreadChange(String propName, Status status) { 
    98                 for (UserEventListener listener : listeners) { 
    99                         listener.fire(new UserEvent(propName)); 
    100                 } 
    101         } 
    102          
    103         /** 
    104          * リスナーを削除します。 
    105          *  
    106          * @param listener 削除するリスナー 
    107          */ 
    108         public void removePropertyChangeListener(EventListener listener) { 
    109                 listeners.remove(listener); 
    110         } 
    111          
    112         /** 
    113          * 破棄時にコールする。 
    114          */ 
    115         public void dispose() { 
    116                 singleton = null; 
    117         } 
    118          
    119         /** 
    12075         * Override method. 
    12176         *  
     
    13085         
    13186        /** 
    132          * シングルトンインスタンスを取得する。 
     87         * singletonインスタンスを取得する。 
    13388         *  
    13489         * @return インスタンス 
     
    212167        public void setReaded(Status status) { 
    213168                unread.remove(status); 
    214                 fireUnreadChange("unread", status); // $NON-NLS-1$ 
    215169        } 
    216170         
     
    233187        public void setUnread(Status status) { 
    234188                unread.add(status); 
    235                 fireUnreadChange("unread", status); // $NON-NLS-1$ 
    236189        } 
    237190         
  • lang/java/sabotter/trunk/src/jp/xet/eclipse/sabotter/views/LabelProcessor.java

    r10363 r10440  
    3636public class LabelProcessor { 
    3737         
    38         private TwitterManager manager; 
    39          
    4038        /** APIから取得した日付のフォーマット */ 
    4139        private DateFormat dfIn = 
     
    5351         
    5452 
    55         /** 
    56          * コンストラクタ。 
    57          *  
    58          * @param manager 
    59          * @category instance creation 
    60          */ 
    61         public LabelProcessor(TwitterManager manager) { 
    62                 this.manager = manager; 
    63         } 
    64          
    6553        /** 
    6654         * 表示する名前を取得する。 
     
    239227         */ 
    240228        public Color getBackgroundColor(Status status) { 
     229                TwitterManager manager = TwitterManager.getInstance(); 
    241230                if (manager.isUnread(status)) { 
    242231                        return pref.getUnreadStatusBackgroundColor(); 
     
    257246         */ 
    258247        public Color getForegroundColor(Status status) { 
     248                TwitterManager manager = TwitterManager.getInstance(); 
    259249                if (manager.isUnread(status)) { 
    260250                        return pref.getUnreadStatusForegroundColor(); 
  • lang/java/sabotter/trunk/src/jp/xet/eclipse/sabotter/views/SabotterKeyListener.java

    r10380 r10440  
    1919        private TableManager tableManager; 
    2020         
    21         private TwitterManager twitterManager; 
    22          
    2321 
    2422        /** 
     
    2624         *  
    2725         * @param tableManager 
    28          * @param twitterManager 
    2926         * @category instance creation 
    3027         */ 
    31         public SabotterKeyListener(TableManager tableManager, 
    32                         TwitterManager twitterManager) { 
     28        public SabotterKeyListener(TableManager tableManager) { 
    3329                this.tableManager = tableManager; 
    34                 this.twitterManager = twitterManager; 
    3530        } 
    3631         
     
    5651                                && isPressed(e, SWT.SHIFT)) { 
    5752                        // FIXME 動いてない 
    58                         twitterManager.setUnread(tableManager.getSelection()); 
     53                        TwitterManager.getInstance() 
     54                                .setUnread(tableManager.getSelection()); 
    5955                        System.out.println(e); 
    6056                } else if (e.character == 'b' && isPressed(e, SWT.CTRL)) { 
    6157                        // FIXME 動いてない 
    62                         twitterManager.setReaded(tableManager.getSelection()); 
     58                        TwitterManager.getInstance() 
     59                                .setReaded(tableManager.getSelection()); 
    6360                } else if (e.keyCode == SWT.ARROW_UP) { 
    6461                        // nothing to do 
  • lang/java/sabotter/trunk/src/jp/xet/eclipse/sabotter/views/SabotterView.java

    r10380 r10440  
    2727import org.eclipse.jface.dialogs.MessageDialog; 
    2828import org.eclipse.jface.viewers.DoubleClickEvent; 
     29import org.eclipse.jface.viewers.IContentProvider; 
    2930import org.eclipse.jface.viewers.IDoubleClickListener; 
     31import org.eclipse.jface.viewers.ILabelProvider; 
    3032import org.eclipse.jface.viewers.ISelectionChangedListener; 
    3133import org.eclipse.jface.viewers.IStructuredSelection; 
     
    7678        private Map<String, Action> actions = new HashMap<String, Action>(); 
    7779         
    78         /** Twitterマネージャ */ 
    79         private TwitterManager twitterManager; 
    80          
    8180        /** ステータステキスト入力欄 */ 
    8281        private Text txtStatusText; 
     
    8988        /** タブ管理クラス */ 
    9089        private CTabFolder tabFolder; 
     90         
     91        private IContentProvider contentProvider; 
     92         
     93        private ILabelProvider labelProvider; 
    9194         
    9295 
     
    164167                        SabotterPlugin.log(org.eclipse.core.runtime.Status.INFO, 0, 
    165168                                        "Sabotter: responce recieved"); // $NON-NLS-1$ 
    166                         if (twitterManager == null) { 
    167                                 SabotterPlugin.log(org.eclipse.core.runtime.Status.WARNING, 0, 
    168                                                 "Sabotter: twitterManager is null"); // $NON-NLS-1$ 
    169                                 return; 
    170                         } 
    171169                         
    172170                        final List<Status> result = new ArrayList<Status>(); 
     171                        TwitterManager twitterManager = TwitterManager.getInstance(); 
    173172                        for (Status status : statuses) { 
    174173                                if (twitterManager.isNewStatus(status)) { 
     
    206205         */ 
    207206        public SabotterView() { 
    208                 twitterManager = TwitterManager.getInstance(); 
    209                 twitterManager.addPropertyChangeListener(this); 
    210         } 
    211          
    212         /** 
    213          * Override method. 
    214          *  
    215          * @see org.eclipse.ui.part.WorkbenchPart#dispose() 
    216          */ 
    217         @Override 
    218         public void dispose() { 
    219                 twitterManager.removePropertyChangeListener(this); 
    220                 twitterManager.dispose(); 
    221                 twitterManager = null; 
    222                 super.dispose(); 
    223207        } 
    224208         
     
    247231                                (IStructuredSelection) viewer.getSelection(); 
    248232                for (Object obj : selection.toList()) { 
    249                         twitterManager.setReaded((Status) obj); 
     233                        TwitterManager.getInstance().setReaded((Status) obj); 
    250234                } 
    251235        } 
     
    278262                tabFolder.setLayoutData(gd); 
    279263                 
     264                contentProvider = new TimeLineContentProvider(this); 
     265                labelProvider = new TimeLineViewLabelProvider(); 
     266                 
    280267                // ---- ここから 
    281268                 
     
    290277                AddTabAction.initTable(viewer); 
    291278                 
    292                 viewer.setContentProvider(new TimeLineContentProvider(this)); 
    293                 viewer.setLabelProvider(new TimeLineViewLabelProvider(twitterManager)); 
     279                viewer.setContentProvider(contentProvider); 
     280                viewer.setLabelProvider(labelProvider); 
    294281                viewer.setSorter(new TimeLineSorter(viewer.getTable().getColumn(2))); 
    295                 viewer.setInput(twitterManager); 
     282                viewer.setInput(TwitterManager.getInstance()); 
    296283                viewer.addSelectionChangedListener(this); 
    297284                viewer.getTable().addKeyListener( 
    298                                 new SabotterKeyListener(new TableManager(viewer, 
    299                                                 twitterManager), twitterManager)); 
     285                                new SabotterKeyListener(new TableManager(viewer))); 
    300286                 
    301287                tabTimeline.setControl(viewer.getTable()); 
     
    376362        private void makeActions() { 
    377363                Action getFriendTimeLineAction = 
    378                                 new GetNewFriendTimeLineAction(twitterManager, 
    379                                                 new SabotterListener()); 
     364                                new GetNewFriendTimeLineAction(new SabotterListener()); 
    380365                getFriendTimeLineAction 
    381366                        .setText(Messages.action_get_new_friend_time_line); 
     
    388373                 
    389374                Action createFavoriteAction = 
    390                                 new CreateFavoriteAction(viewers, tabFolder, twitterManager, 
     375                                new CreateFavoriteAction(viewers, tabFolder, 
    391376                                                new TwitterAdapter()); 
    392377                createFavoriteAction.setText(Messages.action_create_favorite); 
     
    402387                 
    403388                Action filterSettingAction = 
    404                                 new FilterSettingAction(viewers, tabFolder, twitterManager); 
     389                                new FilterSettingAction(viewers, tabFolder); 
    405390                filterSettingAction.setText("filter setting"); // TODO to resource file 
    406391                filterSettingAction.setToolTipText("setting time-line filters."); 
     
    410395                 
    411396                Action addTabAction = 
    412                                 new AddTabAction(new TimeLineContentProvider(this), 
    413                                                 new TimeLineViewLabelProvider(twitterManager), 
    414                                                 twitterManager, tabFolder, this, viewers); 
     397                                new AddTabAction(contentProvider, labelProvider, tabFolder, 
     398                                                this, viewers); 
    415399                addTabAction.setText("add new tab"); // TODO to resource file 
    416400                addTabAction.setToolTipText("add new tab"); 
     
    492476                String statusText = txtStatusText.getText(); 
    493477                try { 
    494                         twitterManager.update(statusText); 
     478                        TwitterManager.getInstance().update(statusText); 
    495479                        txtStatusText.setText(""); 
    496480                } catch (TwitterException e) { 
  • lang/java/sabotter/trunk/src/jp/xet/eclipse/sabotter/views/TimeLineContentProvider.java

    r10189 r10440  
    2727         */ 
    2828        public TimeLineContentProvider(final SabotterView view) { 
     29                final Display display = 
     30                                SabotterPlugin.getDefault().getWorkbench().getDisplay(); 
    2931                Runnable runnable = new Runnable() { 
    3032                         
    3133                        public void run() { 
     34                                if (display.isDisposed() || disposed) { 
     35                                        return; 
     36                                } 
    3237                                view.getFriendsTimeLine(); 
    33                                  
    34                                 Display display = 
    35                                                 SabotterPlugin.getDefault().getWorkbench() 
    36                                                         .getDisplay(); 
    37                                 if (display.isDisposed() == false && disposed == false) { 
    38                                         display.timerExec(UPDATE_INTERVAL * 1000, this); 
    39                                 } 
     38                                display.timerExec(UPDATE_INTERVAL * 1000, this); 
    4039                        } 
    4140                }; 
    42                 Display display = 
    43                                 SabotterPlugin.getDefault().getWorkbench().getDisplay(); 
    4441                if (display.isDisposed() == false && disposed == false) { 
    4542                        display.timerExec(UPDATE_INTERVAL * 1000, runnable); 
     
    7168         */ 
    7269        public Object[] getElements(Object parent) { 
    73                 TwitterManager manager = (TwitterManager) parent; 
    74                 return manager.getAllStatuses().toArray(new Object[0]); 
     70                return TwitterManager.getInstance().getAllStatuses().toArray( 
     71                                new Object[0]); 
    7572        } 
    7673} 
  • lang/java/sabotter/trunk/src/jp/xet/eclipse/sabotter/views/TimeLineViewLabelProvider.java

    r10355 r10440  
    11package jp.xet.eclipse.sabotter.views; 
    2  
    3 import jp.xet.eclipse.sabotter.manager.TwitterManager; 
    42 
    53import org.eclipse.jface.viewers.ITableColorProvider; 
     
    2220         
    2321        /** 表示文字列等の加工(色づけ等)クラス */ 
    24         private LabelProcessor processor; 
     22        private LabelProcessor processor = new LabelProcessor(); 
    2523         
    2624 
    27         /** 
    28          * コンストラクタ。 
    29          *  
    30          * @param manager 
    31          * @category instance creation 
    32          */ 
    33         public TimeLineViewLabelProvider(TwitterManager manager) { 
    34                 processor = new LabelProcessor(manager); 
    35         } 
    36          
    3725        /** 
    3826         * Override method. 
  • lang/java/sabotter/trunk/src/jp/xet/eclipse/sabotter/views/UnreadFilter.java

    r10355 r10440  
    1515public class UnreadFilter extends ViewerFilter { 
    1616         
    17         private TwitterManager twitterManager; 
    18          
    19  
    20         /** 
    21          * コンストラクタ。 
    22          *  
    23          * @param twitterManager 
    24          * @category instance creation 
    25          */ 
    26         public UnreadFilter(TwitterManager twitterManager) { 
    27                 this.twitterManager = twitterManager; 
    28         } 
    29          
    3017        /** 
    3118         * Overriding method. 
     
    3724        public boolean select(Viewer viewer, Object parentElement, Object element) { 
    3825                Status status = (Status) element; 
    39                 if (twitterManager.isUnread(status)) { 
     26                if (TwitterManager.getInstance().isUnread(status)) { 
    4027                        return true; 
    4128                }