srcanaapps/depexplorer/com.nokia.s60tools.appdep/src/com/nokia/s60tools/appdep/plugin/AppDepPlugin.java
author noe\swadi
Sat, 09 Jan 2010 10:04:11 +0530
changeset 0 a02c979e8dfd
permissions -rw-r--r--
1. Copyrights changed to EPL 2. Feature updates mentioned in release notes.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     1
/*
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     2
* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies). 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     3
* All rights reserved.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     4
* This component and the accompanying materials are made available
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     6
* which accompanies this distribution, and is available
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     8
*
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
     9
* Initial Contributors:
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    11
*
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    12
* Contributors:
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    13
*
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    14
* Description:
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    15
*
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    16
*/
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    17
 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    18
 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    19
package com.nokia.s60tools.appdep.plugin;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    20
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    21
import java.io.File;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    22
import java.io.IOException;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    23
import java.net.URL;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    24
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    25
import org.eclipse.core.runtime.FileLocator;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    26
import org.eclipse.jface.dialogs.MessageDialog;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    27
import org.eclipse.jface.preference.IPreferenceStore;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    28
import org.eclipse.jface.resource.ImageDescriptor;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    29
import org.eclipse.swt.widgets.Control;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    30
import org.eclipse.swt.widgets.Shell;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    31
import org.eclipse.ui.IWorkbenchPage;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    32
import org.eclipse.ui.PlatformUI;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    33
import org.eclipse.ui.plugin.AbstractUIPlugin;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    34
import org.osgi.framework.BundleContext;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    35
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    36
import com.nokia.s60tools.appdep.common.ProductInfoRegistry;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    37
import com.nokia.s60tools.appdep.core.AppDepCacheIndexManager;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    38
import com.nokia.s60tools.appdep.core.AppDepSettings;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    39
import com.nokia.s60tools.appdep.core.job.AppDepJobManager;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    40
import com.nokia.s60tools.appdep.resources.ImageKeys;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    41
import com.nokia.s60tools.appdep.resources.ImageResourceManager;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    42
import com.nokia.s60tools.appdep.resources.Messages;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    43
import com.nokia.s60tools.appdep.util.AppDepConsole;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    44
import com.nokia.s60tools.sdk.RVCTToolChainInfo;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    45
import com.nokia.s60tools.sdk.SdkEnvInfomationResolveFailureException;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    46
import com.nokia.s60tools.sdk.SdkManager;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    47
import com.nokia.s60tools.util.console.IConsolePrintUtility;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    48
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    49
/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    50
 * The main plugin class to be used in the desktop.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    51
 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    52
