sysperfana/perfinvestigator/com.nokia.carbide.cpp.pi/src/com/nokia/carbide/cpp/internal/pi/utils/PIUtilities.java
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/sysperfana/perfinvestigator/com.nokia.carbide.cpp.pi/src/com/nokia/carbide/cpp/internal/pi/utils/PIUtilities.java Thu Feb 11 15:32:31 2010 +0200
@@ -0,0 +1,206 @@
+/*
+ * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the License "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:
+ *
+ */
+
+package com.nokia.carbide.cpp.internal.pi.utils;
+
+import java.io.File;
+import java.io.FileOutputStream;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.FileDialog;
+import org.eclipse.ui.PlatformUI;
+
+import com.nokia.carbide.cpp.pi.util.GeneralMessages;
+
+public abstract class PIUtilities
+{
+ private static String previous_path;
+
+ //this is needed by createFileChooser method
+ private static String getPath(String fileName)
+ {
+ if (fileName.length() != 0)
+ {
+ File file = new File(fileName);
+ if (file.exists())
+ {
+ return fileName.substring(0,fileName.lastIndexOf(System.getProperty(Messages.getString("PIUtilities.fileSeparatorProperty")))); //$NON-NLS-1$
+ }
+ }
+ return ""; //$NON-NLS-1$
+ }
+
+ public static String selectAFile()
+ {
+ //file chooser
+ FileDialog fileDialog = new FileDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), SWT.OPEN);
+
+ String tracefileName = fileDialog.open();
+
+ File selected = new File(tracefileName);
+
+ if ((selected != null) && selected.exists() && selected.isFile()) {
+ return selected.getAbsolutePath();
+ }
+
+ return null;
+ }
+
+ public static String selectADirectory()
+ {
+ FileDialog fileDialog = new FileDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), SWT.OPEN);
+
+ String tracefileName = fileDialog.open();
+
+ File selected = new File(tracefileName);
+
+ if ((selected != null) && selected.exists() && selected.isDirectory()) {
+ return selected.getAbsolutePath();
+ }
+
+ return null;
+ }
+
+ /*************** stuff moved from profile reader *************/
+
+ public static File getAFile(String filter) throws Exception
+ {
+
+ return getAFile(false, filter);
+ }
+
+ //loads and saves a file, TestGUI import menu
+ public static File getAFile(boolean new_file, String filter) throws Exception
+ {
+ if (previous_path == null)
+ {
+ previous_path = System.getProperty(Messages.getString("PIUtilities.userDirPropert")); //$NON-NLS-1$
+ }
+
+ // get a file via dialog
+ // For now, require a .pi or .bap file
+ FileDialog fileDialog;
+
+ if (!new_file)
+ {
+ fileDialog = new FileDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), SWT.SAVE);
+ } else {
+ fileDialog = new FileDialog(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(), SWT.OPEN);
+ }
+
+ fileDialog.setFilterPath(previous_path);
+
+ if (filter != null && filter.length() != 0) {
+ PIFileFilter fileFilter = new PIFileFilter(filter);
+ fileDialog.setFilterExtensions(new String[] { "." + filter }); //$NON-NLS-1$
+
+ String fileFilterName = fileFilter.getDescription();
+ if (fileFilterName != null) {
+ fileDialog.setFilterNames(new String[] { fileFilterName });
+ }
+ }
+
+ String tracefileName = fileDialog.open();
+
+ File selected = null;
+
+ if (tracefileName != null) {
+ selected = new File(tracefileName);
+
+ if ((selected != null) && selected.exists()) {
+ if (!new_file)
+ {
+ if ( (!tracefileName.endsWith(".dat")) //$NON-NLS-1$
+ && (!tracefileName.endsWith("base64")) //$NON-NLS-1$
+ && (!tracefileName.endsWith(".bap")) //$NON-NLS-1$
+ && (!tracefileName.endsWith(".map")) //$NON-NLS-1$
+ //performance framework files
+ && (!tracefileName.endsWith(".csv")) //$NON-NLS-1$
+ && (!tracefileName.endsWith(".txt"))) //$NON-NLS-1$
+ {
+ System.out.println(Messages.getString("PIUtilities.notSupported1") + tracefileName + Messages.getString("PIUtilities.notSupported2")); //$NON-NLS-1$ //$NON-NLS-2$
+ throw new Exception(Messages.getString("PIUtilities.notSupported3") + tracefileName + Messages.getString("PIUtilities.notSupported4")); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+ } else {
+ // new file
+ if (filter == "jpg") //$NON-NLS-1$
+ {
+ if (!selected.getName().endsWith(".jpg")) //$NON-NLS-1$
+ {
+ selected = new File(selected.getAbsolutePath() + ".jpg"); //$NON-NLS-1$
+ }
+ }
+ else if (filter == "bap") //$NON-NLS-1$
+ {
+ if (!selected.getName().endsWith(".bap")) //$NON-NLS-1$
+ {
+ selected = new File(selected.getAbsolutePath() + ".bap"); //$NON-NLS-1$
+ }
+ }
+ else if (filter == "csv") //$NON-NLS-1$
+ {
+ if (!selected.getName().endsWith(".csv")) //$NON-NLS-1$
+ {
+ selected = new File(selected.getAbsolutePath() + ".csv"); //$NON-NLS-1$
+ }
+ }
+ }
+ } else {
+ selected = null;
+ }
+ }
+
+ if (selected != null)
+ {
+ /*config.setLastOpened(selected);*/
+ previous_path = getPath(selected.toString());
+ }
+
+ return selected;
+ }
+
+ public static void saveCsvPrint(File f, String print) throws Exception
+ {
+ if (f == null)
+ return;
+ FileOutputStream fos = new FileOutputStream(f);
+ fos.write(print.getBytes(Messages.getString("PIUtilities.defaultCharacterSet"))); //$NON-NLS-1$
+ fos.flush();
+ fos.close();
+ }
+
+ public static void saveFile(File f, String print_data) throws Exception
+ {
+ if (f == null)
+ return;
+ FileOutputStream fos = new FileOutputStream(f);
+ fos.write(print_data.getBytes(Messages.getString("PIUtilities.defaultCharacterSet"))); //$NON-NLS-1$
+ fos.flush();
+ fos.close();
+
+ }
+
+ public static boolean isSymbolFileOk(String symbol_file)
+ {
+ if (symbol_file.endsWith("symbol")) //$NON-NLS-1$
+ {
+ GeneralMessages.showErrorMessage(Messages.getString("PIUtilities.cannotLoadSymbolFile")); //$NON-NLS-1$
+ return false;
+ }
+ return true;
+ }
+}