Contribute CNF based TMF project handling
[deliverable/tracecompass.git] / org.eclipse.linuxtools.tmf.ui / src / org / eclipse / linuxtools / tmf / ui / parsers / custom / CustomParserProvider.java
CommitLineData
c3c5c786
FC
1/*******************************************************************************\r
2 * Copyright (c) 2010 Ericsson\r
3 * \r
4 * All rights reserved. This program and the accompanying materials are\r
5 * made available under the terms of the Eclipse Public License v1.0 which\r
6 * accompanies this distribution, and is available at\r
7 * http://www.eclipse.org/legal/epl-v10.html\r
8 * \r
9 * Contributors:\r
10 * Patrick Tasse - Initial API and implementation\r
11 *******************************************************************************/\r
12\r
13package org.eclipse.linuxtools.tmf.ui.parsers.custom;\r
14\r
15import java.io.FileNotFoundException;\r
16import java.util.LinkedHashMap;\r
17import java.util.Map;\r
18\r
19import org.eclipse.core.resources.IResource;\r
20import org.eclipse.linuxtools.tmf.trace.ITmfTrace;\r
21import org.eclipse.linuxtools.tmf.ui.parsers.IParserProvider;\r
22import org.eclipse.linuxtools.tmf.ui.viewers.events.TmfEventsTable;\r
23import org.eclipse.swt.widgets.Composite;\r
24\r
25public class CustomParserProvider implements IParserProvider {\r
26\r
d4011df2 27 @Override\r
c3c5c786 28 public String getCategory() {\r
3b38ea61 29 return "Custom"; //$NON-NLS-1$\r
c3c5c786
FC
30 }\r
31\r
d4011df2 32 @Override\r
12c155f5 33 public ITmfTrace<?> getTraceForParser(String parser, IResource resource) {\r
c3c5c786
FC
34 try {\r
35 String name = resource.getName();\r
36 String path = resource.getLocation().toOSString();\r
37 for (CustomTxtTraceDefinition def : CustomTxtTraceDefinition.loadAll()) {\r
3b38ea61 38 if (parser.equals(CustomTxtTrace.class.getCanonicalName() + "." + def.definitionName)) { //$NON-NLS-1$\r
c3c5c786
FC
39 return new CustomTxtTrace(name, def, path, 100);\r
40 }\r
41 }\r
42 for (CustomXmlTraceDefinition def : CustomXmlTraceDefinition.loadAll()) {\r
3b38ea61 43 if (parser.equals(CustomXmlTrace.class.getCanonicalName() + "." + def.definitionName)) { //$NON-NLS-1$\r
c3c5c786
FC
44 return new CustomXmlTrace(name, def, path, 100);\r
45 }\r
46 }\r
47 } catch (FileNotFoundException e) {\r
48 e.printStackTrace();\r
49 }\r
50 return null;\r
51 }\r
52\r
d4011df2 53 @Override\r
12c155f5 54 public ITmfTrace<?> getTraceForContentType(String contentTypeId, IResource resource) {\r
c3c5c786
FC
55 return null;\r
56 }\r
57\r
d4011df2
FC
58 @Override\r
59 public String getEditorIdForParser(String parser) {\r
c3c5c786
FC
60 return null;\r
61 }\r
62\r
90e2b925
FC
63 @Override\r
64 public Map<String, String> getEventTypeMapForParser(String parser) {\r
65 for (CustomTxtTraceDefinition def : CustomTxtTraceDefinition.loadAll()) {\r
66 if (parser.equals(CustomTxtTrace.class.getCanonicalName() + "." + def.definitionName)) { //$NON-NLS-1$\r
67 Map<String, String> eventTypeMap = new LinkedHashMap<String, String>();\r
68 eventTypeMap.put(def.definitionName, CustomTxtEventType.class.getCanonicalName() + "." + def.definitionName); //$NON-NLS-1$\r
69 return eventTypeMap;\r
70 }\r
71 }\r
72 for (CustomXmlTraceDefinition def : CustomXmlTraceDefinition.loadAll()) {\r
73 if (parser.equals(CustomXmlTrace.class.getCanonicalName() + "." + def.definitionName)) { //$NON-NLS-1$\r
74 Map<String, String> eventTypeMap = new LinkedHashMap<String, String>();\r
75 eventTypeMap.put(def.definitionName, CustomXmlEventType.class.getCanonicalName() + "." + def.definitionName); //$NON-NLS-1$\r
76 return eventTypeMap;\r
77 }\r
78 }\r
79 return null;\r
80 }\r
81\r
82 @Override\r
83 public String[] getFieldLabelsForEventType(String eventType) {\r
84 for (CustomTxtTraceDefinition def : CustomTxtTraceDefinition.loadAll()) {\r
85 if (eventType.equals(CustomTxtEventType.class.getCanonicalName() + "." + def.definitionName)) { //$NON-NLS-1$\r
86 String[] labels = new String[def.outputs.size()];\r
87 for (int i = 0; i < labels.length; i++) {\r
88 labels[i] = def.outputs.get(i).name;\r
89 }\r
90 return labels;\r
91 }\r
92 }\r
93 for (CustomXmlTraceDefinition def : CustomXmlTraceDefinition.loadAll()) {\r
94 if (eventType.equals(CustomXmlEventType.class.getCanonicalName() + "." + def.definitionName)) { //$NON-NLS-1$\r
95 String[] labels = new String[def.outputs.size()];\r
96 for (int i = 0; i < labels.length; i++) {\r
97 labels[i] = def.outputs.get(i).name;\r
98 }\r
99 return labels;\r
100 }\r
101 }\r
102 return null;\r
103 }\r
104\r
d4011df2 105 @Override\r
c3c5c786
FC
106 public Map<String, String> getParserMap() {\r
107 Map<String, String> parserMap = new LinkedHashMap<String, String>();\r
108 for (CustomTxtTraceDefinition def : CustomTxtTraceDefinition.loadAll()) {\r
3b38ea61 109 parserMap.put(def.definitionName, CustomTxtTrace.class.getCanonicalName() + "." + def.definitionName); //$NON-NLS-1$\r
c3c5c786
FC
110 }\r
111 for (CustomXmlTraceDefinition def : CustomXmlTraceDefinition.loadAll()) {\r
3b38ea61 112 parserMap.put(def.definitionName, CustomXmlTrace.class.getCanonicalName() + "." + def.definitionName); //$NON-NLS-1$\r
c3c5c786
FC
113 }\r
114 return parserMap;\r
115 }\r
116\r
d4011df2 117 @Override\r
12c155f5 118 public TmfEventsTable getEventsTable(ITmfTrace<?> trace, Composite parent, int cacheSize) {\r
c3c5c786
FC
119 if (trace instanceof CustomTxtTrace) {\r
120 return new CustomEventsTable(((CustomTxtTrace) trace).getDefinition(), parent, cacheSize);\r
121 } else if (trace instanceof CustomXmlTrace) {\r
122 return new CustomEventsTable(((CustomXmlTrace) trace).getDefinition(), parent, cacheSize);\r
123 }\r
124 return null;\r
125 }\r
126\r
127}\r
This page took 0.030747 seconds and 5 git commands to generate.