sysmodelmgr/com.symbian.smt.gui/src/com/symbian/smt/gui/SmmResourceChangeListener.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
// SmmResourceChaneListener.java
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    15
// 
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    16
//
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    17
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    18
package com.symbian.smt.gui;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    19
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    20
import org.eclipse.core.resources.IFile;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    21
import org.eclipse.core.resources.IProject;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    22
import org.eclipse.core.resources.IResource;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    23
import org.eclipse.core.resources.IResourceChangeEvent;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    24
import org.eclipse.core.resources.IResourceChangeListener;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    25
import org.eclipse.core.resources.IResourceDelta;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    26
import org.eclipse.core.resources.IWorkspace;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    27
import org.eclipse.core.resources.IWorkspaceDescription;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    28
import org.eclipse.core.resources.IWorkspaceRoot;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    29
import org.eclipse.core.resources.IncrementalProjectBuilder;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    30
import org.eclipse.core.resources.ProjectScope;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    31
import org.eclipse.core.resources.ResourcesPlugin;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    32
import org.eclipse.core.runtime.CoreException;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    33
import org.eclipse.core.runtime.IPath;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    34
import org.eclipse.core.runtime.IProgressMonitor;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    35
import org.eclipse.core.runtime.IStatus;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    36
import org.eclipse.core.runtime.Path;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    37
import org.eclipse.core.runtime.Status;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    38
import org.eclipse.core.runtime.jobs.Job;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    39
import org.eclipse.core.runtime.preferences.IScopeContext;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    40
import org.eclipse.swt.widgets.Display;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    41
import org.eclipse.ui.IEditorPart;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    42
import org.eclipse.ui.IWorkbenchPage;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    43
import org.eclipse.ui.PlatformUI;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    44
import org.eclipse.ui.part.FileEditorInput;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    45
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    46
import com.symbian.smt.gui.nature.Nature;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    47
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    48
public class SmmResourceChangeListener implements IResourceChangeListener {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    49
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    50
	public void resourceChanged(final IResourceChangeEvent event) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    51
		if (event.getType() == IResourceChangeEvent.PRE_BUILD) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    52
			IWorkspace workspace = ResourcesPlugin.getWorkspace();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    53
			IWorkspaceDescription description = workspace.getDescription();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    54
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    55
			IWorkspaceRoot workspaceRoot = workspace.getRoot();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    56
			IResourceDelta delta = event.getDelta();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    57
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    58
			if (delta.getFullPath().equals(Path.ROOT)) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    59
				IResourceDelta[] children = delta
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    60
						.getAffectedChildren(IResourceDelta.CHANGED);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    61
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    62
				if (children.length == 0) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    63
					return;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    64
				}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    65
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    66
				for (IResourceDelta child : children) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    67
					if (child.getKind() == IResourceDelta.CHANGED) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    68
						for (IProject aProject : workspaceRoot.getProjects()) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    69
							try {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    70
								if (aProject.isOpen()
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    71
										&& aProject.hasNature(Nature.ID)
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    72
										&& aProject.getFullPath().equals(
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    73
												child.getFullPath())) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    74
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    75
									if (child.getFlags() == IResourceDelta.OPEN) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    76
										final IProject theProject = aProject;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    77
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    78
										try {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    79
											theProject.refreshLocal(
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    80
													IResource.DEPTH_INFINITE,
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    81
													null);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    82
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    83
											IScopeContext projectScope = new ProjectScope(
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    84
													theProject);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    85
											PersistentDataStore store = new PersistentDataStore(
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    86
													projectScope
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    87
															.getNode(Activator.PLUGIN_ID));
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    88
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    89
											Boolean needsShortcutsRefreshing = true;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    90
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    91
											for (IResource resource : theProject
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    92
													.members()) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    93
												if (resource.isLinked()) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    94
													needsShortcutsRefreshing = false;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    95
													break;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    96
												}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    97
											}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    98
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    99
											if (needsShortcutsRefreshing == true) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   100
												// We also need to get the
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   101
												// shortcut to appear, as it
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   102
												// does not always happen
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   103
												// automatically
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   104
												ManageResources
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   105
														.updateSystemDefinitionFiles(
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   106
																theProject,
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   107
																store
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   108
																		.getSystemDefinitionFiles(),
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   109
																true);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   110
											}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   111
										} catch (CoreException e) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   112
											Logger.log(e.getMessage(), e);
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
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   116
									if (!description.isAutoBuilding()) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   117
										final IProject theProject = aProject;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   118
										Job j = new Job("Building workspace") {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   119
											@Override
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   120
											protected IStatus run(
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   121
													IProgressMonitor monitor) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   122
												try {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   123
													if (event.getBuildKind() == IncrementalProjectBuilder.AUTO_BUILD) { // 9
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   124
														theProject
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   125
																.build(
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   126
																		IncrementalProjectBuilder.INCREMENTAL_BUILD,
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   127
																		monitor);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   128
													}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   129
												} catch (CoreException e) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   130
													Logger.log(e.getMessage(),
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   131
															e);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   132
												}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   133
												return new Status(
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   134
														IStatus.OK,
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   135
														Activator.PLUGIN_ID,
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   136
														IStatus.OK,
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   137
														"updating properties succeeded",
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   138
														null);
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
										j.schedule();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   142
									}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   143
								}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   144
							} catch (CoreException e) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   145
								Logger.log(e.getMessage(), e);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   146
							}
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
				}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   150
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   151
		} else if (event.getType() == IResourceChangeEvent.PRE_DELETE) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   152
			// If it is a delete event then the resource is an IProject
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   153
			IProject project = (IProject) event.getResource();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   154
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   155
			IScopeContext projectScope = new ProjectScope(project);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   156
			PersistentDataStore store = new PersistentDataStore(projectScope
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   157
					.getNode(Activator.PLUGIN_ID));
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   158
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   159
			final IFile oldProjectFile = project.getFile(store
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   160
					.getOutputFilename());
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   161
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   162
			ChangeManager manager = new ChangeManager();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   163
			manager.remove(project);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   164
			
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   165
			Display.getDefault().asyncExec(new Runnable() {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   166
				public void run() {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   167
					IWorkbenchPage page = PlatformUI.getWorkbench()
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   168
							.getActiveWorkbenchWindow().getActivePage();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   169
					IEditorPart oldEditor = page
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   170
							.findEditor(new FileEditorInput(oldProjectFile));
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   171
					page.closeEditor(oldEditor, false);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   172
				}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   173
			});
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   174
		} else {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   175
			IResourceDelta delta = event.getDelta();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   176
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   177
			if (event.getType() == IResourceChangeEvent.POST_CHANGE
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   178
					&& delta.getKind() == IResourceDelta.CHANGED) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   179
				IWorkspace workspace = ResourcesPlugin.getWorkspace();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   180
				IWorkspaceRoot workspaceRoot = workspace.getRoot();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   181
				IProject project = null;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   182
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   183
				IPath fullPath = delta.getFullPath();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   184
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   185
				if (delta.getFullPath().equals(Path.ROOT)) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   186
					IResourceDelta[] children = delta
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   187
							.getAffectedChildren(IResourceDelta.CHANGED);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   188
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   189
					if (children.length == 0) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   190
						return;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   191
					}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   192
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   193
					for (IResourceDelta child : children) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   194
						if (child.getKind() == IResourceDelta.CHANGED) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   195
							fullPath = child.getFullPath();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   196
						}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   197
					}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   198
				}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   199
				for (IProject aProject : workspaceRoot.getProjects()) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   200
					try {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   201
						if (aProject.isOpen() && aProject.hasNature(Nature.ID)
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   202
								&& aProject.getFullPath().equals(fullPath)) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   203
							project = aProject;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   204
							break;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   205
						}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   206
					} catch (CoreException e) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   207
						Logger.log(e.getMessage(), e);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   208
					}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   209
				}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   210
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   211
				if (project == null) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   212
					return;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   213
				}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   214
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   215
				ChangeManager manager = new ChangeManager();
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   216
				manager.handleDelta(delta, project);
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   217
			}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   218
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   219
	}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
   220
}