Changeset 10593
- Timestamp:
- 04/27/08 20:48:45 (7 months ago)
- Location:
- lang/java/sabotter/trunk
- Files:
-
- 5 added
- 4 modified
-
icons/add_tab.gif (added)
-
icons/filter.gif (added)
-
icons/refresh.gif (added)
-
src/jp/xet/eclipse/sabotter/Images.java (added)
-
src/jp/xet/eclipse/sabotter/SabotterPlugin.java (modified) (3 diffs)
-
src/jp/xet/eclipse/sabotter/action/AddTabAction.java (modified) (5 diffs)
-
src/jp/xet/eclipse/sabotter/manager/TableManager.java (modified) (2 diffs)
-
src/jp/xet/eclipse/sabotter/views/SabotterView.java (modified) (12 diffs)
-
src/jp/xet/eclipse/sabotter/views/TabDragListener.java (added)
Legend:
- Unmodified
- Added
- Removed
-
lang/java/sabotter/trunk/src/jp/xet/eclipse/sabotter/SabotterPlugin.java
r10355 r10593 1 1 package jp.xet.eclipse.sabotter; 2 3 import java.net.URL; 2 4 3 5 import jp.xet.eclipse.sabotter.preferences.SabotterPreference; 4 6 import jp.xet.eclipse.sabotter.preferences.SabotterPreferenceImpl; 5 7 8 import org.eclipse.core.runtime.FileLocator; 9 import org.eclipse.core.runtime.IPath; 6 10 import org.eclipse.core.runtime.IStatus; 11 import org.eclipse.core.runtime.Path; 7 12 import org.eclipse.core.runtime.Status; 8 13 import org.eclipse.jface.dialogs.ErrorDialog; 9 14 import org.eclipse.jface.resource.ImageDescriptor; 15 import org.eclipse.jface.resource.ImageRegistry; 10 16 import org.eclipse.ui.IWorkbenchWindow; 11 17 import org.eclipse.ui.PlatformUI; … … 40 46 */ 41 47 public static final int ALL = LOG | DIALOG | STACKTRACE; 48 49 /** アイコンファイルの配置パス */ 50 private static final String ICONS_PATH = "icons/"; 42 51 43 52 // The shared instance … … 93 102 public static SabotterPreference getPreference() { 94 103 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 } 95 133 } 96 134 -
lang/java/sabotter/trunk/src/jp/xet/eclipse/sabotter/action/AddTabAction.java
r10440 r10593 15 15 import org.eclipse.jface.viewers.ColumnPixelData; 16 16 import org.eclipse.jface.viewers.IContentProvider; 17 import org.eclipse.jface.viewers.IDoubleClickListener; 17 18 import org.eclipse.jface.viewers.ILabelProvider; 18 19 import org.eclipse.jface.viewers.ISelectionChangedListener; … … 52 53 private CTabFolder tabFolder; 53 54 54 private ISelectionChangedListener listener; 55 private ISelectionChangedListener selectionListener; 56 57 private IDoubleClickListener doubleClickListener; 55 58 56 59 private List<TableViewer> viewers; … … 63 66 * @param labelProvider 64 67 * @param tabFolder 65 * @param listener 68 * @param selListener 69 * @param dcListener 66 70 * @param viewers 67 71 * @category instance creation … … 69 73 public AddTabAction(IContentProvider contentProvider, 70 74 ILabelProvider labelProvider, CTabFolder tabFolder, 71 ISelectionChangedListener listener, List<TableViewer> viewers) { 75 ISelectionChangedListener selListener, 76 IDoubleClickListener dcListener, List<TableViewer> viewers) { 72 77 super(); 73 78 this.contentProvider = contentProvider; 74 79 this.labelProvider = labelProvider; 75 80 this.tabFolder = tabFolder; 76 this.listener = listener; 81 this.selectionListener = selListener; 82 doubleClickListener = dcListener; 77 83 this.viewers = viewers; 78 84 } … … 118 124 viewer.setSorter(new TimeLineSorter(viewer.getTable().getColumn(2))); 119 125 viewer.setInput(TwitterManager.getInstance()); 120 viewer.addSelectionChangedListener(listener); 126 viewer.addSelectionChangedListener(selectionListener); 127 viewer.addDoubleClickListener(doubleClickListener); 121 128 viewer.getTable().addKeyListener( 122 129 new SabotterKeyListener(new TableManager(viewer))); -
lang/java/sabotter/trunk/src/jp/xet/eclipse/sabotter/manager/TableManager.java
r10440 r10593 55 55 } 56 56 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 } 59 62 } 60 63 … … 72 75 } 73 76 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; 76 89 } 77 90 -
lang/java/sabotter/trunk/src/jp/xet/eclipse/sabotter/views/SabotterView.java
r10588 r10593 6 6 import java.util.Map; 7 7 8 import jp.xet.eclipse.sabotter.Images; 8 9 import jp.xet.eclipse.sabotter.SabotterPlugin; 9 10 import jp.xet.eclipse.sabotter.action.AddTabAction; … … 16 17 import jp.xet.eclipse.sabotter.preferences.PreferColor; 17 18 import jp.xet.eclipse.sabotter.preferences.SabotterPreference; 18 19 19 import org.eclipse.jface.action.Action; 20 20 import org.eclipse.jface.action.IMenuListener; … … 24 24 import org.eclipse.jface.action.Separator; 25 25 import org.eclipse.jface.dialogs.MessageDialog; 26 import org.eclipse.jface.resource.ImageRegistry; 26 27 import org.eclipse.jface.viewers.DoubleClickEvent; 27 28 import org.eclipse.jface.viewers.IContentProvider; … … 48 49 import org.eclipse.swt.widgets.Display; 49 50 import org.eclipse.swt.widgets.Label; 51 import org.eclipse.swt.widgets.Listener; 50 52 import org.eclipse.swt.widgets.Menu; 51 53 import org.eclipse.swt.widgets.Shell; … … 67 69 */ 68 70 public class SabotterView extends ViewPart implements 69 ISelectionChangedListener {71 ISelectionChangedListener, IDoubleClickListener { 70 72 71 73 /** ビューID */ … … 74 76 75 77 /** アクション・マップ */ 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(); 77 82 78 83 /** ステータステキスト入力欄 */ … … 220 225 TwitterManager.getInstance().setReaded((Status) obj); 221 226 } 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(); 222 238 } 223 239 … … 248 264 gd.horizontalSpan = 3; 249 265 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); 250 274 251 275 contentProvider = new TimeLineContentProvider(this); … … 354 378 getFriendTimeLineAction 355 379 .setToolTipText(Messages.tooltip_get_new_friend_time_line); 356 getFriendTimeLineAction.setImageDescriptor( PlatformUI.getWorkbench()357 .get SharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_UP)); // TODO select icon380 getFriendTimeLineAction.setImageDescriptor(imageRegistry 381 .getDescriptor(Images.BUTTON_REFRESH)); 358 382 actions.put(GetNewFriendTimeLineAction.ACTION_ID, 359 383 getFriendTimeLineAction); … … 377 401 filterSettingAction.setText("filter setting"); // TODO to resource file 378 402 filterSettingAction.setToolTipText("setting time-line filters."); 379 filterSettingAction.setImageDescriptor( PlatformUI.getWorkbench()380 .get SharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_CUT)); // TODO select icon403 filterSettingAction.setImageDescriptor(imageRegistry 404 .getDescriptor(Images.BUTTON_FILTER)); 381 405 actions.put(FilterSettingAction.ACTION_ID, filterSettingAction); 382 406 383 407 Action addTabAction = 384 408 new AddTabAction(contentProvider, labelProvider, tabFolder, 385 this, viewers);409 this, this, viewers); 386 410 addTabAction.setText("add new tab"); // TODO to resource file 387 411 addTabAction.setToolTipText("add new tab"); 388 addTabAction.setImageDescriptor( PlatformUI.getWorkbench()389 .get SharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_UP)); // TODO select icon412 addTabAction.setImageDescriptor(imageRegistry 413 .getDescriptor(Images.BUTTON_ADD_TAB)); 390 414 actions.put(AddTabAction.ACTION_ID, addTabAction); 391 415 } … … 438 462 private void hookDoubleClickAction() { 439 463 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); 446 465 } 447 466 } … … 496 515 } 497 516 517 /** 518 * 現在アクティブなタブのテーブルビューアを取得する。 519 * 520 * @return テーブルビューア 521 */ 522 public TableViewer getCurrentViewer() { 523 int index = tabFolder.getSelectionIndex(); 524 return viewers.get(index); 525 } 498 526 }
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)