| /**************************************************************************** |
| * Tuning and Analysis Utilities |
| * http://www.cs.uoregon.edu/research/paracomp/tau |
| **************************************************************************** |
| * Copyright (c) 1997-2006 |
| * Department of Computer and Information Science, University of Oregon |
| * Advanced Computing Laboratory, Los Alamos National Laboratory |
| * Research Center Juelich, ZAM Germany |
| * |
| * 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: |
| * Wyatt Spear - initial API and implementation |
| ****************************************************************************/ |
| package org.eclipse.ptp.etfw.tau; |
| |
| import org.eclipse.core.runtime.Preferences; |
| import org.eclipse.jface.preference.FieldEditor; |
| import org.eclipse.jface.preference.PreferencePage; |
| import org.eclipse.jface.util.IPropertyChangeListener; |
| import org.eclipse.jface.util.PropertyChangeEvent; |
| import org.eclipse.ptp.etfw.Activator; |
| import org.eclipse.ptp.etfw.tau.messages.Messages; |
| import org.eclipse.ptp.etfw.tau.papitest.TestPAPI; |
| import org.eclipse.swt.SWT; |
| import org.eclipse.swt.events.ModifyEvent; |
| import org.eclipse.swt.events.ModifyListener; |
| import org.eclipse.swt.events.SelectionAdapter; |
| import org.eclipse.swt.events.SelectionEvent; |
| import org.eclipse.swt.layout.GridData; |
| import org.eclipse.swt.widgets.Button; |
| import org.eclipse.swt.widgets.Composite; |
| import org.eclipse.swt.widgets.Control; |
| import org.eclipse.ui.IWorkbench; |
| import org.eclipse.ui.IWorkbenchPreferencePage; |
| |
| public class TAUPrefPage extends PreferencePage implements IWorkbenchPreferencePage{ |
| protected Button checkAutoOpts=null; |
| protected Button checkAixOpts=null; |
| protected Button testPAPI=null; |
| |
| TestPAPI tp = new TestPAPI(); |
| |
| |
| protected class WidgetListener extends SelectionAdapter implements ModifyListener, IPropertyChangeListener |
| { |
| public void widgetSelected(SelectionEvent e) { |
| Object source = e.getSource(); |
| if(source == testPAPI) { |
| tp.run(); |
| } |
| updatePreferencePage(); |
| } |
| |
| public void modifyText(ModifyEvent evt) { |
| // Object source = evt.getSource(); |
| // if(source==tauBin){ |
| // } |
| |
| updatePreferencePage(); |
| } |
| |
| public void propertyChange(PropertyChangeEvent event) { |
| if (event.getProperty().equals(FieldEditor.IS_VALID)) |
| updatePreferencePage(); |
| } |
| } |
| |
| protected WidgetListener listener = new WidgetListener(); |
| |
| @Override |
| protected Control createContents(Composite parent) { |
| |
| //TODO: Implement tau-option checking |
| GridData gridData = new GridData(GridData.VERTICAL_ALIGN_END); |
| gridData.horizontalSpan = 3; |
| gridData.horizontalAlignment = GridData.FILL; |
| |
| if(org.eclipse.cdt.utils.Platform.getOS().toLowerCase().trim().indexOf("aix")>=0) //$NON-NLS-1$ |
| { |
| checkAixOpts=createCheckButton(parent,Messages.TAUPrefPage_AutoEclipseInternal); |
| checkAixOpts.setLayoutData(gridData); |
| checkAixOpts.addSelectionListener(listener); |
| } |
| |
| checkAutoOpts=createCheckButton(parent, Messages.TAUPrefPage_CheckTauOptions); |
| checkAutoOpts.setLayoutData(gridData); |
| checkAutoOpts.addSelectionListener(listener); |
| |
| testPAPI=new Button(parent, SWT.NONE); |
| testPAPI.setText(Messages.TAUPrefPage_TestPapi); |
| testPAPI.addSelectionListener(listener); |
| |
| return parent; |
| } |
| |
| /*This may be unused...*/ |
| protected void loadSaved() |
| { |
| Preferences preferences = Activator.getDefault().getPluginPreferences(); |
| |
| //TODO: Add checks |
| checkAutoOpts.setSelection(preferences.getBoolean("TAUCheckForAutoOptions")); //$NON-NLS-1$ |
| if(checkAixOpts!=null) |
| checkAixOpts.setSelection(preferences.getBoolean("TAUCheckForAIXOptions")); //$NON-NLS-1$ |
| } |
| |
| public boolean performOk() |
| { |
| Preferences preferences = Activator.getDefault().getPluginPreferences(); |
| |
| //TODO: Add checks |
| preferences.setValue("TAUCheckForAutoOptions", checkAutoOpts.getSelection()); //$NON-NLS-1$ |
| if(checkAixOpts!=null) |
| preferences.setValue("TAUCheckForAIXOptions", checkAixOpts.getSelection()); //$NON-NLS-1$ |
| |
| Activator.getDefault().savePluginPreferences(); |
| return true; |
| } |
| |
| public void init(IWorkbench workbench) { |
| // TODO Auto-generated method stub |
| |
| } |
| |
| protected void updatePreferencePage() |
| { |
| setErrorMessage(null); |
| setMessage(null); |
| |
| setValid(true); |
| } |
| |
| protected Button createCheckButton(Composite parent, String label) { |
| return createButton(parent, label, SWT.CHECK | SWT.LEFT); |
| } |
| protected Button createButton(Composite parent, String label, int type) { |
| Button button = new Button(parent, type); |
| button.setText(label); |
| GridData data = new GridData(); |
| button.setLayoutData(data); |
| return button; |
| } |
| |
| } |