/******************************************************************************* * Copyright (c) 2009 STMicroelectronics. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Xavier Raynaud <xavier.raynaud@st.com> - initial API and implementation *******************************************************************************/ package org.eclipse.linuxtools.internal.gprof.action; import org.eclipse.jface.action.Action; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.linuxtools.dataviewers.abstractview.AbstractSTDataView; import org.eclipse.linuxtools.dataviewers.abstractviewers.AbstractSTTreeViewer; import org.eclipse.linuxtools.internal.gprof.Activator; import org.eclipse.linuxtools.internal.gprof.Messages; import org.eclipse.linuxtools.internal.gprof.parser.GmonDecoder; import org.eclipse.linuxtools.internal.gprof.view.fields.SampleProfField; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.TreeColumn; /** * This action changes the content provider of * the {@link org.eclipse.linuxtools.internal.gprof.view.GmonView} * * @author Xavier Raynaud <xavier.raynaud@st.com> */ public class SwitchSampleTimeAction extends Action { private final AbstractSTDataView view; /** * Constructor * @param name name of the action * @param view the Gmon viewer */ public SwitchSampleTimeAction(AbstractSTDataView view) { super(Messages.SwitchSampleTimeAction_SWITCH_SAMPLE_TIME, SWT.TOGGLE); this.setImageDescriptor(Activator.getImageDescriptor("icons/datetime_obj.gif")); //$NON-NLS-1$ this.setToolTipText(Messages.SwitchSampleTimeAction_SWITCH_SAMPLE_TIME); this.view = view; } @Override public void run() { AbstractSTTreeViewer gmonViewer = (AbstractSTTreeViewer)view.getSTViewer(); GmonDecoder decoder = (GmonDecoder) gmonViewer.getInput(); if(decoder != null){ int prof_rate = decoder.getHistogramDecoder().getProfRate(); if (prof_rate == 0) { MessageDialog.openError(view.getSite().getShell(), Messages.SwitchSampleTimeAction_GMON_PROF_RATE_IS_NULL, Messages.SwitchSampleTimeAction_GMON_PROF_RATE_IS_NULL_LONG_MSG); return; } TreeColumn tc = gmonViewer.getViewer().getTree().getColumn(1); SampleProfField spf = (SampleProfField) tc.getData(); spf.toggle(); tc.setText(spf.getColumnHeaderText()); gmonViewer.getViewer().refresh(); } } }