tmf: Move plugins to the Trace Compass namespace
[deliverable/tracecompass.git] / org.eclipse.tracecompass.tmf.ui / src / org / eclipse / linuxtools / internal / tmf / ui / project / wizards / importtrace / TraceTypeContentProvider.java
1 /*******************************************************************************
2 * Copyright (c) 2013, 2014 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 * Matthew Khouzam - Initial API and implementation
11 *******************************************************************************/
12
13 package org.eclipse.linuxtools.internal.tmf.ui.project.wizards.importtrace;
14
15 import java.util.ArrayList;
16 import java.util.HashMap;
17 import java.util.List;
18 import java.util.Map;
19
20 import org.eclipse.jface.viewers.ITreeContentProvider;
21 import org.eclipse.jface.viewers.Viewer;
22 import org.eclipse.linuxtools.tmf.core.project.model.TmfTraceType;
23 import org.eclipse.linuxtools.tmf.core.project.model.TraceTypeHelper;
24
25 /**
26 * Trace type content provider, a helper for showing trace types
27 *
28 * @author Matthew Khouzam
29 * @since 2.0
30 */
31 public class TraceTypeContentProvider implements ITreeContentProvider {
32
33 private final List<String> fTraceCategory = new ArrayList<>();
34 private final Map<String, List<TraceTypeHelper>> fTraceType = new HashMap<>();
35
36 /**
37 * Default Constructor
38 */
39 public TraceTypeContentProvider() {
40 fTraceType.clear();
41 fTraceCategory.clear();
42
43 for (String category : TmfTraceType.getTraceCategories()) {
44 List<TraceTypeHelper> value = TmfTraceType.getTraceTypes(category);
45 if (!value.isEmpty()) {
46 fTraceCategory.add(category);
47 fTraceType.put(category, value);
48 }
49 }
50 }
51
52 @Override
53 public void dispose() {
54 }
55
56 @Override
57 public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
58 // Do nothing
59 }
60
61 @Override
62 public Object[] getElements(Object inputElement) {
63 return fTraceCategory.toArray(new String[0]);
64 }
65
66 @Override
67 public Object[] getChildren(Object parentElement) {
68 if (parentElement instanceof String) {
69 final List<TraceTypeHelper> children = fTraceType.get(parentElement);
70 if (children != null) {
71 return children.toArray(new TraceTypeHelper[0]);
72 }
73 }
74 return null;
75 }
76
77 @Override
78 public Object getParent(Object element) {
79 if (element instanceof TraceTypeHelper) {
80 for (String key : fTraceCategory) {
81 List<TraceTypeHelper> traceSet = fTraceType.get(key);
82 if (traceSet != null) {
83 if (traceSet.contains(element)) {
84 return key;
85 }
86 }
87 }
88 }
89 return null;
90 }
91
92 @Override
93 public boolean hasChildren(Object element) {
94 if (element instanceof String) {
95 String key = (String) element;
96 return fTraceType.containsKey(key);
97 }
98 return false;
99 }
100
101 }
This page took 0.034244 seconds and 5 git commands to generate.