tmf : Add latency density view for the pattern analysis
[deliverable/tracecompass.git] / tmf / org.eclipse.tracecompass.tmf.analysis.xml.ui / src / org / eclipse / tracecompass / internal / tmf / analysis / xml / ui / views / latency / PatternDensityView.java
1 /*******************************************************************************
2 * Copyright (c) 2016 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 package org.eclipse.tracecompass.internal.tmf.analysis.xml.ui.views.latency;
10
11 import org.eclipse.jdt.annotation.NonNull;
12 import org.eclipse.jface.util.IPropertyChangeListener;
13 import org.eclipse.jface.util.PropertyChangeEvent;
14 import org.eclipse.jface.viewers.TableViewer;
15 import org.eclipse.swt.SWT;
16 import org.eclipse.swt.widgets.Composite;
17 import org.eclipse.swt.widgets.Table;
18 import org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.density.AbstractSegmentStoreDensityView;
19 import org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.density.AbstractSegmentStoreDensityViewer;
20 import org.eclipse.tracecompass.analysis.timing.ui.views.segmentstore.table.AbstractSegmentStoreTableViewer;
21 import org.eclipse.tracecompass.common.core.NonNullUtils;
22 import org.eclipse.tracecompass.internal.tmf.analysis.xml.ui.TmfXmlUiStrings;
23 import org.eclipse.tracecompass.internal.tmf.analysis.xml.ui.views.XmlLatencyViewInfo;
24
25 /**
26 * Displays the latency density view for pattern analysis
27 *
28 * @author Jean-Christian Kouame
29 */
30 public class PatternDensityView extends AbstractSegmentStoreDensityView {
31
32 /** The view's ID */
33 public static final @NonNull String ID = "org.eclipse.tracecompass.internal.tmf.analysis.xml.ui.views.density"; //$NON-NLS-1$
34
35 private final XmlLatencyViewInfo fViewInfo = new XmlLatencyViewInfo(ID);
36
37 private PatternDensityViewer fDensityViewer;
38 private PatternLatencyTableViewer fTableViewer;
39
40 /**
41 * Constructor
42 */
43 public PatternDensityView() {
44 super(ID);
45 this.addPartPropertyListener(new IPropertyChangeListener() {
46 @Override
47 public void propertyChange(PropertyChangeEvent event) {
48 if (event.getProperty().equals(TmfXmlUiStrings.XML_LATENCY_OUTPUT_DATA)) {
49 Object newValue = event.getNewValue();
50 if (newValue instanceof String) {
51 String data = (String) newValue;
52 fViewInfo.setViewData(data);
53 loadTableViewer();
54 loadDensityViewer();
55 }
56 }
57 }
58 });
59 }
60
61 private void loadTableViewer() {
62 if (fTableViewer != null) {
63 fTableViewer.updateViewer(fViewInfo.getViewAnalysisId());
64 }
65 }
66
67 private void loadDensityViewer() {
68 if (fDensityViewer != null) {
69 fDensityViewer.updateViewer(fViewInfo.getViewAnalysisId());
70 }
71 }
72
73 @Override
74 protected @NonNull AbstractSegmentStoreTableViewer createSegmentStoreTableViewer(@NonNull Composite parent) {
75 PatternLatencyTableViewer tableViewer = new PatternLatencyTableViewer(new TableViewer(parent, SWT.FULL_SELECTION | SWT.VIRTUAL)) {
76 @Override
77 protected void createProviderColumns() {
78 super.createProviderColumns();
79 Table t = (Table) getControl();
80 t.setColumnOrder(new int[] { 0, 1, 2, 3, 4});
81 }
82 };
83 fTableViewer = tableViewer;
84 loadTableViewer();
85 return tableViewer;
86 }
87
88 @Override
89 protected @NonNull AbstractSegmentStoreDensityViewer createSegmentStoreDensityViewer(@NonNull Composite parent) {
90 PatternDensityViewer densityViewer = new PatternDensityViewer(NonNullUtils.checkNotNull(parent));
91 fDensityViewer = densityViewer;
92 loadDensityViewer();
93 return densityViewer;
94 }
95 }
This page took 0.045187 seconds and 5 git commands to generate.