sysperfana/analyzetoolext/com.nokia.s60tools.analyzetool/src/com/nokia/s60tools/analyzetool/ui/OutputModeDialog.java
author Matti Laitinen <matti.t.laitinen@nokia.com>
Tue, 24 Aug 2010 12:16:27 +0300
changeset 15 0367d2db2c06
permissions -rw-r--r--
AnalyzeTool Carbide extension 1.10.0

/*
 * Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "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:  Definitions for the class OutputModeDialog
 *
 */

package com.nokia.s60tools.analyzetool.ui;

import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import org.eclipse.ui.PlatformUI;

import com.nokia.s60tools.analyzetool.Activator;
import com.nokia.s60tools.analyzetool.AnalyzeToolHelpContextIDs;
import com.nokia.s60tools.analyzetool.global.Constants;

public class OutputModeDialog extends Dialog implements Listener {

	private Button traceOutputButton;
	private Button fileOutputButton;

	private Label logPath;
	private Text logPathText;

	private Label logFileName;
	private Text logFileNameText;

	private String outputMode;
	private String path;
	private String fileName;

	public OutputModeDialog(Shell shell) {
		super(shell);
	}

	@Override
	protected void configureShell(Shell shell) {
		shell.setText(Constants.PREFS_LOGGING_MODE_TITLE);
		super.configureShell(shell);
	}

	@Override
	protected Control createDialogArea(Composite parent) {
		final Composite container = (Composite) super.createDialogArea(parent);
		container.setLayout(new GridLayout(1, false));

		traceOutputButton = new Button(container, SWT.RADIO);
		traceOutputButton.setToolTipText(Constants.PREFS_EXT_FAST_TOOLTIP);
		traceOutputButton.setText(Constants.PREFS_EXT_FAST);
		traceOutputButton.addListener(SWT.Selection, this);
		
		fileOutputButton = new Button(container, SWT.RADIO);
		fileOutputButton.setToolTipText(Constants.PREFS_S60_TOOLTIP);
		fileOutputButton.setText(Constants.PREFS_S60);
		fileOutputButton.addListener(SWT.Selection, this);
	
		Composite compS60 = new Composite(container, SWT.NULL);

		final GridLayout layoutS60 = new GridLayout();
		layoutS60.marginLeft = 15;
		layoutS60.numColumns = 2;
		compS60.setLayout(layoutS60);

		logPath = new Label(compS60, SWT.NONE);
		logPath.setToolTipText("Log file path in the device.");
		logPath.setText("Log file path:");

		logPathText = new Text(compS60, SWT.BORDER);
		logPathText.setLayoutData(new GridData(280, SWT.DEFAULT));

		logFileName = new Label(compS60, SWT.NONE);
		logFileName.setToolTipText("Log file name.");
		logFileName.setText("Filename:");

		logFileNameText = new Text(compS60, SWT.BORDER);
		logFileNameText.setLayoutData(new GridData(280, SWT.DEFAULT));

		IPreferenceStore store = Activator.getPreferences();
		String path = store.getString(Constants.DEVICE_LOG_FILE_PATH);

		if (!path.equals("")) {
			logPathText.setText(path);
		} else {
			logPathText.setText("C:\\logs\\atool\\");
		}

		String fileName = store.getString(Constants.DEVICE_LOG_FILE_NAME);

		if (!fileName.equals("")) {
			logFileNameText.setText(fileName);
		} else {
			logFileNameText.setText("%processname%.dat");
		}

		traceOutputButton.setSelection(true);
		logPath.setEnabled(false);
		logPathText.setEnabled(false);
		logFileName.setEnabled(false);
		logFileNameText.setEnabled(false);
		
		return container;
	}

	@Override
	protected void okPressed() {
		if (traceOutputButton.getSelection()) {
			outputMode = Constants.LOGGING_EXT_FAST;
		}

		if (fileOutputButton.getSelection()) {
			outputMode = Constants.LOGGING_S60;
			path = logPathText.getText();
			fileName = logFileNameText.getText();
		}
		super.okPressed();
	}

	public String getOutputMode() {
		return outputMode;
	}

	public String getFileName() {
		return fileName;
	}

	public String getLogPath() {
		return path;
	}

	public void handleEvent(Event event) {
		if (event.widget == traceOutputButton) {
			logPath.setEnabled(false);
			logPathText.setEnabled(false);
			logFileName.setEnabled(false);
			logFileNameText.setEnabled(false);
		} else if (event.widget == fileOutputButton) {
			logPath.setEnabled(true);
			logPathText.setEnabled(true);
			logFileName.setEnabled(true);
			logFileNameText.setEnabled(true);
		}
	}
}