public class AppDepPlugin extends AbstractUIPlugin {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    53
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    54
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    55
	 * The shared instance. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    56
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    57
	private static AppDepPlugin plugin;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    58
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    59
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    60
	 * Command line tool settings should not be garbage collected
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    61
	 * during the plugin's lifetime. Having a reference in here
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    62
	 *  should enforce that singleton class is not garbage collected. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    63
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    64
	private static AppDepSettings settings;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    65
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    66
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    67
	 * Also <code>AppDepJobManager</code> instance should not be garbage collected
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    68
	 * during the plugin's lifetime. Having a reference in here
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    69
	 *  should enforce that singleton class is not garbage collected. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    70
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    71
	private static AppDepJobManager pluginJobManager;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    72
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    73
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    74
	 * Also <code>AppDepCacheIndexManager</code> instance should not be garbage collected
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    75
	 * during the plugin's lifetime. Having a reference in here
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    76
	 * should enforce that singleton class is not garbage collected. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    77
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    78
	private static AppDepCacheIndexManager cacheIndexManager;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    79
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    80
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    81
	 * Stores preferences
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    82
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    83
	private static IPreferenceStore prefsStore;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    84
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    85
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    86
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    87
	 * The constructor.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    88
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    89
	public AppDepPlugin() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    90
		plugin = this;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    91
		settings = AppDepSettings.getActiveSettings();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    92
		pluginJobManager = AppDepJobManager.getInstance();		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    93
		cacheIndexManager = AppDepCacheIndexManager.getInstance();		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    94
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    95
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    96
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    97
	 * Gets plug-in install path.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    98
	 * @return plug-in install path
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
    99
	 * @throws IOException
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   100
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   101
	private String getPluginInstallPath() throws IOException{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   102
		 // URL to the plugin's root ("/")
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   103
		URL relativeURL = getBundle().getEntry("/"); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   104
		//	Converting into local path
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   105
		URL localURL = FileLocator.toFileURL(relativeURL);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   106
		//	Getting install location in correct form
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   107
		File f = new File(localURL.getPath());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   108
		String pluginInstallLocation = f.getAbsolutePath();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   109
				
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   110
		return pluginInstallLocation;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   111
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   112
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   113
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   114
	 * Gets images path relative to given plugin install path.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   115
	 * @param pluginInstallPath Plugin installation path.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   116
	 * @return Path were image resources are located.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   117
	 * @throws IOException
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   118
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   119
	private String getImagesPath(String pluginInstallPath) throws IOException{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   120
		return pluginInstallPath
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   121
				+ File.separatorChar
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   122
				+ ProductInfoRegistry.getImagesDirectoryName();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   123
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   124
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   125
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   126
	 * This method is called upon plug-in activation
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   127
	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   128
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   129
	public void start(BundleContext context) throws Exception {		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   130
		super.start(context);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   131
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   132
		//Startup sequence starting message
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   133
		//This debug println has been left into the code in purpose
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   134
		System.out.println("*** AppDep Plugin STARTUP..."); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   135
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   136
		//Plug-in install location
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   137
		String pluginInstallLocation = getPluginInstallPath();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   138
		//This debug println has been left into the code in purpose
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   139
		System.out.println("pluginInstallLocation: " +  pluginInstallLocation); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   140
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   141
		//Images path
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   142
		String imagesPath = getImagesPath(pluginInstallLocation);		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   143
		//This debug println has been left into the code in purpose
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   144
		System.out.println("imagesPath: " +  imagesPath); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   145
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   146
		// Loading images required by this plug-in
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   147
		ImageResourceManager.loadImages(imagesPath);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   148
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   149
		initializeSettings(pluginInstallLocation);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   150
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   151
		// Removing inconsistent partially created 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   152
		// cache files, if such exist
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   153
		settings.cleanupPartiallyCreatedCacheFiles();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   154
						
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   155
		//Startup sequence completed message
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   156
		//This debug println has been left into the code in purpose
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   157
		System.out.println("*** AppDep Plugin STARTED."); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   158
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   159
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   160
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   161
	 * Initializing tool settings.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   162
	 * @param pluginInstallPath Plugin installation path.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   163
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   164
	private void initializeSettings(String pluginInstallPath) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   165
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   166
		//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   167
		// Settings gained from SDK Support Plug-in
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   168
		//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   169
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   170
		// RVCT tools
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   171
		resolveDefaultRvctToolBinaries();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   172
		//This debug println has been left into the code in purpose
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   173
		System.out.println("RVCT Tool Binaries Directory: " + settings.getRvctToolsDir()); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   174
		System.out.println("RVCT Tool Version: " + settings.getRvctToolsVersion()); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   175
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   176
		// GCCE tools
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   177
		try {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   178
			settings.setGcceToolsDir(SdkManager.getCSLArmToolchainInstallPathAndCheckReqTools());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   179
			settings.setGcceToolsInstalled( true );
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   180
			//This debug println has been left into the code in purpose
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   181
			System.out.println("GCCE Tool Binaries Directory: " + settings.getGcceToolsDir()); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   182
		} catch (SdkEnvInfomationResolveFailureException e1) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   183
			e1.printStackTrace();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   184
			settings.setGcceToolsInstalled( false );
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   185
			AppDepConsole.getInstance().println(Messages.getString("AppDepPlugin.StartupFail_Msg_GCCE_Install_Location_Not_Found") //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   186
											+ e1.getMessage(),
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   187
											IConsolePrintUtility.MSG_ERROR);    				
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   188
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   189
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   190
		// Checking that at least GCCE or RVCT tools are installed.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   191
		// If not installed, showing an error message to user and aborting 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   192
		// plugin start by throwing an exception		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   193
		boolean isRequiredToolsInstalled = (settings.isGcceToolsInstalled() 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   194
										  || settings.isRvctToolsInstalled());
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   195
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   196
		if(! isRequiredToolsInstalled ){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   197
			String errorMsg = Messages.getString("AppDepPlugin.StartupFail_Msg_Could_Not_Detect_Required_Toolchains") //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   198
							  + Messages.getString("AppDepPlugin.StartupFail_Msg_Required_Tools_Tip") //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   199
							  + Messages.getString("AppDepPlugin.StartupFail_Msg_Install_Required_Tools_Tip_Cont") //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   200
							  + "\n\n" //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   201
							  + Messages.getString("AppDepPlugin.StartupFail_Msg_Timeout_Network_Check"); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   202
			Shell sh = this.getWorkbench().getDisplay().getActiveShell();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   203
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   204
			String[] dlgButtonArr = { Messages.getString("AppDepPlugin.OK_Button_Label") }; //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   205
			MessageDialog dlg = new MessageDialog(sh,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   206
												  ProductInfoRegistry.getProductName(),
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   207
												  ImageResourceManager.getImage(ImageKeys.IMG_APP_ICON),
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   208
												  errorMsg,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   209
												  MessageDialog.ERROR,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   210
												  dlgButtonArr,
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   211
												  0
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   212
												  );
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   213
			dlg.create();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   214
			dlg.open();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   215
			throw new RuntimeException(errorMsg);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   216
		}		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   217
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   218
		//
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   219
		// Setting location for external binaries
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   220
		//					
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   221
		String externalProgramsPath = pluginInstallPath
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   222
										+ File.separatorChar
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   223
										+ ProductInfoRegistry.getWin32BinariesRelativePath();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   224
		//External programs are to be found from this path
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   225
		//This debug println has been left into the code in purpose
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   226
		System.out.println("externalProgramsPath: " + externalProgramsPath); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   227
		settings.setExternalProgramsPathName(externalProgramsPath);		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   228
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   229
		// Resources path
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   230
		String resourcesPath = pluginInstallPath 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   231
			+ File.separatorChar 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   232
			+ ProductInfoRegistry.getAppDepResourcesDirectory();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   233
		//This debug println has been left into the code in purpose
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   234
		System.out.println("resourcesPath: " + resourcesPath); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   235
		settings.setResourcesPath(resourcesPath);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   236
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   237
		// Resolving XSL filename
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   238
		String xslFileName =
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   239
			 ProductInfoRegistry.getAppDepExportXSLFileName();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   240
		settings.setXSLFileName(xslFileName);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   241
		String isUsedByXSLFileName =
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   242
			 ProductInfoRegistry.getAppDepIsUsedByXSLFileName();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   243
		settings.setIsUsedByXSLFileName(isUsedByXSLFileName);				
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   244
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   245
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   246
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   247
	 * Resolves which RVCT Tool Binaries should be used by default. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   248
	 * The selection of the used RVCT toolchain is made based on 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   249
	 * the following criteria:
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   250
	 *  - If there is several possibilities. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   251
	 *    Using the binaries with newest timestamp. 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   252
	 *  - If only one possibility was available, using it. If none reporting 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   253
	 *    it to Console output.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   254
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   255
	private void resolveDefaultRvctToolBinaries() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   256
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   257
		//Get all toolchains
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   258
		RVCTToolChainInfo[] rvctTools = SdkManager.getInstalledRVCTTools();		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   259
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   260
		if(rvctTools.length > 1){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   261
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   262
			// Environment variable is not defined or
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   263
			// there was no match => Using the newest binaries.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   264
			useTheNewestAvailableRvctToolbinaries(rvctTools);							
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   265
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   266
		else if(rvctTools.length == 1){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   267
			// There is only one possibility
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   268
			useTheFirstAvailableToolchain(rvctTools);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   269
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   270
		else{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   271
			settings.setRvctToolsInstalled( false );
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   272
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   273
			AppDepConsole.getInstance().println(Messages.getString("AppDepPlugin.StartupFail_Msg_RVCT_Install_Location_Not_Found"), //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   274
					 IConsolePrintUtility.MSG_ERROR);   
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   275
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   276
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   277
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   278
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   279
	 * Sets first encountered toolchain as used toolchain.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   280
	 * @param rvctTools RVCT toolchain info object array.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   281
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   282
	private void useTheFirstAvailableToolchain(RVCTToolChainInfo[] rvctTools) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   283
		String rvctToolBinariesDirectory = rvctTools[0].getRvctToolBinariesDirectory();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   284
		settings.setRvctToolsDir(rvctToolBinariesDirectory);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   285
		settings.setRvctToolsVersion(rvctTools[0].getRvctToolsVersion()); 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   286
		settings.setRvctToolsInstalled( true );
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   287
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   288
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   289
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   290
	 * Called when there is more than one available toolchain binaries.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   291
	 * Resolves which one is the newest, and sets it as default.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   292
	 * @param rvctTools Array to RVCT tool info structure.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   293
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   294
	private void useTheNewestAvailableRvctToolbinaries(RVCTToolChainInfo[] rvctTools) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   295
		String binDirStored = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   296
		String versionInfoStored = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   297
		long lastModifiedStored = 0;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   298
		for (int i = 0; i < rvctTools.length; i++) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   299
			String binDirTmp = rvctTools[i].getRvctToolBinariesDirectory();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   300
			String elfProg = binDirTmp
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   301
							 + File.separatorChar 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   302
							 + AppDepSettings.RVCT_FROM_ELF_EXECUTABLE;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   303
			File elfFile = new File(elfProg);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   304
			if(elfFile.exists()){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   305
				long modified = elfFile.lastModified();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   306
				if(modified > lastModifiedStored){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   307
					lastModifiedStored = modified;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   308
					binDirStored = binDirTmp;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   309
					versionInfoStored = rvctTools[i].getRvctToolsVersion();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   310
				}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   311
			}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   312
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   313
		if(binDirStored != null){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   314
			settings.setRvctToolsDir(binDirStored);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   315
			settings.setRvctToolsVersion(versionInfoStored); 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   316
			settings.setRvctToolsInstalled( true );			
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   317
		}		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   318
		else{
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   319
			useTheFirstAvailableToolchain(rvctTools);										
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   320
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   321
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   322
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   323
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   324
	 * This method is called when the plug-in is stopped
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   325
	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   326
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   327
	public void stop(BundleContext context) throws Exception {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   328
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   329
		//Starting plugin shutdown sequence
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   330
		//This debug println has been left into the code in purpose
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   331
		System.out.println("AppDep Plugin SHUTDOWN..."); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   332
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   333
		// Shutting down registered ongoing background jobs
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   334
		pluginJobManager.shutdown();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   335
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   336
		// Informing also cache index manager about the shutdown
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   337
		cacheIndexManager.shutdown();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   338
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   339
		// Removing inconsistent partially created 
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   340
		// cache files, if such exist
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   341
		settings.cleanupPartiallyCreatedCacheFiles();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   342
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   343
		plugin = null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   344
		super.stop(context);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   345
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   346
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   347
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   348
	 * Returns the shared instance.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   349
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   350
	public static AppDepPlugin getDefault() {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   351
		return plugin;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   352
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   353
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   354
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   355
	 * Returns an image descriptor for the image file at the given
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   356
	 * plug-in relative path.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   357
	 * @param path the path
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   358
	 * @return the image descriptor
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   359
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   360
	public static ImageDescriptor getImageDescriptor(String path) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   361
		return AbstractUIPlugin.imageDescriptorFromPlugin("com.nokia.s60tools.appdep.plugin", path); //$NON-NLS-1$
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   362
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   363
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   364
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   365
	 * This must be called from UI thread. If called
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   366
	 * from non-UI thread this returns <code>null</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   367
	 * @return Currently active workbench page.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   368
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   369
	public static IWorkbenchPage getCurrentlyActivePage(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   370
		return getDefault().getWorkbench().getActiveWorkbenchWindow().getActivePage();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   371
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   372
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   373
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   374
	 * This must be called from UI thread. If called
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   375
	 * from non-UI thread this returns <code>null</code>.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   376
	 * @return The shell of the currently active workbench window..
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   377
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   378
	public static Shell getCurrentlyActiveWbWindowShell(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   379
		IWorkbenchPage page = getCurrentlyActivePage();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   380
		if(page != null){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   381
			return page.getWorkbenchWindow().getShell();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   382
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   383
		return null;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   384
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   385
	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   386
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   387
	 * Returns the PreferenceStore where plugin preferences are stored
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   388
	 * @return the PreferenceStore where plugin preferences are stored
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   389
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   390
	public static IPreferenceStore getPrefsStore(){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   391
		if (prefsStore == null){
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   392
			prefsStore = getDefault().getPreferenceStore();
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   393
		}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   394
		
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   395
		return prefsStore;
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   396
	}	
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   397
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   398
	/**
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   399
	 * Bounds given context sensitive help ID into given UI control.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   400
	 * @param composite UI control to which bind given context-sensitive help ID.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   401
	 * @param contextHelpID Context-sensitive help ID.
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   402
	 */
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   403
	public static void setContextSensitiveHelpID(
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   404
			Control composite, String contextHelpID) {
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   405
		PlatformUI.getWorkbench().getHelpSystem().setHelp(composite, contextHelpID);
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   406
	}
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   407
a02c979e8dfd 1. Copyrights changed to EPL
noe\swadi
parents:
diff changeset
   408
}