| 1 8 package com.mountainminds.eclemma.internal.ui.coverageview; 9 10 import org.eclipse.jface.action.Action; 11 import org.eclipse.jface.action.IMenuCreator; 12 import org.eclipse.jface.viewers.ILabelProvider; 13 import org.eclipse.osgi.util.NLS; 14 import org.eclipse.swt.SWT; 15 import org.eclipse.swt.events.SelectionAdapter; 16 import org.eclipse.swt.events.SelectionEvent; 17 import org.eclipse.swt.widgets.Control; 18 import org.eclipse.swt.widgets.Menu; 19 import org.eclipse.swt.widgets.MenuItem; 20 import org.eclipse.ui.model.WorkbenchLabelProvider; 21 22 import com.mountainminds.eclemma.core.CoverageTools; 23 import com.mountainminds.eclemma.core.ICoverageSession; 24 import com.mountainminds.eclemma.core.ISessionManager; 25 import com.mountainminds.eclemma.internal.ui.EclEmmaUIPlugin; 26 import com.mountainminds.eclemma.internal.ui.UIMessages; 27 28 35 class SelectSessionAction extends Action implements IMenuCreator { 36 37 private Menu menu; 38 39 SelectSessionAction() { 40 setText(UIMessages.CoverageViewSelectSessionAction_label); 41 setToolTipText(UIMessages.CoverageViewSelectSessionAction_looltip); 42 setImageDescriptor(EclEmmaUIPlugin 43 .getImageDescriptor(EclEmmaUIPlugin.ELCL_SESSION)); 44 setDisabledImageDescriptor(EclEmmaUIPlugin 45 .getImageDescriptor(EclEmmaUIPlugin.DLCL_SESSION)); 46 setMenuCreator(this); 47 setEnabled(false); 48 } 49 50 public Menu getMenu(Control parent) { 51 if (menu != null) { 52 menu.dispose(); 53 } 54 menu = new Menu(parent); 55 56 ILabelProvider labelprovider = new WorkbenchLabelProvider(); 57 final ISessionManager manager = CoverageTools.getSessionManager(); 58 ICoverageSession[] sessions = manager.getSessions(); 59 ICoverageSession active = manager.getActiveSession(); 60 for (int i = 0; i < sessions.length; i++) { 61 final ICoverageSession session = sessions[i]; 62 MenuItem item = new MenuItem(menu, SWT.RADIO); 63 Object [] labelparams = new Object [] { new Integer (i + 1), 64 labelprovider.getText(session) }; 65 item.setText(NLS.bind(UIMessages.CoverageViewSelectSessionActionEntry_label, 66 labelparams)); 67 item.setImage(labelprovider.getImage(session)); 68 item.setSelection(session == active); 69 item.addSelectionListener(new SelectionAdapter() { 70 public void widgetSelected(SelectionEvent e) { 71 manager.activateSession(session); 72 } 73 }); 74 } 75 return menu; 76 } 77 78 public Menu getMenu(Menu parent) { 79 return null; 80 } 81 82 public void dispose() { 83 } 84 85 } 86 | Popular Tags |