--- a/sysperfana/analyzetoolext/com.nokia.s60tools.analyzetool/src/com/nokia/s60tools/analyzetool/global/Util.java Wed Apr 21 15:14:16 2010 +0300
+++ b/sysperfana/analyzetoolext/com.nokia.s60tools.analyzetool/src/com/nokia/s60tools/analyzetool/global/Util.java Wed Apr 21 19:42:48 2010 +0300
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+ * Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of "Eclipse Public License v1.0"
@@ -77,1195 +77,1350 @@
/**
* Provides commonly used functions.
- *
+ *
* @author kihe
- *
+ *
*/
-public class Util {
+public final class Util {
- /** Contains user selection in the confirmation dialog. */
- private static boolean ret;
+ /** Contains user selection in the confirmation dialog. */
+ private static boolean ret;
- /** Contains user selection (integer) in the selection dialog. */
- private static int retValue;
+ /** Contains user selection (integer) in the selection dialog. */
+ private static int retValue;
+
+ /** Contains user selection (String) in the selection dialog. */
+ private static String userSelection = "";
- /** Contains user selection (String) in the selection dialog. */
- private static String userSelection = "";
+ /** Contains StringBuffer size. */
+ private static int bufferSize = 32;
- /** Contains StringBuffer size. */
- private static int bufferSize = 32;
+ // make constructor private so class doesn't get instantiated
+ private Util() {
+ // do nothing by design
+ }
- /**
- * Checks is module built.
- *
- * @param modules
- * Project modules
- * @param oneModuleName
- * Current module
- * @return True if module found and it is build
- */
- public static boolean chechModuleBuildState(
- final AbstractList<MMPInfo> modules, final String oneModuleName) {
- Iterator<MMPInfo> iterModules = modules.iterator();
- while (iterModules.hasNext()) {
- MMPInfo oneMMPInfo = iterModules.next();
- String target = oneMMPInfo.getTarget();
- if (target == null) {
- continue;
- } else if (oneMMPInfo.getTarget().equalsIgnoreCase(oneModuleName)) {
- return oneMMPInfo.isBuildSuccesfully();
- }
+ /**
+ * Checks is module built.
+ *
+ * @param modules
+ * Project modules
+ * @param oneModuleName
+ * Current module
+ * @return True if module found and it is build
+ */
+ public static boolean checkModuleBuildState(
+ final AbstractList<MMPInfo> modules, final String oneModuleName) {
+ Iterator<MMPInfo> iterModules = modules.iterator();
+ while (iterModules.hasNext()) {
+ MMPInfo oneMMPInfo = iterModules.next();
+ String target = oneMMPInfo.getTarget();
+ if (target == null) {
+ continue;
+ } else if (oneMMPInfo.getTarget().equalsIgnoreCase(oneModuleName)) {
+ return oneMMPInfo.isBuildSuccesfully();
+ }
- // target not found try remove {}
- // for example process name is
- // "AToolMemoryLeakerDll2.dll{000a0000}[04463b81]"
- // but target name is AToolMemoryLeakerDll2.dll
- CharSequence brace = "{";
- if (oneModuleName.contains(brace)) {
- // parse braces
- String tmpTargetName = oneModuleName.substring(0, oneModuleName
- .indexOf('{'));
- if (tmpTargetName != null
- && oneMMPInfo.getTarget().equalsIgnoreCase(
- tmpTargetName)) {
- return oneMMPInfo.isBuildSuccesfully();
- }
- }
- }
- return false;
- }
+ // target not found try remove {}
+ // for example process name is
+ // "AToolMemoryLeakerDll2.dll{000a0000}[04463b81]"
+ // but target name is AToolMemoryLeakerDll2.dll
+ CharSequence brace = "{";
+ if (oneModuleName.contains(brace)) {
+ // parse braces
+ String tmpTargetName = oneModuleName.substring(0, oneModuleName
+ .indexOf('{'));
+ if (tmpTargetName != null
+ && oneMMPInfo.getTarget().equalsIgnoreCase(
+ tmpTargetName)) {
+ return oneMMPInfo.isBuildSuccesfully();
+ }
+ }
+ }
+ return false;
+ }
- /**
- * Checks is AnalyzeTool libraries installed from the current SDK.
- *
- * @param cpi
- * {@link ICarbideProjectInfo} reference
- * @return True if libraries are installed otherwise false.
- */
- public static boolean checkAtoolLibs(final ICarbideProjectInfo cpi) {
- // get active platform
- String platform = cpi.getDefaultConfiguration().getPlatformString();
+ /**
+ * Checks is AnalyzeTool libraries installed from the current SDK.
+ *
+ * @param cpi
+ * {@link ICarbideProjectInfo} reference
+ * @return True if libraries are installed otherwise false.
+ */
+ public static boolean checkAtoolLibs(final ICarbideProjectInfo cpi) {
+ // get active platform
+ String platform = cpi.getDefaultConfiguration().getPlatformString();
- // get epoc root
- IPath epocRootPath = EpocEngineHelper.getEpocRootForProject(cpi.getProject());
+ // get epoc root
+ IPath epocRootPath = EpocEngineHelper.getEpocRootForProject(cpi
+ .getProject());
- //check that epocroot path found
- if( epocRootPath == null ) {
- return false;
- }
+ // check that epocroot path found
+ if (epocRootPath == null) {
+ return false;
+ }
- String epocroot = epocRootPath.toOSString();
- boolean found = true;
- StringBuffer fileBuffer = new StringBuffer(bufferSize);
- fileBuffer.append(Constants.CAN_NOT_FIND_LIBRARIES_MARKER);
- fileBuffer.append(": ");
- if ((Constants.BUILD_TARGET_WINSCW).equalsIgnoreCase(platform)) {
- for (int i = 0; i < Constants.atoolLibsSbs2.length; i++) {
- java.io.File file = new java.io.File(epocroot
- + Constants.atoolLibsWinscw[i]);
- if (!file.exists()) {
- found = false;
- fileBuffer.append(epocroot);
- fileBuffer.append(Constants.atoolLibsWinscw[i]);
- fileBuffer.append(' ');
- }
- }
- } else if ((Constants.BUILD_TARGET_ARMV5).equalsIgnoreCase(platform)) {
- if (AnalyzeToolBuilder.isSBSBuildActivated(cpi)) {
- for (int i = 0; i < Constants.atoolLibsSbs2.length; i++) {
- java.io.File file = new java.io.File(epocroot
- + Constants.atoolLibsSbs2[i]);
- if (!file.exists()) {
- found = false;
- fileBuffer.append(epocroot);
- fileBuffer.append(Constants.atoolLibsSbs2[i]);
- fileBuffer.append(' ');
- }
- }
- } else {
- for (int i = 0; i < Constants.atoolLibs.length; i++) {
- java.io.File file = new java.io.File(epocroot
- + Constants.atoolLibs[i]);
- if (!file.exists()) {
- found = false;
- fileBuffer.append(epocroot);
- fileBuffer.append(Constants.atoolLibs[i]);
- fileBuffer.append(' ');
- }
- }
- }
- }
- if (!found) {
- createErrorMarker(cpi.getProject(), fileBuffer.toString());
- }
+ String epocroot = epocRootPath.toOSString();
+ boolean found = true;
+ StringBuffer fileBuffer = new StringBuffer(bufferSize);
+ fileBuffer.append(Constants.CAN_NOT_FIND_LIBRARIES_MARKER);
+ fileBuffer.append(": ");
+ if ((Constants.BUILD_TARGET_WINSCW).equalsIgnoreCase(platform)) {
+ for (int i = 0; i < Constants.atoolLibsSbs2.length; i++) {
+ java.io.File file = new java.io.File(epocroot
+ + Constants.atoolLibsWinscw[i]);
+ if (!file.exists()) {
+ found = false;
+ fileBuffer.append(epocroot);
+ fileBuffer.append(Constants.atoolLibsWinscw[i]);
+ fileBuffer.append(' ');
+ }
+ }
+ } else if ((Constants.BUILD_TARGET_ARMV5).equalsIgnoreCase(platform)) {
+ if (AnalyzeToolBuilder.isSBSBuildActivated(cpi)) {
+ for (int i = 0; i < Constants.atoolLibsSbs2.length; i++) {
+ java.io.File file = new java.io.File(epocroot
+ + Constants.atoolLibsSbs2[i]);
+ if (!file.exists()) {
+ found = false;
+ fileBuffer.append(epocroot);
+ fileBuffer.append(Constants.atoolLibsSbs2[i]);
+ fileBuffer.append(' ');
+ }
+ }
+ } else {
+ for (int i = 0; i < Constants.atoolLibs.length; i++) {
+ java.io.File file = new java.io.File(epocroot
+ + Constants.atoolLibs[i]);
+ if (!file.exists()) {
+ found = false;
+ fileBuffer.append(epocroot);
+ fileBuffer.append(Constants.atoolLibs[i]);
+ fileBuffer.append(' ');
+ }
+ }
+ }
+ }
+ if (!found) {
+ createErrorMarker(cpi.getProject(), fileBuffer.toString());
+ }
- return found;
- }
+ return found;
+ }
- /**
- * Copies stored memory leak analysis file to given folder.
- *
- * @param resultFile
- * Existing results file
- * @param targetPath
- * Where to save xml file
- * @return True if copy success otherwise False
- */
- public static boolean copyFileToFolder(final String resultFile,
- final String targetPath) {
- FileChannel inputChannel = null;
- FileChannel ouputChannel = null;
- FileInputStream inStream = null;
- FileOutputStream outStream = null;
- boolean returnValue = true;
- try {
+ /**
+ * Copies stored memory leak analysis file to given folder.
+ *
+ * @param resultFile
+ * Existing results file
+ * @param targetPath
+ * Where to save xml file
+ * @return True if copy success otherwise False
+ */
+ public static boolean copyFileToFolder(final String resultFile,
+ final String targetPath) {
+ FileChannel inputChannel = null;
+ FileChannel ouputChannel = null;
+ FileInputStream inStream = null;
+ FileOutputStream outStream = null;
+ boolean returnValue = true;
+ try {
+
+ // get channel to existing file
+ inStream = new FileInputStream(resultFile);
+ inputChannel = inStream.getChannel();
+
+ // get channel to new file
+ outStream = new FileOutputStream(targetPath, false);
+ ouputChannel = outStream.getChannel();
- // get channel to existing file
- inStream = new FileInputStream(resultFile);
- inputChannel = inStream.getChannel();
+ // get existing file size
+ final long size = inputChannel.size();
+
+ // position inside the file
+ long position = 0;
- // get channel to new file
- outStream = new FileOutputStream(targetPath, false);
- ouputChannel = outStream.getChannel();
+ // copy file contents if there are data to copy
+ while (position < size) {
+ position += ouputChannel.transferFrom(inputChannel, position,
+ size - position);
+ }
- // get existing file size
- final long size = inputChannel.size();
-
- // position inside the file
- long position = 0;
-
- // copy file contents if there are data to copy
- while (position < size) {
- position += ouputChannel.transferFrom(inputChannel, position,
- size - position);
- }
+ // close opened channels
+ inputChannel.close();
+ inStream.close();
+ ouputChannel.close();
+ outStream.close();
+ } catch (FileNotFoundException fnfe) {
+ returnValue = false;
+ } catch (IOException ioe) {
+ returnValue = false;
+ } finally {
+ try {
+ if (inputChannel != null) {
+ inputChannel.close();
+ inputChannel = null;
+ }
+ } catch (IOException ioe) {
+ returnValue = false;
+ }
- // close opened channels
- inputChannel.close();
- inStream.close();
- ouputChannel.close();
- outStream.close();
- } catch (FileNotFoundException fnfe) {
- returnValue = false;
- } catch (IOException ioe) {
- returnValue = false;
- } finally {
- try {
- if (inputChannel != null) {
- inputChannel.close();
- inputChannel = null;
- }
- } catch (IOException ioe) {
- returnValue = false;
- }
+ try {
+ if (inStream != null) {
+ inStream.close();
+ inStream = null;
+ }
+ } catch (IOException ioe) {
+ returnValue = false;
+ }
+
+ try {
+ if (ouputChannel != null) {
+ ouputChannel.close();
+ ouputChannel = null;
+ }
+ } catch (IOException ioe) {
+ returnValue = false;
+ }
- try {
- if (inStream != null) {
- inStream.close();
- inStream = null;
- }
- } catch (IOException ioe) {
- returnValue = false;
- }
+ try {
+ if (outStream != null) {
+ outStream.close();
+ outStream = null;
+ }
+ } catch (IOException ioe) {
+ returnValue = false;
+ }
+
+ }
+
+ return returnValue;
+ }
- try {
- if (ouputChannel != null) {
- ouputChannel.close();
- ouputChannel = null;
- }
- } catch (IOException ioe) {
- returnValue = false;
- }
-
- try {
- if (outStream != null) {
- outStream.close();
- outStream = null;
- }
- } catch (IOException ioe) {
- returnValue = false;
- }
-
- }
-
- return returnValue;
- }
+ /**
+ * Creates AnalyzeTool related error marker for the selected project.
+ *
+ * @param project
+ * Project reference
+ * @param errorText
+ * Error information
+ */
+ public static void createErrorMarker(final IProject project,
+ final String errorText) {
+ try {
+ // check project validity
+ if (project == null || !project.isOpen()) {
+ return;
+ }
- /**
- * Creates AnalyzeTool related error marker for the selected project.
- *
- * @param project
- * Project reference
- * @param errorText
- * Error information
- */
- public static void createErrorMarker(final IProject project,
- final String errorText) {
- try {
- // check project validity
- if (project == null || !project.isOpen()) {
- return;
- }
+ // create marker for the project
+ IMarker marker = project
+ .createMarker(ICModelMarker.C_MODEL_PROBLEM_MARKER);
+ if (marker.exists()) {
+ // set marker attributes
+ marker.setAttribute(IMarker.SEVERITY, IMarker.PRIORITY_HIGH);
+ marker.setAttribute(IMarker.TEXT, errorText);
+ marker.setAttribute(IMarker.MESSAGE, errorText);
+ }
+ } catch (CoreException ce) {
+ // #ifdef DEBUG
+ ce.printStackTrace();
+ // #endif
+ }
+ }
+
+ /**
+ * Deletes existing data file.
+ *
+ * @param project
+ * Project reference
+ */
+ public static void deleteDataFile(final IProject project) {
+ String bldInfFolder = getBldInfFolder(project, false);
+ String dataFileLocation = bldInfFolder + Constants.FILENAME;
+ java.io.File tmpFile = new java.io.File(dataFileLocation);
+ if (tmpFile.exists()) {
+ tmpFile.delete();
+ }
- // create marker for the project
- IMarker marker = project
- .createMarker(ICModelMarker.C_MODEL_PROBLEM_MARKER);
- if (marker.exists()) {
- // set marker attributes
- marker.setAttribute(IMarker.SEVERITY, IMarker.PRIORITY_HIGH);
- marker.setAttribute(IMarker.TEXT, errorText);
- marker.setAttribute(IMarker.MESSAGE, errorText);
- }
- } catch (CoreException ce) {
- // #ifdef DEBUG
- ce.printStackTrace();
- // #endif
- }
- }
+ String xmlFileLocation = bldInfFolder + Constants.FILENAME_CARBIDE;
+ java.io.File tmpXMLFile = new java.io.File(xmlFileLocation);
+ if (tmpXMLFile.exists()) {
+ tmpXMLFile.delete();
+ }
+
+ tmpFile = null;
+ tmpXMLFile = null;
+ }
- /**
- * Deletes existing data file.
- *
- * @param project
- * Project reference
- */
- public static void deleteDataFile(final IProject project) {
- String bldInfFolder = getBldInfFolder(project, false);
- String dataFileLocation = bldInfFolder + Constants.FILENAME;
- java.io.File tmpFile = new java.io.File(dataFileLocation);
- if (tmpFile.exists()) {
- tmpFile.delete();
- }
+ /**
+ * Open file save dialog.
+ *
+ * @param title
+ * Save dialog title
+ * @param ext
+ * Used extension filters
+ *
+ * @param shell
+ * Used Shell reference
+ *
+ * @return User selected path
+ */
+ public static String fileSaveDialog(final String title, final String[] ext,
+ final Shell shell) {
+ FileDialog fileDialog = new FileDialog(shell, SWT.SAVE);
+ fileDialog.setText(title);
+ fileDialog.setFilterExtensions(ext);
+ return fileDialog.open();
+
+ }
- String xmlFileLocation = bldInfFolder + Constants.FILENAME_CARBIDE;
- java.io.File tmpXMLFile = new java.io.File(xmlFileLocation);
- if (tmpXMLFile.exists()) {
- tmpXMLFile.delete();
- }
+ /**
+ * Gets atool.exe installation folder which is specified on preferences
+ * page.
+ *
+ * @return Atool.exe installation folder
+ */
+ public static String getAtoolInstallFolder() {
+ // get preference store
+ IPreferenceStore store = Activator.getPreferences();
- tmpFile = null;
- tmpXMLFile = null;
- }
+ // create new string buffer
+ StringBuffer atoolInstallFolder = new StringBuffer();
+ boolean useInternal = store.getBoolean(Constants.USE_INTERNAL);
- /**
- * Open file save dialog.
- *
- * @param title
- * Save dialog title
- * @param ext
- * Used extension filters
- *
- * @param shell
- * Used Shell reference
- *
- * @return User selected path
- */
- public static String fileSaveDialog(final String title, final String[] ext,
- final Shell shell) {
- FileDialog fileDialog = new FileDialog(shell, SWT.SAVE);
- fileDialog.setText(title);
- fileDialog.setFilterExtensions(ext);
- return fileDialog.open();
+ // append atool.exe installation folder
+ String folder = store.getString(Constants.ATOOL_FOLDER);
+ if (useInternal) {
+ atoolInstallFolder.append(getDefaultAtoolLocation());
+ } else if (("").equals(folder)) {
+ store.setValue(Constants.USE_INTERNAL, true);
+ atoolInstallFolder.append(getDefaultAtoolLocation());
+ } else if (folder.equals(Constants.DEFAULT_ATOOL_FOLDER)) {
+ java.io.File file = new java.io.File(Constants.DEFAULT_ATOOL_FOLDER);
+ if (file.exists()) {
+ atoolInstallFolder.append(Constants.DEFAULT_ATOOL_FOLDER);
+ } else {
+ store.setValue(Constants.USE_INTERNAL, true);
+ atoolInstallFolder.append(getDefaultAtoolLocation());
+ }
+ } else {
+ atoolInstallFolder.append(folder);
+ }
+ // append atool.exe to installation path
+ atoolInstallFolder.append("\\atool.exe");
+ return atoolInstallFolder.toString();
+ }
- }
+ /**
+ * Returns atool.exe version number Executes atool.exe via Process class and
+ * parses atool.exe output to get version number.
+ *
+ * @param path
+ * Atool.exe path
+ * @return Atool.exe version number if found otherwise "Not available"
+ */
+ public static String getAtoolVersionNumber(final String path) {
+
+ BufferedInputStream br = null;
- /**
- * Gets atool.exe installation folder which is specified on preferences
- * page.
- *
- * @return Atool.exe installation folder
- */
- public static String getAtoolInstallFolder() {
- // get preference store
- IPreferenceStore store = Activator.getPreferences();
+ try {
+ // used atool.exe location
+ String usedPath = null;
- // create new string buffer
- StringBuffer atoolInstallFolder = new StringBuffer();
+ // if path not given => use default location
+ if (path == null) {
+ usedPath = getDefaultAtoolLocation() + "\\atool.exe";
+ } else if (path.contains("atool.exe")) {
+ usedPath = path;
+ }
+ // else use given location
+ else {
+ usedPath = path + "\\atool.exe";
+ }
- boolean useInternal = store.getBoolean(Constants.USE_INTERNAL);
+ // command
+ String[] args = { "cmd", "/c", usedPath, "-v" };
- // append atool.exe installation folder
- String folder = store.getString(Constants.ATOOL_FOLDER);
- if (useInternal) {
- atoolInstallFolder.append(getDefaultAtoolLocation());
- } else if (("").equals(folder)) {
- store.setValue(Constants.USE_INTERNAL, true);
- atoolInstallFolder.append(getDefaultAtoolLocation());
- } else if (folder.equals(Constants.DEFAULT_ATOOL_FOLDER)) {
- java.io.File file = new java.io.File(Constants.DEFAULT_ATOOL_FOLDER);
- if (file.exists()) {
- atoolInstallFolder.append(Constants.DEFAULT_ATOOL_FOLDER);
- } else {
- store.setValue(Constants.USE_INTERNAL, true);
- atoolInstallFolder.append(getDefaultAtoolLocation());
- }
- } else {
- atoolInstallFolder.append(folder);
- }
- // append atool.exe to installation path
- atoolInstallFolder.append("\\atool.exe");
- return atoolInstallFolder.toString();
- }
+ // execute command
+ Process pr = Runtime.getRuntime().exec(args);
+
+ // get atool.exe response to buffer
+ br = new BufferedInputStream(pr.getInputStream());
+
+ // wait that all the input is captured
+ pr.waitFor();
+
+ // create new stringbuffer for the input
+ StringBuffer bf = new StringBuffer("");
+ int r = -1;
+
+ // read atool.exe response to stringbufffer
+ while ((r = br.read()) != -1) {
+ bf.append((char) r);
+ }
+
+ // because atool.exe response is following format
+ // Version: [version number]
+ // Path: [location]
+ // Modified: [date and time]
+ // we only need to get first row of response
+ String[] array = bf.toString().split("\r\n");
+
+ // check array
+ if (array != null && array.length > 0) {
+
+ String version = "Version:";
- /**
- * Returns atool.exe version number Executes atool.exe via Process class and
- * parses atool.exe output to get version number.
- *
- * @param path
- * Atool.exe path
- * @return Atool.exe version number if found otherwise "Not available"
- */
- public static String getAtoolVersionNumber(final String path) {
+ // get first array
+ String versionStr = array[0];
+
+ // if first row contains "version:"
+ if (versionStr.contains(version)) {
- BufferedInputStream br = null;
+ // get atool.exe version number
+ String atoolVersionNbr = versionStr.substring(version
+ .length() + 1, versionStr.length());
- try {
- // used atool.exe location
- String usedPath = null;
+ if (atoolVersionNbr == null || ("").equals(atoolVersionNbr)) {
+ return Constants.PREFS_ATOOL_VER_NOT_FOUND;
+ }
- // if path not given => use default location
- if (path == null) {
- usedPath = getDefaultAtoolLocation() + "\\atool.exe";
- }
- else if( path.contains("atool.exe") ){
- usedPath = path;
- }
- // else use given location
- else {
- usedPath = path + "\\atool.exe";
- }
+ return atoolVersionNbr;
+ }
+ }
+ br.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ if (br != null) {
+ br.close();
+ br = null;
+ }
+ } catch (IOException ioe) {
+ ioe.printStackTrace();
+ }
- // command
- String[] args = { "cmd", "/c", usedPath, "-v" };
-
- // execute command
- Process pr = Runtime.getRuntime().exec(args);
-
- // get atool.exe response to buffer
- br = new BufferedInputStream(pr
- .getInputStream());
+ }
+ return Constants.PREFS_ATOOL_VER_NOT_FOUND;
+ }
- // wait that all the input is captured
- pr.waitFor();
+ /**
+ * Returns dbghelp.dll version information
+ *
+ * @param path
+ * atool.exe path
+ * @return dbghelp.dll version information
+ */
+ public static String getDbghelpDllVersionInfo(final String path) {
- // create new stringbuffer for the input
- StringBuffer bf = new StringBuffer("");
- int r = -1;
+ String dbghelpDllVersionInfo = Constants.DBGHELPDLL_IS_UP_TO_DATE;
+ BufferedInputStream bis = null;
- // read atool.exe response to stringbufffer
- while ((r = br.read()) != -1) {
- bf.append((char) r);
- }
+ try {
+ String usedPath = null;
- // because atool.exe response is following format
- // Version: [version number]
- // Path: [location]
- // Modified: [date and time]
- // we only need to get first row of response
- String[] array = bf.toString().split("\r\n");
+ if (path == null) {
+ usedPath = getDefaultAtoolLocation() + "\\atool.exe";
+ } else if (path.contains("atool.exe")) {
+ usedPath = path;
+ } else {
+ usedPath = path + "\\atool.exe";
+ }
- // check array
- if (array != null && array.length > 0) {
+ String[] args = { "cmd", "/c", usedPath, "-vdbghelp" };
- String version = "Version:";
+ Process pr = Runtime.getRuntime().exec(args);
- // get first array
- String versionStr = array[0];
+ bis = new BufferedInputStream(pr.getInputStream());
- // if first row contains "version:"
- if (versionStr.contains(version)) {
+ pr.waitFor();
- // get atool.exe version number
- String atoolVersionNbr = versionStr.substring(version
- .length() + 1, versionStr.length());
+ StringBuffer sb = new StringBuffer("");
+ int r = -1;
- if( atoolVersionNbr == null || ("").equals(atoolVersionNbr ) ) {
- return Constants.PREFS_ATOOL_VER_NOT_FOUND;
- }
+ while ((r = bis.read()) != -1) {
+ sb.append((char) r);
+ }
+
+ if (pr.exitValue() == 1)
+ dbghelpDllVersionInfo = sb.toString();
- return atoolVersionNbr;
- }
- }
- br.close();
- } catch (Exception e) {
- e.printStackTrace();
- } finally {
- try {
- if( br != null ) {
- br.close();
- br = null;
- }
- }catch( IOException ioe ) {
- ioe.printStackTrace();
- }
+ bis.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ } finally {
+ try {
+ if (bis != null) {
+ bis.close();
+ bis = null;
+ }
+ } catch (IOException ioe) {
+ ioe.printStackTrace();
+ }
+ }
+ return dbghelpDllVersionInfo;
+ }
- }
- return Constants.PREFS_ATOOL_VER_NOT_FOUND;
- }
-
- /**
- * Returns the version number of the AnalyzeTool host-side feature, or "Unknown" if it cannot be determined
- * @return feature version string
- */
- public static String getAToolFeatureVersionNumber(){
- String version = Constants.UNKNOWN;
- IBundleGroupProvider[] providers = Platform.getBundleGroupProviders();
+ /**
+ * Returns the version number of the AnalyzeTool host-side feature, or
+ * "Unknown" if it cannot be determined
+ *
+ * @return feature version string
+ */
+ public static String getAToolFeatureVersionNumber() {
+ String version = Constants.UNKNOWN;
+ IBundleGroupProvider[] providers = Platform.getBundleGroupProviders();
if (providers != null) {
for (IBundleGroupProvider bundleGroupProvider : providers) {
- for (IBundleGroup feature : bundleGroupProvider.getBundleGroups()) {
- if (feature.getIdentifier().equals("com.nokia.carbide.extensions.analyzetool")){
+ for (IBundleGroup feature : bundleGroupProvider
+ .getBundleGroups()) {
+ if (feature.getIdentifier().equals(
+ "com.nokia.carbide.extensions.analyzetool")) {
version = feature.getVersion();
break;
}
}
}
}
- return version;
- }
-
- /**
- * Gets project bld.inf folder path.
- *
- * @param project
- * Project reference
- * @param createTempFolder
- * Flag to create atool_temp folder
- * @return Project bld.inf folder path
- */
- public static String getBldInfFolder(final IProject project,
- final boolean createTempFolder) {
- // get bld.inf directory
- ICarbideProjectInfo cpi = CarbideBuilderPlugin.getBuildManager()
- .getProjectInfo(project);
- if (cpi == null) {
- return "";
- }
-
- String infDir = cpi.getINFWorkingDirectory().toOSString();
-
- // create atool_temp folder if it does not exists
- if (createTempFolder) {
- UseAtool.createAToolFolderIfNeeded(infDir);
- }
+ return version;
+ }
- return infDir + "\\atool_temp\\";
- }
-
- /**
- * Gets cpp file name and path.
- *
- * @param resource
- * One resource file
- * @return MMP file name and path if resource is mmp file, otherwise null
- */
- public static String getCPPFileNameAndPath(final IResource resource) {
- // get file extension
- String fileExt = resource.getFileExtension();
- String cppFileAndPath = null;
-
- // if file contains extension and it equals to mmp
- if (fileExt != null && fileExt.compareTo("cpp") == 0) {
- // get resource location/path
- String resourcePath = resource.getLocation().toString();
-
- // if resource path does not contain atool_temp folder
- // save resource location
- if (resourcePath.indexOf(Constants.ATOOL_TEMP) == -1) {
- cppFileAndPath = resource.getProjectRelativePath().toString();
- }
-
- }
+ /**
+ *
+ * Below is code a sample which are related to the AT-682, but it is decided
+ * to let out from current release.
+ *
+ * /** Finds and returns AnalyzeTool core version number. Version number is
+ * read from the analyzetool header file and it can be located under the
+ * epoc32 folder.
+ *
+ * @param project
+ * Project reference
+ * @return Found version number, otherwise null.
+ *
+ * public static String getAtoolCoreVersion(IProject project) { if(
+ * project != null && project.isOpen() ) {
+ *
+ * //get Carbide project info IPath epocRootPath =
+ * EpocEngineHelper.getEpocRootForProject(project); if( epocRootPath
+ * == null ) { return null; }
+ *
+ * File file = null; //thru all the possible locations for( int i=0;
+ * i< Constants.AT_CORE_INCLUDE_FILE_WITH_VERSION_NUMBER.length;
+ * i++) { //get file path StringBuffer location = new
+ * StringBuffer(); location.append(epocRootPath.toOSString());
+ * location
+ * .append(Constants.AT_CORE_INCLUDE_FILE_WITH_VERSION_NUMBER[i]);
+ *
+ * //check that file exists file = new File(location.toString());
+ * if( file.exists() ) { break; } }
+ *
+ * //read file content FileInputStream fis = null; BufferedReader
+ * input = null; try{ // get input fis = new FileInputStream(file);
+ * input = new BufferedReader(new InputStreamReader(fis,"UTF-8"));
+ *
+ * // get first line of data file String line = null; String version
+ * = null; // go thru file while ((line = input.readLine()) != null)
+ * { if( line.contains(Constants.AT_CORE_VERSION_NUMBER_TAG) ) {
+ * String[] text = line.split(" "); version = text[1]; } }
+ * fis.close(); input.close(); return version; } catch(Exception e)
+ * { e.printStackTrace(); } } return null; }
+ */
- // return cpp file name and path
- return cppFileAndPath;
- }
+ /**
+ * Gets project bld.inf folder path.
+ *
+ * @param project
+ * Project reference
+ * @param createTempFolder
+ * Flag to create atool_temp folder
+ * @return Project bld.inf folder path
+ */
+ public static String getBldInfFolder(final IProject project,
+ final boolean createTempFolder) {
+ // get bld.inf directory
+ ICarbideProjectInfo cpi = CarbideBuilderPlugin.getBuildManager()
+ .getProjectInfo(project);
+ if (cpi == null) {
+ return "";
+ }
- /**
- * Returns atool.exe location inside the plugin.
- *
- * @return Atool.exe location folder could be found otherwise ""
- */
- public static String getDefaultAtoolLocation() {
- try {
- // AnalyzeTool bundle
- Bundle bunble = Platform
- .getBundle("com.nokia.s60tools.analyzetool.corecomponents"); //$NON-NLS-1$
+ String infDir = cpi.getINFWorkingDirectory().toOSString();
- // if bundle not found return empty path
- if( bunble == null ) {
- return "";
- }
- // get bundle URL
- URL bundleURL = bunble.getEntry("/");
+ // create atool_temp folder if it does not exists
+ if (createTempFolder) {
+ UseAtool.createAToolFolderIfNeeded(infDir);
+ }
- // get file URL
- URL fileURL = FileLocator.toFileURL(bundleURL);
-
- // create new file
- File file = new File(fileURL.getPath());
+ return infDir + "\\atool_temp\\";
+ }
- // if file exists return file path + atool.exe folder name
- if (file.exists()) {
- return file.getAbsolutePath();
- }
- return "";
-
- } catch (Exception e) {
- e.printStackTrace();
- return "";
- }
- }
+ /**
+ * Gets cpp file name and path.
+ *
+ * @param resource
+ * One resource file
+ * @return MMP file name and path if resource is mmp file, otherwise null
+ */
+ public static String getCPPFileNameAndPath(final IResource resource) {
+ // get file extension
+ String fileExt = resource.getFileExtension();
+ String cppFileAndPath = null;
- /**
- * Gets last slash index for current string.
- *
- * @param line
- * Line where to find slash index
- * @return Integer value of slash index
- */
- public static int getLastSlashIndex(final String line) {
- // get last slash index
- char slash = '/';
- int slashIndex = line.lastIndexOf(slash);
- if (slashIndex == -1) {
- char backSlash = '\\';
- slashIndex = line.lastIndexOf(backSlash);
- }
+ // if file contains extension and it equals to mmp
+ if (fileExt != null && fileExt.compareTo("cpp") == 0) {
+ // get resource location/path
+ String resourcePath = resource.getLocation().toString();
+
+ // if resource path does not contain atool_temp folder
+ // save resource location
+ if (resourcePath.indexOf(Constants.ATOOL_TEMP) == -1) {
+ cppFileAndPath = resource.getProjectRelativePath().toString();
+ }
+
+ }
+
+ // return cpp file name and path
+ return cppFileAndPath;
+ }
- return slashIndex;
- }
+ /**
+ * Returns atool.exe location inside the plugin.
+ *
+ * @return Atool.exe location folder could be found otherwise ""
+ */
+ public static String getDefaultAtoolLocation() {
+ try {
+ // AnalyzeTool bundle
+ Bundle bunble = Platform
+ .getBundle("com.nokia.s60tools.analyzetool.corecomponents"); //$NON-NLS-1$
- /**
- * Check is atool.exe available.
- *
- * @return True if atool.exe found otherwise False
- */
- public static boolean isAtoolAvailable() {
- IPreferenceStore store = Activator.getPreferences();
- String folderLocation = store.getString(Constants.ATOOL_FOLDER);
+ // if bundle not found return empty path
+ if (bunble == null) {
+ return "";
+ }
+ // get bundle URL
+ URL bundleURL = bunble.getEntry("/");
- if (folderLocation.length() > 0) {
- if (!folderLocation.endsWith("\\")) {
- folderLocation += "\\";
- }
+ // get file URL
+ URL fileURL = FileLocator.toFileURL(bundleURL);
- IPath atoolPath = new Path(folderLocation + "atool.exe");
+ // create new file
+ File file = new File(fileURL.getPath());
- // if folder does not exists
- if (atoolPath.toFile().exists()) {
- return true;
- }
- }
+ // if file exists return file path + atool.exe folder name
+ if (file.exists()) {
+ return file.getAbsolutePath();
+ }
+ return "";
- return false;
- }
+ } catch (Exception e) {
+ e.printStackTrace();
+ return "";
+ }
+ }
- /**
- * Checks is data file available.
- *
- * @param project
- * Project reference
- * @return Data file path if it's available otherwise null
- */
- public static String isDataFileAvailable(final IProject project) {
- String bldInfFolder = getBldInfFolder(project, false);
- String dataFileLocation = bldInfFolder + Constants.FILENAME;
- java.io.File dataFile = new java.io.File(dataFileLocation);
- if (dataFile.exists() && dataFile.length() > 0 ) {
- return dataFileLocation;
- }
- return null;
- }
+ /**
+ * Gets last slash index for current string.
+ *
+ * @param line
+ * Line where to find slash index
+ * @return Integer value of slash index
+ */
+ public static int getLastSlashIndex(final String line) {
+ // get last slash index
+ char slash = '/';
+ int slashIndex = line.lastIndexOf(slash);
+ if (slashIndex == -1) {
+ char backSlash = '\\';
+ slashIndex = line.lastIndexOf(backSlash);
+ }
- /**
- * Checks is file extension .xml.
- *
- * @param filePath
- * File location
- * @return True if file contains xml extension otherwise false
- */
- public static boolean isFileXML(final String filePath) {
- String fileNameAndExt = null;
- // get index of last backslash
- int index = Util.getLastSlashIndex(filePath);
+ return slashIndex;
+ }
+
+ /**
+ * Check is atool.exe available.
+ *
+ * @return True if atool.exe found otherwise False
+ */
+ public static boolean isAtoolAvailable() {
+ IPreferenceStore store = Activator.getPreferences();
+ String folderLocation = store.getString(Constants.ATOOL_FOLDER);
- // if backslash found
- if (index != -1) {
+ if (folderLocation.length() > 0) {
+ if (!folderLocation.endsWith("\\")) {
+ folderLocation += "\\";
+ }
- // get file name
- fileNameAndExt = filePath.substring(index + 1, filePath.length());
+ IPath atoolPath = new Path(folderLocation + "atool.exe");
- // if file name contains xml extension
- if (fileNameAndExt.contains(".xml")) {
- return true;
- }
- }
- return false;
+ // if folder does not exists
+ if (atoolPath.toFile().exists()) {
+ return true;
+ }
+ }
- }
+ return false;
+ }
- /**
- * Check if current module is build.
- *
- * @param mmpFile
- * MMP file name and path
- * @return True if module is build otherwise False
- */
- public static boolean isModuleBuild(final String mmpFile) {
- String path = null;
- // remove mmp file name for path
- int slash = Util.getLastSlashIndex(mmpFile);
- if (slash == -1) {
- return false;
- }
- path = mmpFile.substring(0, slash);
- String buildFile = path + "\\atool_temp\\BuildComplete";
- java.io.File file = new java.io.File(buildFile);
- return file.exists();
- }
+ /**
+ * Checks is data file available.
+ *
+ * @param project
+ * Project reference
+ * @return Data file path if it's available otherwise null
+ */
+ public static String isDataFileAvailable(final IProject project) {
+ String bldInfFolder = getBldInfFolder(project, false);
+ String dataFileLocation = bldInfFolder + Constants.FILENAME;
+ java.io.File dataFile = new java.io.File(dataFileLocation);
+ if (dataFile.exists() && dataFile.length() > 0) {
+ return dataFileLocation;
+ }
+ return null;
+ }
- /**
- * Checks that belongs given module to selected project.
- *
- * @param modules
- * Project modules
- * @param oneModuleName
- * One module name
- * @return True if module belongs to selected project otherwise false
- */
- public static boolean isModulePartOfProject(
- final AbstractList<MMPInfo> modules, final String oneModuleName) {
- Iterator<MMPInfo> iterModules = modules.iterator();
- while (iterModules.hasNext()) {
- MMPInfo oneMMPInfo = iterModules.next();
- String target = oneMMPInfo.getTarget();
- if (target == null) {
- continue;
- } else if (oneMMPInfo.getTarget().equalsIgnoreCase(oneModuleName)) {
- return true;
- }
+ /**
+ * Checks is file extension .xml.
+ *
+ * @param filePath
+ * File location
+ * @return True if file contains xml extension otherwise false
+ */
+ public static boolean isFileXML(final String filePath) {
+ String fileNameAndExt = null;
+ // get index of last backslash
+ int index = Util.getLastSlashIndex(filePath);
- // target not found try remove {}
- // for example process name is
- // "AToolMemoryLeakerDll2.dll{000a0000}[04463b81]"
- // but target name is AToolMemoryLeakerDll2.dll
- CharSequence brace = "{";
- if (oneModuleName.contains(brace)) {
- // parse braces
- String tmpTargetName = oneModuleName.substring(0, oneModuleName
- .indexOf('{'));
- if (tmpTargetName != null
- && oneMMPInfo.getTarget().equalsIgnoreCase(
- tmpTargetName)) {
- return true;
- }
- }
- }
- return false;
- }
+ // if backslash found
+ if (index != -1) {
+
+ // get file name
+ fileNameAndExt = filePath.substring(index + 1, filePath.length());
+
+ // if file name contains xml extension
+ if (fileNameAndExt.contains(".xml")) {
+ return true;
+ }
+ }
+ return false;
+
+ }
- /**
- * Gets current project targets info.
- *
- * @param project
- * Project reference
- *
- * @return AbstractList<MMPInfo> List of project targets
- */
- public static AbstractList<MMPInfo> loadProjectTargetsInfo(
- final IProject project) {
- AbstractList<MMPInfo> targets = new ArrayList<MMPInfo>();
- if (project == null || !project.isOpen()) {
- return targets;
- }
-
- // Assumes buildConfig (ICarbideBuildConfiguration) is known
- ICarbideProjectInfo cpi = CarbideBuilderPlugin.getBuildManager()
- .getProjectInfo(project);
- if (cpi == null) {
- return new ArrayList<MMPInfo>();
- }
-
- ICarbideBuildConfiguration buildConfig = cpi.getDefaultConfiguration();
-
- for (IPath mmpPath : EpocEngineHelper
- .getMMPFilesForBuildConfiguration(buildConfig)) {
- Object data = EpocEnginePlugin.runWithMMPData(mmpPath,
- new DefaultMMPViewConfiguration(buildConfig
- .getCarbideProject().getProject(), buildConfig,
- new AcceptedNodesViewFilter()),
- new MMPDataRunnableAdapter() {
- public Object run(IMMPData mmpData) {
- // The real return value, getting a single argument
- // setting
- return mmpData.getSingleArgumentSettings().get(
- EMMPStatement.TARGET);
-
- }
- });
+ /**
+ * Check if current module is built.
+ *
+ * @param mmpFile
+ * MMP file name and path
+ * @return True if module is build otherwise False
+ */
+ public static boolean isModuleBuilt(final String mmpFile) {
+ String path = null;
+ // remove mmp file name for path
+ int slash = Util.getLastSlashIndex(mmpFile);
+ if (slash == -1) {
+ return false;
+ }
+ path = mmpFile.substring(0, slash);
+ String buildFile = path + "\\atool_temp\\BuildComplete";
+ java.io.File file = new java.io.File(buildFile);
+ return file.exists();
+ }
- // Make sure to test for and cast to proper Object type!
- int index = Util.getLastSlashIndex(mmpPath.toOSString());
- String mmpFileName = "";
- if (index != -1) {
- mmpFileName = mmpPath.toOSString().substring(index + 1,
- mmpPath.toOSString().length());
- }
- MMPInfo oneMMPInfo = new MMPInfo(mmpFileName);
- oneMMPInfo.setLocation(mmpPath.toOSString());
-
- String mmpStatement = (String) data; // Now we should have the
- // TARGETTYPE
- oneMMPInfo.setTarget(mmpStatement);
- targets.add(oneMMPInfo);
- }
- return targets;
- }
-
- /**
- * Opens confirmation Dialog.
- *
- * @param text
- * Dialog info text
- * @return boolean True if user selects "Yes" False if user selects "No"
- */
- public static boolean openConfirmationDialog(final String text) {
+ /**
+ * Checks that does given module belong to selected project.
+ *
+ * @param modules
+ * Project modules
+ * @param oneModuleName
+ * One module name
+ * @return True if module belongs to selected project otherwise false
+ */
+ public static boolean isModulePartOfProject(
+ final AbstractList<MMPInfo> modules, final String oneModuleName) {
+ Iterator<MMPInfo> iterModules = modules.iterator();
+ while (iterModules.hasNext()) {
+ MMPInfo oneMMPInfo = iterModules.next();
+ String target = oneMMPInfo.getTarget();
+ if (target == null) {
+ continue;
+ } else if (oneMMPInfo.getTarget().equalsIgnoreCase(oneModuleName)) {
+ return true;
+ }
- Activator.getDefault().getWorkbench().getDisplay().syncExec(
- new Runnable() {
- public void run() {
- ret = MessageDialog.openQuestion(new Shell(),
- Constants.ANALYZE_TOOL_TITLE, text);
- }
- });
- return ret;
- }
-
- /**
- * Opens confirmation Dialog.
- *
- * @param text
- * Dialog info text
- * @return int User selected index
- */
- public static int openConfirmationDialogWithCancel(final String text) {
+ // target not found try remove {}
+ // for example process name is
+ // "AToolMemoryLeakerDll2.dll{000a0000}[04463b81]"
+ // but target name is AToolMemoryLeakerDll2.dll
+ CharSequence brace = "{";
+ if (oneModuleName.contains(brace)) {
+ // parse braces
+ String tmpTargetName = oneModuleName.substring(0, oneModuleName
+ .indexOf('{'));
+ if (tmpTargetName != null
+ && oneMMPInfo.getTarget().equalsIgnoreCase(
+ tmpTargetName)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
- Activator.getDefault().getWorkbench().getDisplay().syncExec(
- new Runnable() {
- public void run() {
+ /**
+ * Gets current project targets info.
+ *
+ * @param project
+ * Project reference
+ *
+ * @return AbstractList<MMPInfo> List of project targets
+ */
+ public static AbstractList<MMPInfo> loadProjectTargetsInfo(
+ final IProject project) {
+ AbstractList<MMPInfo> targets = new ArrayList<MMPInfo>();
+ if (project == null || !project.isOpen()) {
+ return targets;
+ }
- String[] labels = new String[3];
- labels[0] = "Yes";
- labels[1] = "No";
- labels[2] = "Cancel";
- MessageDialog mDialog = new MessageDialog(new Shell(),
- Constants.ANALYZE_TOOL_TITLE, null, text, 0,
- labels, 0);
- mDialog.open();
- mDialog.create();
- retValue = mDialog.getReturnCode();
- }
- });
- return retValue;
- }
+ // Assumes buildConfig (ICarbideBuildConfiguration) is known
+ ICarbideProjectInfo cpi = CarbideBuilderPlugin.getBuildManager()
+ .getProjectInfo(project);
+ if (cpi == null) {
+ return new ArrayList<MMPInfo>();
+ }
+
+ ICarbideBuildConfiguration buildConfig = cpi.getDefaultConfiguration();
- /**
- * Opens console view.
- */
- public static void openConsoleView() {
- // sync with UI thread
- PlatformUI.getWorkbench().getDisplay().syncExec(new Runnable(){
- public void run() {
-
- try {
- // get active workspace page
- IWorkbenchPage page = Activator.getDefault().getWorkbench()
- .getActiveWorkbenchWindow().getActivePage();
-
+ for (IPath mmpPath : EpocEngineHelper
+ .getMMPFilesForBuildConfiguration(buildConfig)) {
+ Object data = EpocEnginePlugin.runWithMMPData(mmpPath,
+ new DefaultMMPViewConfiguration(buildConfig
+ .getCarbideProject().getProject(), buildConfig,
+ new AcceptedNodesViewFilter()),
+ new MMPDataRunnableAdapter() {
+ public Object run(IMMPData mmpData) {
+ // The real return value, getting a single argument
+ // setting
+ return mmpData.getSingleArgumentSettings().get(
+ EMMPStatement.TARGET);
- // display main view
- if (page != null) {
- IWorkbenchPart part = page.getActivePart();
-
-
- String activePageID = part.getSite().getId();
+ }
+ });
- if( activePageID.equals(Constants.ANALYZE_TOOL_VIEW_ID) || part instanceof org.eclipse.ui.navigator.CommonNavigator) {
- page
- .showView(org.eclipse.ui.console.IConsoleConstants.ID_CONSOLE_VIEW);
- }
-
- }
+ // Make sure to test for and cast to proper Object type!
+ int index = Util.getLastSlashIndex(mmpPath.toOSString());
+ String mmpFileName = "";
+ if (index != -1) {
+ mmpFileName = mmpPath.toOSString().substring(index + 1,
+ mmpPath.toOSString().length());
+ }
+ MMPInfo oneMMPInfo = new MMPInfo(mmpFileName);
+ oneMMPInfo.setLocation(mmpPath.toOSString());
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- });
- }
+ String mmpStatement = (String) data; // Now we should have the
+ // TARGETTYPE
+ oneMMPInfo.setTarget(mmpStatement);
+ targets.add(oneMMPInfo);
+ }
+ return targets;
+ }
- /**
- * Opens selection dialog.
- *
- * @param shell
- * Shell reference
- * @param title
- * Dialog title
- * @param defaultLocation
- * Dialog default location
- * @return User selection
- */
- public static String openFileDialog(final Shell shell, final String title,
- final String defaultLocation) {
- FileDialog fileDialog = new FileDialog(shell);
- fileDialog.setText(title);
- // set the file extension filter
- String[] filterExt = { "*.*", "*.dat", "*.xml" };
- fileDialog.setFilterExtensions(filterExt);
+ /**
+ * Opens confirmation Dialog.
+ *
+ * @param text
+ * Dialog info text
+ * @return boolean True if user selects "Yes" False if user selects "No"
+ */
+ public static boolean openConfirmationDialog(final String text) {
- // fileDialog.setFilterPath( defaultLocation );
- return fileDialog.open();
- }
+ Activator.getDefault().getWorkbench().getDisplay().syncExec(
+ new Runnable() {
+ public void run() {
+ ret = MessageDialog.openQuestion(new Shell(),
+ Constants.ANALYZE_TOOL_TITLE, text);
+ }
+ });
+ return ret;
+ }
- /**
- * Opens selection dialog.
- *
- * @param title
- * Dialog title
- * @param message
- * Dialog message text
- * @param input
- * Dialog input
- * @return Selected item
- */
- public static String openSelectionDialog(final String title,
- final String message, final AbstractList<String> input) {
- Activator.getDefault().getWorkbench().getDisplay().syncExec(
- new Runnable() {
- public void run() {
- userSelection = "";
+ /**
+ * Opens confirmation Dialog.
+ *
+ * @param text
+ * Dialog info text
+ * @return int User selected index
+ */
+ public static int openConfirmationDialogWithCancel(final String text) {
+
+ Activator.getDefault().getWorkbench().getDisplay().syncExec(
+ new Runnable() {
+ public void run() {
- ListDialog ld = new ListDialog(new Shell());
- ld.setAddCancelButton(true);
- ld.setContentProvider(new ArrayContentProvider());
- ld.setLabelProvider(new LabelProvider());
-
- int width = 0;
- // calculate dialog width
- for (int i = 0; i < input.size(); i++) {
- String tempStr = input.get(i);
-
- if (tempStr.length() > width) {
- width = tempStr.length();
- }
- }
+ String[] labels = new String[3];
+ labels[0] = "Yes";
+ labels[1] = "No";
+ labels[2] = "Cancel";
+ MessageDialog mDialog = new MessageDialog(new Shell(),
+ Constants.ANALYZE_TOOL_TITLE, null, text, 0,
+ labels, 0);
+ mDialog.open();
+ mDialog.create();
+ retValue = mDialog.getReturnCode();
+ }
+ });
+ return retValue;
+ }
- // set dialog width
- // ld.setWidthInChars( width + 2 );
- ld.setInput(input);
- ld.setTitle(title);
- if (message != null) {
- ld.setMessage(message);
- }
+ /**
+ * Opens console view.
+ */
+ public static void openConsoleView() {
+ // sync with UI thread
+ PlatformUI.getWorkbench().getDisplay().syncExec(new Runnable() {
+ public void run() {
- ld.setHelpAvailable(false);
- ld.open();
-
- Object[] objs = ld.getResult();
- if (objs != null) {
- userSelection = objs[0].toString();
- }
+ try {
+ // get active workspace page
+ IWorkbenchPage page = Activator.getDefault().getWorkbench()
+ .getActiveWorkbenchWindow().getActivePage();
- }
- });
- return userSelection;
- }
+ // display main view
+ if (page != null) {
+ IWorkbenchPart part = page.getActivePart();
+
+ String activePageID = part.getSite().getId();
- /**
- * Displays error message.
- *
- * @param message
- * Error note content
- */
- public static void showErrorMessage(final String message) {
-
- PlatformUI.getWorkbench().getDisplay().asyncExec( new Runnable() {
- public void run() {
- MessageDialog
- .openError(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), Constants.DIALOG_TITLE, message);
+ if (activePageID.equals(Constants.ANALYZE_TOOL_VIEW_ID)
+ || part instanceof org.eclipse.ui.navigator.CommonNavigator) {
+ page
+ .showView(org.eclipse.ui.console.IConsoleConstants.ID_CONSOLE_VIEW);
+ }
+
+ }
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
}
});
-
- }
+ }
- /**
- * Displays information note.
- *
- * @param message
- * Information note content
- */
- public static void showMessage(final String message) {
+ /**
+ * Opens selection dialog.
+ *
+ * @param shell
+ * Shell reference
+ * @param title
+ * Dialog title
+ * @param defaultLocation
+ * Dialog default location
+ * @return User selection
+ */
+ public static String openFileDialog(final Shell shell, final String title,
+ final String defaultLocation) {
+ FileDialog fileDialog = new FileDialog(shell);
+ fileDialog.setText(title);
+ // set the file extension filter
+ String[] filterExt = { "*.*", "*.dat", "*.xml" };
+ fileDialog.setFilterExtensions(filterExt);
- //sync with the UI thread
- PlatformUI.getWorkbench().getDisplay().syncExec( new Runnable() {
- public void run() {
+ // fileDialog.setFilterPath( defaultLocation );
+ return fileDialog.open();
+ }
- MessageDialog
- .openInformation(Activator.getDefault().getWorkbench()
- .getDisplay().getActiveShell(), Constants.DIALOG_TITLE,
- message);
- }
- });
+ /**
+ * Opens selection dialog.
+ *
+ * @param title
+ * Dialog title
+ * @param message
+ * Dialog message text
+ * @param input
+ * Dialog input
+ * @return Selected item
+ */
+ public static String openSelectionDialog(final String title,
+ final String message, final AbstractList<String> input) {
+ Activator.getDefault().getWorkbench().getDisplay().syncExec(
+ new Runnable() {
+ public void run() {
+ userSelection = "";
- }
+ ListDialog ld = new ListDialog(new Shell());
+ ld.setAddCancelButton(true);
+ ld.setContentProvider(new ArrayContentProvider());
+ ld.setLabelProvider(new LabelProvider());
- /**
- * Check is atool.exe verbose output checked.
- *
- * @return True verbose output is checked otherwise False
- */
- public static boolean verboseAtoolOutput() {
- IPreferenceStore store = Activator.getPreferences();
- return store.getBoolean(Constants.ATOOL_VERBOSE);
- }
+ int width = 0;
+ // calculate dialog width
+ for (int i = 0; i < input.size(); i++) {
+ String tempStr = input.get(i);
+
+ if (tempStr.length() > width) {
+ width = tempStr.length();
+ }
+ }
- /**
- * Creates progress dialog and clears atool.exe made changes.
- *
- * @param newProject
- * Project reference
- */
- public final void clearAtoolChanges(final IProject newProject) {
+ // set dialog width
+ // ld.setWidthInChars( width + 2 );
+ ld.setInput(input);
+ ld.setTitle(title);
+ if (message != null) {
+ ld.setMessage(message);
+ }
+
+ ld.setHelpAvailable(false);
+ ld.open();
- // project reference
- final IProject project = newProject;
+ Object[] objs = ld.getResult();
+ if (objs != null) {
+ userSelection = objs[0].toString();
+ }
- Job cleanJob = new Job(Constants.PROGRESSDIALOG_CLEAR_CHANGES) {
- @Override
- protected IStatus run(IProgressMonitor monitor) {
+ }
+ });
+ return userSelection;
+ }
- // update progress monitor state
- monitor.beginTask(Constants.PROGRESSDIALOG_CLEAR_CHANGES, IProgressMonitor.UNKNOWN);
+ /**
+ * Displays error message.
+ *
+ * @param message
+ * Error note content
+ */
+ public static void showErrorMessage(final String message) {
- // get project info
- ICarbideProjectInfo cpi = CarbideBuilderPlugin
- .getBuildManager().getProjectInfo(project);
- if (cpi == null) {
- return new Status(IStatus.OK, Constants.ANALYZE_CONSOLE_ID,
- IStatus.OK,
- Constants.PROGRESSDIALOG_CLEAN_COMPLETE, null);
- }
+ PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
+ public void run() {
+ MessageDialog.openError(PlatformUI.getWorkbench()
+ .getActiveWorkbenchWindow().getShell(),
+ Constants.DIALOG_TITLE, message);
+ }
+ });
+
+ }
- // new command launcher
- CarbideCommandLauncher cmdLauncher = new CarbideCommandLauncher(
- project, monitor, Constants.atoolParserIds, cpi
- .getINFWorkingDirectory());
- cmdLauncher.startTimingStats();
+ /**
+ * Displays information note.
+ *
+ * @param message
+ * Information note content
+ */
+ public static void showMessage(final String message) {
- cmdLauncher.showCommand(true);
+ // sync with the UI thread
+ PlatformUI.getWorkbench().getDisplay().syncExec(new Runnable() {
+ public void run() {
- cmdLauncher.writeToConsole(cmdLauncher.getTimingStats());
+ MessageDialog.openInformation(Activator.getDefault()
+ .getWorkbench().getDisplay().getActiveShell(),
+ Constants.DIALOG_TITLE, message);
+ }
+ });
+
+ }
- AbstractList<String> usedArguments = new ArrayList<String>();
- usedArguments.add("-c");
- if (Util.verboseAtoolOutput()) {
- usedArguments.add(Constants.ATOOL_SHOW_DEBUG);
- }
+ /**
+ * Check is atool.exe verbose output checked.
+ *
+ * @return True verbose output is checked otherwise False
+ */
+ public static boolean verboseAtoolOutput() {
+ IPreferenceStore store = Activator.getPreferences();
+ return store.getBoolean(Constants.ATOOL_VERBOSE);
+ }
- String[] arguments = new String[usedArguments.size()];
- usedArguments.toArray(arguments);
- int error = Constants.COMMAND_LINE_ERROR_CODE.OK.getCode();
- error = cmdLauncher.executeCommand(new Path(Util
- .getAtoolInstallFolder()), arguments,
- CarbideCPPBuilder.getResolvedEnvVars(cpi
- .getDefaultConfiguration()), cpi
- .getINFWorkingDirectory());
+ /**
+ * Creates progress dialog and clears atool.exe made changes.
+ *
+ * @param newProject
+ * Project reference
+ */
+ public static final void clearAtoolChanges(final IProject newProject) {
- // if command line engine returns some error code => display the error
- if( error != Constants.COMMAND_LINE_ERROR_CODE.OK.getCode() ) {
- Constants.COMMAND_LINE_ERROR_CODE errorCode = Util.getErrorCode(error);
- Util.displayCommandLineError(errorCode);
- }
+ // project reference
+ final IProject project = newProject;
+
+ Job cleanJob = new Job(Constants.PROGRESSDIALOG_CLEAR_CHANGES) {
+ @Override
+ protected IStatus run(IProgressMonitor monitor) {
+
+ // update progress monitor state
+ monitor.beginTask(Constants.PROGRESSDIALOG_CLEAR_CHANGES,
+ IProgressMonitor.UNKNOWN);
- return new Status(IStatus.OK, Constants.ANALYZE_CONSOLE_ID,
- IStatus.OK, Constants.PROGRESSDIALOG_CLEAN_COMPLETE,
- null);
- }
- };
- cleanJob.setUser(true);
- cleanJob.schedule();
- }
+ // get project info
+ ICarbideProjectInfo cpi = CarbideBuilderPlugin
+ .getBuildManager().getProjectInfo(project);
+ if (cpi == null) {
+ return new Status(IStatus.OK, Constants.ANALYZE_CONSOLE_ID,
+ IStatus.OK,
+ Constants.PROGRESSDIALOG_CLEAN_COMPLETE, null);
+ }
+ // new command launcher
+ CarbideCommandLauncher cmdLauncher = new CarbideCommandLauncher(
+ project, monitor, Constants.atoolParserIds, cpi
+ .getINFWorkingDirectory());
+ cmdLauncher.startTimingStats();
+
+ cmdLauncher.showCommand(true);
+
+ cmdLauncher.writeToConsole(cmdLauncher.getTimingStats());
+
+ AbstractList<String> usedArguments = new ArrayList<String>();
+ usedArguments.add("-c");
+ if (Util.verboseAtoolOutput()) {
+ usedArguments.add(Constants.ATOOL_SHOW_DEBUG);
+ }
- /**
- * Compares two atool.exe version numbers and returns
- * higher one.
- * @param firstVersion First version number
- * @param secondVersion Second version number
- * @return 0 if the first one is higher, 1 if the second one is higher otherwise -1
- */
- public static int compareVersionNumber(String firstVersion, String secondVersion)
- {
-
- // split version numbers
- String first[] = firstVersion.split("[.]");
- String second[] = secondVersion.split("[.]");
+ String[] arguments = new String[usedArguments.size()];
+ usedArguments.toArray(arguments);
+ int error = Constants.COMMAND_LINE_ERROR_CODE.OK.getCode();
+ error = cmdLauncher.executeCommand(new Path(Util
+ .getAtoolInstallFolder()), arguments, CarbideCPPBuilder
+ .getResolvedEnvVars(cpi.getDefaultConfiguration()), cpi
+ .getINFWorkingDirectory());
- // check that version numbers contains valid formatting
- if( first == null || second == null || first.length <1 || second.length < 1 || (first.length != second.length) ) {
- return Constants.VERSION_NUMBERS_INVALID;
- }
- // if version number equals => no need to check which one is higher
- if( firstVersion.equalsIgnoreCase(secondVersion) )
- {
- return Constants.VERSION_NUMBERS_EQUALS;
- }
- // thru splitted version number
- for( int i=0; i<first.length; i++ ) {
- try{
- int firstNumber = Integer.parseInt( first[i] );
- int secondNumber = Integer.parseInt( second[i] );
+ // if command line engine returns some error code => display the
+ // error
+ if (error != Constants.COMMAND_LINE_ERROR_CODE.OK.getCode()) {
+ Constants.COMMAND_LINE_ERROR_CODE errorCode = Util
+ .getErrorCode(error);
+ Util.displayCommandLineError(errorCode);
+ }
+
+ return new Status(IStatus.OK, Constants.ANALYZE_CONSOLE_ID,
+ IStatus.OK, Constants.PROGRESSDIALOG_CLEAN_COMPLETE,
+ null);
+ }
+ };
+ cleanJob.setUser(true);
+ cleanJob.schedule();
+ }
- // if first and second given number equals => skip to next number
- if( firstNumber == secondNumber ) {
- continue;
- }
- else if( firstNumber > secondNumber ) {
- return Constants.VERSION_NUMBERS_FIRST;
- }
- else {
- return Constants.VERSION_NUMBERS_SECOND;
- }
+ /**
+ * Compares two atool.exe version numbers and returns index of the higher
+ * one.
+ *
+ * @param firstVersion
+ * First version number
+ * @param secondVersion
+ * Second version number
+ * @return 0 if the first one is higher, 1 if the second one is higher, 2 if
+ * the versions equals otherwise -1
+ */
+ public static int compareVersionNumber(String firstVersion,
+ String secondVersion) {
+
+ // split version numbers
+ String first[] = firstVersion.split("[.]");
+ String second[] = secondVersion.split("[.]");
+
+ // check that version numbers contains valid formatting
+ if (first == null || second == null || first.length < 1
+ || second.length < 1 || (first.length != second.length)) {
+ return Constants.VERSION_NUMBERS_INVALID;
+ }
+ // if version number equals => no need to check which one is higher
+ if (firstVersion.equalsIgnoreCase(secondVersion)) {
+ return Constants.VERSION_NUMBERS_EQUALS;
+ }
+ // thru splitted version number
+ for (int i = 0; i < first.length; i++) {
+ try {
+ int firstNumber = Integer.parseInt(first[i]);
+ int secondNumber = Integer.parseInt(second[i]);
+
+ // if first and second given number equals => skip to next
+ // number
+ if (firstNumber == secondNumber) {
+ continue;
+ } else if (firstNumber > secondNumber) {
+ return Constants.VERSION_NUMBERS_FIRST;
+ } else {
+ return Constants.VERSION_NUMBERS_SECOND;
+ }
+
+ } catch (NumberFormatException nfe) {
+ nfe.printStackTrace();
+ return Constants.VERSION_NUMBERS_INVALID;
+ }
+ }
+ return Constants.VERSION_NUMBERS_INVALID;
+ }
- }catch(NumberFormatException nfe) {
- nfe.printStackTrace();
- return Constants.VERSION_NUMBERS_INVALID;
- }
- }
- return Constants.VERSION_NUMBERS_INVALID;
- }
+ /**
+ * Displays corresponding error message.
+ *
+ * @param errorCode
+ * Error code
+ */
+ public static final void displayCommandLineError(
+ Constants.COMMAND_LINE_ERROR_CODE errorCode) {
+ switch (errorCode) {
+ case EXECUTE_ERROR:
+ Util.showErrorMessage(Constants.ERROR_ATOOL_NOT_AVAILABLE);
+ break;
+ case OK:
+ // everything is OK, no need to do anything
+ break;
+
+ case INVALID_ARGUMENT_ERROR:
+ Util
+ .showErrorMessage("AnalyzeTool tried to execute command line engine with invalid parameters. \n\nTo avoid this go to AnalyzeTool preference page and select \"Use internal "
+ + "command line engine\".");
+ Activator
+ .getDefault()
+ .logInfo(
+ IStatus.ERROR,
+ IStatus.ERROR,
+ "AnalyzeTool - Extension tried to execute command line engine with invalid parameters.");
+ break;
+
+ case CANNOT_FIND_EPOCROOT:
+ Util
+ .showErrorMessage("AnalyzeTool can not find epocroot. \nCheck SDK preferences and build project again.");
+ Activator.getDefault().logInfo(IStatus.ERROR, IStatus.ERROR,
+ "AnalyzeTool - Can not find epocroot.");
+ break;
+
+ case MAKEFILE_ERROR:
+ Util
+ .showErrorMessage("AnalyzeTool command line engine fails to create makefiles.\n\nTry to clean AnalyzeTool changes and build project again."
+ + "\nIf problem still occurs contact AnalyzeTool development team.");
+ Activator.getDefault().logInfo(IStatus.ERROR, IStatus.ERROR,
+ "AnalyzeTool - Make file error.");
+ break;
+
+ case NO_SUPPORTED_MODULES_ERROR:
+ Util
+ .showErrorMessage("Project contains unsupported modules, this project could not build with AnalyzeTool!");
+ Activator.getDefault().logInfo(IStatus.ERROR, IStatus.ERROR,
+ "AnalyzeTool - No supported modules error.");
+ break;
+
+ case WRONG_DATA_FILE_VERSION:
+ Util
+ .showErrorMessage("Selected data file contains invalid version number. \nThis usually means that data file "
+ + "format is changed and AnalyzeTool command line engine can not resolve that. \n\nTry run tests again with the newest version of AnalyzeTool.");
+ Activator.getDefault().logInfo(IStatus.ERROR, IStatus.ERROR,
+ "AnalyzeTool - Wrong data file version.");
+ break;
-
- /**
- * Displays corresponding error message.
- * @param errorCode Error code
- */
- public static final void displayCommandLineError( Constants.COMMAND_LINE_ERROR_CODE errorCode ) {
- switch(errorCode) {
- case EXECUTE_ERROR:
- Util.showErrorMessage(Constants.ERROR_ATOOL_NOT_AVAILABLE);
- break;
- case OK:
- // everything is OK, no need to do anything
- break;
-
- case INVALID_ARGUMENT_ERROR:
- Util.showErrorMessage("AnalyzeTool tried to execute command line engine with invalid parameters. \n\nTo avoid this go to AnalyzeTool preference page and select \"Use internal " +
- "command line engine\".");
- Activator.getDefault().logInfo(IStatus.ERROR, IStatus.ERROR, "AnalyzeTool - Extension tried to execute command line engine with invalid parameters.");
- break;
-
- case CANNOT_FIND_EPOCROOT:
- Util.showErrorMessage("AnalyzeTool can not find epocroot. \nCheck SDK preferences and build project again.");
- Activator.getDefault().logInfo(IStatus.ERROR, IStatus.ERROR, "AnalyzeTool - Can not find epocroot.");
- break;
-
- case MAKEFILE_ERROR:
- Util.showErrorMessage("AnalyzeTool command line engine fails to create makefiles.\n\nTry to clean AnalyzeTool changes and build project again." +
- "\nIf problem still occurs contact AnalyzeTool development team.");
- Activator.getDefault().logInfo(IStatus.ERROR, IStatus.ERROR, "AnalyzeTool - Make file error.");
- break;
-
- case NO_SUPPORTED_MODULES_ERROR:
- Util.showErrorMessage("Project contains unsupported modules, this project could not build with AnalyzeTool!");
- Activator.getDefault().logInfo(IStatus.ERROR, IStatus.ERROR, "AnalyzeTool - No supported modules error.");
- break;
-
- case WRONG_DATA_FILE_VERSION:
- Util.showErrorMessage("Selected data file contains invalid version number. \nThis usually means that data file " +
- "format is changed and AnalyzeTool command line engine can not resolve that. \n\nTry run tests again with the newest version of AnalyzeTool.");
- Activator.getDefault().logInfo(IStatus.ERROR, IStatus.ERROR, "AnalyzeTool - Wrong data file version.");
- break;
-
- case ANALYZE_ERROR:
- Util.showErrorMessage("AnalyzeTool can not analyze the selected data file.\nThis problem usually occurs when selected file contains corrupted AnalyzeTool data. \nTry to run " +
- "tests again with the newest version of AnalyzeTool.");
- Activator.getDefault().logInfo(IStatus.ERROR, IStatus.ERROR, "AnalyzeTool - General Analyze Error.");
- break;
-
- case SYMBOL_FILE_ERROR:
- Util.showErrorMessage("AnalyzeTool can not resolve selected symbol file(s). \n\nGo to AnalyzeTool advanced preference page and check selected symbol file(s).");
- Activator.getDefault().logInfo(IStatus.ERROR, IStatus.ERROR, "AnalyzeTool - Symbol file error.");
- break;
-
- case DATA_FILE_EMPTY:
- Util.showErrorMessage("Can not analyze. \n\nSelected file is empty.");
- Activator.getDefault().logInfo(IStatus.ERROR, IStatus.ERROR, "AnalyzeTool - Selected file is empty.");
- break;
-
- case DATA_FILE_INVALID:
- Util.showErrorMessage("Can not analyze. \n\nSelected data file does not contain AnalyzeTool data.");
- Activator.getDefault().logInfo(IStatus.ERROR, IStatus.ERROR, "AnalyzeTool - Invalid data file.");
- break;
-
- case RELEASABLES_ERROR:
- Util.showErrorMessage("AnalyzeTool can not copy needed files, therefore callstack can not be displayed when analyzing data." +
- "\n\nTry to clean AnalyzeTool made changes and build project again.");
- Activator.getDefault().logInfo(IStatus.ERROR, IStatus.ERROR, "AnalyzeTool - Releasebles error.");
- break;
-
- case RESTORE_MODULES_ERROR:
- Activator.getDefault().logInfo(IStatus.ERROR, IStatus.ERROR, "AnalyzeTool - Restore module error.");
- break;
+ case ANALYZE_ERROR:
+ Util
+ .showErrorMessage("AnalyzeTool can not analyze the selected data file.\nThis problem usually occurs when selected file contains corrupted AnalyzeTool data. \nTry to run "
+ + "tests again with the newest version of AnalyzeTool.");
+ Activator.getDefault().logInfo(IStatus.ERROR, IStatus.ERROR,
+ "AnalyzeTool - General Analyze Error.");
+ break;
+
+ case SYMBOL_FILE_ERROR:
+ Util
+ .showErrorMessage("AnalyzeTool can not resolve selected symbol file(s). \n\nGo to AnalyzeTool advanced preference page and check selected symbol file(s).");
+ Activator.getDefault().logInfo(IStatus.ERROR, IStatus.ERROR,
+ "AnalyzeTool - Symbol file error.");
+ break;
+
+ case DATA_FILE_EMPTY:
+ Util
+ .showErrorMessage("Can not analyze. \n\nSelected file is empty.");
+ Activator.getDefault().logInfo(IStatus.ERROR, IStatus.ERROR,
+ "AnalyzeTool - Selected file is empty.");
+ break;
+
+ case DATA_FILE_INVALID:
+ Util
+ .showErrorMessage("Can not analyze. \n\nSelected data file does not contain AnalyzeTool data.");
+ Activator.getDefault().logInfo(IStatus.ERROR, IStatus.ERROR,
+ "AnalyzeTool - Invalid data file.");
+ break;
+
+ case RELEASABLES_ERROR:
+ Util
+ .showErrorMessage("AnalyzeTool can not copy needed files, therefore callstack can not be displayed when analyzing data."
+ + "\n\nTry to clean AnalyzeTool made changes and build project again.");
+ Activator.getDefault().logInfo(IStatus.ERROR, IStatus.ERROR,
+ "AnalyzeTool - Releasebles error.");
+ break;
+
+ case RESTORE_MODULES_ERROR:
+ Activator.getDefault().logInfo(IStatus.ERROR, IStatus.ERROR,
+ "AnalyzeTool - Restore module error.");
+ break;
+
+ case CREATING_TEMP_CPP_ERROR:
+ Activator.getDefault().logInfo(IStatus.ERROR, IStatus.ERROR,
+ "AnalyzeTool - Creating temp cpp file error.");
+ break;
+
+ case CLEANING_TEMP_ERROR:
+ Util
+ .showErrorMessage("AnalyzeTool failed to clean project. You may have to clean changes manually.");
+ Activator.getDefault().logInfo(IStatus.ERROR, IStatus.ERROR,
+ "AnalyzeTool - Clean error.");
+ break;
- case CREATING_TEMP_CPP_ERROR:
- Activator.getDefault().logInfo(IStatus.ERROR, IStatus.ERROR, "AnalyzeTool - Creating temp cpp file error.");
- break;
-
- case CLEANING_TEMP_ERROR:
- Util.showErrorMessage("AnalyzeTool failed to clean project. You may have to clean changes manually.");
- Activator.getDefault().logInfo(IStatus.ERROR, IStatus.ERROR, "AnalyzeTool - Clean error.");
- break;
+ case READ_MAKEFILE_ERROR:
+ Util
+ .showErrorMessage("AnalyzeTool command line engine can not read project make files. \n\nTry to clean AnalyzeTool"
+ + " made changes and build project again.");
+ Activator.getDefault().logInfo(IStatus.ERROR, IStatus.ERROR,
+ "AnalyzeTool - Read make file error.");
+ break;
- case READ_MAKEFILE_ERROR:
- Util.showErrorMessage("AnalyzeTool command line engine can not read project make files. \n\nTry to clean AnalyzeTool" +
- " made changes and build project again.");
- Activator.getDefault().logInfo(IStatus.ERROR, IStatus.ERROR, "AnalyzeTool - Read make file error.");
- break;
+ case MODIFY_MODULES_ERROR:
+ Util
+ .showErrorMessage("AnalyzeTool command line engine can not modify project modules.");
+ Activator.getDefault().logInfo(IStatus.ERROR, IStatus.ERROR,
+ "AnalyzeTool - Modify modules error.");
+ break;
- case MODIFY_MODULES_ERROR:
- Util.showErrorMessage("AnalyzeTool command line engine can not modify project modules.");
- Activator.getDefault().logInfo(IStatus.ERROR, IStatus.ERROR, "AnalyzeTool - Modify modules error.");
- break;
+ case INVALID_MMP_DEFINED:
+ // I think this case is not possible in extension side.
+ // because we ask mmp files from Carbide
+ // however if this case happens we just log it Carbide error log
+ Activator.getDefault().logInfo(IStatus.ERROR, IStatus.ERROR,
+ "AnalyzeTool - Invalid mmp file.");
+ break;
- case INVALID_MMP_DEFINED:
- // I think this case is not possible in extension side.
- // because we ask mmp files from Carbide
- // however if this case happens we just log it Carbide error log
- Activator.getDefault().logInfo(IStatus.ERROR, IStatus.ERROR, "AnalyzeTool - Invalid mmp file.");
- break;
+ case EMPTY_DATA_FILE:
+ Util
+ .showErrorMessage("Can not analyze. \n\nSelected file is empty.");
+ Activator.getDefault().logInfo(IStatus.ERROR, IStatus.ERROR,
+ "AnalyzeTool - Selected file is empty.");
+ break;
+ case UNKNOWN_ERROR:
+ Util
+ .showErrorMessage("Unable to execute action for current project.");
+ Activator.getDefault().logInfo(IStatus.ERROR, IStatus.ERROR,
+ "AnalyzeTool - unknown error.");
+ break;
- case UNKNOWN_ERROR:
- Util.showErrorMessage("Unable to execute action for current project.");
- Activator.getDefault().logInfo(IStatus.ERROR, IStatus.ERROR, "AnalyzeTool - unknown error.");
- break;
-
- }
- }
+ }
+ }
- /**
- * Finds correct Enum value for integer value.
- *
- * @param value Value to find from enum values
- * @return Enum value if found otherwise COMMAND_LINE_ERROR_CODE.UNKNOWN_ERROR
- */
- public static COMMAND_LINE_ERROR_CODE getErrorCode(final int value) {
- for( COMMAND_LINE_ERROR_CODE errorCode : COMMAND_LINE_ERROR_CODE.values() ) {
- if( errorCode.getCode() == value ) {
- return errorCode;
- }
- }
- return COMMAND_LINE_ERROR_CODE.UNKNOWN_ERROR;
- }
+ /**
+ * Finds correct Enum value for integer value.
+ *
+ * @param value
+ * Value to find from enum values
+ * @return Enum value if found otherwise
+ * COMMAND_LINE_ERROR_CODE.UNKNOWN_ERROR
+ */
+ public static COMMAND_LINE_ERROR_CODE getErrorCode(final int value) {
+ for (COMMAND_LINE_ERROR_CODE errorCode : COMMAND_LINE_ERROR_CODE
+ .values()) {
+ if (errorCode.getCode() == value) {
+ return errorCode;
+ }
+ }
+ return COMMAND_LINE_ERROR_CODE.UNKNOWN_ERROR;
+ }
}