1 package org
.eclipse
.linuxtools
.internal
.lttng2
.kernel
.ui
.views
.resources
;
3 import java
.util
.HashMap
;
6 import org
.eclipse
.linuxtools
.internal
.lttng2
.kernel
.ui
.Messages
;
7 import org
.eclipse
.linuxtools
.internal
.lttng2
.kernel
.ui
.views
.resources
.ResourcesEntry
.Type
;
8 import org
.eclipse
.linuxtools
.lttng2
.kernel
.core
.trace
.Attributes
;
9 import org
.eclipse
.linuxtools
.tmf
.ui
.widgets
.timegraph
.StateItem
;
10 import org
.eclipse
.linuxtools
.tmf
.ui
.widgets
.timegraph
.TimeGraphPresentationProvider
;
11 import org
.eclipse
.linuxtools
.tmf
.ui
.widgets
.timegraph
.model
.ITimeEvent
;
12 import org
.eclipse
.swt
.graphics
.RGB
;
14 public class ResourcesPresentationProvider
extends TimeGraphPresentationProvider
{
17 UNKNOWN (new RGB(100, 100, 100)),
18 IDLE (new RGB(200, 200, 200)),
19 BUSY (new RGB(0, 200, 0)),
20 INTERRUPTED (new RGB(200, 100, 100)),
21 RAISED (new RGB(200, 200, 0)),
22 ACTIVE (new RGB(200, 150, 100));
26 private State (RGB rgb
) {
32 public String
getStateTypeName() {
33 return Messages
.ResourcesView_stateTypeName
;
37 public StateItem
[] getStateTable() {
38 StateItem
[] stateTable
= new StateItem
[State
.values().length
];
39 for (int i
= 0; i
< stateTable
.length
; i
++) {
40 State state
= State
.values()[i
];
41 stateTable
[i
] = new StateItem(state
.rgb
, state
.toString());
47 public int getStateTableIndex(ITimeEvent event
) {
48 if (event
instanceof ResourcesEvent
) {
49 ResourcesEvent resourcesEvent
= (ResourcesEvent
) event
;
50 if (resourcesEvent
.getType() == Type
.CPU
) {
51 int status
= resourcesEvent
.getValue();
52 if (status
== Attributes
.CPU_STATUS_IDLE
) {
53 return State
.IDLE
.ordinal();
54 } else if (status
== Attributes
.CPU_STATUS_BUSY
) {
55 return State
.BUSY
.ordinal();
56 } else if (status
== Attributes
.CPU_STATUS_INTERRUPTED
) {
57 return State
.INTERRUPTED
.ordinal();
59 } else if (resourcesEvent
.getType() == Type
.IRQ
|| resourcesEvent
.getType() == Type
.SOFT_IRQ
) {
60 int cpu
= resourcesEvent
.getValue();
61 if (cpu
== Attributes
.SOFT_IRQ_RAISED
) {
62 return State
.RAISED
.ordinal();
64 return State
.ACTIVE
.ordinal();
69 return State
.UNKNOWN
.ordinal();
73 public String
getEventName(ITimeEvent event
) {
74 if (event
instanceof ResourcesEvent
) {
75 ResourcesEvent resourcesEvent
= (ResourcesEvent
) event
;
76 if (resourcesEvent
.getType() == Type
.CPU
) {
77 int status
= resourcesEvent
.getValue();
78 if (status
== Attributes
.CPU_STATUS_IDLE
) {
79 return State
.IDLE
.toString();
80 } else if (status
== Attributes
.CPU_STATUS_BUSY
) {
81 return State
.BUSY
.toString();
82 } else if (status
== Attributes
.CPU_STATUS_INTERRUPTED
) {
83 return State
.INTERRUPTED
.toString();
85 } else if (resourcesEvent
.getType() == Type
.IRQ
|| resourcesEvent
.getType() == Type
.SOFT_IRQ
) {
86 int cpu
= resourcesEvent
.getValue();
87 if (cpu
== Attributes
.SOFT_IRQ_RAISED
) {
88 return State
.RAISED
.toString();
90 return State
.ACTIVE
.toString();
95 return State
.UNKNOWN
.toString();
99 public Map
<String
, String
> getEventHoverToolTipInfo(ITimeEvent event
) {
101 Map
<String
, String
> retMap
= new HashMap
<String
, String
>();
102 if (event
instanceof ResourcesEvent
) {
104 ResourcesEvent resourcesEvent
= (ResourcesEvent
) event
;
106 if (resourcesEvent
.getType().equals(Type
.IRQ
) || resourcesEvent
.getType().equals(Type
.SOFT_IRQ
)) {
107 int cpu
= resourcesEvent
.getValue();
109 retMap
.put(Messages
.ResourcesView_attributeCpuName
, String
.valueOf(cpu
));