2010-11-09 Francois Chouinard <fchouinard@gmail.com> Contribution for Bug315307
[deliverable/tracecompass.git] / org.eclipse.linuxtools.lttng.ui / src / org / eclipse / linuxtools / lttng / ui / views / project / model / LTTngProjectLabelProvider.java
1 /*******************************************************************************
2 * Copyright (c) 2009 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.lttng.ui.views.project.model;
14
15 import java.net.URL;
16
17 import org.eclipse.jface.resource.ImageDescriptor;
18 import org.eclipse.jface.viewers.ILabelProvider;
19 import org.eclipse.jface.viewers.ILabelProviderListener;
20 import org.eclipse.linuxtools.lttng.ui.LTTngUiPlugin;
21 import org.eclipse.swt.graphics.Image;
22 import org.eclipse.ui.ISharedImages;
23 import org.eclipse.ui.PlatformUI;
24
25 /**
26 * <b><u>LTTngProjectLabelProvider</u></b>
27 * <p>
28 * TODO: Implement me. Please.
29 * TODO: Find proper icons for traces and experiments
30 */
31 public class LTTngProjectLabelProvider implements ILabelProvider {
32
33 private final String fTraceIconFile = "icons/garland16.png"; //$NON-NLS-1$
34 // private final String fExperimentIconFile = "icons/garland16.png"; //$NON-NLS-1$
35
36 private final Image fOpenedProjectIcon;
37 private final Image fClosedProjectIcon;
38 private final Image fFolderIcon;
39 private final Image fTraceIcon;
40 private final Image fExperimentIcon;
41
42 /**
43 *
44 */
45 public LTTngProjectLabelProvider() {
46
47 fOpenedProjectIcon = PlatformUI.getWorkbench().getSharedImages().getImage(org.eclipse.ui.ide.IDE.SharedImages.IMG_OBJ_PROJECT);
48 fClosedProjectIcon = PlatformUI.getWorkbench().getSharedImages().getImage(org.eclipse.ui.ide.IDE.SharedImages.IMG_OBJ_PROJECT_CLOSED);
49 fFolderIcon = PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJ_FOLDER);
50
51 fTraceIcon = loadIcon(fTraceIconFile);
52 fExperimentIcon = fFolderIcon; // loadIcon(fExperimentIconFile);
53 }
54
55 private Image loadIcon(String url) {
56 LTTngUiPlugin plugin = LTTngUiPlugin.getDefault();
57 Image icon = plugin.getImageRegistry().get(url);
58 if (icon == null) {
59 URL imageURL = plugin.getBundle().getEntry(url);
60 ImageDescriptor descriptor = ImageDescriptor.createFromURL(imageURL);
61 icon = descriptor.createImage();
62 plugin.getImageRegistry().put(url, icon);
63 }
64 return icon;
65 }
66
67 /* (non-Javadoc)
68 * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
69 */
70 @Override
71 public Image getImage(Object element) {
72
73 if (element instanceof LTTngProjectNode) {
74 LTTngProjectNode project = (LTTngProjectNode) element;
75 return (project.isOpen()) ? fOpenedProjectIcon : fClosedProjectIcon;
76 }
77
78 if (element instanceof LTTngTraceFolderNode) {
79 return fFolderIcon;
80 }
81
82 if (element instanceof LTTngTraceNode) {
83 return fTraceIcon;
84 }
85
86 if (element instanceof LTTngExperimentFolderNode) {
87 return fFolderIcon;
88 }
89
90 if (element instanceof LTTngExperimentNode) {
91 return fExperimentIcon;
92 }
93
94 return null;
95 }
96
97 /* (non-Javadoc)
98 * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
99 */
100 @Override
101 public String getText(Object element) {
102 ILTTngProjectTreeNode node = (ILTTngProjectTreeNode) element;
103 String label = node.getName();
104 if (node instanceof LTTngTraceFolderNode ||
105 node instanceof LTTngExperimentFolderNode ||
106 node instanceof LTTngExperimentNode)
107 {
108 label += " [" + node.getChildren().size() + "]"; //$NON-NLS-1$//$NON-NLS-2$
109 }
110 return label;
111 }
112
113 /* (non-Javadoc)
114 * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
115 */
116 @Override
117 public void addListener(ILabelProviderListener listener) {
118 // TODO Auto-generated method stub
119 }
120
121 /* (non-Javadoc)
122 * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
123 */
124 @Override
125 public void dispose() {
126 // TODO Auto-generated method stub
127 }
128
129 /* (non-Javadoc)
130 * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object, java.lang.String)
131 */
132 @Override
133 public boolean isLabelProperty(Object element, String property) {
134 // TODO Auto-generated method stub
135 return false;
136 }
137
138 /* (non-Javadoc)
139 * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
140 */
141 @Override
142 public void removeListener(ILabelProviderListener listener) {
143 // TODO Auto-generated method stub
144 }
145
146 }
This page took 0.032779 seconds and 5 git commands to generate.