com.nokia.carbide.cpp.debug.crashdebugger.ui.CrashDebugConnectionTab.java Source code

Java tutorial

Introduction

Here is the source code for com.nokia.carbide.cpp.debug.crashdebugger.ui.CrashDebugConnectionTab.java

Source

/*
* 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.carbide.cpp.debug.crashdebugger.ui;

import org.eclipse.core.runtime.CoreException;
import org.eclipse.debug.core.ILaunchConfiguration;
import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy;
import org.eclipse.debug.ui.AbstractLaunchConfigurationTab;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.ui.PlatformUI;

import com.freescale.cdt.debug.cw.core.ComPortHelper;
import com.nokia.cdt.debug.cw.symbian.SettingsData;
import com.nokia.cdt.debug.cw.symbian.SymbianPlugin;
import com.nokia.cdt.internal.debug.launch.ui.LaunchImages;
import com.nokia.cdt.internal.debug.launch.ui.LaunchTabHelpIds;

public class CrashDebugConnectionTab extends AbstractLaunchConfigurationTab {

    private Combo port;
    private Combo baudRate;
    private Combo dataBits;
    private Combo parity;
    private Combo stopBits;
    private Combo flowControl;

    /* (non-Javadoc)
     * @see org.eclipse.debug.ui.ILaunchConfigurationTab#createControl(org.eclipse.swt.widgets.Composite)
     */
    public void createControl(Composite parent) {
        Composite comp = new Composite(parent, SWT.NONE);
        setControl(comp);

        PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), LaunchTabHelpIds.RUN_MODE_CONNECTION);

        GridLayout topLayout = new GridLayout();
        topLayout.numColumns = 2;
        comp.setLayout(topLayout);

        createVerticalSpacer(comp, 2);
        createWidgets(comp, 2);

        Dialog.applyDialogFont(parent);
    }

    protected void createWidgets(Composite parent, int colSpan) {
        final Label portLabel = new Label(parent, SWT.NONE);
        portLabel.setText(Messages.getString("CrashDebugConnectionTab.0")); //$NON-NLS-1$
        GridData data = new GridData();
        data.horizontalSpan = 1;
        portLabel.setLayoutData(data);
        portLabel.setToolTipText(Messages.getString("CrashDebugConnectionTab.1")); //$NON-NLS-1$

        // COM port pulldown list.
        //
        port = new Combo(parent, SWT.READ_ONLY);
        port.setItems(ComPortHelper.getComPortNames());
        data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
        data.horizontalSpan = 1;
        port.setLayoutData(data);
        port.setToolTipText(Messages.getString("CrashDebugConnectionTab.1")); //$NON-NLS-1$
        port.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                updateLaunchConfigurationDialog();
            }
        });

        final Label rateLabel = new Label(parent, SWT.NONE);
        rateLabel.setText(Messages.getString("CrashDebugConnectionTab.2")); //$NON-NLS-1$
        data = new GridData();
        data.horizontalSpan = 1;
        rateLabel.setLayoutData(data);
        rateLabel.setToolTipText(Messages.getString("CrashDebugConnectionTab.3")); //$NON-NLS-1$

        baudRate = new Combo(parent, SWT.READ_ONLY);
        baudRate.setItems(new String[] { "300", "1200", "2400", "4800", "9600", "19200", "38400", "57600", "115200", //$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$
                "230400" }); //$NON-NLS-1$
        data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
        data.horizontalSpan = 1;
        baudRate.setLayoutData(data);
        baudRate.setToolTipText(Messages.getString("CrashDebugConnectionTab.3")); //$NON-NLS-1$
        baudRate.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                updateLaunchConfigurationDialog();
            }
        });

        final Label dataBitsLabel = new Label(parent, SWT.NONE);
        dataBitsLabel.setText(Messages.getString("CrashDebugConnectionTab.4")); //$NON-NLS-1$
        data = new GridData();
        data.horizontalSpan = 1;
        dataBitsLabel.setLayoutData(data);
        dataBitsLabel.setToolTipText(Messages.getString("CrashDebugConnectionTab.5")); //$NON-NLS-1$

        dataBits = new Combo(parent, SWT.READ_ONLY);
        dataBits.setItems(new String[] { "4", "5", "6", "7", "8" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$
        data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
        data.horizontalSpan = 1;
        dataBits.setLayoutData(data);
        dataBits.setToolTipText(Messages.getString("CrashDebugConnectionTab.5")); //$NON-NLS-1$
        dataBits.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                updateLaunchConfigurationDialog();
            }
        });

        final Label parityLabel = new Label(parent, SWT.NONE);
        parityLabel.setText(Messages.getString("CrashDebugConnectionTab.6")); //$NON-NLS-1$
        data = new GridData();
        data.horizontalSpan = 1;
        parityLabel.setLayoutData(data);
        parityLabel.setToolTipText(Messages.getString("CrashDebugConnectionTab.7")); //$NON-NLS-1$

        parity = new Combo(parent, SWT.READ_ONLY);
        parity.setItems(new String[] { Messages.getString("CrashDebugConnectionTab.12"), //$NON-NLS-1$
                Messages.getString("CrashDebugConnectionTab.13"), //$NON-NLS-1$
                Messages.getString("CrashDebugConnectionTab.14") }); //$NON-NLS-1$
        data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
        data.horizontalSpan = 1;
        parity.setLayoutData(data);
        parity.setToolTipText(Messages.getString("CrashDebugConnectionTab.7")); //$NON-NLS-1$
        parity.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                updateLaunchConfigurationDialog();
            }
        });

        final Label stopBitsLabel = new Label(parent, SWT.NONE);
        stopBitsLabel.setText(Messages.getString("CrashDebugConnectionTab.8")); //$NON-NLS-1$
        data = new GridData();
        data.horizontalSpan = 1;
        stopBitsLabel.setLayoutData(data);
        stopBitsLabel.setToolTipText(Messages.getString("CrashDebugConnectionTab.9")); //$NON-NLS-1$

        stopBits = new Combo(parent, SWT.READ_ONLY);
        stopBits.setItems(new String[] { "1", "1.5", "2" }); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
        data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
        data.horizontalSpan = 1;
        stopBits.setLayoutData(data);
        stopBits.setToolTipText(Messages.getString("CrashDebugConnectionTab.9")); //$NON-NLS-1$
        stopBits.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                updateLaunchConfigurationDialog();
            }
        });

        final Label flowControlLabel = new Label(parent, SWT.NONE);
        flowControlLabel.setText(Messages.getString("CrashDebugConnectionTab.10")); //$NON-NLS-1$
        data = new GridData();
        data.horizontalSpan = 1;
        flowControlLabel.setLayoutData(data);
        flowControlLabel.setToolTipText(Messages.getString("CrashDebugConnectionTab.11")); //$NON-NLS-1$

        flowControl = new Combo(parent, SWT.READ_ONLY);
        flowControl.setItems(new String[] { Messages.getString("CrashDebugConnectionTab.12"), //$NON-NLS-1$
                Messages.getString("CrashDebugConnectionTab.15"), //$NON-NLS-1$
                Messages.getString("CrashDebugConnectionTab.16") }); //$NON-NLS-1$
        data = new GridData(GridData.HORIZONTAL_ALIGN_FILL);
        data.horizontalSpan = 1;
        flowControl.setLayoutData(data);
        flowControl.setToolTipText(Messages.getString("CrashDebugConnectionTab.11")); //$NON-NLS-1$
        flowControl.addSelectionListener(new SelectionAdapter() {
            public void widgetSelected(SelectionEvent e) {
                updateLaunchConfigurationDialog();
            }
        });

    }

    /* (non-Javadoc)
     * @see org.eclipse.debug.ui.ILaunchConfigurationTab#setDefaults(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
     */
    public void setDefaults(ILaunchConfigurationWorkingCopy config) {
    }

    /* (non-Javadoc)
     * @see org.eclipse.debug.ui.ILaunchConfigurationTab#initializeFrom(org.eclipse.debug.core.ILaunchConfiguration)
     */
    public void initializeFrom(ILaunchConfiguration configuration) {
        try {
            port.select(configuration.getAttribute(SettingsData.spn_SerialComm_port, 0));
            baudRate.select(configuration.getAttribute(SettingsData.spn_SerialComm_rate, 8));
            dataBits.select(configuration.getAttribute(SettingsData.spn_SerialComm_databits, 4));
            parity.select(configuration.getAttribute(SettingsData.spn_SerialComm_parity, 0));
            stopBits.select(configuration.getAttribute(SettingsData.spn_SerialComm_stopbits, 0));
            flowControl.select(configuration.getAttribute(SettingsData.spn_SerialComm_flowcontrol, 0));

        } catch (CoreException e) {
            e.printStackTrace();
        }

    }

    /* (non-Javadoc)
     * @see org.eclipse.debug.ui.ILaunchConfigurationTab#performApply(org.eclipse.debug.core.ILaunchConfigurationWorkingCopy)
     */
    public void performApply(ILaunchConfigurationWorkingCopy configuration) {
        configuration.setAttribute(SettingsData.spn_SerialComm_port, port.getSelectionIndex());
        SymbianPlugin.getDefault().getPluginPreferences().setValue(SettingsData.spn_SerialComm_port,
                port.getSelectionIndex());
        configuration.setAttribute(SettingsData.spn_SerialComm_rate, baudRate.getSelectionIndex());
        configuration.setAttribute(SettingsData.spn_SerialComm_databits, dataBits.getSelectionIndex());
        configuration.setAttribute(SettingsData.spn_SerialComm_parity, parity.getSelectionIndex());
        configuration.setAttribute(SettingsData.spn_SerialComm_stopbits, stopBits.getSelectionIndex());
        configuration.setAttribute(SettingsData.spn_SerialComm_flowcontrol, flowControl.getSelectionIndex());
    }

    /* (non-Javadoc)
     * @see org.eclipse.debug.ui.ILaunchConfigurationTab#getName()
     */
    public String getName() {
        return Messages.getString("CrashDebugConnectionTab.17"); //$NON-NLS-1$
    }

    /*
     * (non-Javadoc)
     * 
     * @see org.eclipse.debug.ui.ILaunchConfigurationTab#getImage()
     */
    public Image getImage() {
        return LaunchImages.get(LaunchImages.IMG_VIEW_CONNECTION_TAB);
    }
}