diff -r 5b9d4d8641ce -r ae255c9aa552 sysperfana/perfinvestigator/com.nokia.carbide.cpp.pi.address/src/com/nokia/carbide/cpp/pi/address/GppTraceGraph.java --- a/sysperfana/perfinvestigator/com.nokia.carbide.cpp.pi.address/src/com/nokia/carbide/cpp/pi/address/GppTraceGraph.java Wed Jun 23 14:49:59 2010 +0300 +++ b/sysperfana/perfinvestigator/com.nokia.carbide.cpp.pi.address/src/com/nokia/carbide/cpp/pi/address/GppTraceGraph.java Wed Jun 23 15:05:09 2010 +0300 @@ -54,6 +54,7 @@ import com.nokia.carbide.cpp.internal.pi.address.GppTraceGraphSMP; import com.nokia.carbide.cpp.internal.pi.analyser.NpiInstanceRepository; import com.nokia.carbide.cpp.internal.pi.analyser.ProfileVisualiser; +import com.nokia.carbide.cpp.internal.pi.model.ICPUScale; import com.nokia.carbide.cpp.internal.pi.model.ProfiledBinary; import com.nokia.carbide.cpp.internal.pi.model.ProfiledFunction; import com.nokia.carbide.cpp.internal.pi.model.ProfiledGeneric; @@ -66,6 +67,7 @@ import com.nokia.carbide.cpp.internal.pi.visual.GenericTraceGraph; import com.nokia.carbide.cpp.internal.pi.visual.GraphComposite; import com.nokia.carbide.cpp.internal.pi.visual.PIEvent; +import com.nokia.carbide.cpp.pi.PiPlugin; import com.nokia.carbide.cpp.pi.editors.PIPageEditor; import com.nokia.carbide.cpp.pi.util.ColorPalette; import com.nokia.carbide.cpp.pi.visual.IGenericTraceGraph; @@ -2360,9 +2362,39 @@ public void widgetSelected(SelectionEvent e) { AddressPlugin.getDefault().receiveSelectionEvent(isSeparate ? AddressPlugin.ACTION_COMBINED_CPU_VIEW : AddressPlugin.ACTION_SEPARATE_CPU_VIEW); } - }); + }); + } + ProfiledThread profiledThread = (ProfiledThread)getProfiledThreads().firstElement(); + if(profiledThread != null){ + Object object = profiledThread.getAdapter(ICPUScale.class); + if(object != null){ + ICPUScale cpuScale = (ICPUScale)object; + if(cpuScale.isCpuScaleSupported()){ + boolean scaleCPU = profiledThread.isScaledCpu(); + new MenuItem(menu, SWT.SEPARATOR); + MenuItem scaleCPUMenuItem = new MenuItem(menu, SWT.CHECK); + scaleCPUMenuItem.setText(Messages.getString("GppTraceGraph.scaleCPUClockSpeed")); //$NON-NLS-1$ + final boolean scaleCPUFinal = scaleCPU; + + scaleCPUMenuItem.addSelectionListener(new SelectionAdapter() { + public void widgetSelected(SelectionEvent e) { + NpiInstanceRepository + .getInstance() + .activeUidSetPersistState( + PiPlugin.ACTION_SCALE_CPU, !scaleCPUFinal); //$NON-NLS-1$ + + for (int i = 0; i < 3; i++) { + GppTraceGraph graph = (GppTraceGraph) ((GppTrace)getTrace()).getTraceGraph(i); + graph.action(IGppTraceGraph.ACTION_CHANGE_THRESHOLD_THREAD); + graph.updateSelectionArea(PIPageEditor.currentPageEditor().getStartTime(), PIPageEditor.currentPageEditor().getEndTime()); + } + } + }); + scaleCPUMenuItem.setSelection(scaleCPUFinal); + } + } + } } - }