debuggercdi/com.nokia.cdt.debug.launch/src/com/nokia/cdt/internal/debug/launch/wizard/Trace32WizardPage.java
changeset 0 fb279309251b
child 566 960058f9da89
child 569 369485fbe634
--- /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