blob: 6daef53f8fb106dc54fbd09b25512d7176260d91 [file] [log] [blame]
/*******************************************************************************
* 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();
}
}
}