author | ryall |
Fri, 05 Jun 2009 14:27:40 -0500 | |
changeset 19 | 89d3c8eb71dd |
parent 17 | 09ccf47b690d |
permissions | -rw-r--r-- |
0
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
1 |
/******************************************************************************* |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
2 |
* Copyright (c) 2008 Nokia and others. |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
3 |
* All rights reserved. This program and the accompanying materials |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
4 |
* are made available under the terms of the Eclipse Public License v1.0 |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
5 |
* which accompanies this distribution, and is available at |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
6 |
* http://www.eclipse.org/legal/epl-v10.html |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
7 |
* |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
8 |
* Contributors: |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
9 |
* Nokia - Initial API and implementation |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
10 |
*******************************************************************************/ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
11 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
12 |
package org.eclipse.cdt.debug.internal.ui.views.executables; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
13 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
14 |
import java.net.URL; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
15 |
import java.util.ArrayList; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
16 |
import java.util.Arrays; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
17 |
import java.util.List; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
18 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
19 |
import org.eclipse.cdt.debug.core.executables.Executable; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
20 |
import org.eclipse.cdt.debug.core.executables.ExecutablesManager; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
21 |
import org.eclipse.cdt.debug.ui.CDebugUIPlugin; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
22 |
import org.eclipse.core.runtime.FileLocator; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
23 |
import org.eclipse.core.runtime.IProgressMonitor; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
24 |
import org.eclipse.core.runtime.IStatus; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
25 |
import org.eclipse.core.runtime.Path; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
26 |
import org.eclipse.core.runtime.Platform; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
27 |
import org.eclipse.core.runtime.Preferences; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
28 |
import org.eclipse.core.runtime.Status; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
29 |
import org.eclipse.core.runtime.jobs.Job; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
30 |
import org.eclipse.jface.action.Action; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
31 |
import org.eclipse.jface.action.IToolBarManager; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
32 |
import org.eclipse.jface.dialogs.MessageDialog; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
33 |
import org.eclipse.jface.resource.ImageDescriptor; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
34 |
import org.eclipse.jface.viewers.ISelection; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
35 |
import org.eclipse.jface.viewers.ISelectionChangedListener; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
36 |
import org.eclipse.jface.viewers.IStructuredContentProvider; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
37 |
import org.eclipse.jface.viewers.IStructuredSelection; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
38 |
import org.eclipse.jface.viewers.LabelProvider; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
39 |
import org.eclipse.jface.viewers.SelectionChangedEvent; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
40 |
import org.eclipse.jface.viewers.Viewer; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
41 |
import org.eclipse.jface.window.Window; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
42 |
import org.eclipse.swt.SWT; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
43 |
import org.eclipse.swt.custom.SashForm; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
44 |
import org.eclipse.swt.layout.FillLayout; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
45 |
import org.eclipse.swt.widgets.Composite; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
46 |
import org.eclipse.swt.widgets.FileDialog; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
47 |
import org.eclipse.swt.widgets.TreeColumn; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
48 |
import org.eclipse.ui.IActionBars; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
49 |
import org.eclipse.ui.IMemento; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
50 |
import org.eclipse.ui.IViewSite; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
51 |
import org.eclipse.ui.PartInitException; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
52 |
import org.eclipse.ui.PlatformUI; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
53 |
import org.eclipse.ui.XMLMemento; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
54 |
import org.eclipse.ui.dialogs.ListSelectionDialog; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
55 |
import org.eclipse.ui.part.ViewPart; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
56 |
import org.eclipse.ui.progress.UIJob; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
57 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
58 |
/** |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
59 |
* ExecutablesView displays a list of executable files either in the workspace |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
60 |
* or created by projects in the workspace. The list of executables comes from |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
61 |
* the ExecutablesManager. This view has two subviews: one that shows the list |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
62 |
* of executables and another that shows the list of source files in the |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
63 |
* selected executable. |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
64 |
* |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
65 |
*/ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
66 |
public class ExecutablesView extends ViewPart { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
67 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
68 |
/** |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
69 |
* Settings for the view including the sorted column for the sub views and |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
70 |
* the list of visible columns. |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
71 |
*/ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
72 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
73 |
/** |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
74 |
* Constants for the columns. |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
75 |
*/ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
76 |
public final static int NAME = 0x0; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
77 |
public final static int PROJECT = 0x1; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
78 |
public final static int LOCATION = 0x2; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
79 |
public final static int SIZE = 0x3; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
80 |
public final static int MODIFIED = 0x4; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
81 |
public final static int TYPE = 0x5; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
82 |
public final static int ORG_LOCATION = 0x6; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
83 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
84 |
/** |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
85 |
* Constants for the column sort order. |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
86 |
*/ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
87 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
88 |
public static int ASCENDING = 1; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
89 |
public static int DESCENDING = -1; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
90 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
91 |
/** |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
92 |
* Display constants and icons. |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
93 |
*/ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
94 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
95 |
public final static String ICONS_PATH = "icons/"; //$NON-NLS-1$ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
96 |
public static final String EXECUTABLES_VIEW_CONTEXT = "org.eclipse.cdt.debug.ui.executables_View_context"; //$NON-NLS-1$; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
97 |
private static final String PATH_LCL = ICONS_PATH + "elcl16/"; //$NON-NLS-1$ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
98 |
private static final String PATH_LCL_DISABLED = ICONS_PATH + "dlcl16/"; //$NON-NLS-1$ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
99 |
public static final ImageDescriptor DESC_REFRESH = create(PATH_LCL, "refresh.gif"); //$NON-NLS-1$ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
100 |
public static final ImageDescriptor DESC_REFRESH_DISABLED = create(PATH_LCL_DISABLED, "refresh.gif"); //$NON-NLS-1$ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
101 |
public static final ImageDescriptor DESC_IMPORT = create(PATH_LCL, "import.gif"); //$NON-NLS-1$ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
102 |
public static final ImageDescriptor DESC_IMPORT_DISABLED = create(PATH_LCL_DISABLED, "import.gif"); //$NON-NLS-1$ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
103 |
public static final ImageDescriptor DESC_COLUMNS = create(PATH_LCL, "columns.gif"); //$NON-NLS-1$ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
104 |
public static final ImageDescriptor DESC_COLUMNS_DISABLED = create(PATH_LCL_DISABLED, "columns.gif"); //$NON-NLS-1$ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
105 |
public static final ImageDescriptor DESC_REMOVE = create(PATH_LCL, "rem_co.gif"); //$NON-NLS-1$ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
106 |
public static final ImageDescriptor DESC_REMOVE_DISABLED = create(PATH_LCL_DISABLED, "rem_co.gif"); //$NON-NLS-1$ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
107 |
public static final int COLUMN_WIDTH_PADDING = 24; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
108 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
109 |
private static final String SEPARATOR = System.getProperty("line.separator"); //$NON-NLS-1$ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
110 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
111 |
private static ImageDescriptor create(String prefix, String name) { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
112 |
return ImageDescriptor.createFromURL(makeIconURL(prefix, name)); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
113 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
114 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
115 |
private static URL makeIconURL(String prefix, String name) { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
116 |
String path = "$nl$/" + prefix + name; //$NON-NLS-1$ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
117 |
return FileLocator.find(CDebugUIPlugin.getDefault().getBundle(), new Path(path), null); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
118 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
119 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
120 |
/** |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
121 |
* Complete list of column names for both sub views. These are not display |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
122 |
* names and should not be localized. Display names are set when the columns |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
123 |
* are created in the sub views. |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
124 |
*/ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
125 |
private String[] columnNames = { Messages.ExecutablesView_ExeName, Messages.ExecutablesView_ExeProject, Messages.ExecutablesView_ExeLocation, Messages.ExecutablesView_ExeSize, Messages.ExecutablesView_ExeData, |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
126 |
Messages.ExecutablesView_ExeType, Messages.ExecutablesView_SrcName, Messages.ExecutablesView_SrcLocation, Messages.ExecutablesView_SrcOrgLocation, Messages.ExecutablesView_SrcSize, Messages.ExecutablesView_SrcDate, |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
127 |
Messages.ExecutablesView_SrcType }; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
128 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
129 |
/** |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
130 |
* Not all the columns are visible by default. Here are the ones that are. |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
131 |
*/ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
132 |
private TreeColumn[] allColumns = new TreeColumn[columnNames.length]; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
133 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
134 |
/** |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
135 |
* Configures the list of columns show in the view. |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
136 |
*/ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
137 |
public class ConfigureColumnsAction extends Action { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
138 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
139 |
public static final String CONFIGURE_COLUMNS_DIALOG = "org.eclipse.cdt.debug.ui.configure_columns_dialog_context"; //$NON-NLS-1$; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
140 |
public static final String CONFIGURE_COLUMNS_ACTION = "org.eclipse.cdt.debug.ui.configure_columns_action_context"; //$NON-NLS-1$; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
141 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
142 |
class ColumnContentProvider implements IStructuredContentProvider { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
143 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
144 |
/* |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
145 |
* (non-Javadoc) |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
146 |
* |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
147 |
* @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object) |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
148 |
*/ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
149 |
public Object[] getElements(Object inputElement) { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
150 |
return columnNames; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
151 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
152 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
153 |
/* |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
154 |
* (non-Javadoc) |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
155 |
* |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
156 |
* @see org.eclipse.jface.viewers.IContentProvider#dispose() |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
157 |
*/ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
158 |
public void dispose() { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
159 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
160 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
161 |
/* |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
162 |
* (non-Javadoc) |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
163 |
* |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
164 |
* @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
165 |
* java.lang.Object, java.lang.Object) |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
166 |
*/ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
167 |
public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
168 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
169 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
170 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
171 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
172 |
class ColumnLabelProvider extends LabelProvider { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
173 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
174 |
public String getText(Object element) { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
175 |
return (String) element; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
176 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
177 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
178 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
179 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
180 |
public ConfigureColumnsAction() { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
181 |
setText(Messages.ExecutablesView_ConfigureColumns); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
182 |
setId(CDebugUIPlugin.getUniqueIdentifier() + ".ConfigureColumnsAction"); //$NON-NLS-1$ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
183 |
PlatformUI.getWorkbench().getHelpSystem().setHelp(this, CONFIGURE_COLUMNS_ACTION); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
184 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
185 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
186 |
/* |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
187 |
* (non-Javadoc) |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
188 |
* |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
189 |
* @see org.eclipse.jface.action.Action#run() |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
190 |
*/ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
191 |
public void run() { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
192 |
ListSelectionDialog dialog = new ListSelectionDialog(ExecutablesView.this.getExecutablesViewer().getTree().getShell(), this, |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
193 |
new ColumnContentProvider(), new ColumnLabelProvider(), Messages.ExecutablesView_SelectColumns); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
194 |
PlatformUI.getWorkbench().getHelpSystem().setHelp(this, CONFIGURE_COLUMNS_DIALOG); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
195 |
String[] visibleColumns = getVisibleColumns(); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
196 |
List<String> initialSelection = new ArrayList<String>(visibleColumns.length); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
197 |
for (int i = 0; i < visibleColumns.length; i++) { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
198 |
initialSelection.add(visibleColumns[i]); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
199 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
200 |
dialog.setTitle(Messages.ExecutablesView_ConfigureColumns); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
201 |
dialog.setInitialElementSelections(initialSelection); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
202 |
if (dialog.open() == Window.OK) { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
203 |
Object[] result = dialog.getResult(); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
204 |
String[] ids = new String[result.length]; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
205 |
System.arraycopy(result, 0, ids, 0, result.length); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
206 |
setVisibleColumns(ids); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
207 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
208 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
209 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
210 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
211 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
212 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
213 |
/** |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
214 |
* Sub viewers and trees |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
215 |
*/ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
216 |
private SourceFilesViewer sourceFilesViewer; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
217 |
private ExecutablesViewer executablesViewer; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
218 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
219 |
/** |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
220 |
* Associated Actions |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
221 |
*/ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
222 |
Action refreshAction; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
223 |
Action importAction; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
224 |
Action removeAction; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
225 |
private Action configureColumnsAction; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
226 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
227 |
private IMemento memento; |
19
89d3c8eb71dd
Only react if the select change is new. Don't refresh the exe list if ImportExecutables doesn't do anything.
ryall
parents:
17
diff
changeset
|
228 |
|
89d3c8eb71dd
Only react if the select change is new. Don't refresh the exe list if ImportExecutables doesn't do anything.
ryall
parents:
17
diff
changeset
|
229 |
private IStructuredSelection oldSelection; |
0
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
230 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
231 |
/** |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
232 |
* Create contents of the Executables View |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
233 |
* |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
234 |
* @param parent |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
235 |
*/ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
236 |
@Override |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
237 |
public void createPartControl(Composite parent) { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
238 |
Composite container = new Composite(parent, SWT.NONE); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
239 |
container.setLayout(new FillLayout()); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
240 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
241 |
final SashForm sashForm = new SashForm(container, SWT.NONE); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
242 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
243 |
// Create the two sub viewers. |
17 | 244 |
executablesViewer = new ExecutablesViewer(this, sashForm, SWT.FULL_SELECTION | SWT.BORDER | SWT.MULTI); |
0
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
245 |
ExecutablesManager.getExecutablesManager().addExecutablesChangeListener(executablesViewer); |
17 | 246 |
sourceFilesViewer = new SourceFilesViewer(this, sashForm, SWT.BORDER | SWT.MULTI); |
0
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
247 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
248 |
sashForm.setWeights(new int[] { 1, 1 }); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
249 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
250 |
// Keep a combined list of all the columns so |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
251 |
// we can easily operate on them all. |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
252 |
allColumns[0] = executablesViewer.nameColumn; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
253 |
allColumns[1] = executablesViewer.projectColumn; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
254 |
allColumns[2] = executablesViewer.locationColumn; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
255 |
allColumns[3] = executablesViewer.sizeColumn; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
256 |
allColumns[4] = executablesViewer.modifiedColumn; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
257 |
allColumns[5] = executablesViewer.typeColumn; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
258 |
allColumns[6] = sourceFilesViewer.nameColumn; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
259 |
allColumns[7] = sourceFilesViewer.locationColumn; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
260 |
allColumns[8] = sourceFilesViewer.originalLocationColumn; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
261 |
allColumns[9] = sourceFilesViewer.sizeColumn; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
262 |
allColumns[10] = sourceFilesViewer.modifiedColumn; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
263 |
allColumns[11] = sourceFilesViewer.typeColumn; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
264 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
265 |
readSettings(); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
266 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
267 |
createActions(); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
268 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
269 |
// When the selection changes in the executables list |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
270 |
// update the source files viewer |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
271 |
executablesViewer.addSelectionChangedListener(new ISelectionChangedListener() { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
272 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
273 |
public void selectionChanged(SelectionChangedEvent event) { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
274 |
ISelection newSelection = event.getSelection(); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
275 |
if (newSelection instanceof IStructuredSelection) { |
14 | 276 |
|
19
89d3c8eb71dd
Only react if the select change is new. Don't refresh the exe list if ImportExecutables doesn't do anything.
ryall
parents:
17
diff
changeset
|
277 |
if (oldSelection == null || !oldSelection.equals(newSelection)) |
89d3c8eb71dd
Only react if the select change is new. Don't refresh the exe list if ImportExecutables doesn't do anything.
ryall
parents:
17
diff
changeset
|
278 |
{ |
89d3c8eb71dd
Only react if the select change is new. Don't refresh the exe list if ImportExecutables doesn't do anything.
ryall
parents:
17
diff
changeset
|
279 |
// update the remove action |
89d3c8eb71dd
Only react if the select change is new. Don't refresh the exe list if ImportExecutables doesn't do anything.
ryall
parents:
17
diff
changeset
|
280 |
removeAction.setEnabled(!newSelection.isEmpty()); |
89d3c8eb71dd
Only react if the select change is new. Don't refresh the exe list if ImportExecutables doesn't do anything.
ryall
parents:
17
diff
changeset
|
281 |
|
89d3c8eb71dd
Only react if the select change is new. Don't refresh the exe list if ImportExecutables doesn't do anything.
ryall
parents:
17
diff
changeset
|
282 |
final Object firstElement = ((IStructuredSelection) newSelection).getFirstElement(); |
89d3c8eb71dd
Only react if the select change is new. Don't refresh the exe list if ImportExecutables doesn't do anything.
ryall
parents:
17
diff
changeset
|
283 |
|
89d3c8eb71dd
Only react if the select change is new. Don't refresh the exe list if ImportExecutables doesn't do anything.
ryall
parents:
17
diff
changeset
|
284 |
Job setectExeJob = new Job(Messages.ExecutablesView_Select_Executable) { |
0
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
285 |
|
19
89d3c8eb71dd
Only react if the select change is new. Don't refresh the exe list if ImportExecutables doesn't do anything.
ryall
parents:
17
diff
changeset
|
286 |
@Override |
89d3c8eb71dd
Only react if the select change is new. Don't refresh the exe list if ImportExecutables doesn't do anything.
ryall
parents:
17
diff
changeset
|
287 |
protected IStatus run(IProgressMonitor monitor) { |
89d3c8eb71dd
Only react if the select change is new. Don't refresh the exe list if ImportExecutables doesn't do anything.
ryall
parents:
17
diff
changeset
|
288 |
if (firstElement instanceof Executable) { |
89d3c8eb71dd
Only react if the select change is new. Don't refresh the exe list if ImportExecutables doesn't do anything.
ryall
parents:
17
diff
changeset
|
289 |
Executable executable = (Executable)firstElement; |
89d3c8eb71dd
Only react if the select change is new. Don't refresh the exe list if ImportExecutables doesn't do anything.
ryall
parents:
17
diff
changeset
|
290 |
this.setName(Messages.ExecutablesView_Finding_Sources_Job_Name + executable.getName()); |
89d3c8eb71dd
Only react if the select change is new. Don't refresh the exe list if ImportExecutables doesn't do anything.
ryall
parents:
17
diff
changeset
|
291 |
executable.getSourceFiles(monitor); |
89d3c8eb71dd
Only react if the select change is new. Don't refresh the exe list if ImportExecutables doesn't do anything.
ryall
parents:
17
diff
changeset
|
292 |
} |
89d3c8eb71dd
Only react if the select change is new. Don't refresh the exe list if ImportExecutables doesn't do anything.
ryall
parents:
17
diff
changeset
|
293 |
// selection could be empty, so do this no matter what to update the source |
89d3c8eb71dd
Only react if the select change is new. Don't refresh the exe list if ImportExecutables doesn't do anything.
ryall
parents:
17
diff
changeset
|
294 |
// files viewer |
89d3c8eb71dd
Only react if the select change is new. Don't refresh the exe list if ImportExecutables doesn't do anything.
ryall
parents:
17
diff
changeset
|
295 |
UIJob selectExeUIJob = new UIJob(Messages.ExecutablesView_Select_Executable){ |
89d3c8eb71dd
Only react if the select change is new. Don't refresh the exe list if ImportExecutables doesn't do anything.
ryall
parents:
17
diff
changeset
|
296 |
@Override |
89d3c8eb71dd
Only react if the select change is new. Don't refresh the exe list if ImportExecutables doesn't do anything.
ryall
parents:
17
diff
changeset
|
297 |
public IStatus runInUIThread(IProgressMonitor monitor) { |
89d3c8eb71dd
Only react if the select change is new. Don't refresh the exe list if ImportExecutables doesn't do anything.
ryall
parents:
17
diff
changeset
|
298 |
sourceFilesViewer.setInput(firstElement); |
89d3c8eb71dd
Only react if the select change is new. Don't refresh the exe list if ImportExecutables doesn't do anything.
ryall
parents:
17
diff
changeset
|
299 |
sourceFilesViewer.packColumns(); |
89d3c8eb71dd
Only react if the select change is new. Don't refresh the exe list if ImportExecutables doesn't do anything.
ryall
parents:
17
diff
changeset
|
300 |
return Status.OK_STATUS; |
89d3c8eb71dd
Only react if the select change is new. Don't refresh the exe list if ImportExecutables doesn't do anything.
ryall
parents:
17
diff
changeset
|
301 |
}}; |
89d3c8eb71dd
Only react if the select change is new. Don't refresh the exe list if ImportExecutables doesn't do anything.
ryall
parents:
17
diff
changeset
|
302 |
selectExeUIJob.schedule(); |
89d3c8eb71dd
Only react if the select change is new. Don't refresh the exe list if ImportExecutables doesn't do anything.
ryall
parents:
17
diff
changeset
|
303 |
return Status.OK_STATUS; |
89d3c8eb71dd
Only react if the select change is new. Don't refresh the exe list if ImportExecutables doesn't do anything.
ryall
parents:
17
diff
changeset
|
304 |
}}; |
89d3c8eb71dd
Only react if the select change is new. Don't refresh the exe list if ImportExecutables doesn't do anything.
ryall
parents:
17
diff
changeset
|
305 |
setectExeJob.schedule(); |
89d3c8eb71dd
Only react if the select change is new. Don't refresh the exe list if ImportExecutables doesn't do anything.
ryall
parents:
17
diff
changeset
|
306 |
oldSelection = (IStructuredSelection) newSelection; |
89d3c8eb71dd
Only react if the select change is new. Don't refresh the exe list if ImportExecutables doesn't do anything.
ryall
parents:
17
diff
changeset
|
307 |
} |
89d3c8eb71dd
Only react if the select change is new. Don't refresh the exe list if ImportExecutables doesn't do anything.
ryall
parents:
17
diff
changeset
|
308 |
|
0
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
309 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
310 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
311 |
}); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
312 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
313 |
executablesViewer.packColumns(); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
314 |
sourceFilesViewer.packColumns(); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
315 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
316 |
PlatformUI.getWorkbench().getHelpSystem().setHelp(container, EXECUTABLES_VIEW_CONTEXT); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
317 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
318 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
319 |
private void setVisibleColumns(String[] ids) { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
320 |
List<String> visibleNames = Arrays.asList(ids); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
321 |
for (int i = 0; i < columnNames.length; i++) { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
322 |
makeColumnVisible(visibleNames.contains(columnNames[i]), allColumns[i]); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
323 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
324 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
325 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
326 |
private void makeColumnVisible(boolean visible, TreeColumn column) { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
327 |
boolean isVisible = column.getWidth() > 0; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
328 |
if (isVisible != visible) { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
329 |
if (visible) { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
330 |
column.setResizable(true); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
331 |
column.pack(); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
332 |
column.setWidth(column.getWidth() + COLUMN_WIDTH_PADDING); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
333 |
} else { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
334 |
column.setWidth(0); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
335 |
column.setResizable(false); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
336 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
337 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
338 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
339 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
340 |
private String[] getVisibleColumns() { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
341 |
ArrayList<String> visibleNames = new ArrayList<String>(); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
342 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
343 |
for (int i = 0; i < columnNames.length; i++) { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
344 |
if (allColumns[i].getWidth() > 0) |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
345 |
visibleNames.add(columnNames[i]); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
346 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
347 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
348 |
return visibleNames.toArray(new String[visibleNames.size()]); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
349 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
350 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
351 |
/** |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
352 |
* Create the actions to refresh, import, and configure the columns |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
353 |
*/ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
354 |
private void createActions() { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
355 |
IActionBars bars = getViewSite().getActionBars(); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
356 |
IToolBarManager toolBarManager = bars.getToolBarManager(); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
357 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
358 |
refreshAction = createRefreshAction(); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
359 |
toolBarManager.add(refreshAction); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
360 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
361 |
importAction = createImportAction(); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
362 |
toolBarManager.add(importAction); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
363 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
364 |
removeAction = createRemoveAction(); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
365 |
toolBarManager.add(removeAction); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
366 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
367 |
configureColumnsAction = createConfigureColumnsAction(); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
368 |
toolBarManager.add(configureColumnsAction); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
369 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
370 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
371 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
372 |
private Action createRemoveAction() { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
373 |
Action action = new Action("Remove") { |
14 | 374 |
|
0
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
375 |
public void run() { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
376 |
ISelection selection = getExecutablesViewer().getSelection(); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
377 |
if (selection instanceof IStructuredSelection) |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
378 |
{ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
379 |
Object[] selectedObjects = ((IStructuredSelection)selection).toArray(); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
380 |
ArrayList<Executable> selectedExes = new ArrayList<Executable>(); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
381 |
for (Object object : selectedObjects) { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
382 |
if (object instanceof Executable) |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
383 |
selectedExes.add((Executable) object); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
384 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
385 |
final Executable[] selectedExesArray = selectedExes.toArray(new Executable[selectedExes.size()]); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
386 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
387 |
boolean confirm = MessageDialog.openConfirm(getSite().getShell(), "Confirm Remove Executables", "Are you sure you want to remove the selected executables?"); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
388 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
389 |
if (confirm) |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
390 |
{ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
391 |
Job removeJob = new UIJob("Remove Executables") { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
392 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
393 |
public IStatus runInUIThread(IProgressMonitor monitor) { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
394 |
IStatus result = ExecutablesManager.getExecutablesManager().removeExecutables(selectedExesArray, monitor); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
395 |
if (result.getSeverity() != IStatus.OK) |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
396 |
{ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
397 |
StringBuffer message = new StringBuffer(result.getMessage()); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
398 |
if (result.isMultiStatus()) { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
399 |
IStatus[] children = result.getChildren(); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
400 |
for (int i = 0; i < children.length && i < 6; i++) { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
401 |
message.append(SEPARATOR); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
402 |
message.append(children[i].getMessage()); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
403 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
404 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
405 |
MessageDialog.openWarning(getSite().getShell(), "Remove Executables", message.toString()); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
406 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
407 |
return result; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
408 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
409 |
}; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
410 |
removeJob.schedule(); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
411 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
412 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
413 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
414 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
415 |
}; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
416 |
action.setToolTipText("Remove the selected executables"); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
417 |
action.setImageDescriptor(ExecutablesView.DESC_REMOVE); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
418 |
action.setDisabledImageDescriptor(ExecutablesView.DESC_REMOVE_DISABLED); |
14 | 419 |
action.setEnabled(false); |
0
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
420 |
return action; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
421 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
422 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
423 |
private Action createConfigureColumnsAction() { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
424 |
ConfigureColumnsAction action = new ConfigureColumnsAction(); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
425 |
action.setToolTipText(Messages.ExecutablesView_Columns); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
426 |
action.setImageDescriptor(ExecutablesView.DESC_COLUMNS); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
427 |
action.setDisabledImageDescriptor(ExecutablesView.DESC_COLUMNS_DISABLED); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
428 |
action.setEnabled(true); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
429 |
return action; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
430 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
431 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
432 |
protected void importExecutables(final String[] fileNames) { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
433 |
if (fileNames.length > 0) { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
434 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
435 |
Job importJob = new Job(Messages.ExecutablesView_ImportExecutables) { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
436 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
437 |
@Override |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
438 |
public IStatus run(IProgressMonitor monitor) { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
439 |
ExecutablesManager.getExecutablesManager().importExecutables(fileNames, monitor); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
440 |
return Status.OK_STATUS; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
441 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
442 |
}; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
443 |
importJob.schedule(); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
444 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
445 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
446 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
447 |
private Action createImportAction() { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
448 |
Action action = new Action(Messages.ExecutablesView_Import) { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
449 |
public void run() { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
450 |
FileDialog dialog = new FileDialog(getViewSite().getShell(), SWT.NONE); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
451 |
dialog.setText(Messages.ExecutablesView_SelectExeFile); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
452 |
String res = dialog.open(); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
453 |
if (res != null) { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
454 |
if (Platform.getOS().equals(Platform.OS_MACOSX) && res.endsWith(".app")) { //$NON-NLS-1$ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
455 |
// On Mac OS X the file dialog will let you select the |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
456 |
// package but not the executable inside. |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
457 |
Path macPath = new Path(res); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
458 |
res = res + "/Contents/MacOS/" + macPath.lastSegment(); //$NON-NLS-1$ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
459 |
res = res.substring(0, res.length() - 4); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
460 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
461 |
importExecutables(new String[] { res }); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
462 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
463 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
464 |
}; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
465 |
action.setToolTipText(Messages.ExecutablesView_ImportExe); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
466 |
action.setImageDescriptor(ExecutablesView.DESC_IMPORT); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
467 |
action.setDisabledImageDescriptor(ExecutablesView.DESC_IMPORT_DISABLED); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
468 |
action.setEnabled(true); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
469 |
return action; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
470 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
471 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
472 |
private Action createRefreshAction() { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
473 |
Action action = new Action(Messages.ExecutablesView_Refresh) { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
474 |
public void run() { |
14 | 475 |
ExecutablesManager.getExecutablesManager().refresh(null); |
0
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
476 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
477 |
}; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
478 |
action.setToolTipText(Messages.ExecutablesView_RefreshList); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
479 |
action.setImageDescriptor(ExecutablesView.DESC_REFRESH); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
480 |
action.setDisabledImageDescriptor(ExecutablesView.DESC_REFRESH_DISABLED); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
481 |
action.setEnabled(true); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
482 |
return action; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
483 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
484 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
485 |
@Override |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
486 |
public void setFocus() { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
487 |
// Set the focus |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
488 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
489 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
490 |
@Override |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
491 |
public void init(IViewSite site, IMemento memento) throws PartInitException { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
492 |
if (memento == null) |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
493 |
this.memento = XMLMemento.createWriteRoot("EXECUTABLESVIEW"); //$NON-NLS-1$ |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
494 |
else |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
495 |
this.memento = memento; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
496 |
super.init(site, memento); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
497 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
498 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
499 |
private Preferences getViewPreferences() { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
500 |
return CDebugUIPlugin.getDefault().getPluginPreferences(); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
501 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
502 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
503 |
private void readSettings() { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
504 |
Preferences prefs = getViewPreferences(); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
505 |
getExecutablesViewer().restoreColumnSettings(prefs); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
506 |
getSourceFilesViewer().restoreColumnSettings(prefs); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
507 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
508 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
509 |
private void writeSettings() { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
510 |
Preferences prefs = getViewPreferences(); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
511 |
getExecutablesViewer().saveColumnSettings(prefs); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
512 |
getSourceFilesViewer().saveColumnSettings(prefs); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
513 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
514 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
515 |
@Override |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
516 |
public void saveState(IMemento memento) { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
517 |
if (this.memento == null || memento == null) |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
518 |
return; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
519 |
memento.putMemento(this.memento); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
520 |
writeSettings(); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
521 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
522 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
523 |
public SourceFilesViewer getSourceFilesViewer() { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
524 |
return sourceFilesViewer; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
525 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
526 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
527 |
public ExecutablesViewer getExecutablesViewer() { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
528 |
return executablesViewer; |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
529 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
530 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
531 |
@Override |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
532 |
public void dispose() { |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
533 |
ExecutablesManager.getExecutablesManager().removeExecutablesChangeListener(executablesViewer); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
534 |
super.dispose(); |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
535 |
} |
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
536 |
|
0e6d23e2b466
DP tools release version Revision: 200912
Deepak Modgil <Deepak.Modgil@Nokia.com>
parents:
diff
changeset
|
537 |
} |