debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/wizard/Trace32WizardPage.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/wizard/Trace32WizardPage.java Fri Apr 03 23:33:03 2009 +0100
@@ -0,0 +1,169 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+package com.nokia.cdt.internal.debug.launch.wizard;
+
+import java.io.File;
+import java.text.MessageFormat;
+
+import org.eclipse.cdt.utils.ui.controls.ControlFactory;
+import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.PlatformUI;
+
+import com.nokia.cdt.debug.cw.symbian.SettingsData;
+import com.nokia.cpp.internal.api.utils.core.Check;
+
+import cwdbg.PreferenceConstants;
+
+public class Trace32WizardPage extends WizardPage {
+
+ private boolean isDisposed = false;
+
+ private Label t32BootConfigLabel;
+ private Text t32BootConfigFilePath;
+ private Button t32BootConfigFileBrowse;
+ private String t32CMMScript;
+
+ private Combo processorsList;
+ private int selectedProcIndex;
+
+ private final ISummaryTextItemContainer summaryTextItemContainer;
+
+ public Trace32WizardPage(ISummaryTextItemContainer summaryTextItemContainer) {
+ super(Messages.getString("Trace32WizardPage.0")); //$NON-NLS-1$
+ Check.checkArg(summaryTextItemContainer);
+ this.summaryTextItemContainer = summaryTextItemContainer;
+ setPageComplete(false);
+ setTitle(Messages.getString("Trace32WizardPage.0")); //$NON-NLS-1$
+ setDescription(Messages.getString("Trace32WizardPage.1")); //$NON-NLS-1$
+ }
+
+ public void dispose() {
+ isDisposed = true;
+ t32CMMScript = t32BootConfigFilePath.getText().trim();
+ selectedProcIndex = processorsList.getSelectionIndex();
+ super.dispose();
+ }
+
+ /*
+ * @see IDialogPage#createControl(Composite)
+ */
+ public void createControl(Composite parent) {
+ Composite composite = new Composite(parent, SWT.NULL);
+ GridLayout layout = new GridLayout();
+ layout.numColumns = 3;
+ composite.setLayout(layout);
+
+ GridData data = new GridData();
+ composite.setLayoutData(data);
+
+ t32BootConfigLabel = new Label(composite, SWT.NONE);
+ t32BootConfigLabel.setText(Messages.getString("Trace32WizardPage.2")); //$NON-NLS-1$
+ data = new GridData();
+ data.horizontalSpan = 3;
+ t32BootConfigLabel.setLayoutData(data);
+ t32BootConfigLabel.setToolTipText(Messages.getString("Trace32WizardPage.3")); //$NON-NLS-1$
+
+ t32BootConfigFilePath = new Text(composite, SWT.BORDER);
+ data = new GridData(GridData.FILL_HORIZONTAL);
+ data.horizontalSpan = 2;
+ t32BootConfigFilePath.setLayoutData(data);
+ t32BootConfigFilePath.setToolTipText(Messages.getString("Trace32WizardPage.3")); //$NON-NLS-1$
+
+ t32BootConfigFileBrowse = ControlFactory.createPushButton(composite, Messages.getString("Trace32WizardPage.9")); //$NON-NLS-1$
+ t32BootConfigFileBrowse.addSelectionListener(new SelectionAdapter() {
+
+ public void widgetSelected(SelectionEvent evt) {
+ FileDialog dialog = new FileDialog(getShell(), SWT.NONE);
+
+ dialog.setText(Messages.getString("Trace32WizardPage.4")); //$NON-NLS-1$
+ dialog.setFilterExtensions(new String[] {"*.cmm*", "*.*"}); //$NON-NLS-1$ //$NON-NLS-2$
+ dialog.setFilterNames(new String[] {Messages.getString("Trace32WizardPage.5"), Messages.getString("Trace32WizardPage.6")}); //$NON-NLS-1$ //$NON-NLS-2$
+
+ String result = dialog.open();
+ if (result != null && new File(result).exists()) {
+ t32BootConfigFilePath.setText(result);
+ }
+ }
+ });
+
+
+ final Label processorsLabel = new Label(composite, SWT.NONE);
+ processorsLabel.setText(Messages.getString("Trace32WizardPage.7")); //$NON-NLS-1$
+ data = new GridData();
+ data.horizontalSpan = 3;
+ processorsLabel.setLayoutData(data);
+ processorsLabel.setToolTipText(Messages.getString("Trace32WizardPage.8")); //$NON-NLS-1$
+
+ processorsList = new Combo(composite, SWT.READ_ONLY);
+ processorsList.setItems(new String[] { "ARM920T", "ARM926TEJ", "ARM1136EJ-S", "OMAP3xx", "OMAP15xx", "OMAP16xx", "OMAP24xx", "OMAP34xx", "Generic" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$ //$NON-NLS-7$ //$NON-NLS-8$ //$NON-NLS-9$ //$NON-NLS-10$
+ processorsList.select(8); //by default, select the generic
+ data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
+ data.horizontalSpan = 3;
+ processorsList.setLayoutData(data);
+ processorsList.setToolTipText(Messages.getString("Trace32WizardPage.8")); //$NON-NLS-1$
+
+ setControl(composite);
+ Dialog.applyDialogFont(parent);
+ setPageComplete(true);
+ }
+
+ void updateConfiguration(ILaunchConfigurationWorkingCopy config) {
+ if (isDisposed) {
+ if (t32CMMScript.length()>0 && new File(t32CMMScript).exists()) {
+ config.setAttribute(SettingsData.spn_Trace32Conn_BootScriptFile, t32CMMScript);
+ }
+ config.setAttribute(PreferenceConstants.J_PN_TargetProcessor, selectedProcIndex);
+ } else {
+ if ((t32BootConfigFilePath.getText().trim().length()>0) && (new File(t32BootConfigFilePath.getText().trim()).exists())) {
+ config.setAttribute(SettingsData.spn_Trace32Conn_BootScriptFile, t32BootConfigFilePath.getText());
+ }
+ config.setAttribute( PreferenceConstants.J_PN_TargetProcessor, processorsList.getSelectionIndex());
+ }
+ }
+
+ public void setVisible(boolean visible) {
+ super.setVisible(visible);
+ if (!visible) {
+ summaryTextItemContainer.putSummaryTextItem("T32InitScript", //$NON-NLS-1$
+ MessageFormat.format("{0} {1}", new Object[] { //$NON-NLS-1$
+ Messages.getString("Trace32WizardPage.2"), //$NON-NLS-1$
+ t32BootConfigFilePath.getText() } ));
+ summaryTextItemContainer.putSummaryTextItem("TargetProcessor", //$NON-NLS-1$
+ MessageFormat.format("{0} {1}", new Object[] { //$NON-NLS-1$
+ Messages.getString("Trace32WizardPage.7"), //$NON-NLS-1$
+ processorsList.getItem(processorsList.getSelectionIndex()) } ));
+ }
+ }
+
+ @Override
+ public void performHelp() {
+ PlatformUI.getWorkbench().getHelpSystem().displayHelp(LaunchWizardHelpIds.WIZARD_TRACE32_PAGE);
+ }
+}
\ No newline at end of file