1 /*******************************************************************************
2 * Copyright (c) 2009 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
.views
.project
.model
;
17 import org
.eclipse
.core
.resources
.IResource
;
18 import org
.eclipse
.core
.runtime
.CoreException
;
19 import org
.eclipse
.core
.runtime
.preferences
.IEclipsePreferences
;
20 import org
.eclipse
.core
.runtime
.preferences
.InstanceScope
;
21 import org
.eclipse
.jface
.resource
.ImageDescriptor
;
22 import org
.eclipse
.jface
.viewers
.ILabelProvider
;
23 import org
.eclipse
.jface
.viewers
.ILabelProviderListener
;
24 import org
.eclipse
.linuxtools
.tmf
.ui
.TmfUiPlugin
;
25 import org
.eclipse
.linuxtools
.tmf
.ui
.TmfUiPreferenceInitializer
;
26 import org
.eclipse
.linuxtools
.tmf
.ui
.parsers
.ParserProviderManager
;
27 import org
.eclipse
.swt
.graphics
.Image
;
28 import org
.eclipse
.ui
.ISharedImages
;
29 import org
.eclipse
.ui
.PlatformUI
;
32 * <b><u>TmfProjectLabelProvider</u></b>
34 * TODO: Implement me. Please.
35 * TODO: Find proper icons for traces and experiments
37 public class TmfProjectLabelProvider
implements ILabelProvider
{
39 private final String fTraceIconFile
= "icons/events_view.gif";
40 // private final String fExperimentIconFile = "icons/garland16.png";
42 private final Image fOpenedProjectIcon
;
43 private final Image fClosedProjectIcon
;
44 private final Image fFolderIcon
;
45 private final Image fTraceIcon
;
46 private final Image fUnknownTraceIcon
;
47 private final Image fExperimentIcon
;
52 public TmfProjectLabelProvider() {
54 fOpenedProjectIcon
= PlatformUI
.getWorkbench().getSharedImages().getImage(org
.eclipse
.ui
.ide
.IDE
.SharedImages
.IMG_OBJ_PROJECT
);
55 fClosedProjectIcon
= PlatformUI
.getWorkbench().getSharedImages().getImage(org
.eclipse
.ui
.ide
.IDE
.SharedImages
.IMG_OBJ_PROJECT_CLOSED
);
56 fFolderIcon
= PlatformUI
.getWorkbench().getSharedImages().getImage(ISharedImages
.IMG_OBJ_FOLDER
);
58 fTraceIcon
= loadIcon(fTraceIconFile
);
59 fUnknownTraceIcon
= PlatformUI
.getWorkbench().getSharedImages().getImage(ISharedImages
.IMG_LCL_LINKTO_HELP
);
60 fExperimentIcon
= fFolderIcon
; // loadIcon(fExperimentIconFile);
63 private Image
loadIcon(String url
) {
64 TmfUiPlugin plugin
= TmfUiPlugin
.getDefault();
65 Image icon
= plugin
.getImageRegistry().get(url
);
67 URL imageURL
= plugin
.getBundle().getEntry(url
);
68 ImageDescriptor descriptor
= ImageDescriptor
.createFromURL(imageURL
);
69 icon
= descriptor
.createImage();
70 plugin
.getImageRegistry().put(url
, icon
);
76 * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
79 public Image
getImage(Object element
) {
81 if (element
instanceof TmfProjectNode
) {
82 TmfProjectNode project
= (TmfProjectNode
) element
;
83 if (project
.isOpen()) {
84 IEclipsePreferences node
= new InstanceScope().getNode(TmfUiPlugin
.PLUGIN_ID
);
85 if (node
.get(TmfUiPreferenceInitializer
.ACTIVE_PROJECT_PREFERENCE
, TmfUiPreferenceInitializer
.ACTIVE_PROJECT_DEFAULT
)
86 .equals(project
.getName())) {
87 return fTraceIcon
; //PATA placeholder image should be a highlighted open project
89 return fOpenedProjectIcon
;
92 return fClosedProjectIcon
;
96 if (element
instanceof TmfTraceFolderNode
) {
100 if (element
instanceof TmfTraceNode
) {
102 TmfTraceNode trace
= (TmfTraceNode
) element
;
103 IResource resource
= trace
.getResource();
104 if (trace
.getParent() instanceof TmfExperimentNode
) {
105 TmfExperimentNode experiment
= (TmfExperimentNode
)trace
.getParent();
106 TmfTraceFolderNode traceFolder
= experiment
.getProject().getTracesFolder();
107 resource
= traceFolder
.getFolder().findMember(resource
.getName());
110 if (resource
!= null && resource
.getPersistentProperty(ParserProviderManager
.PARSER_PROPERTY
) != null) {
113 } catch (CoreException e
) {
116 return fUnknownTraceIcon
;
119 if (element
instanceof TmfExperimentFolderNode
) {
123 if (element
instanceof TmfExperimentNode
) {
124 return fExperimentIcon
;
131 * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
134 public String
getText(Object element
) {
135 ITmfProjectTreeNode node
= (ITmfProjectTreeNode
) element
;
136 String label
= node
.getName();
137 if (node
instanceof TmfTraceFolderNode
||
138 node
instanceof TmfExperimentFolderNode
||
139 node
instanceof TmfExperimentNode
)
141 label
+= " [" + node
.getChildren().size() + "]";
147 * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
150 public void addListener(ILabelProviderListener listener
) {
151 // TODO Auto-generated method stub
155 * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
158 public void dispose() {
159 // TODO Auto-generated method stub
163 * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object, java.lang.String)
166 public boolean isLabelProperty(Object element
, String property
) {
167 // TODO Auto-generated method stub
172 * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
175 public void removeListener(ILabelProviderListener listener
) {
176 // TODO Auto-generated method stub