Use supplementary directory for state history tree
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.ui / src / org / eclipse / linuxtools / tmf / ui / project / model / TmfNavigatorLabelProvider.java
1 /*******************************************************************************
2 * Copyright (c) 2011 Ericsson
3 *
4 * All rights reserved. This program and the accompanying materials are
5 * made available under the terms of the Eclipse Public License v1.0 which
6 * accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
8 *
9 * Contributors:
10 * Francois Chouinard - Initial API and implementation
11 *******************************************************************************/
12
13 package org.eclipse.linuxtools.tmf.ui.project.model;
14
15 import java.net.URL;
16
17 import org.eclipse.core.runtime.CoreException;
18 import org.eclipse.core.runtime.Platform;
19 import org.eclipse.jface.resource.ImageDescriptor;
20 import org.eclipse.jface.viewers.ILabelProviderListener;
21 import org.eclipse.linuxtools.internal.tmf.ui.TmfUiPlugin;
22 import org.eclipse.linuxtools.tmf.core.TmfCommonConstants;
23 import org.eclipse.swt.graphics.Image;
24 import org.eclipse.ui.IMemento;
25 import org.eclipse.ui.ISharedImages;
26 import org.eclipse.ui.PlatformUI;
27 import org.eclipse.ui.navigator.ICommonContentExtensionSite;
28 import org.eclipse.ui.navigator.ICommonLabelProvider;
29 import org.osgi.framework.Bundle;
30
31 /**
32 * <b><u>TmfNavigatorLabelProvider</u></b>
33 * <p>
34 */
35 public class TmfNavigatorLabelProvider implements ICommonLabelProvider {
36
37 // ------------------------------------------------------------------------
38 // Constants
39 // ------------------------------------------------------------------------
40
41 private static final Image fFolderIcon = PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER);
42 private static final String fTraceIconFile = "icons/elcl16/trace.gif"; //$NON-NLS-1$
43 private static final String fExperimentIconFile = "icons/elcl16/experiment.gif"; //$NON-NLS-1$
44
45 // ------------------------------------------------------------------------
46 // Attributes
47 // ------------------------------------------------------------------------
48
49 private final Image fTraceFolderIcon = fFolderIcon;
50 private final Image fExperimentFolderIcon = fFolderIcon;
51
52 private final Image fDefaultTraceIcon;
53 private final Image fExperimentIcon;
54
55 // ------------------------------------------------------------------------
56 // Constructors
57 // ------------------------------------------------------------------------
58
59 public TmfNavigatorLabelProvider() {
60 Bundle bundle = TmfUiPlugin.getDefault().getBundle();
61 fDefaultTraceIcon = loadIcon(bundle, fTraceIconFile);
62 fExperimentIcon = loadIcon(bundle, fExperimentIconFile);
63 }
64
65 private Image loadIcon(Bundle bundle, String url) {
66 TmfUiPlugin plugin = TmfUiPlugin.getDefault();
67 String key = bundle.getSymbolicName() + "/" + url; //$NON-NLS-1$
68 Image icon = plugin.getImageRegistry().get(key);
69 if (icon == null) {
70 URL imageURL = bundle.getResource(url);
71 ImageDescriptor descriptor = ImageDescriptor.createFromURL(imageURL);
72 icon = descriptor.createImage();
73 plugin.getImageRegistry().put(key, icon);
74 }
75 return icon;
76 }
77
78 // ------------------------------------------------------------------------
79 // ICommonLabelProvider
80 // ------------------------------------------------------------------------
81
82 @Override
83 public Image getImage(Object element) {
84
85 if (element instanceof TmfTraceElement) {
86 TmfTraceElement trace = (TmfTraceElement) element;
87 String icon = null;
88 try {
89 String name = trace.getResource().getPersistentProperty(TmfCommonConstants.TRACEBUNDLE);
90 icon = trace.getResource().getPersistentProperty(TmfCommonConstants.TRACEICON);
91 if (name != null && icon != null) {
92 Bundle bundle = Platform.getBundle(name);
93 return loadIcon(bundle, icon);
94 }
95 } catch (CoreException e) {
96 }
97 return fDefaultTraceIcon;
98 }
99
100 if (element instanceof TmfExperimentElement)
101 return fExperimentIcon;
102
103 if (element instanceof TmfExperimentFolder)
104 return fExperimentFolderIcon;
105
106 if (element instanceof TmfTraceFolder)
107 return fTraceFolderIcon;
108
109 return null;
110 }
111
112 @Override
113 public String getText(Object element) {
114
115 if (element instanceof TmfTraceFolder) {
116 TmfTraceFolder folder = (TmfTraceFolder) element;
117 return folder.getName() + " [" + folder.getTraces().size() + "]"; //$NON-NLS-1$//$NON-NLS-2$
118 }
119
120 if (element instanceof TmfExperimentElement) {
121 TmfExperimentElement folder = (TmfExperimentElement) element;
122 return folder.getName() + " [" + folder.getTraces().size() + "]"; //$NON-NLS-1$//$NON-NLS-2$
123 }
124
125 if (element instanceof TmfExperimentFolder) {
126 TmfExperimentFolder folder = (TmfExperimentFolder) element;
127 return folder.getName() + " [" + folder.getChildren().size() + "]"; //$NON-NLS-1$//$NON-NLS-2$
128 }
129
130 // Catch all
131 if (element instanceof ITmfProjectModelElement) {
132 return ((ITmfProjectModelElement) element).getName();
133 }
134
135 return null;
136 }
137
138 @Override
139 public void addListener(ILabelProviderListener listener) {
140 }
141
142 @Override
143 public void dispose() {
144 }
145
146 @Override
147 public boolean isLabelProperty(Object element, String property) {
148 return false;
149 }
150
151 @Override
152 public void removeListener(ILabelProviderListener listener) {
153 }
154
155 @Override
156 public void restoreState(IMemento aMemento) {
157 }
158
159 @Override
160 public void saveState(IMemento aMemento) {
161 }
162
163 @Override
164 public String getDescription(Object anElement) {
165 return getText(anElement);
166 }
167
168 @Override
169 public void init(ICommonContentExtensionSite aConfig) {
170 }
171
172 }
This page took 0.036309 seconds and 6 git commands to generate.