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