trace/tracebuilder/com.nokia.tracebuilder.eclipse/src/com/nokia/tracebuilder/eclipse/TraceProjectMonitor.java
author Matti Laitinen <matti.t.laitinen@nokia.com>
Wed, 23 Jun 2010 14:35:40 +0300
changeset 10 ed1c9f64298a
permissions -rw-r--r--
TraceBuilder 2.4.0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     1
/*
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     2
 * Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     3
 * All rights reserved.
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     8
 *
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
     9
 * Initial Contributors:
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    11
 *
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    12
 * Contributors:
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    13
 *
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    14
 * Description:
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    15
 *
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    16
 * Workbench monitor which opens / closes the trace project
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    17
 *
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    18
 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    19
package com.nokia.tracebuilder.eclipse;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    20
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    21
import java.io.BufferedReader;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    22
import java.io.BufferedWriter;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    23
import java.io.DataInputStream;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    24
import java.io.File;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    25
import java.io.FileInputStream;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    26
import java.io.FileNotFoundException;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    27
import java.io.FileOutputStream;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    28
import java.io.FilenameFilter;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    29
import java.io.IOException;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    30
import java.io.InputStream;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    31
import java.io.InputStreamReader;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    32
import java.io.OutputStreamWriter;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    33
import java.util.ArrayList;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    34
import java.util.List;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    35
import java.util.Vector;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    36
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    37
import org.eclipse.core.resources.IFile;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    38
import org.eclipse.core.resources.IProject;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    39
import org.eclipse.core.resources.IWorkspace;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    40
import org.eclipse.core.resources.ResourcesPlugin;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    41
import org.eclipse.core.runtime.CoreException;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    42
import org.eclipse.core.runtime.IPath;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    43
import org.eclipse.core.runtime.Path;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    44
import org.eclipse.jface.text.Document;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    45
import org.eclipse.jface.text.IDocument;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    46
import org.eclipse.ui.IEditorReference;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    47
import org.eclipse.ui.IWorkbenchPage;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    48
import org.eclipse.ui.IWorkbenchWindow;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    49
import org.eclipse.ui.PlatformUI;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    50
import org.eclipse.ui.texteditor.ITextEditor;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    51
import org.osgi.framework.Version;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    52
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    53
import com.nokia.carbide.cdt.builder.CarbideBuilderPlugin;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    54
import com.nokia.carbide.cdt.builder.DefaultMMPViewConfiguration;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    55
import com.nokia.carbide.cdt.builder.EMMPPathContext;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    56
import com.nokia.carbide.cdt.builder.EpocEngineHelper;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    57
import com.nokia.carbide.cdt.builder.ICarbideBuildManager;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    58
import com.nokia.carbide.cdt.builder.InvalidDriveInMMPPathException;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    59
import com.nokia.carbide.cdt.builder.MMPViewPathHelper;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    60
import com.nokia.carbide.cdt.builder.project.ICarbideBuildConfiguration;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    61
import com.nokia.carbide.cdt.builder.project.ICarbideProjectInfo;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    62
import com.nokia.carbide.cpp.epoc.engine.EpocEnginePlugin;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    63
import com.nokia.carbide.cpp.epoc.engine.MMPDataRunnableAdapter;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    64
import com.nokia.carbide.cpp.epoc.engine.MMPViewRunnableAdapter;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    65
import com.nokia.carbide.cpp.epoc.engine.model.mmp.EMMPStatement;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    66
import com.nokia.carbide.cpp.epoc.engine.model.mmp.IMMPData;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    67
import com.nokia.carbide.cpp.epoc.engine.model.mmp.IMMPView;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    68
import com.nokia.carbide.cpp.epoc.engine.preprocessor.AcceptedNodesViewFilter;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    69
import com.nokia.tracebuilder.engine.TraceBuilderConfiguration;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    70
import com.nokia.tracebuilder.engine.TraceBuilderGlobals;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    71
import com.nokia.tracebuilder.engine.TraceBuilderView;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    72
import com.nokia.tracebuilder.engine.TraceLocationConverter;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    73
import com.nokia.tracebuilder.engine.TraceLocationMap;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    74
import com.nokia.tracebuilder.engine.TraceProjectMonitorInterface;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    75
import com.nokia.tracebuilder.engine.TraceBuilderErrorCodes.FileErrorParameters;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    76
import com.nokia.tracebuilder.engine.TraceBuilderErrorCodes.TraceBuilderErrorCode;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    77
import com.nokia.tracebuilder.engine.project.ProjectEngine;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    78
import com.nokia.tracebuilder.engine.source.SourceProperties;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    79
import com.nokia.tracebuilder.file.FileUtils;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    80
import com.nokia.tracebuilder.model.TraceBuilderException;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    81
import com.nokia.tracebuilder.project.GroupNameHandlerBase;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    82
import com.nokia.tracebuilder.project.GroupNameHandlerOSTv1;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    83
import com.nokia.tracebuilder.project.GroupNameHandlerOSTv2;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    84
import com.nokia.tracebuilder.source.SourceConstants;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    85
import com.nokia.tracebuilder.source.SourceDocumentInterface;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    86
import com.nokia.tracebuilder.utils.DocumentFactory;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    87
import com.nokia.carbide.cpp.sdk.core.SDKCorePlugin;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    88
import com.nokia.carbide.cpp.sdk.core.ISDKManager;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    89
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    90
/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    91
 * Workbench monitor which opens / closes the trace project
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    92
 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    93
 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    94
class TraceProjectMonitor implements WorkbenchListenerCallback,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    95
		TraceProjectMonitorInterface {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    96
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    97
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    98
	 * OST_INSTRUMENTATION_API_VERSION text
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
    99
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   100
	private static final String OST_INSTRUMENTATION_API_VERSION_TEXT = "OST_INSTRUMENTATION_API_VERSION"; //$NON-NLS-1$
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   101
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   102
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   103
	 * Regular expression for OST_INSTRUMENTATION_API_VERSION macro check
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   104
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   105
	private static final String OST_INSTRUMENTATION_API_VERSION_REGEX = "#define\\s+OST_INSTRUMENTATION_API_VERSION.*"; //$NON-NLS-1$
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   106
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   107
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   108
	 * OSTv1 version text
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   109
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   110
	private static final String OST_VERSION_1_X_X = "1.x.x"; //$NON-NLS-1$
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   111
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   112
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   113
	 * OSTv2 version text
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   114
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   115
	private static final String OST_VERSION_2_X_X = "2.x.x"; //$NON-NLS-1$
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   116
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   117
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   118
	 * OpenSystemTrace.h file name
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   119
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   120
	private static final String OPEN_SYSTEM_TRACE_H = "opensystemtrace.h"; //$NON-NLS-1$
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   121
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   122
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   123
	 * epoc32\include\include path as string
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   124
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   125
	private static final String EPOC32_INCLUDE_INTERNAL = "epoc32" + File.separator + "include" + File.separator + "internal"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   126
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   127
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   128
	 * epoc32\include\platform path as string
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   129
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   130
	private static final String EPOC32_INCLUDE_PLATFORM = "epoc32" + File.separator + "include" + File.separator + "platform"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   131
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   132
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   133
	 * PLATFORM_PATHS.HRH
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   134
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   135
	private static final String PLATFORM_PATHS_HRH = "PLATFORM_PATHS.HRH"; //$NON-NLS-1$
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   136
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   137
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   138
	 * #INCLUDE
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   139
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   140
	private static final String INCLUDE = "#INCLUDE"; //$NON-NLS-1$
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   141
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   142
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   143
	 * Multiline comment start
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   144
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   145
	private static final String MULTILINE_COMMENT_START = "/*"; //$NON-NLS-1$
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   146
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   147
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   148
	 * Comment
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   149
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   150
	private static final String COMMENT = "//"; //$NON-NLS-1$	
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   151
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   152
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   153
	 * Multiline comment end
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   154
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   155
	private static final String MULTILINE_COMMENT_END = "*/"; //$NON-NLS-1$
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   156
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   157
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   158
	 * ncp sw folder name
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   159
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   160
	private static final String NCP_SW_FOLDER_NAME = "ncp_sw"; //$NON-NLS-1$
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   161
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   162
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   163
	 * os folder name
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   164
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   165
	private static final String OS_FOLDER_NAME = "os"; //$NON-NLS-1$
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   166
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   167
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   168
	 * mw folder name
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   169
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   170
	private static final String MW_FOLDER_NAME = "mw"; //$NON-NLS-1$
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   171
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   172
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   173
	 * sf folder name
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   174
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   175
	private static final String SF_FOLDER_NAME = "sf"; //$NON-NLS-1$
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   176
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   177
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   178
	 * platform_paths.hrh include
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   179
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   180
	private static final String INCLUDE_PLATFORM_PATHS_HRH = "#include \"platform_paths.hrh\""; //$NON-NLS-1$
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   181
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   182
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   183
	 * OS layer system include macro
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   184
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   185
	private static final String OS_LAYER_SYSTEMINCLUDE_MACRO = "OS_LAYER_SYSTEMINCLUDE"; //$NON-NLS-1$
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   186
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   187
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   188
	 * MW layer system include macro
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   189
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   190
	private static final String MW_LAYER_SYSTEMINCLUDE_MACRO = "MW_LAYER_SYSTEMINCLUDE"; //$NON-NLS-1$
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   191
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   192
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   193
	 * APP layer system include macro
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   194
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   195
	private static final String APP_LAYER_SYSTEMINCLUDE_MACRO = "APP_LAYER_SYSTEMINCLUDE"; //$NON-NLS-1$
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   196
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   197
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   198
	 * Group directory
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   199
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   200
	private static final String GROUP_DIRECTORY = "group"; //$NON-NLS-1$	
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   201
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   202
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   203
	 * Traces directory
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   204
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   205
	public static final String TRACES_DIRECTORY = "traces"; //$NON-NLS-1$
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   206
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   207
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   208
	 * MmpFiles directory
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   209
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   210
	private static final String MMPFILES_DIRECTORY = "mmpfiles"; //$NON-NLS-1$
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   211
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   212
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   213
	 * Underscore character
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   214
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   215
	public static final String UNDERSCORE = "_"; //$NON-NLS-1$
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   216
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   217
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   218
	 * The workbench listener
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   219
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   220
	private WorkbenchListener listener;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   221
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   222
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   223
	 * Project path that is currently open
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   224
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   225
	private String openProjectPath;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   226
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   227
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   228
	 * Project object that is currently open
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   229
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   230
	private IProject openProjectObject;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   231
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   232
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   233
	 * Trace project include added to MMP files
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   234
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   235
	private boolean mmpFileModified;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   236
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   237
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   238
	 * Name of the "traces_<component name>" folder
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   239
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   240
	private String tracesComponentNameFolder;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   241
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   242
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   243
	 * Name of the "traces_<target_name>_<target_type>" folder
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   244
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   245
	private String tracesTargetNameTargetTypeFolder;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   246
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   247
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   248
	 * Name of the "traces\<target_name>_<target_ext>" folder
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   249
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   250
	private String tracesDirTargetNameTargetExtFolder;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   251
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   252
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   253
	 * Trace folder name used in SBSv2
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   254
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   255
	private String sbsv2TraceFolderName;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   256
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   257
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   258
	 * Select software component flag
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   259
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   260
	private boolean selectSoftwareComponent = true;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   261
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   262
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   263
	 * Select software component check needed flag
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   264
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   265
	private boolean selectSoftwareComponentCheckNeeded = false;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   266
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   267
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   268
	 * Trace folder changed flag
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   269
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   270
	private boolean traceFolderChanged = false;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   271
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   272
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   273
	 * Previous file included more than once flag
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   274
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   275
	private boolean previousFileIncludedMoreThanOnce = false;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   276
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   277
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   278
	 * Editor opened flag
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   279
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   280
	private boolean editorOpened = false;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   281
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   282
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   283
	 * File object that is currently visible
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   284
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   285
	IFile openFileObject = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   286
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   287
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   288
	 * Trace folder name of the project that is currently visible
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   289
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   290
	String openProjectTraceFolderName = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   291
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   292
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   293
	 * OSTv1 start text
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   294
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   295
	private static final String OSTV1_START_TEXT = "1."; //$NON-NLS-1$	
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   296
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   297
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   298
	 * OSTv2 start text
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   299
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   300
	private static final String OSTV2_START_TEXT = "2."; //$NON-NLS-1$		
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   301
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   302
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   303
	 * Constructor
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   304
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   305
	TraceProjectMonitor() {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   306
		listener = new WorkbenchListener(this);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   307
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   308
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   309
	/*
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   310
	 * (non-Javadoc)
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   311
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   312
	 * @see
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   313
	 * com.nokia.tracebuilder.eclipse.TraceProjectMonitorInterface#startMonitor
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   314
	 * ()
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   315
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   316
	public void startMonitor() {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   317
		listener.startListener();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   318
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   319
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   320
	/*
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   321
	 * (non-Javadoc)
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   322
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   323
	 * @see
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   324
	 * com.nokia.tracebuilder.eclipse.TraceProjectMonitorInterface#stopMonitor()
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   325
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   326
	public void stopMonitor() {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   327
		listener.stopListener();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   328
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   329
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   330
	/*
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   331
	 * (non-Javadoc)
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   332
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   333
	 * @see com.nokia.tracebuilder.eclipse.WorkbenchListenerCallback#
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   334
	 * editorActivated(org.eclipse.ui.texteditor.ITextEditor,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   335
	 * org.eclipse.core.resources.IFile)
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   336
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   337
	public void editorActivated(ITextEditor editor, IFile file) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   338
		TraceBuilderView view = TraceBuilderGlobals.getView();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   339
		view.refresh();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   340
		if (editorOpened) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   341
			view.expandTraceGroupsBranch();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   342
			editorOpened = false;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   343
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   344
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   345
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   346
	/*
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   347
	 * (non-Javadoc)
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   348
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   349
	 * @see com.nokia.tracebuilder.eclipse.WorkbenchListenerCallback#
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   350
	 * editorClosed(org.eclipse.ui.texteditor.ITextEditor,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   351
	 * org.eclipse.core.resources.IFile)
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   352
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   353
	public void editorClosed(ITextEditor editor, IFile file) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   354
		if (!WorkbenchUtils.isEditorsOpen()) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   355
			if (openProjectPath != null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   356
				TraceBuilderGlobals.getTraceBuilder().closeProject();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   357
				openProjectPath = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   358
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   359
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   360
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   361
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   362
	/*
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   363
	 * (non-Javadoc)
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   364
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   365
	 * @see com.nokia.tracebuilder.eclipse.WorkbenchListenerCallback#
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   366
	 * editorOpened(org.eclipse.ui.texteditor.ITextEditor,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   367
	 * org.eclipse.core.resources.IFile)
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   368
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   369
	public void editorOpened(ITextEditor editor, IFile file) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   370
		openFileObject = file;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   371
		updateProject(file);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   372
		editorOpened = true;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   373
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   374
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   375
	/*
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   376
	 * (non-Javadoc)
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   377
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   378
	 * @see com.nokia.tracebuilder.eclipse.WorkbenchListenerCallback#
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   379
	 * editorHidden(org.eclipse.ui.texteditor.ITextEditor,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   380
	 * org.eclipse.core.resources.IFile)
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   381
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   382
	public void editorHidden(ITextEditor editor, IFile file) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   383
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   384
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   385
	/*
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   386
	 * (non-Javadoc)
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   387
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   388
	 * @see com.nokia.tracebuilder.eclipse.WorkbenchListenerCallback#
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   389
	 * editorVisible(org.eclipse.ui.texteditor.ITextEditor,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   390
	 * org.eclipse.core.resources.IFile)
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   391
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   392
	public void editorVisible(ITextEditor editor, IFile file) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   393
		if (!file.equals(openFileObject)) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   394
			updateProject(file);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   395
			openFileObject = file;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   396
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   397
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   398
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   399
	/*
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   400
	 * (non-Javadoc)
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   401
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   402
	 * @see com.nokia.tracebuilder.eclipse.WorkbenchListenerCallback#
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   403
	 * editorReplaced(org.eclipse.ui.texteditor.ITextEditor,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   404
	 * org.eclipse.core.resources.IFile)
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   405
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   406
	public void editorReplaced(ITextEditor editor, IFile file) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   407
		updateProject(file);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   408
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   409
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   410
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   411
	 * Opens the trace project related to given file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   412
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   413
	 * @param file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   414
	 *            the file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   415
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   416
	private void updateProject(IFile file) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   417
		IProject project = file.getProject();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   418
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   419
		// Check that project is Carbide project
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   420
		boolean isCarbideProject = CarbideBuilderPlugin.getBuildManager()
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   421
				.isCarbideProject(project);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   422
		if (isCarbideProject) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   423
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   424
			String projectPath = getProjectPath(file);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   425
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   426
			// If trace folder name or project changes, existing project
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   427
			// needs to be closed
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   428
			if (traceFolderChanged == true
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   429
					|| (openProjectPath != null && projectPath != null && !projectPath
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   430
							.equals(openProjectPath))) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   431
				TraceBuilderGlobals.getTraceBuilder().closeProject();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   432
				openProjectPath = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   433
				openProjectObject = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   434
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   435
			if (projectPath != null && !projectPath.equals(openProjectPath)) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   436
				try {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   437
					mmpFileModified = false;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   438
					openProjectPath = projectPath;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   439
					openProjectObject = file.getProject();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   440
					ProjectEngine.traceFolderName = openProjectTraceFolderName;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   441
					TraceBuilderGlobals.setProjectPath(projectPath);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   442
					initializeDefaultGroupNames();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   443
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   444
					// Get project name
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   445
					String projectName = getProjectName(projectPath);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   446
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   447
					// Save Epoc root of this SDK
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   448
					saveEpocRoot(openProjectObject);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   449
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   450
					// Open the project
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   451
					TraceBuilderGlobals.getTraceBuilder().openProject(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   452
							projectName);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   453
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   454
					// Parse traces from other source files in same
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   455
					// component
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   456
					parseOtherTracesFromComponent(file, project);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   457
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   458
				} catch (TraceBuilderException e) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   459
					openProjectPath = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   460
					openProjectObject = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   461
					// If a source file is not open, this error is not
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   462
					// relevant
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   463
					// The project will be opened when a source is opened
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   464
					if (e.getErrorCode() != TraceBuilderErrorCode.SOURCE_NOT_OPEN) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   465
						TraceBuilderGlobals.getEvents().postError(e);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   466
					}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   467
				}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   468
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   469
		} else {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   470
			TraceBuilderGlobals.getTraceBuilder().closeProject();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   471
			openProjectPath = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   472
			openProjectObject = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   473
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   474
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   475
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   476
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   477
	 * Initialize default group names based on used OST version
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   478
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   479
	 * @throws TraceBuilderException
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   480
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   481
	private void initializeDefaultGroupNames() throws TraceBuilderException {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   482
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   483
		// Initialize default group names
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   484
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   485
		String ostVersion = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   486
		IPath epocroot = WorkbenchUtils
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   487
				.getEpocRootForProject(openProjectObject);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   488
		String epocRootAsString = epocroot.toOSString();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   489
		File platformDir = new File(epocRootAsString + EPOC32_INCLUDE_PLATFORM);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   490
		File platformOpenSystemTraceFile = new File(platformDir,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   491
				OPEN_SYSTEM_TRACE_H);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   492
		if (platformOpenSystemTraceFile.exists()
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   493
				&& platformOpenSystemTraceFile.isFile()) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   494
			ostVersion = getOstVersion(platformOpenSystemTraceFile);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   495
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   496
			// If OST version is not defined in opensystemtrace.h file then
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   497
			// default is 1.x.x
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   498
			if (ostVersion == null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   499
				ostVersion = OST_VERSION_1_X_X;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   500
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   501
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   502
		} else {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   503
			File internalDir = new File(epocRootAsString
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   504
					+ EPOC32_INCLUDE_INTERNAL);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   505
			File internalOpenSystemTraceFile = new File(internalDir,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   506
					OPEN_SYSTEM_TRACE_H);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   507
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   508
			// If opensystemtrace.h file exist only in internal folder then
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   509
			// version is 1.x.x. In OSTv2 case opensystemtrace.h file should
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   510
			// newer exist only in internal folder, so it is enough that we
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   511
			// check version only from header in platform folder, because OSTv1
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   512
			// version of header does not contain version information.
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   513
			if (internalOpenSystemTraceFile.exists()
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   514
					&& internalOpenSystemTraceFile.isFile()) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   515
				ostVersion = OST_VERSION_1_X_X;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   516
			} else {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   517
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   518
				// If opensystemtrace.h file does not exist at all then default
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   519
				// is 2.x.x
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   520
				ostVersion = OST_VERSION_2_X_X;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   521
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   522
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   523
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   524
		// Check is OST version 1.x.x in use. If it is then use OSTv1 otherwise
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   525
		// use OSTv2
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   526
		GroupNameHandlerBase groupNameHandler = TraceBuilderGlobals
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   527
				.getGroupNameHandler();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   528
		if (ostVersion.startsWith(OSTV1_START_TEXT)) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   529
			if (!(groupNameHandler instanceof GroupNameHandlerOSTv1)) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   530
				TraceBuilderGlobals
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   531
						.setGroupNameHandler(new GroupNameHandlerOSTv1());
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   532
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   533
		} else if (ostVersion.startsWith(OSTV2_START_TEXT)) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   534
			if (!(groupNameHandler instanceof GroupNameHandlerOSTv2)) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   535
				TraceBuilderGlobals
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   536
						.setGroupNameHandler(new GroupNameHandlerOSTv2());
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   537
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   538
		} else {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   539
			throw new TraceBuilderException(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   540
					TraceBuilderErrorCode.UNKNOWN_OST_VERSION);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   541
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   542
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   543
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   544
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   545
	 * Get OST version from OpenSystemTrace.h file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   546
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   547
	 * @param platformOpenSystemTraceFile
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   548
	 *            open system trace API file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   549
	 * @return OST version Used OST version (e.g. 2.0.0)
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   550
	 * @throws TraceBuilderException
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   551
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   552
	private String getOstVersion(File platformOpenSystemTraceFile)
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   553
			throws TraceBuilderException {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   554
		String ostVersion = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   555
		FileInputStream fstream;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   556
		try {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   557
			fstream = new FileInputStream(platformOpenSystemTraceFile
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   558
					.toString());
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   559
			DataInputStream in = new DataInputStream(fstream);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   560
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   561
			BufferedReader br = new BufferedReader(new InputStreamReader(in));
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   562
			String strLine;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   563
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   564
			// Read opensystemtrace.h file line by line
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   565
			try {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   566
				while ((strLine = br.readLine()) != null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   567
					boolean versionDefinitionFound = strLine
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   568
							.matches(OST_INSTRUMENTATION_API_VERSION_REGEX);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   569
					if (versionDefinitionFound) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   570
						int versionNumberStart = strLine
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   571
								.indexOf(OST_INSTRUMENTATION_API_VERSION_TEXT)
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   572
								+ OST_INSTRUMENTATION_API_VERSION_TEXT.length();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   573
						ostVersion = strLine.substring(versionNumberStart);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   574
						ostVersion = ostVersion.trim();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   575
						break;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   576
					}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   577
				}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   578
			} catch (IOException e) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   579
				throw new TraceBuilderException(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   580
						TraceBuilderErrorCode.UNEXPECTED_EXCEPTION, e);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   581
			} finally {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   582
				try {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   583
					in.close();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   584
				} catch (IOException e1) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   585
					throw new TraceBuilderException(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   586
							TraceBuilderErrorCode.UNEXPECTED_EXCEPTION, e1);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   587
				}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   588
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   589
		} catch (FileNotFoundException e2) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   590
			FileErrorParameters params = new FileErrorParameters();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   591
			params.file = platformOpenSystemTraceFile.toString();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   592
			throw new TraceBuilderException(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   593
					TraceBuilderErrorCode.FILE_NOT_FOUND, params);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   594
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   595
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   596
		return ostVersion;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   597
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   598
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   599
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   600
	 * Parse traces from other source files in same component
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   601
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   602
	 * @param file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   603
	 *            the file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   604
	 * @param project
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   605
	 *            the project
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   606
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   607
	private void parseOtherTracesFromComponent(IFile file, IProject project) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   608
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   609
		if (file != null && project != null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   610
			ICarbideBuildConfiguration buildConfig = getBuildConfiguration(project);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   611
			if (buildConfig != null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   612
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   613
				// Get MMP files for given source file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   614
				for (final IPath mmpPath : EpocEngineHelper.getMMPsForSource(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   615
						openProjectObject, file.getLocation())) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   616
					IPath fullMmpPath = new Path(openProjectPath);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   617
					fullMmpPath = fullMmpPath.append(mmpPath);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   618
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   619
					String componentId = getComponentIdFromMMPFile(mmpPath,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   620
							project);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   621
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   622
					// Component ID in MMP file must be same as current software
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   623
					// component ID
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   624
					if (TraceBuilderGlobals.getCurrentSoftwareComponentId() != null
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   625
							&& TraceBuilderGlobals
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   626
									.getCurrentSoftwareComponentId().equals(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   627
											componentId)) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   628
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   629
						// Get source files for MMP file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   630
						for (final IPath sourcePath : EpocEngineHelper
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   631
								.getSourceFilesForConfiguration(buildConfig,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   632
										fullMmpPath)) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   633
							File source = new File(sourcePath.toOSString());
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   634
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   635
							// Check that source file is not same as opened file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   636
							if (!file.getName().equalsIgnoreCase(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   637
									source.getName())
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   638
									&& !isFileOpenedInEditor(source)) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   639
								IWorkspace workspace = ResourcesPlugin
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   640
										.getWorkspace();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   641
								IPath location = Path.fromOSString(source
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   642
										.getAbsolutePath());
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   643
								IFile isource = workspace.getRoot()
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   644
										.getFileForLocation(location);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   645
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   646
								// Parse traces from source file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   647
								parseTracesFromFile(isource);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   648
							}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   649
						}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   650
					}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   651
				}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   652
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   653
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   654
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   655
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   656
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   657
	 * Get build configuration
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   658
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   659
	 * @param project
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   660
	 *            the project
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   661
	 * @return the build configuration
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   662
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   663
	private ICarbideBuildConfiguration getBuildConfiguration(IProject project) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   664
		ICarbideBuildManager buildMgr = CarbideBuilderPlugin.getBuildManager();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   665
		ICarbideBuildConfiguration buildConfig = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   666
		if (buildMgr != null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   667
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   668
			// We do not need to check that is project Carbide
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   669
			// project because we have done that earlier
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   670
			ICarbideProjectInfo cpi = buildMgr.getProjectInfo(project);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   671
			if (cpi != null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   672
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   673
				// Get the default build configuration
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   674
				buildConfig = cpi.getDefaultConfiguration();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   675
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   676
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   677
		return buildConfig;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   678
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   679
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   680
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   681
	 * Parse traces from given file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   682
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   683
	 * @param file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   684
	 *            the file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   685
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   686
	private void parseTracesFromFile(IFile file) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   687
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   688
		if (file != null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   689
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   690
			// Get file content to string variable
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   691
			String sourceData = getFileContentAsString(file);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   692
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   693
			if (sourceData != null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   694
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   695
				// Create new document from source data
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   696
				IDocument document = new Document(sourceData);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   697
				document
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   698
						.addPositionCategory(JFaceDocumentWrapper.TRACEBUILDER_POSITION_CATEGORY);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   699
				JFaceLocationUpdater locationUpdater = new JFaceLocationUpdater(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   700
						JFaceDocumentWrapper.TRACEBUILDER_POSITION_CATEGORY);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   701
				document.addPositionUpdater(locationUpdater);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   702
				SourceDocumentInterface sourceDocumentInterface = new JFaceDocumentWrapper(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   703
						document);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   704
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   705
				// Create new source properties
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   706
				SourceProperties properties = new SourceProperties(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   707
						TraceBuilderGlobals.getTraceModel(), DocumentFactory
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   708
								.getDocumentMonitor().getFactory(),
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   709
						sourceDocumentInterface);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   710
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   711
				// Parse trace locations from source properties
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   712
				properties.updateTraces(0, sourceData.length());
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   713
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   714
				TraceLocationMap locationMap = TraceBuilderGlobals
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   715
						.getLocationMap();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   716
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   717
				// When we add source to location map it will go to unrelated
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   718
				// list
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   719
				locationMap.addSource(properties);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   720
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   721
				// Parse traces from source so those will be added to the model
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   722
				TraceLocationConverter lc = TraceBuilderGlobals
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   723
						.getLocationConverter();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   724
				lc.parseTracesFromSource(properties);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   725
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   726
				String path = file.getLocation().removeLastSegments(1)
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   727
						.toOSString()
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   728
						+ "\\"; //$NON-NLS-1$
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   729
				String fileName = file.getName();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   730
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   731
				// When we remove source from location map it will go to last
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   732
				// known locations list
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   733
				locationMap.removeSource(properties, path, fileName);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   734
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   735
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   736
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   737
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   738
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   739
	 * Get file content as string
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   740
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   741
	 * @param file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   742
	 *            the file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   743
	 * @return file content as string
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   744
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   745
	private String getFileContentAsString(IFile file) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   746
		String fileContentAsString = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   747
		boolean continueExecution = true;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   748
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   749
		InputStream is = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   750
		try {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   751
			is = file.getContents();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   752
		} catch (CoreException e1) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   753
			continueExecution = false;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   754
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   755
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   756
		if (continueExecution) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   757
			BufferedReader reader = new BufferedReader(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   758
					new InputStreamReader(is));
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   759
			StringBuilder sb = new StringBuilder();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   760
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   761
			String line = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   762
			try {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   763
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   764
				// Read file content line by line to string builder
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   765
				while ((line = reader.readLine()) != null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   766
					sb.append(line + SourceConstants.LINE_FEED);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   767
				}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   768
			} catch (IOException e) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   769
				continueExecution = false;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   770
			} finally {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   771
				try {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   772
					is.close();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   773
				} catch (IOException e) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   774
					continueExecution = false;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   775
				}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   776
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   777
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   778
			// If everything went OK, get content from string builder to string
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   779
			// variable
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   780
			if (continueExecution) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   781
				fileContentAsString = sb.toString();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   782
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   783
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   784
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   785
		return fileContentAsString;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   786
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   787
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   788
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   789
	 * Check is file opened in editor
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   790
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   791
	 * @param source
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   792
	 *            .getAbsolutePath() the file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   793
	 * @return true if file is opened in editor, otherwise false
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   794
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   795
	private boolean isFileOpenedInEditor(File source) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   796
		boolean fileAlredyOpened = false;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   797
		IWorkbenchWindow[] windows = PlatformUI.getWorkbench()
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   798
				.getWorkbenchWindows();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   799
		for (IWorkbenchWindow window : windows) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   800
			IWorkbenchPage[] pages = window.getPages();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   801
			for (IWorkbenchPage page : pages) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   802
				IEditorReference[] refs = page.getEditorReferences();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   803
				IFile alreadyOpenedFile = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   804
				for (IEditorReference ref : refs) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   805
					alreadyOpenedFile = WorkbenchUtils.getEditorFile(ref);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   806
					if (alreadyOpenedFile != null
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   807
							&& alreadyOpenedFile.getLocation().toOSString()
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   808
									.equals(source.getAbsolutePath())) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   809
						fileAlredyOpened = true;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   810
						break;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   811
					}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   812
				}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   813
				if (fileAlredyOpened) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   814
					break;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   815
				}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   816
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   817
			if (fileAlredyOpened) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   818
				break;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   819
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   820
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   821
		return fileAlredyOpened;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   822
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   823
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   824
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   825
	 * Gets project name from project path
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   826
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   827
	 * @param projectPath
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   828
	 *            the project path
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   829
	 * @return project name
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   830
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   831
	private String getProjectName(String projectPath) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   832
		String separator = System.getProperty("file.separator"); //$NON-NLS-1$
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   833
		String projectName = projectPath.substring(projectPath
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   834
				.lastIndexOf(separator) + 1);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   835
		return projectName;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   836
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   837
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   838
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   839
	 * Gets project path from file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   840
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   841
	 * @param file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   842
	 *            the file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   843
	 * @return the project path
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   844
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   845
	private String getProjectPath(IFile file) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   846
		String projectPath = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   847
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   848
		// Initial project path is the file's parent folder
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   849
		IPath path = file.getLocation();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   850
		IProject project = file.getProject();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   851
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   852
		// Check if file is source file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   853
		if (isSourceFile(file)) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   854
			projectPath = getProjectPathToSourceFile(project, path);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   855
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   856
			// It could be that source file is not included to MMP file and
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   857
			// because that we did not find project path. So if source file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   858
			// project path is null, try to find project path to source file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   859
			// same way than non source file.
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   860
			if (projectPath == null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   861
				projectPath = getProjetcPathToNonSourceFile(project, path);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   862
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   863
		} else {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   864
			projectPath = getProjetcPathToNonSourceFile(project, path);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   865
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   866
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   867
		return projectPath;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   868
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   869
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   870
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   871
	 * Get project path to source file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   872
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   873
	 * @param project
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   874
	 *            project
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   875
	 * @param path
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   876
	 *            path where to start find project path
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   877
	 * @return the project path
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   878
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   879
	private String getProjectPathToSourceFile(IProject project, IPath path) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   880
		String projectPath = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   881
		String mmpFilePath = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   882
		IPath currentSoftwareComponentMMPPath = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   883
		List<IPath> mmpPaths = EpocEngineHelper.getMMPsForSource(project, path);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   884
		if (mmpPaths.size() > 0) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   885
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   886
			// Check that was source file included to more than one MMP file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   887
			if (mmpPaths.size() > 1) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   888
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   889
				// User need to select software component to work with, if
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   890
				// previous file was also included to more than one MMP file or
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   891
				// if some of the previous files belonged to different
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   892
				// component.
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   893
				if (selectSoftwareComponent || previousFileIncludedMoreThanOnce) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   894
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   895
					// Clear old software component list
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   896
					TraceBuilderGlobals.clearSoftwareComponents();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   897
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   898
					// Add all software components to software component list
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   899
					for (int i = 0; i < mmpPaths.size(); i++) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   900
						IPath mmpPath = mmpPaths.get(i);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   901
						String mmpPathAsString = mmpPath.toString();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   902
						String componentId = getComponentIdFromMMPFile(mmpPath,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   903
								project);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   904
						String componentName = getComponentNameFromMMPFileName(mmpPathAsString);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   905
						TraceBuilderGlobals.addSoftwareComponent(componentId,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   906
								componentName, mmpPathAsString);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   907
					}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   908
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   909
					// Ask user to select software component to be used
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   910
					try {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   911
						TraceBuilderGlobals.getTraceBuilder().selectComponent();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   912
					} catch (TraceBuilderException e) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   913
						TraceBuilderGlobals.getEvents().postError(e);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   914
					}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   915
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   916
					selectSoftwareComponentCheckNeeded = true;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   917
				}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   918
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   919
				currentSoftwareComponentMMPPath = new Path(TraceBuilderGlobals
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   920
						.getCurrentSoftwareComponentMMPPath());
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   921
				String currentSoftwareComponentName = TraceBuilderGlobals
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   922
						.getCurrentSoftwareComponentName();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   923
				setPossibleTraceFolderNames(project,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   924
						currentSoftwareComponentName,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   925
						currentSoftwareComponentMMPPath);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   926
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   927
				// Remove mmp file name from mmpPathAsString variable
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   928
				IPath projectLocation = project.getLocation();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   929
				String mmpPathAsString = TraceBuilderGlobals
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   930
						.getCurrentSoftwareComponentMMPPath();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   931
				int lastIndexOfForwardSlashChar = mmpPathAsString
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   932
						.lastIndexOf(SourceConstants.FORWARD_SLASH_CHAR);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   933
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   934
				if (lastIndexOfForwardSlashChar != -1) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   935
					mmpPathAsString = mmpPathAsString.substring(0,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   936
							lastIndexOfForwardSlashChar);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   937
				}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   938
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   939
				// Append mmpPathAsString to Project path to get real
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   940
				// mmp file path
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   941
				mmpFilePath = projectLocation.append(mmpPathAsString)
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   942
						.toString();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   943
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   944
				previousFileIncludedMoreThanOnce = true;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   945
			} else {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   946
				currentSoftwareComponentMMPPath = mmpPaths.get(0);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   947
				String mmpPathAsString = currentSoftwareComponentMMPPath
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   948
						.toString();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   949
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   950
				String componentId = getComponentIdFromMMPFile(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   951
						currentSoftwareComponentMMPPath, project);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   952
				String componentName = getComponentNameFromMMPFileName(mmpPathAsString);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   953
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   954
				if (selectSoftwareComponentCheckNeeded) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   955
					if (TraceBuilderGlobals.getCurrentSoftwareComponentId() != null
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   956
							&& TraceBuilderGlobals
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   957
									.getCurrentSoftwareComponentId().equals(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   958
											componentId)) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   959
						selectSoftwareComponent = false;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   960
					} else {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   961
						selectSoftwareComponent = true;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   962
						selectSoftwareComponentCheckNeeded = false;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   963
					}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   964
				}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   965
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   966
				// Clear old software component list
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   967
				TraceBuilderGlobals.clearSoftwareComponents();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   968
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   969
				// Add software component to software component list
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   970
				TraceBuilderGlobals.addSoftwareComponent(componentId,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   971
						componentName, mmpPathAsString);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   972
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   973
				// Because there is only one component current component index
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   974
				// is 0
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   975
				TraceBuilderGlobals.setCurrentSoftwareComponentIndex(0);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   976
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   977
				setPossibleTraceFolderNames(project, componentName,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   978
						currentSoftwareComponentMMPPath);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   979
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   980
				// Remove mmp file name from mmpPathAsString variable
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   981
				IPath projectLocation = project.getLocation();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   982
				int lastIndexOfForwardSlashChar = mmpPathAsString
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   983
						.lastIndexOf(SourceConstants.FORWARD_SLASH_CHAR);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   984
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   985
				if (lastIndexOfForwardSlashChar != -1) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   986
					mmpPathAsString = mmpPathAsString.substring(0,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   987
							lastIndexOfForwardSlashChar);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   988
				}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   989
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   990
				// Append mmpPathAsString to Project path to get real
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   991
				// mmp file path
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   992
				mmpFilePath = projectLocation.append(mmpPathAsString)
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   993
						.toString();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   994
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   995
				previousFileIncludedMoreThanOnce = false;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   996
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   997
			projectPath = findProjectRootAndSetTracesFolderName(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   998
					currentSoftwareComponentMMPPath, project, mmpFilePath);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
   999
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1000
		return projectPath;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1001
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1002
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1003
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1004
	 * Find project root and set traces folder name
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1005
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1006
	 * @param mmpFilePath
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1007
	 *            MPP file path
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1008
	 * @return Project root
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1009
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1010
	private String findProjectRootAndSetTracesFolderName(IPath mmpPath,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1011
			IProject project, String mmpFilePath) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1012
		String projectPath;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1013
		projectPath = findProjectRoot(mmpFilePath);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1014
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1015
		// Store previous trace folder name
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1016
		String previousTraceFolderName = ProjectEngine.traceFolderName;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1017
		openProjectTraceFolderName = findTraceFolderName(mmpPath, project,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1018
				projectPath);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1019
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1020
		// Check has trace folder name changed
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1021
		traceFolderChanged = false;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1022
		if (previousTraceFolderName != null
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1023
				&& !previousTraceFolderName
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1024
						.equalsIgnoreCase(openProjectTraceFolderName)) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1025
			traceFolderChanged = true;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1026
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1027
		return projectPath;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1028
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1029
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1030
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1031
	 * Set possible trace folder names
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1032
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1033
	 * @param carbideProject
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1034
	 *            Current Carbide.c++ project
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1035
	 * @param componentName
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1036
	 *            Current component name
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1037
	 * @param relativeMMPPath
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1038
	 *            Relative path to current MMP file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1039
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1040
	private void setPossibleTraceFolderNames(IProject carbideProject,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1041
			String componentName, IPath relativeMMPPath) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1042
		String targetName = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1043
		String targetExt = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1044
		tracesComponentNameFolder = TRACES_DIRECTORY + UNDERSCORE
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1045
				+ componentName;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1046
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1047
		// Append relative MMP path to the project location to get location of
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1048
		// the MMP file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1049
		IPath mmpPath = carbideProject.getLocation().append(relativeMMPPath);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1050
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1051
		ICarbideBuildManager buildMgr = CarbideBuilderPlugin.getBuildManager();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1052
		ICarbideProjectInfo cpi = buildMgr.getProjectInfo(carbideProject);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1053
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1054
		// Get the default build configuration
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1055
		ICarbideBuildConfiguration defultConfig = cpi.getDefaultConfiguration();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1056
		IPath pathForExcutable = EpocEngineHelper.getHostPathForExecutable(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1057
				defultConfig, mmpPath);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1058
		if (pathForExcutable != null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1059
			String fileName = pathForExcutable.lastSegment();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1060
			int lastIndexOfDot = fileName.lastIndexOf("."); //$NON-NLS-1$
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1061
			targetName = fileName.substring(0, lastIndexOfDot);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1062
			targetExt = fileName.substring(lastIndexOfDot + 1);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1063
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1064
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1065
		Object data = EpocEnginePlugin.runWithMMPData(mmpPath,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1066
				new DefaultMMPViewConfiguration(carbideProject, defultConfig,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1067
						new AcceptedNodesViewFilter()),
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1068
				new MMPDataRunnableAdapter() {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1069
					public Object run(IMMPData mmpData) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1070
						// The real return value, getting a single argument
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1071
						// setting
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1072
						return mmpData.getSingleArgumentSettings().get(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1073
								EMMPStatement.TARGETTYPE);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1074
					}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1075
				});
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1076
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1077
		String targetType = (String) data;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1078
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1079
		if (targetName != null && targetType != null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1080
			tracesTargetNameTargetTypeFolder = TRACES_DIRECTORY + UNDERSCORE
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1081
					+ targetName + UNDERSCORE + targetType;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1082
		} else {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1083
			tracesTargetNameTargetTypeFolder = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1084
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1085
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1086
		if (targetName != null && targetExt != null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1087
			tracesDirTargetNameTargetExtFolder = TRACES_DIRECTORY
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1088
					+ File.separator + targetName + UNDERSCORE + targetExt;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1089
		} else {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1090
			tracesDirTargetNameTargetExtFolder = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1091
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1092
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1093
		setSBSv2TraceFolderName(carbideProject);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1094
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1095
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1096
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1097
	 * Get component id from MMP file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1098
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1099
	 * @param mmpPath
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1100
	 *            the mmp file path
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1101
	 * @param project
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1102
	 *            the project
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1103
	 * @return the component id as string
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1104
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1105
	private String getComponentIdFromMMPFile(IPath mmpPath, IProject project) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1106
		String uid = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1107
		if (mmpPath != null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1108
			ICarbideBuildConfiguration buildConfig = getBuildConfiguration(project);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1109
			if (buildConfig != null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1110
				Object data = EpocEnginePlugin.runWithMMPData(project
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1111
						.getLocation().append(mmpPath),
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1112
						new DefaultMMPViewConfiguration(buildConfig
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1113
								.getCarbideProject().getProject(), buildConfig,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1114
								new AcceptedNodesViewFilter()),
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1115
						new MMPDataRunnableAdapter() {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1116
							public Object run(IMMPData mmpData) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1117
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1118
								// Try first get value of UID3
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1119
								String uid = mmpData.getUid3();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1120
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1121
								// If value of UID3 is null then
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1122
								// try get value of UID2
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1123
								if (uid == null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1124
									uid = mmpData.getUid2();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1125
								}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1126
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1127
								// return value could be null if
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1128
								// UID2 is not defined
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1129
								return uid; // CodForChk_Dis_Exits
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1130
							}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1131
						});
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1132
				uid = (String) data;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1133
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1134
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1135
		return uid;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1136
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1137
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1138
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1139
	 * Get trace folder name from MMP file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1140
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1141
	 * @param mmpPath
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1142
	 *            the mmp file path
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1143
	 * @param project
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1144
	 *            the project
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1145
	 * @return the trace folder name
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1146
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1147
	private String getTraceFolderFromMMPFile(IPath mmpPath, IProject project) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1148
		String traceFolder = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1149
		if (mmpPath != null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1150
			ICarbideBuildConfiguration buildConfig = getBuildConfiguration(project);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1151
			if (buildConfig != null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1152
				Object data = EpocEnginePlugin.runWithMMPData(project
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1153
						.getLocation().append(mmpPath),
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1154
						new DefaultMMPViewConfiguration(buildConfig
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1155
								.getCarbideProject().getProject(), buildConfig,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1156
								new AcceptedNodesViewFilter()),
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1157
						new MMPDataRunnableAdapter() {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1158
							public Object run(IMMPData mmpData) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1159
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1160
								String traceFolder = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1161
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1162
								// Get the list of user include
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1163
								// paths
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1164
								List<IPath> userIncludes = mmpData
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1165
										.getUserIncludes();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1166
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1167
								// Go through existing userincludes
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1168
								// to check if the path to add is
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1169
								// already present
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1170
								for (int i = 0; i < userIncludes.size(); i++) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1171
									String userIncludeAsOSString = userIncludes
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1172
											.get(i).toOSString();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1173
									if (userIncludeAsOSString
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1174
											.equalsIgnoreCase(TRACES_DIRECTORY)
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1175
											|| userIncludeAsOSString
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1176
													.equalsIgnoreCase(tracesComponentNameFolder)
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1177
											|| userIncludeAsOSString
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1178
													.equalsIgnoreCase(tracesTargetNameTargetTypeFolder)
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1179
											|| userIncludeAsOSString
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1180
													.equalsIgnoreCase(tracesDirTargetNameTargetExtFolder)) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1181
										traceFolder = userIncludeAsOSString;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1182
										break;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1183
									}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1184
								}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1185
								return traceFolder; // CodForChk_Dis_Exits
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1186
							}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1187
						});
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1188
				traceFolder = (String) data;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1189
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1190
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1191
		return traceFolder;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1192
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1193
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1194
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1195
	 * Get component name from MMP file name
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1196
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1197
	 * @param mmpPathAsString
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1198
	 *            the mmp file path as string
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1199
	 * @return the component name
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1200
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1201
	private String getComponentNameFromMMPFileName(String mmpPathAsString) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1202
		String mmpFileName = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1203
		if (mmpPathAsString != null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1204
			int lastIndexOfForwardSlashChar = mmpPathAsString
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1205
					.lastIndexOf(SourceConstants.FORWARD_SLASH_CHAR);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1206
			int lastIndexOfPeriod = mmpPathAsString.lastIndexOf(FileUtils.MMP);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1207
			mmpFileName = mmpPathAsString.substring(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1208
					lastIndexOfForwardSlashChar + 1, lastIndexOfPeriod);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1209
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1210
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1211
		return mmpFileName;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1212
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1213
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1214
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1215
	 * Get project path to non source file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1216
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1217
	 * @param project
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1218
	 *            project
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1219
	 * @param path
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1220
	 *            path where to start find project path
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1221
	 * @return the project path
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1222
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1223
	private String getProjetcPathToNonSourceFile(IProject project, IPath path) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1224
		String projectPath = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1225
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1226
		// We can not parse software components, because file is not source file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1227
		// and it is not listed in MMP files. So just clear software components
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1228
		// list.
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1229
		TraceBuilderGlobals.clearSoftwareComponents();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1230
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1231
		// Check that is file part of open project
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1232
		if (project.equals(openProjectObject) && openProjectPath != null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1233
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1234
			// File part of open project, so use same project path
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1235
			projectPath = openProjectPath;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1236
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1237
			// Because project path is same, also trace folder is same
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1238
			traceFolderChanged = false;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1239
		} else {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1240
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1241
			// File not part of open project, so find project path
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1242
			projectPath = findProjectRootAndSetTracesFolderName(path, project,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1243
					path.toOSString());
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1244
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1245
		return projectPath;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1246
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1247
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1248
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1249
	 * Find files project root
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1250
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1251
	 * @param path
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1252
	 *            path where to start find project root
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1253
	 * @return the project root
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1254
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1255
	private String findProjectRoot(String path) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1256
		boolean found = false;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1257
		String root = path;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1258
		File file = new File(root);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1259
		while (!found && file != null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1260
			if (isProjectRoot(file)) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1261
				root = file.getPath();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1262
				found = true;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1263
			} else {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1264
				file = file.getParentFile();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1265
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1266
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1267
		return root;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1268
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1269
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1270
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1271
	 * Find trace folder name
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1272
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1273
	 * @param mmpFilePath
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1274
	 *            MMP file path
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1275
	 * @param projectRoot
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1276
	 *            project root
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1277
	 * @return the trace folder name
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1278
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1279
	private String findTraceFolderName(IPath mmpPath, IProject project,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1280
			String projectRoot) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1281
		String traceFolderName = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1282
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1283
		traceFolderName = getTraceFolderFromMMPFile(mmpPath, project);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1284
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1285
		if (traceFolderName == null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1286
			traceFolderName = findTraceFolderNameFromFileSystem(projectRoot);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1287
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1288
		return traceFolderName;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1289
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1290
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1291
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1292
	 * Find trace folder name from file system
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1293
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1294
	 * @param projectRoot
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1295
	 *            project root
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1296
	 * @return the trace folder name
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1297
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1298
	private String findTraceFolderNameFromFileSystem(String projectRoot) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1299
		String traceFolderName = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1300
		File file = new File(projectRoot);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1301
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1302
		File[] children = file.listFiles();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1303
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1304
		// Check that does subdirectory that name is one of the possible trace
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1305
		// folder name exist in this directory. If it exist use that as traces
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1306
		// directory name.
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1307
		for (int i = 0; i < children.length; i++) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1308
			File child = children[i];
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1309
			String childName = child.getName();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1310
			if (child.isDirectory()) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1311
				if (childName
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1312
						.equalsIgnoreCase(tracesDirTargetNameTargetExtFolder)) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1313
					traceFolderName = tracesDirTargetNameTargetExtFolder;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1314
					break;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1315
				} else if (childName
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1316
						.equalsIgnoreCase(tracesTargetNameTargetTypeFolder)) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1317
					traceFolderName = tracesTargetNameTargetTypeFolder;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1318
					break;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1319
				} else if (childName
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1320
						.equalsIgnoreCase(tracesComponentNameFolder)) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1321
					traceFolderName = tracesComponentNameFolder;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1322
					break;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1323
				} else if (childName.equalsIgnoreCase(TRACES_DIRECTORY)) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1324
					traceFolderName = TRACES_DIRECTORY;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1325
					break;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1326
				}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1327
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1328
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1329
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1330
		// If trace folder name is "traces" we need to check that does it
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1331
		// include folder "<target name>_<target ext>". If it includes then
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1332
		// that folder need to be as traces folder name
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1333
		if (traceFolderName != null && traceFolderName.equals(TRACES_DIRECTORY) && tracesDirTargetNameTargetExtFolder != null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1334
			file = new File(projectRoot + File.separator + TRACES_DIRECTORY);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1335
			children = file.listFiles();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1336
			int startIndex = tracesDirTargetNameTargetExtFolder
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1337
					.lastIndexOf(File.separator);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1338
			String targetNameTargetExtFolder = tracesDirTargetNameTargetExtFolder
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1339
					.substring(startIndex + 1);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1340
			for (int i = 0; i < children.length; i++) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1341
				File child = children[i];
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1342
				String childName = child.getName();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1343
				if (child.isDirectory()) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1344
					if (childName.equalsIgnoreCase(targetNameTargetExtFolder)) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1345
						traceFolderName = tracesDirTargetNameTargetExtFolder;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1346
						break;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1347
					}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1348
				}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1349
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1350
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1351
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1352
		// If trace folder is still null set default value based on used SBS
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1353
		// version
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1354
		if (traceFolderName == null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1355
			if (sbsv2TraceFolderName != null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1356
				traceFolderName = sbsv2TraceFolderName;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1357
			} else {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1358
				traceFolderName = tracesComponentNameFolder;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1359
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1360
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1361
		return traceFolderName;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1362
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1363
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1364
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1365
	 * Set SBSv2 trace folder name
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1366
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1367
	 * @param project
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1368
	 *            Carbide project
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1369
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1370
	private void setSBSv2TraceFolderName(IProject project) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1371
		ICarbideBuildManager buildMgr = CarbideBuilderPlugin.getBuildManager();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1372
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1373
		boolean isSBSv2Project = buildMgr.isCarbideSBSv2Project(project);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1374
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1375
		if (isSBSv2Project) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1376
			ISDKManager sdkMgr = SDKCorePlugin.getSDKManager();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1377
			Version sbsv2Version = sdkMgr.getSBSv2Version(true);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1378
			int major = sbsv2Version.getMajor();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1379
			int minor = sbsv2Version.getMinor();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1380
			int micro = sbsv2Version.getMicro();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1381
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1382
			if ((major < 2) || (major == 2 && minor < 10)
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1383
					|| (major == 2 && minor == 10 && micro == 0)) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1384
				sbsv2TraceFolderName = tracesComponentNameFolder;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1385
			} else if (major == 2) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1386
				if ((major == 2 && minor < 14)) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1387
					sbsv2TraceFolderName = tracesTargetNameTargetTypeFolder;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1388
				} else {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1389
					sbsv2TraceFolderName = tracesDirTargetNameTargetExtFolder;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1390
				}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1391
			} else {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1392
				sbsv2TraceFolderName = tracesDirTargetNameTargetExtFolder;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1393
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1394
		} else {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1395
			sbsv2TraceFolderName = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1396
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1397
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1398
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1399
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1400
	 * Checks if this folder is the project root
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1401
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1402
	 * @param parentFolder
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1403
	 *            parent folder
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1404
	 * @return true if this folder is the project root
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1405
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1406
	private boolean isProjectRoot(File mmpFile) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1407
		// Try to find traces, group or mmpfiles folder from this folder
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1408
		boolean isProjectRoot = false;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1409
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1410
		FilenameFilter filter = new FilenameFilter() {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1411
			public boolean accept(File file, String name) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1412
				boolean retval = false;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1413
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1414
				if (file.isDirectory()) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1415
					if (name
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1416
							.equalsIgnoreCase(tracesDirTargetNameTargetExtFolder)
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1417
							|| name
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1418
									.equalsIgnoreCase(tracesTargetNameTargetTypeFolder)
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1419
							|| name.equalsIgnoreCase(tracesComponentNameFolder)
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1420
							|| name.equalsIgnoreCase(TRACES_DIRECTORY)
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1421
							|| name.equalsIgnoreCase(GROUP_DIRECTORY)
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1422
							|| name.equalsIgnoreCase(MMPFILES_DIRECTORY)) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1423
						retval = true;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1424
					}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1425
				}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1426
				return retval; // CodForChk_Dis_Exits
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1427
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1428
		};
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1429
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1430
		String[] children = mmpFile.list(filter);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1431
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1432
		if (children != null && children.length != 0) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1433
			isProjectRoot = true;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1434
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1435
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1436
		return isProjectRoot; // CodForChk_Dis_Exits
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1437
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1438
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1439
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1440
	 * Saves Epoc root to Trace Builder Configuration
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1441
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1442
	 * @param project
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1443
	 *            the project
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1444
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1445
	private void saveEpocRoot(IProject project) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1446
		IPath epocRoot = WorkbenchUtils.getEpocRootForProject(project);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1447
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1448
		if (epocRoot != null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1449
			TraceBuilderGlobals.getConfiguration().setText(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1450
					TraceBuilderConfiguration.ENVIRONMENT_ROOT,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1451
					epocRoot.toOSString());
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1452
		} else {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1453
			TraceBuilderGlobals.getConfiguration().setText(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1454
					TraceBuilderConfiguration.ENVIRONMENT_ROOT, ""); //$NON-NLS-1$
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1455
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1456
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1457
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1458
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1459
	 * Checks that the given file belongs to active project
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1460
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1461
	 * @param file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1462
	 *            the file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1463
	 * @return true if valid, false if not
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1464
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1465
	boolean isFileActive(IFile file) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1466
		boolean isActive = false;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1467
		IProject project = file.getProject();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1468
		if (project.equals(openProjectObject) == true) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1469
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1470
			// Check that project is Carbide project
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1471
			boolean isCarbideProject = CarbideBuilderPlugin.getBuildManager()
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1472
					.isCarbideProject(project);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1473
			if (isCarbideProject) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1474
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1475
				// If file is source file then we need to check that trace
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1476
				// folcer name is same than open project trace folder name
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1477
				if (isSourceFile(file)) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1478
					IPath path = file.getLocation();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1479
					List<IPath> mmpPaths = EpocEngineHelper.getMMPsForSource(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1480
							project, path);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1481
					if (mmpPaths.size() > 0) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1482
						for (int i = 0; i < mmpPaths.size(); i++) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1483
							IPath mmpPath = mmpPaths.get(i);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1484
							String mmpPathAsString = mmpPath.toString();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1485
							String componentName = getComponentNameFromMMPFileName(mmpPathAsString);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1486
							String currentComponentName = TraceBuilderGlobals
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1487
									.getCurrentSoftwareComponentName();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1488
							if (componentName != null
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1489
									&& componentName
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1490
											.equalsIgnoreCase(currentComponentName)) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1491
								isActive = true;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1492
								break;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1493
							}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1494
						}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1495
					}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1496
				} else {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1497
					isActive = true;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1498
				}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1499
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1500
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1501
		return isActive;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1502
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1503
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1504
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1505
	 * Check that is file source file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1506
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1507
	 * @param file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1508
	 *            file that need to be check
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1509
	 * @return true if file is source file, false if not
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1510
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1511
	private boolean isSourceFile(IFile file) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1512
		boolean retVal = false;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1513
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1514
		String extension = file.getFileExtension();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1515
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1516
		if (extension != null
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1517
				&& (extension.equalsIgnoreCase(FileUtils.CPP_EXTENSION) || extension
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1518
						.equalsIgnoreCase(FileUtils.C_EXTENSION))) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1519
			retVal = true;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1520
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1521
		return retVal;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1522
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1523
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1524
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1525
	 * Source saved
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1526
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1527
	 * @param source
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1528
	 *            the source
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1529
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1530
	void sourceSaved(JFaceDocumentWrapper source) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1531
		if (!mmpFileModified && openProjectObject != null
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1532
				&& TraceBuilderGlobals.getTraceModel().hasTraces()) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1533
			String fileName = source.getFileName();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1534
			String filepath = source.getFilePath();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1535
			Path path = new Path(filepath + fileName);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1536
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1537
			// Add traces folder include path to MMP file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1538
			addTracesFolderInclude(path);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1539
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1540
			// Add SYSTEMINCLUDE to MMP file if needed
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1541
			addOpenSystemTraceSystemInclude();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1542
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1543
			mmpFileModified = true;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1544
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1545
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1546
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1547
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1548
	 * Add layer SYSTEMINCLUDE macro to MMP file if needed
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1549
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1550
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1551
	private void addOpenSystemTraceSystemInclude() {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1552
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1553
		if (CarbideBuilderPlugin.getBuildManager().isCarbideProject(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1554
				openProjectObject)
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1555
				&& openProjectObject.isAccessible()) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1556
			ICarbideProjectInfo cpi = CarbideBuilderPlugin.getBuildManager()
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1557
					.getProjectInfo(openProjectObject);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1558
			if (cpi != null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1559
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1560
				// loop through all build configurations since the list of mmp's
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1561
				// could be different depending on the build configuration
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1562
				for (ICarbideBuildConfiguration config : cpi
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1563
						.getBuildConfigurations()) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1564
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1565
					// loop through each mmp file and add the include path if
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1566
					// necessary
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1567
					for (final IPath mmpPath : EpocEngineHelper
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1568
							.getMMPFilesForBuildConfiguration(config)) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1569
						final IPath epocroot = WorkbenchUtils
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1570
								.getEpocRootForProject(openProjectObject);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1571
						String mmpFilePath = epocroot.toOSString()
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1572
								+ mmpPath.toOSString();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1573
						try {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1574
							// Open the file mmp file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1575
							FileInputStream fistream = new FileInputStream(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1576
									mmpFilePath);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1577
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1578
							// Get the object of DataInputStream
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1579
							DataInputStream in = new DataInputStream(fistream);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1580
							BufferedReader br = new BufferedReader(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1581
									new InputStreamReader(in));
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1582
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1583
							// Read File Line By Line
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1584
							String strLine;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1585
							int numberOfLastIncludeLine = 0;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1586
							boolean headerExist = false;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1587
							int headerEnd = -1;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1588
							int line = 0;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1589
							boolean platformPathsIncludeFound = false;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1590
							boolean layerSystemIncludeMacroFound = false;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1591
							Vector<String> mmpFileContent = new Vector<String>();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1592
							while ((strLine = br.readLine()) != null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1593
								mmpFileContent.add(strLine);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1594
								line++;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1595
								strLine = strLine.toUpperCase();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1596
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1597
								// Check does MMP file start with file header
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1598
								if (line == 1) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1599
									if (strLine
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1600
											.indexOf(MULTILINE_COMMENT_START) != -1) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1601
										headerExist = true;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1602
									} else if (strLine.indexOf(COMMENT) != -1) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1603
										headerExist = true;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1604
										headerEnd = line;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1605
									}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1606
								}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1607
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1608
								// Get header end, if MMP file starts with file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1609
								// header that is made by using multiline
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1610
								// comment
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1611
								if (strLine.indexOf(MULTILINE_COMMENT_END) != -1
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1612
										&& headerExist && headerEnd == -1) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1613
									headerEnd = line;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1614
								}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1615
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1616
								// Get header end, if MMP file starts with file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1617
								// header that is made by using single
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1618
								// comments
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1619
								if (strLine.indexOf(COMMENT) != -1
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1620
										&& headerExist && headerEnd == line - 1) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1621
									headerEnd = line;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1622
								}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1623
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1624
								// Get line of last include statement
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1625
								if (strLine.indexOf(INCLUDE) != -1) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1626
									numberOfLastIncludeLine = line;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1627
								}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1628
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1629
								// Check does platform_patsh.hrh include already
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1630
								// exist
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1631
								if (strLine.indexOf(PLATFORM_PATHS_HRH) != -1) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1632
									platformPathsIncludeFound = true;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1633
								}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1634
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1635
								// Check does layer system include macro already
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1636
								// exist
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1637
								if (strLine
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1638
										.indexOf(APP_LAYER_SYSTEMINCLUDE_MACRO) != -1
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1639
										|| strLine
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1640
												.indexOf(MW_LAYER_SYSTEMINCLUDE_MACRO) != -1
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1641
										|| strLine
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1642
												.indexOf(OS_LAYER_SYSTEMINCLUDE_MACRO) != -1) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1643
									layerSystemIncludeMacroFound = true;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1644
									break;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1645
								}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1646
							}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1647
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1648
							// If includes did not exist, but file header exist,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1649
							// then set number of last include line same as
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1650
							// header end.
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1651
							if (headerExist
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1652
									&& numberOfLastIncludeLine < headerEnd) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1653
								numberOfLastIncludeLine = headerEnd;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1654
							}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1655
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1656
							// Close the buffered reader
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1657
							br.close();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1658
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1659
							// Close the input stream
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1660
							in.close();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1661
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1662
							// Close file input stream
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1663
							fistream.close();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1664
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1665
							if (!layerSystemIncludeMacroFound) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1666
								String layerSystemIncludeMacro = geLayerSystemIncludeMacro(mmpPath
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1667
										.toOSString());
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1668
								FileOutputStream fostream = new FileOutputStream(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1669
										mmpFilePath);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1670
								BufferedWriter bw = new BufferedWriter(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1671
										new OutputStreamWriter(fostream));
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1672
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1673
								for (line = 0; line < mmpFileContent.size(); line++) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1674
									if (line == numberOfLastIncludeLine) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1675
										if (!platformPathsIncludeFound) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1676
											bw
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1677
													.write(INCLUDE_PLATFORM_PATHS_HRH
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1678
															+ SourceConstants.LINE_FEED);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1679
										}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1680
										bw.write(SourceConstants.LINE_FEED
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1681
												+ layerSystemIncludeMacro
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1682
												+ SourceConstants.LINE_FEED);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1683
									}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1684
									bw.write(mmpFileContent.get(line)
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1685
											+ SourceConstants.LINE_FEED);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1686
								}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1687
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1688
								// Close the buffered writer
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1689
								bw.close();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1690
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1691
								// Close file output stream
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1692
								fostream.close();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1693
							}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1694
						} catch (Exception e) {// Catch exception if any
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1695
							CarbideBuilderPlugin.log(e);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1696
						}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1697
					}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1698
				}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1699
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1700
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1701
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1702
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1703
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1704
	 * Get correct layer system include macro
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1705
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1706
	 * @param string
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1707
	 *            MMP path as OS string
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1708
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1709
	 * @return correct layer system include macro
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1710
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1711
	private String geLayerSystemIncludeMacro(String mmpPathAsOsString) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1712
		String layerSystemIncludeMacro = APP_LAYER_SYSTEMINCLUDE_MACRO;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1713
		String firstDirectory = mmpPathAsOsString.substring(0,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1714
				mmpPathAsOsString.indexOf(SourceConstants.BACKSLASH));
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1715
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1716
		if (firstDirectory.equalsIgnoreCase(SF_FOLDER_NAME)) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1717
			String secondDirectory = mmpPathAsOsString.substring(firstDirectory
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1718
					.length() + 1, mmpPathAsOsString.indexOf(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1719
					SourceConstants.BACKSLASH, firstDirectory.length() + 1));
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1720
			if (secondDirectory.equalsIgnoreCase(MW_FOLDER_NAME)) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1721
				layerSystemIncludeMacro = MW_LAYER_SYSTEMINCLUDE_MACRO;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1722
			} else if (secondDirectory.equalsIgnoreCase(OS_FOLDER_NAME)) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1723
				layerSystemIncludeMacro = OS_LAYER_SYSTEMINCLUDE_MACRO;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1724
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1725
		} else if (firstDirectory.equalsIgnoreCase(NCP_SW_FOLDER_NAME)) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1726
			layerSystemIncludeMacro = OS_LAYER_SYSTEMINCLUDE_MACRO;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1727
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1728
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1729
		return layerSystemIncludeMacro;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1730
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1731
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1732
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1733
	 * Adds traces folder include to MMP files
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1734
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1735
	 * @param path
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1736
	 *            file path
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1737
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1738
	private void addTracesFolderInclude(Path filePath) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1739
		IPath mainProjectPath = openProjectObject.getLocation();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1740
		IPath traceProjectPath = new Path(openProjectPath);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1741
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1742
		// Calculate and remove matching segments
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1743
		int matchingSegs = mainProjectPath
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1744
				.matchingFirstSegments(traceProjectPath);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1745
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1746
		IPath projectRelativePath = traceProjectPath
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1747
				.removeFirstSegments(matchingSegs);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1748
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1749
		// Add Traces directory and remove device ID
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1750
		projectRelativePath = projectRelativePath
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1751
				.append(ProjectEngine.traceFolderName);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1752
		projectRelativePath = projectRelativePath.setDevice(null);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1753
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1754
		// Add include path to the project MMP files
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1755
		addUserIncludeToMmpFiles(filePath, projectRelativePath);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1756
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1757
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1758
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1759
	 * Get Carbide project info
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1760
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1761
	 * @return Carbide project info
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1762
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1763
	private ICarbideProjectInfo getCarbideProjectInfo() {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1764
		ICarbideProjectInfo cpi = null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1765
		if (CarbideBuilderPlugin.getBuildManager().isCarbideProject(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1766
				openProjectObject)
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1767
				&& openProjectObject.isAccessible()) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1768
			cpi = CarbideBuilderPlugin.getBuildManager().getProjectInfo(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1769
					openProjectObject);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1770
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1771
		return cpi;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1772
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1773
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1774
	/**
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1775
	 * Add user include to MMP files, those uses specific source file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1776
	 * 
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1777
	 * @param filePath
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1778
	 *            file path of the saved source file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1779
	 * @param projectRelativeIncDirPath
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1780
	 *            project relative path to the include directory
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1781
	 */
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1782
	private void addUserIncludeToMmpFiles(final IPath filePath,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1783
			final IPath projectRelativeIncDirPath) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1784
		if (openProjectObject != null && projectRelativeIncDirPath != null) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1785
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1786
			final IPath epocroot = WorkbenchUtils
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1787
					.getEpocRootForProject(openProjectObject);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1788
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1789
			ICarbideProjectInfo cpi = getCarbideProjectInfo();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1790
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1791
			// Loop through all build configurations since the list of
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1792
			// mmp's could be different depending on the build
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1793
			// configuration
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1794
			for (ICarbideBuildConfiguration config : cpi
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1795
					.getBuildConfigurations()) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1796
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1797
				// Get name of the MMP files where source file is used
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1798
				final List<IPath> mmpPaths = EpocEngineHelper.getMMPsForSource(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1799
						openProjectObject, filePath);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1800
				ArrayList<String> sourceMmpFileNames = new ArrayList<String>();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1801
				for (int i = 0; i < mmpPaths.size(); i++) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1802
					sourceMmpFileNames.add(mmpPaths.get(i).lastSegment());
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1803
				}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1804
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1805
				// Go through build configuration's MMP files
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1806
				for (final IPath mmpPath : EpocEngineHelper
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1807
						.getMMPFilesForBuildConfiguration(config)) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1808
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1809
					String mmpFileName = mmpPath.lastSegment();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1810
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1811
					if (sourceMmpFileNames.contains(mmpFileName)) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1812
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1813
						EpocEnginePlugin.runWithMMPView(mmpPath,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1814
								new DefaultMMPViewConfiguration(config,
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1815
										new AcceptedNodesViewFilter()),
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1816
								new MMPViewRunnableAdapter() {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1817
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1818
									public Object run(IMMPView view) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1819
										MMPViewPathHelper helper = new MMPViewPathHelper(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1820
												view, epocroot);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1821
										try {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1822
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1823
											// Convert the project relative path
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1824
											// to an mmp view path
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1825
											IPath incPath = helper
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1826
													.convertProjectOrFullPathToMMP(
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1827
															EMMPPathContext.USERINCLUDE, // CodForChk_Dis_LengthyLine
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1828
															projectRelativeIncDirPath); // CodForChk_Dis_LengthyLine
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1829
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1830
											// Get the list of user include
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1831
											// paths and add it if it's not
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1832
											// already there
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1833
											List<IPath> userIncludes = view
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1834
													.getUserIncludes();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1835
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1836
											String incPathAsOSString = incPath
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1837
													.toOSString();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1838
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1839
											boolean includeExist = false;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1840
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1841
											// Go through existing userincludes
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1842
											// to check if the path to add is
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1843
											// already present
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1844
											for (int i = 0; i < userIncludes
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1845
													.size(); i++) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1846
												String pathAsOSString = userIncludes
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1847
														.get(i).toOSString();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1848
												pathAsOSString = pathAsOSString
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1849
														.toLowerCase();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1850
												if (pathAsOSString
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1851
														.equalsIgnoreCase(incPathAsOSString)) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1852
													includeExist = true;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1853
													break;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1854
												}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1855
											}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1856
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1857
											if (!includeExist) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1858
												userIncludes.add(incPath);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1859
												WorkbenchUtils
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1860
														.postUserIncludeMsg(mmpPath);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1861
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1862
												// Now commit the changes and
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1863
												// release the file
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1864
												while (true) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1865
													try {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1866
														view.commit();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1867
														break;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1868
													} catch (IllegalStateException e) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1869
														CarbideBuilderPlugin
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1870
																.log(e);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1871
														if (!view.merge()) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1872
															view.revert();
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1873
														}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1874
													}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1875
												}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1876
											}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1877
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1878
										} catch (InvalidDriveInMMPPathException e) {
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1879
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1880
											// Shouldn't get here; we passed in
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1881
											// a project-relative path
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1882
											CarbideBuilderPlugin.log(e);
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1883
										}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1884
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1885
										return null;
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1886
									}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1887
								});
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1888
					}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1889
				}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1890
			}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1891
		}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1892
	}
ed1c9f64298a TraceBuilder 2.4.0
Matti Laitinen <matti.t.laitinen@nokia.com>
parents:
diff changeset
  1893
}