Move alltests plugin 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
CommitLineData
d04ec5a7 1/*******************************************************************************
60ae41e1 2 * Copyright (c) 2013, 2014 Ericsson
d04ec5a7
MK
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
1de10308 13package org.eclipse.linuxtools.internal.tmf.ui.project.wizards.importtrace;
d04ec5a7
MK
14
15import java.util.ArrayList;
16import java.util.HashMap;
17import java.util.List;
18import java.util.Map;
19
20import org.eclipse.jface.viewers.ITreeContentProvider;
21import org.eclipse.jface.viewers.Viewer;
47aafe74
AM
22import org.eclipse.linuxtools.tmf.core.project.model.TmfTraceType;
23import org.eclipse.linuxtools.tmf.core.project.model.TraceTypeHelper;
d04ec5a7
MK
24
25/**
26 * Trace type content provider, a helper for showing trace types
27 *
28 * @author Matthew Khouzam
29 * @since 2.0
30 */
31public class TraceTypeContentProvider implements ITreeContentProvider {
32
507b1336
AM
33 private final List<String> fTraceCategory = new ArrayList<>();
34 private final Map<String, List<TraceTypeHelper>> fTraceType = new HashMap<>();
d04ec5a7
MK
35
36 /**
37 * Default Constructor
38 */
39 public TraceTypeContentProvider() {
40 fTraceType.clear();
41 fTraceCategory.clear();
42
a4a116c3
PT
43 for (String category : TmfTraceType.getTraceCategories()) {
44 List<TraceTypeHelper> value = TmfTraceType.getTraceTypes(category);
376fdfbd
GB
45 if (!value.isEmpty()) {
46 fTraceCategory.add(category);
47 fTraceType.put(category, value);
48 }
d04ec5a7 49 }
d04ec5a7
MK
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) {
a36bfd38 79 if (element instanceof TraceTypeHelper) {
d04ec5a7
MK
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.061052 seconds and 5 git commands to generate.