crashanalysis/crashanalyser/com.nokia.s60tools.crashanalyser/src/com/nokia/s60tools/crashanalyser/ui/wizards/CrashAnalyserWizard.java
author Matti Laitinen <matti.t.laitinen@nokia.com>
Thu, 11 Feb 2010 15:06:45 +0200
changeset 0 5ad7ad99af01
child 4 615035072f7e
permissions -rw-r--r--
Initial version of CrashAnalyser under EPL
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     1
/*
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     2
* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies). 
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     3
* All rights reserved.
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     4
* This component and the accompanying materials are made available
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     6
* which accompanies this distribution, and is available
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     8
*
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     9
* Initial Contributors:
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    11
*
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    12
* Contributors:
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    13
*
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    14
* Description:
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    15
*
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    16
*/
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    17
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    18
package com.nokia.s60tools.crashanalyser.ui.wizards;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    19
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    20
import org.eclipse.core.runtime.IConfigurationElement;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    21
import org.eclipse.core.runtime.IExtension;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    22
import org.eclipse.core.runtime.IExtensionPoint;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    23
import org.eclipse.core.runtime.IExtensionRegistry;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    24
import org.eclipse.core.runtime.IProgressMonitor;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    25
import org.eclipse.core.runtime.Platform;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    26
import org.eclipse.jface.dialogs.MessageDialog;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    27
import org.eclipse.jface.operation.IRunnableWithProgress;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    28
import org.eclipse.jface.resource.ImageDescriptor;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    29
import org.eclipse.jface.viewers.IStructuredSelection;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    30
import org.eclipse.jface.wizard.IWizardPage;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    31
import org.eclipse.swt.widgets.Display;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    32
import org.eclipse.ui.IWorkbench;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    33
import com.nokia.s60tools.ui.wizards.S60ToolsWizard;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    34
import com.nokia.s60tools.crashanalyser.model.*;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    35
import com.nokia.s60tools.crashanalyser.plugin.CrashAnalyserPlugin;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    36
import com.nokia.s60tools.crashanalyser.resources.*;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    37
import com.nokia.s60tools.crashanalyser.ui.views.*;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    38
import com.nokia.s60tools.crashanalyser.data.*;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    39
import com.nokia.s60tools.crashanalyser.export.ICrashFileProvider;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    40
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    41
import java.util.*;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    42
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    43
/**
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    44
 * Crash Analyser Wizard is used for collecting required data from user so that CrashAnalyser.exe 
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    45
 * can be executed.
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    46
 *
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    47
 */
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    48
public class CrashAnalyserWizard extends S60ToolsWizard {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    49
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    50
	static private final ImageDescriptor bannerImgDescriptor = ImageResourceManager.getImageDescriptor(ImageKeys.WIZARD_BANNER);
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    51
	List<CrashFileBundle> filesToDecode = null;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    52
	IWizardPage returnPage = null;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    53
	ErrorLibrary errorLibrary;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    54
	FileOrPathSelectionPage crashFileOrFolderSelectionPage = null;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    55
	FilesSelectionPage filesSelectionPage = null;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    56
	ParameterFilesPage parameterFilesPage = null;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    57
	DecoderEngine engine;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    58
	String userProvidedCrashFileOrFolder;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    59
	boolean crashAnalyserExeExecutionSuccess = false;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    60
	boolean readCrashFileFromDevice = false;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    61
	String providedFileOrFolder = "";
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    62
	String errorMessage = "";
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    63
	String[] filesToBeSelectedOnSecondPage = null;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    64
	final String EXTENSION_FILE_PROVIDER = "fileprovider"; //$NON-NLS-1$
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    65
	ICrashFileProvider fileProvider = null;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    66
	/**
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    67
	 * Constructor
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    68
	 * @param filesToBeDecoded list of files to be decoded. If null is passed, wizard will start from the beginning. 
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    69
	 * If list contains files, then wizard is started from the 3rd page
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    70
	 * @param library error library
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    71
	 */
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    72
	public CrashAnalyserWizard(List<CrashFileBundle> filesToBeDecoded, ErrorLibrary library) {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    73
		super(bannerImgDescriptor);
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    74
		engine = new DecoderEngine();
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    75
		filesToDecode = filesToBeDecoded;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    76
		errorLibrary = library;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    77
		readFileProvider();
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    78
	}
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    79
	
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    80
	/**
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    81
	 * Constructor (used in drag&drop cases)
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    82
	 * @param prefilledFileOrFolder single file or folder which is filled to 1st wizard page
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    83
	 * @param filesToSelect only these files should be shown in 2nd wizard page
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    84
	 * @param library error library
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    85
	 */
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    86
	public CrashAnalyserWizard(String prefilledFileOrFolder, String[] filesToSelect, ErrorLibrary library) {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    87
		super(bannerImgDescriptor);
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    88
		engine = new DecoderEngine();
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    89
		filesToDecode = null;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    90
		errorLibrary = library;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    91
		providedFileOrFolder = prefilledFileOrFolder;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    92
		filesToBeSelectedOnSecondPage = filesToSelect;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    93
		readFileProvider();
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    94
	}
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    95
	
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    96
	public void init(IWorkbench arg0, IStructuredSelection arg1) {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    97
		// No implementation needed
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    98
	}
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    99
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   100
	
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   101
	@Override
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   102
	public boolean needsProgressMonitor() {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   103
		return true;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   104
	}	
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   105
	
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   106
	@Override
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   107
	public void addPages() {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   108
		// we are doing a full import, add all pages
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   109
		if (filesToDecode == null) {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   110
			crashFileOrFolderSelectionPage = 
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   111
				new FileOrPathSelectionPage(engine, 
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   112
											errorLibrary, 
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   113
											providedFileOrFolder, 
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   114
											this,
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   115
											fileProvider);
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   116
			addPage(crashFileOrFolderSelectionPage);
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   117
			
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   118
			filesSelectionPage = new FilesSelectionPage(engine, filesToBeSelectedOnSecondPage);
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   119
			addPage(filesSelectionPage);
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   120
			
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   121
			parameterFilesPage = new ParameterFilesPage(engine, false);
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   122
			addPage(parameterFilesPage);
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   123
		
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   124
			setWindowTitle("Crash Analyser - Crash File Import Wizard");
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   125
			
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   126
			// files were drag&dropped, "press next automatically"
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   127
			if (!"".equals(providedFileOrFolder))
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   128
				moveToSecondPage();
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   129
			
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   130
		// we are re-decoding files provided by user, show only "3rd" page
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   131
		} else {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   132
			parameterFilesPage = new ParameterFilesPage(engine, true);
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   133
			addPage(parameterFilesPage);
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   134
			
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   135
			engine.setCrashFiles(filesToDecode);
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   136
			
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   137
			setWindowTitle("Crash Analyser - Re-Decoding Selected Files");
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   138
		}
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   139
	}
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   140
	
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   141
	public void moveToSecondPageRequest(String[] showOnlyTheseFiles) {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   142
		filesSelectionPage.showOnlyTheseFiles(showOnlyTheseFiles);
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   143
		moveToSecondPage();
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   144
	}
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   145
	
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   146
	public void moveToSecondPageRequest(boolean readFilesFromDevice) {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   147
		readCrashFileFromDevice = readFilesFromDevice;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   148
		moveToSecondPage();
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   149
	}
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   150
	
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   151
	/**
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   152
	 * When user has drag&dropped files, we "automatically press next" 
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   153
	 * in the first wizard page.
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   154
	 */
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   155
	void moveToSecondPage() {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   156
		Runnable showWizardRunnable = new Runnable(){
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   157
			public void run(){
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   158
				IWizardPage nextPage = getNextPage(crashFileOrFolderSelectionPage);
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   159
				if (nextPage != null)
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   160
					getContainer().showPage(nextPage);
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   161
			}
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   162
		};
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   163
		
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   164
		Display.getDefault().asyncExec(showWizardRunnable);   		
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   165
	}
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   166
	
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   167
	
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   168
	@Override
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   169
	public boolean performFinish() {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   170
		boolean fullImport = crashFileOrFolderSelectionPage != null;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   171
		
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   172
		// full import is the case when wizard is started from page 1
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   173
		if (fullImport) {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   174
			// if Finish was pressed in 2nd wizard page, symbol page (3rd page) was not used
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   175
			// false here would mean that only "decoded" files (.crashxml) files were selected.
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   176
			boolean symbolPageWasUsed = this.getContainer().getCurrentPage() != filesSelectionPage;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   177
	
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   178
			DecodingData decodingData = new DecodingData();
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   179
			decodingData.importingFiles = true;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   180
	
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   181
			// save 1st page
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   182
			crashFileOrFolderSelectionPage.saveUserEnteredData();
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   183
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   184
			decodingData.crashFileIndexes = filesSelectionPage.getFileIndexes();
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   185
			
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   186
			if (symbolPageWasUsed) {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   187
				// save 3rd page
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   188
				parameterFilesPage.saveUserEnteredData();
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   189
				decodingData.symbolFiles = parameterFilesPage.getSymbolFiles();
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   190
				decodingData.mapFilesFolder = parameterFilesPage.getMapFilesFolder();
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   191
				decodingData.mapFilesZip = parameterFilesPage.getMapFilesZip();
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   192
				decodingData.imageFiles = parameterFilesPage.getImageFiles();
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   193
			}
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   194
			
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   195
			decodingData.errorLibrary = errorLibrary;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   196
			
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   197
			engine.setDecodingData(decodingData);
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   198
			
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   199
		// not full import is the case when files are Re-Decoded via MainView
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   200
		} else {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   201
			DecodingData decodingData = new DecodingData();
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   202
			decodingData.importingFiles = false;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   203
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   204
			// save 3rd page
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   205
			parameterFilesPage.saveUserEnteredData();
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   206
			decodingData.symbolFiles = parameterFilesPage.getSymbolFiles();
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   207
			decodingData.mapFilesFolder = parameterFilesPage.getMapFilesFolder();
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   208
			decodingData.mapFilesZip = parameterFilesPage.getMapFilesZip();
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   209
			decodingData.imageFiles = parameterFilesPage.getImageFiles();
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   210
			
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   211
			decodingData.errorLibrary = errorLibrary;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   212
			
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   213
			engine.setDecodingData(decodingData);
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   214
		}
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   215
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   216
		MainView mainView = MainView.showAndReturnYourself();
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   217
		if (mainView != null) {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   218
			mainView.startDecoding(engine);
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   219
		}
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   220
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   221
		return true;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   222
	}
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   223
	
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   224
	public boolean canFinish()
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   225
	{
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   226
		if (this.getContainer().getCurrentPage() == filesSelectionPage) {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   227
			return filesSelectionPage.canFinish();
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   228
		} else if (this.getContainer().getCurrentPage() == parameterFilesPage) {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   229
			return parameterFilesPage.canFinish();
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   230
		} else {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   231
			return false;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   232
		}
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   233
	}
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   234
	
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   235
	public IWizardPage getNextPage(IWizardPage page) {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   236
		// We are moving from 1st page to 2nd page.
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   237
		// We need to run CrashAnalyser.exe to get summary data for crash files
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   238
		if(page.equals(crashFileOrFolderSelectionPage)){
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   239
			returnPage = null;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   240
			userProvidedCrashFileOrFolder = crashFileOrFolderSelectionPage.getSelectedFileOrFolder();
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   241
			crashAnalyserExeExecutionSuccess = false;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   242
			try {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   243
				getContainer().run(true, false, new IRunnableWithProgress() {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   244
					public void run(IProgressMonitor monitor) {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   245
						errorMessage = "";
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   246
						// run CrashAnalyser.exe for summary information for selected file(s).
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   247
						if (readCrashFileFromDevice && fileProvider != null) {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   248
							errorMessage = fileProvider.executeFunctionality(DecoderEngine.getTemporaryCrashFileFolder(true));
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   249
							userProvidedCrashFileOrFolder = DecoderEngine.getTemporaryCrashFileFolder(false);
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   250
						}
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   251
						crashAnalyserExeExecutionSuccess = 
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   252
							engine.processSummaryInfoForFiles(userProvidedCrashFileOrFolder, errorLibrary, monitor);
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   253
					}
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   254
				}
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   255
				);
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   256
			} catch (Exception e) {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   257
				e.printStackTrace();
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   258
			}
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   259
			
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   260
			// CrashAnalyser.exe execution was successful -> return next wizard page
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   261
			if (crashAnalyserExeExecutionSuccess) {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   262
				crashFileOrFolderSelectionPage.errorInProcessingNextPress(false);
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   263
				filesSelectionPage.loadTable();
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   264
				returnPage = filesSelectionPage;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   265
			// CrashAnalyser.exe execution was unsuccessful, don't proceed to next 
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   266
			// wizard page -> return current page
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   267
			} else {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   268
				if (readCrashFileFromDevice) {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   269
					if ("".equals(errorMessage)) {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   270
						showMessage("The device did not contain any crash files");
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   271
					} else {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   272
						showMessage("Could not read crash files. Please check PC Suite connection.\n\nError:\n" + errorMessage);
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   273
					}
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   274
				} else {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   275
					crashFileOrFolderSelectionPage.errorInProcessingNextPress(true);
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   276
				}
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   277
				returnPage = crashFileOrFolderSelectionPage;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   278
				filesSelectionPage.showOnlyTheseFiles(null);
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   279
			}			
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   280
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   281
			readCrashFileFromDevice = false;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   282
			
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   283
			return returnPage;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   284
		}
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   285
		// We are moving from 2nd page to 3rd/4th page.
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   286
		else if (page.equals(filesSelectionPage)) {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   287
			// only (already "decoded") output.crashxml files have been selected in 2nd page.
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   288
			// Skip parameterFiles page and go to additionalSettingsPage, because we don't have
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   289
			// to query for symbols etc. because there is nothing to decode.
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   290
			return parameterFilesPage;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   291
		}
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   292
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   293
		return null;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   294
	}
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   295
	
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   296
	/**
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   297
	 * Shows a message box with given message
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   298
	 * @param message
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   299
	 */
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   300
	private void showMessage(String message) {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   301
		MessageDialog.openInformation(
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   302
			getShell(),
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   303
			"Crash Analyser",
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   304
			message);
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   305
	}
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   306
	
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   307
	@Override
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   308
	public boolean performCancel() {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   309
		DecoderEngine.getTemporaryCrashFileFolder(true);
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   310
		return super.performCancel();
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   311
	}
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   312
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   313
	/**
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   314
	 * Tries to find plugins which are File Providers. Selectes the first found
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   315
	 * File provider plugin.
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   316
	 */
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   317
	void readFileProvider() {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   318
		try {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   319
			IExtensionRegistry er = Platform.getExtensionRegistry();
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   320
			IExtensionPoint ep = 
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   321
				er.getExtensionPoint(CrashAnalyserPlugin.PLUGIN_ID, EXTENSION_FILE_PROVIDER);
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   322
			IExtension[] extensions = ep.getExtensions();
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   323
			
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   324
			// if plug-ins were found.
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   325
			if (extensions != null && extensions.length > 0) {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   326
				
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   327
				// read all found trace providers
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   328
				for (int i = 0; i < extensions.length; i++) {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   329
					IConfigurationElement[] ce = extensions[i].getConfigurationElements();
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   330
					if (ce != null && ce.length > 0) {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   331
						try {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   332
							ICrashFileProvider provider = (ICrashFileProvider)ce[0].createExecutableExtension("class");
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   333
							// we support only one trace provider
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   334
							if (provider != null) {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   335
								fileProvider = provider;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   336
								break;
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   337
							}
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   338
						} catch (Exception e) {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   339
							e.printStackTrace();
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   340
						}
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   341
					}
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   342
				}
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   343
			}
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   344
		} catch (Exception e) {
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   345
			e.printStackTrace();
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   346
		}
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   347
	}
5ad7ad99af01 Initial version of CrashAnalyser under EPL
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   348
}