sysperfana/perfinvestigator/com.nokia.carbide.cpp.pi.address/src/com/nokia/carbide/cpp/pi/address/GppTraceGraph.java
changeset 12 ae255c9aa552
parent 5 844b047e260d
equal deleted inserted replaced
11:5b9d4d8641ce 12:ae255c9aa552
    52 
    52 
    53 import com.nokia.carbide.cpp.internal.pi.address.GppModelAdapter;
    53 import com.nokia.carbide.cpp.internal.pi.address.GppModelAdapter;
    54 import com.nokia.carbide.cpp.internal.pi.address.GppTraceGraphSMP;
    54 import com.nokia.carbide.cpp.internal.pi.address.GppTraceGraphSMP;
    55 import com.nokia.carbide.cpp.internal.pi.analyser.NpiInstanceRepository;
    55 import com.nokia.carbide.cpp.internal.pi.analyser.NpiInstanceRepository;
    56 import com.nokia.carbide.cpp.internal.pi.analyser.ProfileVisualiser;
    56 import com.nokia.carbide.cpp.internal.pi.analyser.ProfileVisualiser;
       
    57 import com.nokia.carbide.cpp.internal.pi.model.ICPUScale;
    57 import com.nokia.carbide.cpp.internal.pi.model.ProfiledBinary;
    58 import com.nokia.carbide.cpp.internal.pi.model.ProfiledBinary;
    58 import com.nokia.carbide.cpp.internal.pi.model.ProfiledFunction;
    59 import com.nokia.carbide.cpp.internal.pi.model.ProfiledFunction;
    59 import com.nokia.carbide.cpp.internal.pi.model.ProfiledGeneric;
    60 import com.nokia.carbide.cpp.internal.pi.model.ProfiledGeneric;
    60 import com.nokia.carbide.cpp.internal.pi.model.ProfiledThread;
    61 import com.nokia.carbide.cpp.internal.pi.model.ProfiledThread;
    61 import com.nokia.carbide.cpp.internal.pi.model.ProfiledThreshold;
    62 import com.nokia.carbide.cpp.internal.pi.model.ProfiledThreshold;
    64 import com.nokia.carbide.cpp.internal.pi.visual.Defines;
    65 import com.nokia.carbide.cpp.internal.pi.visual.Defines;
    65 import com.nokia.carbide.cpp.internal.pi.visual.GenericTable;
    66 import com.nokia.carbide.cpp.internal.pi.visual.GenericTable;
    66 import com.nokia.carbide.cpp.internal.pi.visual.GenericTraceGraph;
    67 import com.nokia.carbide.cpp.internal.pi.visual.GenericTraceGraph;
    67 import com.nokia.carbide.cpp.internal.pi.visual.GraphComposite;
    68 import com.nokia.carbide.cpp.internal.pi.visual.GraphComposite;
    68 import com.nokia.carbide.cpp.internal.pi.visual.PIEvent;
    69 import com.nokia.carbide.cpp.internal.pi.visual.PIEvent;
       
    70 import com.nokia.carbide.cpp.pi.PiPlugin;
    69 import com.nokia.carbide.cpp.pi.editors.PIPageEditor;
    71 import com.nokia.carbide.cpp.pi.editors.PIPageEditor;
    70 import com.nokia.carbide.cpp.pi.util.ColorPalette;
    72 import com.nokia.carbide.cpp.pi.util.ColorPalette;
    71 import com.nokia.carbide.cpp.pi.visual.IGenericTraceGraph;
    73 import com.nokia.carbide.cpp.pi.visual.IGenericTraceGraph;
    72 
    74 
    73 /**
    75 /**
  2358 			changeViewAction.setText(isSeparate ? Messages.getString("GppTraceGraph.18") : Messages.getString("GppTraceGraph.19"));  //$NON-NLS-1$ //$NON-NLS-2$
  2360 			changeViewAction.setText(isSeparate ? Messages.getString("GppTraceGraph.18") : Messages.getString("GppTraceGraph.19"));  //$NON-NLS-1$ //$NON-NLS-2$
  2359 			changeViewAction.addSelectionListener(new SelectionAdapter() {
  2361 			changeViewAction.addSelectionListener(new SelectionAdapter() {
  2360 				public void widgetSelected(SelectionEvent e) {
  2362 				public void widgetSelected(SelectionEvent e) {
  2361 					AddressPlugin.getDefault().receiveSelectionEvent(isSeparate ? AddressPlugin.ACTION_COMBINED_CPU_VIEW : AddressPlugin.ACTION_SEPARATE_CPU_VIEW);
  2363 					AddressPlugin.getDefault().receiveSelectionEvent(isSeparate ? AddressPlugin.ACTION_COMBINED_CPU_VIEW : AddressPlugin.ACTION_SEPARATE_CPU_VIEW);
  2362 				}
  2364 				}
  2363 			});			
  2365 			});	
       
  2366 			
  2364 		}
  2367 		}
  2365 		
  2368 		
  2366 	}
  2369 		ProfiledThread profiledThread = (ProfiledThread)getProfiledThreads().firstElement();
  2367 	
  2370 		if(profiledThread != null){
       
  2371 			Object object =  profiledThread.getAdapter(ICPUScale.class);
       
  2372 			if(object != null){
       
  2373 				ICPUScale cpuScale = (ICPUScale)object;
       
  2374 				if(cpuScale.isCpuScaleSupported()){
       
  2375 					boolean scaleCPU = profiledThread.isScaledCpu();
       
  2376 					new MenuItem(menu, SWT.SEPARATOR);
       
  2377 					MenuItem scaleCPUMenuItem = new MenuItem(menu, SWT.CHECK);
       
  2378 					scaleCPUMenuItem.setText(Messages.getString("GppTraceGraph.scaleCPUClockSpeed")); //$NON-NLS-1$
       
  2379 					final boolean scaleCPUFinal = scaleCPU;
       
  2380 				
       
  2381 					scaleCPUMenuItem.addSelectionListener(new SelectionAdapter() {
       
  2382 						public void widgetSelected(SelectionEvent e) {
       
  2383 							NpiInstanceRepository
       
  2384 									.getInstance()
       
  2385 									.activeUidSetPersistState(
       
  2386 											PiPlugin.ACTION_SCALE_CPU, !scaleCPUFinal); //$NON-NLS-1$
       
  2387 
       
  2388 							for (int i = 0; i < 3; i++) {
       
  2389 								GppTraceGraph graph = (GppTraceGraph) ((GppTrace)getTrace()).getTraceGraph(i);				
       
  2390 								graph.action(IGppTraceGraph.ACTION_CHANGE_THRESHOLD_THREAD);
       
  2391 								graph.updateSelectionArea(PIPageEditor.currentPageEditor().getStartTime(), PIPageEditor.currentPageEditor().getEndTime());
       
  2392 							}
       
  2393 						}
       
  2394 					});
       
  2395 					scaleCPUMenuItem.setSelection(scaleCPUFinal);	
       
  2396 				}
       
  2397 			}
       
  2398 		}	
       
  2399 	}
  2368 }
  2400 }