sysmodelmgr/com.symbian.smt.gui/src/com/symbian/smt/gui/Activator.java
author terytkon
Thu, 11 Mar 2010 19:08:43 +0200
changeset 0 522a326673b6
permissions -rw-r--r--
Moved swconfigapps content under oss repository.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
     1
// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
     2
// All rights reserved.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
     3
// This component and the accompanying materials are made available
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
     5
// which accompanies this distribution, and is available
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
     7
//
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
     8
// Initial Contributors:
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    10
//
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    11
// Contributors:
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    12
//
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    13
// Description:
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    14
//
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    15
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    16
package com.symbian.smt.gui;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    17
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    18
import org.eclipse.core.resources.IResourceChangeEvent;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    19
import org.eclipse.core.resources.ResourcesPlugin;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    20
import org.eclipse.ui.IPageListener;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    21
import org.eclipse.ui.IWindowListener;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    22
import org.eclipse.ui.IWorkbench;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    23
import org.eclipse.ui.IWorkbenchPage;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    24
import org.eclipse.ui.IWorkbenchWindow;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    25
import org.eclipse.ui.PlatformUI;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    26
import org.eclipse.ui.plugin.AbstractUIPlugin;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    27
import org.osgi.framework.BundleContext;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    28
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    29
/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    30
 * The activator class controls the plug-in life cycle
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    31
 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    32
public class Activator extends AbstractUIPlugin {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    33
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    34
	// The plug-in ID
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    35
	public static final String PLUGIN_ID = "com.symbian.smt.gui";
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    36
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    37
	// The shared instance
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    38
	private static Activator plugin;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    39
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    40
	/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    41
	 * Returns the shared instance
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    42
	 * 
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    43
	 * @return the shared instance
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    44
	 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    45
	public static Activator getDefault() {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    46
		return plugin;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    47
	}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    48
	private SmmResourceChangeListener resourceListener;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    49
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    50
	private SmmPartListener partListener;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    51
	private IWindowListener windowListener;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    52
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    53
	private IPageListener pageListener;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    54
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    55
	/*
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    56
	 * (non-Javadoc)
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    57
	 * 
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    58
	 * @see
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    59
	 * org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    60
	 * )
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    61
	 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    62
	public void start(BundleContext context) throws Exception {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    63
		super.start(context);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    64
		plugin = this;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    65
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    66
		PlatformUI.getWorkbench().getDecoratorManager().setEnabled(
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    67
				"com.symbian.smt.gui.outofsyncdecorator", true);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    68
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    69
		resourceListener = new SmmResourceChangeListener();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    70
		partListener = new SmmPartListener();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    71
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    72
		ResourcesPlugin.getWorkspace().addResourceChangeListener(
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    73
				resourceListener,
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    74
				IResourceChangeEvent.POST_CHANGE
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    75
						| IResourceChangeEvent.PRE_DELETE
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    76
						| IResourceChangeEvent.PRE_BUILD);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    77
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    78
		pageListener = new IPageListener() {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    79
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    80
			public void pageActivated(IWorkbenchPage page) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    81
				page.addPartListener(partListener);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    82
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    83
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    84
			public void pageClosed(IWorkbenchPage page) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    85
				page.removePartListener(partListener);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    86
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    87
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    88
			public void pageOpened(IWorkbenchPage page) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    89
				page.addPartListener(partListener);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    90
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    91
		};
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    92
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    93
		windowListener = new IWindowListener() {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    94
			public void windowActivated(IWorkbenchWindow window) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    95
				window.addPageListener(pageListener);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    96
				if (window.getActivePage() != null) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    97
					window.getActivePage().addPartListener(partListener);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    98
				}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    99
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   100
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   101
			public void windowClosed(IWorkbenchWindow window) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   102
				window.removePageListener(pageListener);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   103
				if (window.getActivePage() != null) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   104
					window.getActivePage().removePartListener(partListener);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   105
				}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   106
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   107
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   108
			public void windowDeactivated(IWorkbenchWindow window) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   109
				window.removePageListener(pageListener);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   110
				if (window.getActivePage() != null) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   111
					window.getActivePage().removePartListener(partListener);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   112
				}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   113
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   114
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   115
			public void windowOpened(IWorkbenchWindow window) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   116
				window.addPageListener(pageListener);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   117
				if (window.getActivePage() != null) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   118
					window.getActivePage().addPartListener(partListener);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   119
				}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   120
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   121
		};
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   122
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   123
		
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   124
		final IWorkbench workbench = PlatformUI.getWorkbench();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   125
		
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   126
		workbench.addWindowListener(windowListener);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   127
		
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   128
		workbench.getDisplay().asyncExec(new Runnable() {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   129
			public void run() {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   130
				IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench()
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   131
						.getActiveWorkbenchWindow();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   132
				workbenchWindow.addPageListener(pageListener);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   133
				if (workbenchWindow.getActivePage() != null) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   134
					workbenchWindow.getActivePage().addPartListener(
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   135
							partListener);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   136
				}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   137
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   138
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   139
		});
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   140
	}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   141
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   142
	/*
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   143
	 * (non-Javadoc)
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   144
	 * 
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   145
	 * @see
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   146
	 * org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   147
	 * )
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   148
	 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   149
	public void stop(BundleContext context) throws Exception {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   150
		plugin = null;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   151
		super.stop(context);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   152
	}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   153
}