Package: VdmDebugLogCopyAction

VdmDebugLogCopyAction

nameinstructionbranchcomplexitylinemethod
VdmDebugLogCopyAction(TableViewer)
M: 7 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 3 C: 0
0%
M: 1 C: 0
0%
run()
M: 46 C: 0
0%
M: 8 C: 0
0%
M: 5 C: 0
0%
M: 11 C: 0
0%
M: 1 C: 0
0%
setClipboardText(StringBuffer)
M: 27 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 5 C: 0
0%
M: 1 C: 0
0%

Coverage

1: /*
2: * #%~
3: * org.overture.ide.debug
4: * %%
5: * Copyright (C) 2008 - 2014 Overture
6: * %%
7: * This program is free software: you can redistribute it and/or modify
8: * it under the terms of the GNU General Public License as
9: * published by the Free Software Foundation, either version 3 of the
10: * License, or (at your option) any later version.
11: *
12: * This program is distributed in the hope that it will be useful,
13: * but WITHOUT ANY WARRANTY; without even the implied warranty of
14: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15: * GNU General Public License for more details.
16: *
17: * You should have received a copy of the GNU General Public
18: * License along with this program. If not, see
19: * <http://www.gnu.org/licenses/gpl-3.0.html>.
20: * #~%
21: */
22: package org.overture.ide.debug.ui.log;
23:
24: import org.eclipse.jface.action.Action;
25: import org.eclipse.jface.viewers.ISelection;
26: import org.eclipse.jface.viewers.IStructuredSelection;
27: import org.eclipse.jface.viewers.TableViewer;
28: import org.eclipse.swt.dnd.Clipboard;
29: import org.eclipse.swt.dnd.TextTransfer;
30: import org.eclipse.swt.dnd.Transfer;
31:
32: public class VdmDebugLogCopyAction extends Action
33: {
34:
35:         private final TableViewer viewer;
36:
37:         VdmDebugLogCopyAction(TableViewer viewer)
38:         {
39:                 super(Messages.VdmDebugLogView_copy);
40:                 this.viewer = viewer;
41:         }
42:
43:         public void run()
44:         {
45:                 final ISelection selection = viewer.getSelection();
46:•                if (!selection.isEmpty() && selection instanceof IStructuredSelection)
47:                 {
48:                         final Object[] selected = ((IStructuredSelection) selection).toArray();
49:                         final StringBuffer sb = new StringBuffer();
50:•                        for (int i = 0; i < selected.length; ++i)
51:                         {
52:                                 final VdmDebugLogItem item = (VdmDebugLogItem) selected[i];
53:•                                if (i != 0)
54:                                 {
55:                                         sb.append('\n');
56:                                 }
57:                                 sb.append(item.toString());
58:                         }
59:                         setClipboardText(sb);
60:                 }
61:         }
62:
63:         private void setClipboardText(final StringBuffer sb)
64:         {
65:                 final Clipboard clipboard = new Clipboard(viewer.getTable().getDisplay());
66:                 try
67:                 {
68:                         clipboard.setContents(new Object[] { sb.toString() }, new Transfer[] { TextTransfer.getInstance() });
69:                 } finally
70:                 {
71:                         clipboard.dispose();
72:                 }
73:         }
74: }