1 /*******************************************************************************
2 * Copyright (c) 2011 Ericsson
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
10 * Francois Chouinard - Initial API and implementation
11 *******************************************************************************/
13 package org
.eclipse
.linuxtools
.tmf
.ui
.project
.model
;
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
.tmf
.ui
.TmfUiPlugin
;
22 import org
.eclipse
.swt
.graphics
.Image
;
23 import org
.eclipse
.ui
.IMemento
;
24 import org
.eclipse
.ui
.ISharedImages
;
25 import org
.eclipse
.ui
.PlatformUI
;
26 import org
.eclipse
.ui
.navigator
.ICommonContentExtensionSite
;
27 import org
.eclipse
.ui
.navigator
.ICommonLabelProvider
;
28 import org
.osgi
.framework
.Bundle
;
31 * <b><u>TmfNavigatorLabelProvider</u></b>
34 public class TmfNavigatorLabelProvider
implements ICommonLabelProvider
{
36 // ------------------------------------------------------------------------
38 // ------------------------------------------------------------------------
40 private final Image fFolderIcon
= PlatformUI
.getWorkbench().getSharedImages()
41 .getImage(ISharedImages
.IMG_OBJ_FOLDER
);
42 private final String fTraceIconFile
= "icons/elcl16/trace.gif"; //$NON-NLS-1$
43 private final String fExperimentIconFile
= "icons/elcl16/experiment.gif"; //$NON-NLS-1$
45 // ------------------------------------------------------------------------
47 // ------------------------------------------------------------------------
49 private final Image fTraceFolderIcon
= fFolderIcon
;
50 private final Image fExperimentFolderIcon
= fFolderIcon
;
52 private final Image fDefaultTraceIcon
;
53 private final Image fExperimentIcon
;
55 // ------------------------------------------------------------------------
57 // ------------------------------------------------------------------------
59 public TmfNavigatorLabelProvider() {
60 Bundle bundle
= TmfUiPlugin
.getDefault().getBundle();
61 fDefaultTraceIcon
= loadIcon(bundle
, fTraceIconFile
);
62 fExperimentIcon
= loadIcon(bundle
, fExperimentIconFile
);
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
);
70 URL imageURL
= bundle
.getResource(url
);
71 ImageDescriptor descriptor
= ImageDescriptor
.createFromURL(imageURL
);
72 icon
= descriptor
.createImage();
73 plugin
.getImageRegistry().put(key
, icon
);
78 // ------------------------------------------------------------------------
79 // ICommonLabelProvider
80 // ------------------------------------------------------------------------
83 public Image
getImage(Object element
) {
85 if (element
instanceof TmfTraceElement
) {
86 TmfTraceElement trace
= (TmfTraceElement
) element
;
89 String name
= trace
.getResource().getPersistentProperty(TmfTraceElement
.TRACEBUNDLE
);
90 icon
= trace
.getResource().getPersistentProperty(TmfTraceElement
.TRACEICON
);
91 if (name
!= null && icon
!= null) {
92 Bundle bundle
= Platform
.getBundle(name
);
93 return loadIcon(bundle
, icon
);
95 } catch (CoreException e
) {
97 return fDefaultTraceIcon
;
100 if (element
instanceof TmfExperimentElement
)
101 return fExperimentIcon
;
103 if (element
instanceof TmfExperimentFolder
)
104 return fExperimentFolderIcon
;
106 if (element
instanceof TmfTraceFolder
)
107 return fTraceFolderIcon
;
113 public String
getText(Object element
) {
115 if (element
instanceof TmfTraceFolder
) {
116 TmfTraceFolder folder
= (TmfTraceFolder
) element
;
117 return folder
.getName() + " [" + folder
.getTraces().size() + "]"; //$NON-NLS-1$//$NON-NLS-2$
120 if (element
instanceof TmfExperimentElement
) {
121 TmfExperimentElement folder
= (TmfExperimentElement
) element
;
122 return folder
.getName() + " [" + folder
.getTraces().size() + "]"; //$NON-NLS-1$//$NON-NLS-2$
126 if (element
instanceof ITmfProjectModelElement
) {
127 return ((ITmfProjectModelElement
) element
).getName();
134 public void addListener(ILabelProviderListener listener
) {
138 public void dispose() {
142 public boolean isLabelProperty(Object element
, String property
) {
147 public void removeListener(ILabelProviderListener listener
) {
151 public void restoreState(IMemento aMemento
) {
155 public void saveState(IMemento aMemento
) {
159 public String
getDescription(Object anElement
) {
160 return getText(anElement
);
164 public void init(ICommonContentExtensionSite aConfig
) {