1 8 package com.mountainminds.eclemma.internal.ui.actions; 9 10 import java.text.MessageFormat ; 11 import java.util.Date ; 12 13 import org.eclipse.jface.action.Action; 14 import org.eclipse.jface.dialogs.IDialogConstants; 15 import org.eclipse.ui.IWorkbenchWindow; 16 17 import com.mountainminds.eclemma.core.CoverageTools; 18 import com.mountainminds.eclemma.core.ICoverageSession; 19 import com.mountainminds.eclemma.core.ISessionManager; 20 import com.mountainminds.eclemma.internal.ui.EclEmmaUIPlugin; 21 import com.mountainminds.eclemma.internal.ui.UIMessages; 22 import com.mountainminds.eclemma.internal.ui.dialogs.MergeSessionsDialog; 23 24 30 public class MergeSessionsAction extends Action { 31 32 private final IWorkbenchWindow window; 33 34 public MergeSessionsAction(IWorkbenchWindow window) { 35 this.window = window; 36 setText(UIMessages.MergeSessionsAction_label); 37 setToolTipText(UIMessages.MergeSessionsAction_tooltip); 38 setImageDescriptor(EclEmmaUIPlugin.getImageDescriptor(EclEmmaUIPlugin.ELCL_MERGESESSIONS)); 39 setDisabledImageDescriptor(EclEmmaUIPlugin.getImageDescriptor(EclEmmaUIPlugin.DLCL_MERGESESSIONS)); 40 } 41 42 public void run() { 43 ISessionManager sm = CoverageTools.getSessionManager(); 44 ICoverageSession[] sessions = sm.getSessions(); 45 String descr = UIMessages.MergeSessionsDialogDescriptionDefault_value; 46 descr = MessageFormat.format(descr, new Object [] { new Date () }); 47 MergeSessionsDialog d = new MergeSessionsDialog(window.getShell(), sessions, descr); 48 if (d.open() == IDialogConstants.OK_ID) { 49 Object [] result = d.getResult(); 50 ICoverageSession merged = (ICoverageSession) result[0]; 51 for (int i = 1; i < result.length; i++) { 52 merged = merged.merge((ICoverageSession) result[i], d.getDescription()); 53 } 54 sm.addSession(merged, true, null); 55 for (int i = 0; i < result.length; i++) { 56 sm.removeSession((ICoverageSession) result[i]); 57 } 58 } 59 } 60 61 } 62 | Popular Tags |