Changeset 10593

Show
Ignore:
Timestamp:
04/27/08 20:48:45 (7 months ago)
Author:
daisuke_m
Message:

アイコン整備。ユーザタブのステータスをダブルクリックした時にReplyActionが動いていなかったのを修正。タブの移動リスナをつけてみたけど動かない。

Location:
lang/java/sabotter/trunk
Files:
5 added
4 modified

Legend:

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

    r10355 r10593  
    11package jp.xet.eclipse.sabotter; 
     2 
     3import java.net.URL; 
    24 
    35import jp.xet.eclipse.sabotter.preferences.SabotterPreference; 
    46import jp.xet.eclipse.sabotter.preferences.SabotterPreferenceImpl; 
    57 
     8import org.eclipse.core.runtime.FileLocator; 
     9import org.eclipse.core.runtime.IPath; 
    610import org.eclipse.core.runtime.IStatus; 
     11import org.eclipse.core.runtime.Path; 
    712import org.eclipse.core.runtime.Status; 
    813import org.eclipse.jface.dialogs.ErrorDialog; 
    914import org.eclipse.jface.resource.ImageDescriptor; 
     15import org.eclipse.jface.resource.ImageRegistry; 
    1016import org.eclipse.ui.IWorkbenchWindow; 
    1117import org.eclipse.ui.PlatformUI; 
     
    4046         */ 
    4147        public static final int ALL = LOG | DIALOG | STACKTRACE; 
     48         
     49        /** アイコンファイルの配置パス */ 
     50        private static final String ICONS_PATH = "icons/"; 
    4251         
    4352        // The shared instance 
     
    93102        public static SabotterPreference getPreference() { 
    94103                return pref; 
     104        } 
     105         
     106        /** 
     107         * Override method. 
     108         *  
     109         * @see org.eclipse.ui.plugin.AbstractUIPlugin#initializeImageRegistry(org.eclipse.jface.resource.ImageRegistry) 
     110         */ 
     111        @Override 
     112        protected void initializeImageRegistry(ImageRegistry registry) { 
     113                registerImage(registry, Images.BUTTON_ADD_TAB, "add_tab.gif"); 
     114                registerImage(registry, Images.BUTTON_FILTER, "filter.gif"); 
     115                registerImage(registry, Images.BUTTON_REFRESH, "refresh.gif"); 
     116        } 
     117         
     118        /** 
     119         * ImageRegistryに指定したファイルの画像を設定します。 画像ファイルは icons/ 内に配置する必要があります。 
     120         *  
     121         * @param registry 追加対象のImageRegistry 
     122         * @param key キー 
     123         * @param fileName ファイル名 
     124         */ 
     125        private void registerImage(ImageRegistry registry, String key, 
     126                        String fileName) { 
     127                IPath path = new Path(ICONS_PATH + fileName); 
     128                URL url = FileLocator.find(getBundle(), path, null); 
     129                 
     130                if (url != null) { 
     131                        registry.put(key, ImageDescriptor.createFromURL(url)); 
     132                } 
    95133        } 
    96134         
  • lang/java/sabotter/trunk/src/jp/xet/eclipse/sabotter/action/AddTabAction.java

    r10440 r10593  
    1515import org.eclipse.jface.viewers.ColumnPixelData; 
    1616import org.eclipse.jface.viewers.IContentProvider; 
     17import org.eclipse.jface.viewers.IDoubleClickListener; 
    1718import org.eclipse.jface.viewers.ILabelProvider; 
    1819import org.eclipse.jface.viewers.ISelectionChangedListener; 
     
    5253        private CTabFolder tabFolder; 
    5354         
    54         private ISelectionChangedListener listener; 
     55        private ISelectionChangedListener selectionListener; 
     56         
     57        private IDoubleClickListener doubleClickListener; 
    5558         
    5659        private List<TableViewer> viewers; 
     
    6366         * @param labelProvider 
    6467         * @param tabFolder 
    65          * @param listener 
     68         * @param selListener 
     69         * @param dcListener 
    6670         * @param viewers 
    6771         * @category instance creation 
     
    6973        public AddTabAction(IContentProvider contentProvider, 
    7074                        ILabelProvider labelProvider, CTabFolder tabFolder, 
    71                         ISelectionChangedListener listener, List<TableViewer> viewers) { 
     75                        ISelectionChangedListener selListener, 
     76                        IDoubleClickListener dcListener, List<TableViewer> viewers) { 
    7277                super(); 
    7378                this.contentProvider = contentProvider; 
    7479                this.labelProvider = labelProvider; 
    7580                this.tabFolder = tabFolder; 
    76                 this.listener = listener; 
     81                this.selectionListener = selListener; 
     82                doubleClickListener = dcListener; 
    7783                this.viewers = viewers; 
    7884        } 
     
    118124                viewer.setSorter(new TimeLineSorter(viewer.getTable().getColumn(2))); 
    119125                viewer.setInput(TwitterManager.getInstance()); 
    120                 viewer.addSelectionChangedListener(listener); 
     126                viewer.addSelectionChangedListener(selectionListener); 
     127                viewer.addDoubleClickListener(doubleClickListener); 
    121128                viewer.getTable().addKeyListener( 
    122129                                new SabotterKeyListener(new TableManager(viewer))); 
  • lang/java/sabotter/trunk/src/jp/xet/eclipse/sabotter/manager/TableManager.java

    r10440 r10593  
    5555                } 
    5656                 
    57                 ISelection sel = new StructuredSelection(viewer.getElementAt(target)); 
    58                 viewer.setSelection(sel); 
     57                if (checkRange(target)) { 
     58                        ISelection sel = 
     59                                        new StructuredSelection(viewer.getElementAt(target)); 
     60                        viewer.setSelection(sel); 
     61                } 
    5962        } 
    6063         
     
    7275                } 
    7376                 
    74                 ISelection sel = new StructuredSelection(viewer.getElementAt(target)); 
    75                 viewer.setSelection(sel); 
     77                if (checkRange(target)) { 
     78                        ISelection sel = 
     79                                        new StructuredSelection(viewer.getElementAt(target)); 
     80                        viewer.setSelection(sel); 
     81                } 
     82        } 
     83         
     84        private boolean checkRange(int target) { 
     85                if (target >= 0 && target < viewer.getTable().getItemCount()) { 
     86                        return true; 
     87                } 
     88                return false; 
    7689        } 
    7790         
  • lang/java/sabotter/trunk/src/jp/xet/eclipse/sabotter/views/SabotterView.java

    r10588 r10593  
    66import java.util.Map; 
    77 
     8import jp.xet.eclipse.sabotter.Images; 
    89import jp.xet.eclipse.sabotter.SabotterPlugin; 
    910import jp.xet.eclipse.sabotter.action.AddTabAction; 
     
    1617import jp.xet.eclipse.sabotter.preferences.PreferColor; 
    1718import jp.xet.eclipse.sabotter.preferences.SabotterPreference; 
    18  
    1919import org.eclipse.jface.action.Action; 
    2020import org.eclipse.jface.action.IMenuListener; 
     
    2424import org.eclipse.jface.action.Separator; 
    2525import org.eclipse.jface.dialogs.MessageDialog; 
     26import org.eclipse.jface.resource.ImageRegistry; 
    2627import org.eclipse.jface.viewers.DoubleClickEvent; 
    2728import org.eclipse.jface.viewers.IContentProvider; 
     
    4849import org.eclipse.swt.widgets.Display; 
    4950import org.eclipse.swt.widgets.Label; 
     51import org.eclipse.swt.widgets.Listener; 
    5052import org.eclipse.swt.widgets.Menu; 
    5153import org.eclipse.swt.widgets.Shell; 
     
    6769 */ 
    6870public class SabotterView extends ViewPart implements 
    69                 ISelectionChangedListener { 
     71                ISelectionChangedListener, IDoubleClickListener { 
    7072         
    7173        /** ビューID */ 
     
    7476         
    7577        /** アクション・マップ */ 
    76         private Map<String, Action> actions = new HashMap<String, Action>(); 
     78        Map<String, Action> actions = new HashMap<String, Action>(); 
     79         
     80        private static ImageRegistry imageRegistry = 
     81                        SabotterPlugin.getDefault().getImageRegistry(); 
    7782         
    7883        /** ステータステキスト入力欄 */ 
     
    220225                        TwitterManager.getInstance().setReaded((Status) obj); 
    221226                } 
     227                 
     228                viewer.refresh(); 
     229        } 
     230         
     231        /** 
     232         * Override method. 
     233         *  
     234         * @see org.eclipse.jface.viewers.IDoubleClickListener#doubleClick(org.eclipse.jface.viewers.DoubleClickEvent) 
     235         */ 
     236        public void doubleClick(DoubleClickEvent event) { 
     237                actions.get(ReplyAction.ACTION_ID).run(); 
    222238        } 
    223239         
     
    248264                gd.horizontalSpan = 3; 
    249265                tabFolder.setLayoutData(gd); 
     266//              tabFolder.setSimple(false); 
     267                 
     268                Listener listener = new TabDragListener(tabFolder); 
     269                tabFolder.addListener(SWT.DragDetect, listener); 
     270                tabFolder.addListener(SWT.MouseUp, listener); 
     271                tabFolder.addListener(SWT.MouseMove, listener); 
     272                tabFolder.addListener(SWT.MouseExit, listener); 
     273                tabFolder.addListener(SWT.MouseEnter, listener); 
    250274                 
    251275                contentProvider = new TimeLineContentProvider(this); 
     
    354378                getFriendTimeLineAction 
    355379                        .setToolTipText(Messages.tooltip_get_new_friend_time_line); 
    356                 getFriendTimeLineAction.setImageDescriptor(PlatformUI.getWorkbench() 
    357                         .getSharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_UP)); // TODO select icon 
     380                getFriendTimeLineAction.setImageDescriptor(imageRegistry 
     381                        .getDescriptor(Images.BUTTON_REFRESH)); 
    358382                actions.put(GetNewFriendTimeLineAction.ACTION_ID, 
    359383                                getFriendTimeLineAction); 
     
    377401                filterSettingAction.setText("filter setting"); // TODO to resource file 
    378402                filterSettingAction.setToolTipText("setting time-line filters."); 
    379                 filterSettingAction.setImageDescriptor(PlatformUI.getWorkbench() 
    380                         .getSharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_CUT)); // TODO select icon 
     403                filterSettingAction.setImageDescriptor(imageRegistry 
     404                        .getDescriptor(Images.BUTTON_FILTER)); 
    381405                actions.put(FilterSettingAction.ACTION_ID, filterSettingAction); 
    382406                 
    383407                Action addTabAction = 
    384408                                new AddTabAction(contentProvider, labelProvider, tabFolder, 
    385                                                 this, viewers); 
     409                                                this, this, viewers); 
    386410                addTabAction.setText("add new tab"); // TODO to resource file 
    387411                addTabAction.setToolTipText("add new tab"); 
    388                 addTabAction.setImageDescriptor(PlatformUI.getWorkbench() 
    389                         .getSharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_UP)); // TODO select icon 
     412                addTabAction.setImageDescriptor(imageRegistry 
     413                        .getDescriptor(Images.BUTTON_ADD_TAB)); 
    390414                actions.put(AddTabAction.ACTION_ID, addTabAction); 
    391415        } 
     
    438462        private void hookDoubleClickAction() { 
    439463                for (TableViewer viewer : viewers) { 
    440                         viewer.addDoubleClickListener(new IDoubleClickListener() { 
    441                                  
    442                                 public void doubleClick(DoubleClickEvent event) { 
    443                                         actions.get(ReplyAction.ACTION_ID).run(); 
    444                                 } 
    445                         }); 
     464                        viewer.addDoubleClickListener(this); 
    446465                } 
    447466        } 
     
    496515        } 
    497516         
     517        /** 
     518         * 現在アクティブなタブのテーブルビューアを取得する。 
     519         *  
     520         * @return テーブルビューア 
     521         */ 
     522        public TableViewer getCurrentViewer() { 
     523                int index = tabFolder.getSelectionIndex(); 
     524                return viewers.get(index); 
     525        } 
    498526}