Releasing initial contribution of the Common Navigator Framework.
diff --git a/bundles/org.eclipse.ui.navigator.resources/.classpath b/bundles/org.eclipse.ui.navigator.resources/.classpath
new file mode 100644
index 0000000..5ce3499
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src-wbnavigator/"/>
+	<classpathentry kind="src" path="property_files/"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/bundles/org.eclipse.ui.navigator.resources/.cvsignore b/bundles/org.eclipse.ui.navigator.resources/.cvsignore
new file mode 100644
index 0000000..a2514e8
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/.cvsignore
@@ -0,0 +1,4 @@
+bin
+temp.folder
+wbnavigator.jar
+build.xml
diff --git a/bundles/org.eclipse.ui.navigator.resources/.project b/bundles/org.eclipse.ui.navigator.resources/.project
new file mode 100644
index 0000000..4b5149c
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.ui.navigator.resources</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>com.ibm.sse.model.structuredbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>com.ibm.etools.ctc.javaprojectnature</nature>
+	</natures>
+</projectDescription>
diff --git a/bundles/org.eclipse.ui.navigator.resources/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.navigator.resources/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..cea38cd
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/META-INF/MANIFEST.MF
@@ -0,0 +1,20 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Plugin.name
+Bundle-SymbolicName: org.eclipse.ui.navigator.resources; singleton:=true
+Bundle-Version: 1.0.0
+Bundle-ClassPath: wbnavigator.jar
+Bundle-Activator: org.eclipse.ui.navigator.resources.internal.plugin.WorkbenchNavigatorPlugin
+Bundle-Vendor: %Plugin.providerName
+Bundle-Localization: plugin
+Export-Package: .,
+ org.eclipse.ui.navigator.resources.internal.actions,
+ org.eclipse.ui.navigator.resources.internal.plugin,
+ org.eclipse.ui.navigator.resources.internal.workbench
+Require-Bundle: org.eclipse.ui.ide,
+ org.eclipse.core.resources,
+ org.eclipse.jface,
+ org.eclipse.ui,
+ org.eclipse.ui.navigator,
+ org.eclipse.core.runtime
+Eclipse-AutoStart: true
diff --git a/bundles/org.eclipse.ui.navigator.resources/build.properties b/bundles/org.eclipse.ui.navigator.resources/build.properties
new file mode 100644
index 0000000..34b78ce
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/build.properties
@@ -0,0 +1,18 @@
+###############################################################################
+# Copyright (c) 2003, 2004 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+bin.includes = icons/,\
+               plugin.properties,\
+               plugin.xml,\
+               wbnavigator.jar,\
+               META-INF/
+source.wbnavigator.jar = src-wbnavigator/,\
+                         property_files/
+output.wbnavigator.jar = bin/
diff --git a/bundles/org.eclipse.ui.navigator.resources/icons/full/clcl16/collapseall.gif b/bundles/org.eclipse.ui.navigator.resources/icons/full/clcl16/collapseall.gif
new file mode 100644
index 0000000..0bae56c
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/icons/full/clcl16/collapseall.gif
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator.resources/icons/full/clcl16/synced.gif b/bundles/org.eclipse.ui.navigator.resources/icons/full/clcl16/synced.gif
new file mode 100644
index 0000000..f865f3a
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/icons/full/clcl16/synced.gif
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator.resources/icons/full/cview16/filenav_nav.gif b/bundles/org.eclipse.ui.navigator.resources/icons/full/cview16/filenav_nav.gif
new file mode 100644
index 0000000..91b9d5a
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/icons/full/cview16/filenav_nav.gif
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator.resources/icons/full/cview16/j2ee_view.gif b/bundles/org.eclipse.ui.navigator.resources/icons/full/cview16/j2ee_view.gif
new file mode 100644
index 0000000..20acd4c
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/icons/full/cview16/j2ee_view.gif
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator.resources/icons/full/cview16/resource_persp.gif b/bundles/org.eclipse.ui.navigator.resources/icons/full/cview16/resource_persp.gif
new file mode 100644
index 0000000..04c31bd
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/icons/full/cview16/resource_persp.gif
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator.resources/icons/full/elcl16/collapseall.gif b/bundles/org.eclipse.ui.navigator.resources/icons/full/elcl16/collapseall.gif
new file mode 100644
index 0000000..a2d80a9
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/icons/full/elcl16/collapseall.gif
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator.resources/icons/full/elcl16/filter_ps.gif b/bundles/org.eclipse.ui.navigator.resources/icons/full/elcl16/filter_ps.gif
new file mode 100644
index 0000000..a4c9e60
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/icons/full/elcl16/filter_ps.gif
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator.resources/icons/full/elcl16/synced.gif b/bundles/org.eclipse.ui.navigator.resources/icons/full/elcl16/synced.gif
new file mode 100644
index 0000000..870934b
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/icons/full/elcl16/synced.gif
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator.resources/icons/full/ovr16/error_co.gif b/bundles/org.eclipse.ui.navigator.resources/icons/full/ovr16/error_co.gif
new file mode 100644
index 0000000..8612eaf
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/icons/full/ovr16/error_co.gif
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator.resources/icons/full/ovr16/warning_co.gif b/bundles/org.eclipse.ui.navigator.resources/icons/full/ovr16/warning_co.gif
new file mode 100644
index 0000000..3af228c
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/icons/full/ovr16/warning_co.gif
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator.resources/icons/resource_persp.gif b/bundles/org.eclipse.ui.navigator.resources/icons/resource_persp.gif
new file mode 100644
index 0000000..2a3eb91
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/icons/resource_persp.gif
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator.resources/icons/shownavigatorgroups_obj.gif b/bundles/org.eclipse.ui.navigator.resources/icons/shownavigatorgroups_obj.gif
new file mode 100644
index 0000000..de222c8
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/icons/shownavigatorgroups_obj.gif
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator.resources/icons/toggle.gif b/bundles/org.eclipse.ui.navigator.resources/icons/toggle.gif
new file mode 100644
index 0000000..cf888bd
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/icons/toggle.gif
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator.resources/icons/toggle2.gif b/bundles/org.eclipse.ui.navigator.resources/icons/toggle2.gif
new file mode 100644
index 0000000..acc9af9
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/icons/toggle2.gif
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator.resources/plugin.properties b/bundles/org.eclipse.ui.navigator.resources/plugin.properties
new file mode 100644
index 0000000..4a873a2
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/plugin.properties
@@ -0,0 +1,32 @@
+###############################################################################
+# Copyright (c) 2003, 2004 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+Plugin.name = Navigator Workbench Components
+Plugin.providerName = Eclipse.org
+Plugin.description = Contains resource and workbench integration on top of Navigator Views 
+ExtPoint.navigatorContent = Navigator Content
+ExtPoint.navigatorActions = Navigator Actions
+ExtPoint.navigatorViewer = Navigator Viewer
+Views.Navigator = Common Navigator
+Move=Move
+Rename=Rename
+Refactor=Refactor
+
+moveCopy.name=Resource Move or Copy
+moveCopy.desc=Moves a resource by default.  Hold the control key when dropping to Copy.
+
+j2ee=J2EE
+j2ee.view_ui_=Project Explorer 
+j2ee.category_ui_=J2EE
+
+category.name=Web Tools Platform
+common.navigator.name=Project Explorer (old)
+
+resource.extension.name=Resources
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator.resources/plugin.xml b/bundles/org.eclipse.ui.navigator.resources/plugin.xml
new file mode 100644
index 0000000..e73c0d9
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/plugin.xml
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<plugin>
+
+  <extension-point id="commonWizard" name="Common Wizard" schema="schema/commonWizard.exsd"/>
+ 
+<!-- Resource Content  -->
+   <extension  
+         point="org.eclipse.ui.navigator.navigatorContent">
+      <navigatorContent
+            name="%resource.extension.name"
+            priority="low"
+            icon="icons/full/cview16/resource_persp.gif"
+            enabledByDefault="true"
+			contentProvider="org.eclipse.ui.navigator.resources.internal.workbench.ResourceExtensionContentProvider"
+			labelProvider="org.eclipse.ui.navigator.resources.internal.workbench.ResourceExtensionLabelProvider"			
+			openListener="org.eclipse.ui.navigator.resources.internal.actions.ResourceOpenListener"
+			sorter="org.eclipse.ui.navigator.resources.internal.workbench.ResourceSorter"
+            id="org.eclipse.ui.navigator.resourceContent">         
+         <enablement>
+         <or>         
+            <objectClass
+                  name="org.eclipse.core.resources.IWorkspaceRoot">
+            </objectClass> 
+            <objectClass
+                  name="org.eclipse.core.resources.IProject">
+            </objectClass> 
+            <objectClass
+                    adaptable="true"
+                  	name="org.eclipse.core.resources.IResource">
+            </objectClass> 
+            <objectClass
+                    adaptable="true"
+                  	name="org.eclipse.core.resources.IFolder">
+            </objectClass>
+            
+            <objectClass
+                    adaptable="true"
+                  	name="org.eclipse.core.resources.IFile">
+            </objectClass>
+         </or>
+         </enablement>
+      </navigatorContent>
+   </extension>
+<!-- Handle Resource drag and drop -->
+   <extension
+         id="resourceDropHandler"
+         point="org.eclipse.ui.navigator.dropHandler">
+      <dropHandler
+            class="org.eclipse.ui.navigator.resources.internal.workbench.ResourceDropAction"
+            id="org.eclipse.wst.navigator.resource.dropHandler"
+            name="%moveCopy.name"
+            description="%moveCopy.desc">
+         <dragEnablement>
+            <and>
+               <not>
+                  <objectClass
+                        name="org.eclipse.core.resources.IProject">
+                  </objectClass>
+               </not>
+               <objectClass
+                     adaptable="true"
+                     name="org.eclipse.core.resources.IResource">
+               </objectClass>
+            </and>
+         </dragEnablement>
+         <dropEnablement>
+            <and>
+               <objectClass
+                     adaptable="true"
+                     name="org.eclipse.core.resources.IResource">
+               </objectClass>
+            </and>
+         </dropEnablement>
+      </dropHandler>
+   </extension>
+   
+   <extension
+         point="org.eclipse.ui.navigator.actionProvider">
+      <actionProvider 
+            class="org.eclipse.ui.navigator.resources.internal.actions.PortingActionExtension">
+			<enablement>
+				<or>
+					<objectClass
+						adaptable="true"
+						name="org.eclipse.core.resources.IFile" />	
+					<objectClass
+						adaptable="true"
+						name="org.eclipse.core.resources.IFolder" />
+
+					<objectClass
+						adaptable="true"
+						name="org.eclipse.core.resources.IProject" />	
+						
+					  <objectClass
+	                  name="org.eclipse.core.resources.IWorkspaceRoot" />
+	               	
+				</or>
+			</enablement>
+      </actionProvider>
+   </extension>
+    
+    
+    <!--
+   <extension
+         point="org.eclipse.ui.navigator.resources.commonWizard"> 
+        <commonWizard
+            type="new"
+            wizardId="org.eclipse.ui.wizards.new.folder">
+         <enablement>
+            <or>    
+            	<objectClass
+	                     adaptable="true"
+	                     name="org.eclipse.core.resources.IResource">
+	            </objectClass>
+	         </or>
+         </enablement>
+       </commonWizard>   
+        <commonWizard
+            type="new"
+            wizardId="org.eclipse.ui.wizards.new.file">
+         <enablement>
+            <or>    
+            	<objectClass
+	                     adaptable="true"
+	                     name="org.eclipse.core.resources.IResource">
+	            </objectClass>
+	         </or>
+         </enablement>
+       </commonWizard>
+    </extension>
+    -->
+    
+</plugin> 
diff --git a/bundles/org.eclipse.ui.navigator.resources/prepareforpii.xml b/bundles/org.eclipse.ui.navigator.resources/prepareforpii.xml
new file mode 100644
index 0000000..b2cc36f
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/prepareforpii.xml
@@ -0,0 +1,37 @@
+<project name="PrepareForPII" default="main" basedir=".">
+		
+	<!-- Setup temp variables -->
+	<target name="init">
+		<property name="nlsDir" value="d:/NLS/Corona/0526"/>
+		<property name="plugin" value="org.eclipse.ui.workbench.navigator"/>
+		<property name="plugindir" value="d:/workspaceCorona/${plugin}"/>
+		<property name="outputDir" value="${nlsDir}/${plugin}"/>
+		
+	
+	</target>
+
+	<!-- Create the destination dir -->
+	<target name="nlsDir" depends="init">
+		<mkdir dir="${nlsDir}"/>
+	</target>
+	
+	<!-- Create the destination dir -->
+	<target name="plugindir" depends="nlsDir">
+		<delete dir="${outputDir}"/>
+		<mkdir dir="${outputDir}"/>
+	</target>
+
+	<!-- Move the files to the correct locations in the workspace. -->
+	<target name="main" depends="plugindir">
+		<messageIdGen folderPath = "${plugindir}" componentId = "E" />
+		
+		<copy todir = "${outputDir}/property_files" >
+			 <fileset dir="${plugindir}/property_files">
+           	  <include name="**/*.properties"/>
+  			 </fileset>
+  		</copy>
+  		
+		<copy file="${plugindir}/plugin.properties" todir="${outputDir}"/>
+  		
+	</target>
+</project>
diff --git a/bundles/org.eclipse.ui.navigator.resources/property_files/wbnavigator.properties b/bundles/org.eclipse.ui.navigator.resources/property_files/wbnavigator.properties
new file mode 100644
index 0000000..fb55f62
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/property_files/wbnavigator.properties
@@ -0,0 +1,71 @@
+###############################################################################
+# Copyright (c) 2003, 2004 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+
+# package: org.eclipse.ui.workbench.navigator.internal
+
+#==============================================================================
+# Workbench Navigator Actions
+#==============================================================================
+
+RenameResourceAction.text=Rena&me
+RenameResourceAction.toolTip=Rename Resource
+RenameResourceAction.checkTitle=Check Rename
+RenameResourceAction.readOnlyCheck=''{0}'' is read only. Do you still wish to rename it?
+RenameResourceAction.resourceExists=Resource Exists
+RenameResourceAction.overwriteQuestion=''{0}'' exists. Do you wish to overwrite?
+RenameResourceAction.progressMessage=Renaming...
+RenameResourceAction.problemTitle=Rename Problems
+RenameResourceAction.progress=Renaming:
+RenameResourceAction.problemMessage=Problems occurred renaming the selected resource.
+
+CopyAction.title=&Copy
+CopyAction.toolTip=Copy
+
+PasteAction.title=&Paste
+PasteAction.toolTip=Paste
+
+CopyToClipboardProblemDialog.title=Problem Copying to Clipboard
+CopyToClipboardProblemDialog.message=There was a problem when accessing the system clipboard. Retry?
+
+DeleteResourceAction.text=&Delete
+DeleteResourceAction.toolTip=Delete
+DeleteResourceAction.title1=Confirm Resource Delete
+DeleteResourceAction.titleN=Confirm Multiple Resource Delete
+DeleteResourceAction.confirm1=Are you sure you want to delete ''{0}''?
+DeleteResourceAction.confirmN=Are you sure you want to delete these {0} resources?
+DeleteResourceAction.titleProject1=Confirm Project Delete
+DeleteResourceAction.titleProjectN=Confirm Multiple Project Delete
+DeleteResourceAction.confirmProject1=Are you sure you want to delete project ''{0}''?
+DeleteResourceAction.confirmProjectN=Are you sure you want to delete these {0} projects?
+DeleteResourceAction.deleteContents1=&Also delete contents under ''{0}''
+DeleteResourceAction.deleteContentsN=&Also delete contents in the file system
+DeleteResourceAction.doNotDeleteContents=&Do not delete contents
+DeleteResourceAction.confirmLinkedResource1=Are you sure you want to delete linked resource ''{0}''?\nOnly the workspace link will be deleted. Link target will remain unchanged.
+DeleteResourceAction.confirmLinkedResourceN=Are you sure you want to delete these {0} resources?\n\nSelection contains linked resources.\nOnly the workspace links will be deleted. Link targets will remain unchanged.
+DeleteResourceAction.readOnlyQuestion=''{0}'' is read only. Do you still wish to delete it?
+DeleteResourceAction.errorTitle=Delete Problems
+DeleteResourceAction.messageTitle=Problems deleting
+DeleteResourceAction.internalError=Internal error: {0}
+DeleteResourceAction.outOfSyncError=Resource is out of sync with the file system. Refresh and try again.
+DeleteResourceAction.outOfSyncQuestion=Resource ''{0}'' is out of sync with the file system. Do you want to delete it anyway?
+
+WorkbenchNavigator.openWith=Open With
+WorkbenchNavigatorAction.problemsTitle=Problems
+WorkbenchNavigatorAction.logTitle=Exception in {0}. run: {1}
+WorkbenchNavigatorAction.problemsMessage=The following problems occurred.
+WorkbenchNavigatorAction.internalError=Internal error.
+PasteAction.IncomaptibleError=Unable to paste clipboard contents.\nIncompatible transfer type.
+PasteAction.Problem=Paste Problem
+
+Navigator.statusLineMultiSelect={0} items selected
+
+9_UI_=Group Projects
+10_UI_=Group projects by type
diff --git a/bundles/org.eclipse.ui.navigator.resources/schema/NavigatorGroup.exsd b/bundles/org.eclipse.ui.navigator.resources/schema/NavigatorGroup.exsd
new file mode 100644
index 0000000..ec8c914
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/schema/NavigatorGroup.exsd
@@ -0,0 +1,125 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.wst.common.navigator.workbench">
+<annotation>
+      <appInfo>
+         <meta.schema plugin="org.eclipse.wst.common.navigator.workbench" id="NavigatorGroup" name="Navigator Group"/>
+      </appInfo>
+      <documentation>
+         The NavigatorGroup Extension allows third parties to contribute a meta-group to the Common Navigator which collects projects with the specified nature.
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <complexType>
+         <sequence>
+            <element ref="navigatorGroup"/>
+         </sequence>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="navigatorGroup">
+      <annotation>
+         <documentation>
+            Define a grouping of Projects by Nature in the Navigator.
+         </documentation>
+      </annotation>
+      <complexType>
+         <attribute name="displayName" type="string" use="required">
+            <annotation>
+               <documentation>
+                  The name to display in the Navigator Group.
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="icon" type="string">
+            <annotation>
+               <documentation>
+                  The icon to display for the Navigator Group
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="sortOrder" type="string">
+            <annotation>
+               <documentation>
+                  The order that the item should appear in the list, 0 is the highest (top of the list)
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="natureID" type="string">
+            <annotation>
+               <documentation>
+                  The nature ID of the projects that should be collected under the defined Navigator Group. Projects will be collected based on the first Nature in their list that matches one of the defined groups.
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="since"/>
+      </appInfo>
+      <documentation>
+         WTP 6.0.0
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="examples"/>
+      </appInfo>
+      <documentation>
+         [Enter extension point usage example here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="apiInfo"/>
+      </appInfo>
+      <documentation>
+         Navigator Groups should not be referenced by any external API.
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="implementation"/>
+      </appInfo>
+      <documentation>
+         
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="copyright"/>
+      </appInfo>
+      <documentation>
+         
+      </documentation>
+   </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.ui.navigator.resources/schema/commonExpression.exsd b/bundles/org.eclipse.ui.navigator.resources/schema/commonExpression.exsd
new file mode 100644
index 0000000..ed7a9f2
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/schema/commonExpression.exsd
@@ -0,0 +1,281 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui">
+<annotation>
+      <appInfo>
+         <meta.schema plugin="org.eclipse.ui" id="commonExpression" name="Common Expressions"/>
+      </appInfo>
+      <documentation>
+         An action&apos;s enablement and/or visibility can be defined using the elements &lt;samp&gt;enablement&lt;/samp&gt; and &lt;samp&gt;visibility&lt;/samp&gt; respectively. These two elements contain a boolean expression that is evaluated to determine the enablement and/or visibility.
+&lt;p&gt;
+The syntax is the same for the &lt;samp&gt;enablement&lt;/samp&gt; and &lt;samp&gt;visibility&lt;/samp&gt; elements. Both contain only one boolean expression sub-element. In the simplest case, this will be an &lt;samp&gt;objectClass&lt;/samp&gt;, &lt;samp&gt;objectState&lt;/samp&gt;, &lt;samp&gt;pluginState&lt;/samp&gt;, or &lt;samp&gt;systemProperty&lt;/samp&gt; element. In the more complex case, the &lt;samp&gt;and&lt;/samp&gt;, &lt;samp&gt;or&lt;/samp&gt;, and &lt;samp&gt;not&lt;/samp&gt; elements can be combined to form a boolean expression. Both the &lt;samp&gt;and&lt;/samp&gt;, and &lt;samp&gt;or&lt;/samp&gt; elements must contain 2 sub-elements. The &lt;samp&gt;not&lt;/samp&gt; element must contain only 1 sub-element.
+&lt;/p&gt;
+      </documentation>
+   </annotation>
+
+   <element name="enablement">
+      <annotation>
+         <documentation>
+            This element is used to define the enablement for the extension.
+         </documentation>
+      </annotation>
+      <complexType>
+         <choice>
+            <element ref="and"/>
+            <element ref="or"/>
+            <element ref="not"/>
+            <element ref="objectClass"/>
+            <element ref="objectState"/>
+            <element ref="pluginState"/>
+            <element ref="systemProperty"/>
+         </choice>
+      </complexType>
+   </element>
+
+   <element name="visibility">
+      <annotation>
+         <documentation>
+            This element is used to define the visibility for the extension.
+         </documentation>
+      </annotation>
+      <complexType>
+         <choice>
+            <element ref="and"/>
+            <element ref="or"/>
+            <element ref="not"/>
+            <element ref="objectClass"/>
+            <element ref="objectState"/>
+            <element ref="pluginState"/>
+            <element ref="systemProperty"/>
+         </choice>
+      </complexType>
+   </element>
+
+   <element name="and">
+      <annotation>
+         <documentation>
+            This element represent a boolean AND operation on the result of evaluating it&apos;s two sub-element expressions.
+         </documentation>
+      </annotation>
+      <complexType>
+         <choice minOccurs="2" maxOccurs="2">
+            <element ref="and"/>
+            <element ref="or"/>
+            <element ref="not"/>
+            <element ref="objectClass"/>
+            <element ref="objectState"/>
+            <element ref="pluginState"/>
+            <element ref="systemProperty"/>
+         </choice>
+      </complexType>
+   </element>
+
+   <element name="or">
+      <annotation>
+         <documentation>
+            This element represent a boolean OR operation on the result of evaluating it&apos;s two sub-element expressions.
+         </documentation>
+      </annotation>
+      <complexType>
+         <choice minOccurs="2" maxOccurs="2">
+            <element ref="and"/>
+            <element ref="or"/>
+            <element ref="not"/>
+            <element ref="objectClass"/>
+            <element ref="objectState"/>
+            <element ref="pluginState"/>
+            <element ref="systemProperty"/>
+         </choice>
+      </complexType>
+   </element>
+
+   <element name="not">
+      <annotation>
+         <documentation>
+            This element represent a boolean NOT operation on the result of evaluating it&apos;s sub-element expressions.
+         </documentation>
+      </annotation>
+      <complexType>
+         <choice>
+            <element ref="and"/>
+            <element ref="or"/>
+            <element ref="not"/>
+            <element ref="objectClass"/>
+            <element ref="objectState"/>
+            <element ref="pluginState"/>
+            <element ref="systemProperty"/>
+         </choice>
+      </complexType>
+   </element>
+
+   <element name="objectClass">
+      <annotation>
+         <appInfo>
+            <meta.element labelAttribute="name"/>
+         </appInfo>
+         <documentation>
+            This element is used to evaluate the class or interface of each object in the current selection. If each object in the selection implements the specified class or interface, the expression is evaluated as true.
+         </documentation>
+      </annotation>
+      <complexType>
+         <attribute name="name" type="string" use="required">
+            <annotation>
+               <documentation>
+                  a fully qualified name of a class or interface.  The expression is evaluated as true only if all objects within the selection implement this class or interface.
+               </documentation>
+               <appInfo>
+                  <meta.attribute kind="java" basedOn="java.lang.Object"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+         <attribute name="adaptable" type="boolean">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="objectState">
+      <annotation>
+         <appInfo>
+            <meta.element labelAttribute="name"/>
+         </appInfo>
+         <documentation>
+            This element is used to evaluate the attribute state of each object in the current selection. If each object in the selection has the specified attribute state, the expression is evaluated as true. To evaluate this type of expression, each object in the selection must implement, or adapt to, &lt;samp&gt;org.eclipse.ui.IActionFilter&lt;/samp&gt; interface.
+         </documentation>
+      </annotation>
+      <complexType>
+         <attribute name="name" type="string" use="required">
+            <annotation>
+               <documentation>
+                  the name of an object&apos;s attribute. Acceptable names reflect the object type, and should be publicly declared by the plug-in where the object type is declared.
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="value" type="string" use="required">
+            <annotation>
+               <documentation>
+                  the required value of the object&apos;s attribute. The acceptable values for the object&apos;s attribute should be publicly declared.
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="pluginState">
+      <annotation>
+         <appInfo>
+            <meta.element labelAttribute="id"/>
+         </appInfo>
+         <documentation>
+            This element is used to evaluate the state of a plug-in. The state of the plug-in may be one of the following: &lt;samp&gt;installed&lt;/samp&gt; or &lt;samp&gt;activated&lt;/samp&gt;.
+         </documentation>
+      </annotation>
+      <complexType>
+         <attribute name="id" type="string" use="required">
+            <annotation>
+               <documentation>
+                  the identifier of a plug-in which may or may not exist in the plug-in registry.
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="value" use="default" value="installed">
+            <annotation>
+               <documentation>
+                  the required state of the plug-in. The state of the plug-in may be one of the following: &lt;samp&gt;installed&lt;/samp&gt; or &lt;samp&gt;activated&lt;/samp&gt;.
+               </documentation>
+            </annotation>
+            <simpleType>
+               <restriction base="string">
+                  <enumeration value="installed">
+                  </enumeration>
+                  <enumeration value="activated">
+                  </enumeration>
+               </restriction>
+            </simpleType>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="systemProperty">
+      <annotation>
+         <appInfo>
+            <meta.element labelAttribute="name"/>
+         </appInfo>
+         <documentation>
+            This element is used to evaluate the state of some system property.  The property value is retrieved from the &lt;samp&gt;java.lang.System&lt;/samp&gt;.
+         </documentation>
+      </annotation>
+      <complexType>
+         <attribute name="name" type="string" use="required">
+            <annotation>
+               <documentation>
+                  the name of the system property.
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="value" type="string" use="required">
+            <annotation>
+               <documentation>
+                  the required value of the system property.
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="since"/>
+      </appInfo>
+      <documentation>
+         Release 2.0
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="examples"/>
+      </appInfo>
+      <documentation>
+         
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="apiInfo"/>
+      </appInfo>
+      <documentation>
+         
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="implementation"/>
+      </appInfo>
+      <documentation>
+         
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="copyright"/>
+      </appInfo>
+      <documentation>
+         Copyright (c) 2002, 2004 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made 
+available under the terms of the Common Public License v1.0 which 
+accompanies 
+this distribution, and is available at 
+&lt;a 
+href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt;http://www.eclipse.org/legal/cpl-v10.html&lt;/a&gt;
+      </documentation>
+   </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.ui.navigator.resources/schema/commonWizard.exsd b/bundles/org.eclipse.ui.navigator.resources/schema/commonWizard.exsd
new file mode 100644
index 0000000..a425f35
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/schema/commonWizard.exsd
@@ -0,0 +1,135 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.wst.common.navigator.workbench">
+<annotation>
+      <appInfo>
+         <meta.schema plugin="org.eclipse.wst.common.navigator.workbench" id="commonWizard" name="Common Wizard"/>
+      </appInfo>
+      <documentation>
+         [Enter description of this extension point.]
+      </documentation>
+   </annotation>
+
+   <include schemaLocation="commonExpression.exsd"/>
+
+   <element name="extension">
+      <complexType>
+         <sequence>
+            <element ref="commonWizard" minOccurs="1" maxOccurs="unbounded"/>
+         </sequence>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="commonWizard">
+      <annotation>
+         <documentation>
+            The extension point provides the ability to contribute to the menu defined by type ( import | export | new ).
+         </documentation>
+      </annotation>
+      <complexType>
+         <sequence>
+            <element ref="enablement"/>
+         </sequence>
+         <attribute name="type" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="wizardId" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="enablement">
+      <annotation>
+         <documentation>
+            This element is used to define the enablement for the extension.
+         </documentation>
+      </annotation>
+      <complexType>
+         <choice>
+            <element ref="and"/>
+            <element ref="or"/>
+            <element ref="not"/>
+            <element ref="objectClass"/>
+            <element ref="objectState"/>
+            <element ref="pluginState"/>
+            <element ref="systemProperty"/>
+         </choice>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="since"/>
+      </appInfo>
+      <documentation>
+         [Enter the first release in which this extension point appears.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="examples"/>
+      </appInfo>
+      <documentation>
+         [Enter extension point usage example here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="apiInfo"/>
+      </appInfo>
+      <documentation>
+         [Enter API information here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="implementation"/>
+      </appInfo>
+      <documentation>
+         [Enter information about supplied implementation of this extension point.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="copyright"/>
+      </appInfo>
+      <documentation>
+         
+      </documentation>
+   </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.ui.navigator.resources/scripts/src-wbnavigator.jardesc b/bundles/org.eclipse.ui.navigator.resources/scripts/src-wbnavigator.jardesc
new file mode 100644
index 0000000..5caf8c4
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/scripts/src-wbnavigator.jardesc
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jardesc>
+	<jar path="C:/dev/workspaces/general-purpose-navigator/org.eclipse.ui.workbench.navigator/wbnavigator.jar"/>
+	<options compress="true"
+		descriptionLocation="/org.eclipse.ui.workbench.navigator/scripts/src-wbnavigator.jardesc"
+		exportErrors="true" exportWarnings="true" logErrors="true"
+		logWarnings="true" overwrite="false" saveDescription="true" useSourceFolders="false"/>
+	<manifest generateManifest="false"
+		manifestLocation="/org.eclipse.ui.workbench.navigator/src-wbnavigator/META-INF/MANIFEST.MF"
+		manifestVersion="1.0" reuseManifest="false" saveManifest="false" usesManifest="false">
+		<sealing sealJar="false"><packagesToSeal/><packagesToUnSeal/></sealing>
+	</manifest>
+	<selectedElements exportClassFiles="true" exportJavaFiles="false">
+		<javaElement handleIdentifier="=org.eclipse.ui.workbench.navigator/src-wbnavigator"/>
+	</selectedElements>
+</jardesc>
diff --git a/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/actions/CommonWizardDescriptor.java b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/actions/CommonWizardDescriptor.java
new file mode 100644
index 0000000..5804cf1
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/actions/CommonWizardDescriptor.java
@@ -0,0 +1,113 @@
+/*
+ * Created on Jan 14, 2005
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package org.eclipse.ui.navigator.resources.internal.actions;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.WorkbenchException;
+import org.eclipse.ui.internal.ActionExpression;
+
+/**
+ * @author Admin
+ * 
+ * TODO To change the template for this generated type comment go to Window - Preferences - Java -
+ * Code Style - Code Templates
+ */
+public class CommonWizardDescriptor {
+
+	public static final String ATT_WIZARD_ID = "wizardId"; //$NON-NLS-1$
+	public static final String ATT_TYPE = "type"; //$NON-NLS-1$	
+	private static final String CHILD_ENABLEMENT = "enablement"; //$NON-NLS-1$
+	private static final String EMF_ENABLEMENT = "emfEnablement"; //$NON-NLS-1$
+	// private EMFExpression emfEnablement;
+
+	private String wizardId;
+	private String type;
+
+	private ActionExpression enablement;
+	private IConfigurationElement configElement;
+
+
+	/**
+	 * @param actionElement
+	 * @param targetType
+	 */
+	public CommonWizardDescriptor(IConfigurationElement aConfigElement) throws WorkbenchException {
+		super();
+		configElement = aConfigElement;
+		init();
+	}
+
+	/*public boolean isEnabledFor(IStructuredSelection aStructuredSelection) {
+		return (enablement != null && enablement.isEnabledFor(aStructuredSelection)) || (emfEnablement != null && emfEnablement.isEnabledFor(aStructuredSelection));
+	}
+
+	public boolean isEnabledFor(Object anElement) {
+		return (enablement != null && enablement.isEnabledFor(anElement)) || (emfEnablement != null && emfEnablement.isEnabledFor(anElement));
+	}*/
+	
+	public boolean isEnabledFor(IStructuredSelection aStructuredSelection) {
+		return (enablement != null && enablement.isEnabledFor(aStructuredSelection));
+	}
+
+	public boolean isEnabledFor(Object anElement) {
+		return (enablement != null && enablement.isEnabledFor(anElement));
+	}
+
+
+
+	void init() throws WorkbenchException {
+		wizardId = configElement.getAttribute(ATT_WIZARD_ID);
+		type = configElement.getAttribute(ATT_TYPE);
+
+		if (wizardId == null || wizardId.length() == 0) {
+			throw new WorkbenchException("Missing attribute: " + //$NON-NLS-1$
+						ATT_WIZARD_ID + " in common wizard extension: " + //$NON-NLS-1$
+						configElement.getDeclaringExtension().getUniqueIdentifier());
+		}
+
+		if (type == null || type.length() == 0) {
+			throw new WorkbenchException("Missing attribute: " + //$NON-NLS-1$
+						ATT_TYPE + " in common wizard extension: " + //$NON-NLS-1$
+						configElement.getDeclaringExtension().getUniqueIdentifier());
+		}
+
+		IConfigurationElement[] children = configElement.getChildren(CHILD_ENABLEMENT);
+		if (children.length == 1) {
+			enablement = new ActionExpression(children[0]);
+		} else if (children.length > 1) {
+			throw new WorkbenchException("More than one element: " + //$NON-NLS-1$
+						CHILD_ENABLEMENT + " in common wizard extension: " + //$NON-NLS-1$
+						configElement.getDeclaringExtension().getUniqueIdentifier());
+		}
+		
+	/*	children = configElement.getChildren(EMF_ENABLEMENT);
+		if (children.length == 1) {
+			emfEnablement = new EMFExpression(children[0]);
+		} else if (children.length > 1) {
+			throw new WorkbenchException("More than one element: " + //$NON-NLS-1$
+						EMF_ENABLEMENT + " in common wizard extension: " + //$NON-NLS-1$
+						configElement.getDeclaringExtension().getUniqueIdentifier());
+		}*/
+	}
+
+	/**
+	 * 
+	 * @return Returns the common wizard wizardId
+	 */
+	public String getWizardId() {
+		return wizardId;
+	}
+
+	/**
+	 * @return Returns the type.
+	 */
+	public String getType() {
+		return type;
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/actions/CommonWizardRegistry.java b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/actions/CommonWizardRegistry.java
new file mode 100644
index 0000000..47cd3a5
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/actions/CommonWizardRegistry.java
@@ -0,0 +1,161 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2003 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.resources.internal.actions;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.WorkbenchException;
+import org.eclipse.ui.navigator.internal.extensions.RegistryReader;
+import org.eclipse.ui.navigator.resources.internal.plugin.WorkbenchNavigatorPlugin;
+
+/**
+* <p>
+* This class is experimental and is subject to change.
+* </p>
+*/
+public class CommonWizardRegistry {
+	
+	public static final String WIZARD_TYPE_NEW = "new"; //$NON-NLS-1$
+	public static final String WIZARD_TYPE_IMPORT = "import"; //$NON-NLS-1$
+	public static final String WIZARD_TYPE_EXPORT = "export"; //$NON-NLS-1$
+	
+	
+	private static final CommonWizardRegistry INSTANCE = new CommonWizardRegistry();
+	private static boolean isInitialized = false;
+	private static final String[] NO_DESCRIPTORS = new String[0];
+	private Map commonWizardDescriptors = new HashMap();
+
+
+	public void init() {
+		new CommonWizardRegistryReader().readRegistry();
+	}
+
+	/**
+	 *  
+	 */
+	public static CommonWizardRegistry getInstance() {
+		if (isInitialized)
+			return INSTANCE;
+		synchronized (INSTANCE) {
+			if (!isInitialized) {
+				INSTANCE.init();
+				isInitialized = true;
+			}
+		}
+		return INSTANCE;
+	}
+
+	/**
+	 * @param aDesc
+	 */
+	private void addCommonWizardDescriptor(CommonWizardDescriptor aDesc) {
+		if (aDesc == null)
+			return;
+		synchronized (commonWizardDescriptors) {
+			Set descriptors = (HashSet) commonWizardDescriptors.get(aDesc.getType());
+			if (descriptors == null) {
+				descriptors = new HashSet();
+				commonWizardDescriptors.put(aDesc.getType(), descriptors);
+			}
+			if (descriptors.contains(aDesc) == false) {
+				descriptors.add(aDesc);
+			}
+		}
+	}
+
+
+	/**
+	 * 
+	 * Returns all wizard id(s) which enable for the given element.
+	 * 
+	 * @param anElement
+	 *            the element to return the best content descriptor for
+	 * @return the best content descriptor for the given element.
+	 */
+	public String[] getEnabledCommonWizardDescriptorIds(Object anElement, String aType) {
+
+		Set commonDescriptors = (Set) commonWizardDescriptors.get(aType);
+		if (commonDescriptors == null)
+			return NO_DESCRIPTORS;
+		/* Find other Common Wizard providers which enable for this object */
+		List descriptorIds = new ArrayList();
+		for (Iterator commonWizardDescriptorsItr = commonDescriptors.iterator(); commonWizardDescriptorsItr.hasNext();) {
+			CommonWizardDescriptor descriptor = (CommonWizardDescriptor) commonWizardDescriptorsItr.next();
+
+			if (descriptor.isEnabledFor(anElement))
+				descriptorIds.add(descriptor.getWizardId());
+		}
+		String[] wizardIds = new String[descriptorIds.size()];
+		return (String[]) descriptorIds.toArray(wizardIds); //Collections.unmodifiableList(descriptors);
+	}
+
+	/**
+	 * 
+	 * Returns all content descriptor(s) which enable for the given element.
+	 * 
+	 * @param aStructuredSelection
+	 *            the element to return the best content descriptor for
+	 * @return the best content descriptor for the given element.
+	 */
+	public String[] getEnabledCommonWizardDescriptorIds(IStructuredSelection aStructuredSelection, String aType) {
+		Set commonDescriptors = (Set) commonWizardDescriptors.get(aType);
+		if (commonDescriptors == null)
+			return NO_DESCRIPTORS;
+		/* Find other Common Wizard providers which enable for this object */
+		List descriptorIds = new ArrayList();
+		for (Iterator commonWizardDescriptorsItr = commonDescriptors.iterator(); commonWizardDescriptorsItr.hasNext();) {
+			CommonWizardDescriptor descriptor = (CommonWizardDescriptor) commonWizardDescriptorsItr.next();
+
+			if (descriptor.isEnabledFor(aStructuredSelection))
+				descriptorIds.add(descriptor.getWizardId());
+		}
+		String[] wizardIds = new String[descriptorIds.size()];
+		return (String[]) descriptorIds.toArray(wizardIds); //Collections.unmodifiableList(descriptors);
+	}
+
+
+
+	class CommonWizardRegistryReader extends RegistryReader {
+
+		private static final String COMMON_WIZARD = "commonWizard"; //$NON-NLS-1$
+
+
+		CommonWizardRegistryReader() {
+			super(WorkbenchNavigatorPlugin.PLUGIN_ID, COMMON_WIZARD);
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.wst.common.navigator.internal.views.extensions.RegistryReader#readElement(org.eclipse.core.runtime.IConfigurationElement)
+		 */
+		protected boolean readElement(IConfigurationElement anElement) {
+			if (COMMON_WIZARD.equals(anElement.getName())) {
+				try {
+					addCommonWizardDescriptor(new CommonWizardDescriptor(anElement));
+					return true;
+				} catch (WorkbenchException e) {
+					// log an error since its not safe to open a dialog here
+					WorkbenchNavigatorPlugin.log("Unable to create common wizard descriptor.", e.getStatus());//$NON-NLS-1$
+				}
+			}
+			return false;
+		}
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/actions/MoveResourceAction.java b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/actions/MoveResourceAction.java
new file mode 100644
index 0000000..f2b834b
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/actions/MoveResourceAction.java
@@ -0,0 +1,55 @@
+/***************************************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others. All rights reserved. This program and the
+ * accompanying materials are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors: IBM Corporation - initial API and implementation
+ **************************************************************************************************/
+/*
+ * Created on Jul 8, 2004
+ * 
+ * TODO To change the template for this generated file go to Window - Preferences - Java - Code
+ * Style - Code Templates
+ */
+package org.eclipse.ui.navigator.resources.internal.actions;
+
+
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IActionDelegate;
+import org.eclipse.ui.PlatformUI;
+
+public class MoveResourceAction implements IActionDelegate {
+
+	private org.eclipse.ui.actions.MoveResourceAction moveAction = null;
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
+	 */
+	public void run(IAction action) {
+		if (this.moveAction == null)
+			this.moveAction = new org.eclipse.ui.actions.MoveResourceAction(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell());
+
+		this.moveAction.run();
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction,
+	 *      org.eclipse.jface.viewers.ISelection)
+	 */
+	public void selectionChanged(IAction action, ISelection selection) {
+		if (this.moveAction == null)
+			this.moveAction = new org.eclipse.ui.actions.MoveResourceAction(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell());
+
+		this.moveAction.selectionChanged((IStructuredSelection) selection);
+	}
+
+}
+
diff --git a/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/actions/PortingActionExtension.java b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/actions/PortingActionExtension.java
new file mode 100644
index 0000000..4aea694
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/actions/PortingActionExtension.java
@@ -0,0 +1,213 @@
+/******************************************************************************* 
+ * Copyright (c) 2000, 2003 IBM Corporation and others. 
+ * All rights reserved. This program and the accompanying materials! 
+ * are made available under the terms of the Common Public License v1.0 
+ * which accompanies this distribution, and is available at 
+ * http://www.eclipse.org/legal/cpl-v10.html 
+ * 
+ * Contributors: 
+ *      IBM Corporation - initial API and implementation 
+ *  	Sebastian Davids <sdavids@gmx.de> - Collapse all action
+ *      Sebastian Davids <sdavids@gmx.de> - Images for menu items
+ ************************************************************************/
+package org.eclipse.ui.navigator.resources.internal.actions;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IViewPart;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.actions.ActionContext;
+import org.eclipse.ui.actions.ActionFactory;
+import org.eclipse.ui.actions.ExportResourcesAction;
+import org.eclipse.ui.actions.ImportResourcesAction;
+import org.eclipse.ui.internal.WorkbenchMessages;
+import org.eclipse.ui.navigator.ICommonActionProvider;
+import org.eclipse.ui.navigator.ICommonMenuConstants;
+import org.eclipse.ui.navigator.NavigatorContentService;
+import org.eclipse.ui.navigator.internal.actions.CommonActionProvider;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * The main action group for the navigator. This contains a few actions and several subgroups.
+ */
+public class PortingActionExtension extends CommonActionProvider implements ICommonActionProvider {
+
+	// private static final NavigatorContentDescriptorRegistry CONTENT_DESCRIPTOR_REGISTRY =
+	// NavigatorContentDescriptorRegistry.getInstance();
+	private static final CommonWizardRegistry COMMON_WIZARD_REGISTRY = CommonWizardRegistry.getInstance();
+	private static final String TYPE_IMPORT = "import"; //$NON-NLS-1$
+	private static final String TYPE_EXPORT = "export"; //$NON-NLS-1$
+	// private ImportActionGroup importActionGroup;
+	public static final String COMMON_NAVIGATOR_IMPORT_MENU = "common.import.menu"; //$NON-NLS-1$
+	public static final String COMMON_NAVIGATOR_EXPORT_MENU = "common.export.menu"; //$NON-NLS-1$	
+
+	private static final Separator GROUP_IMPORT_SEPARATOR = new Separator(ICommonMenuConstants.GROUP_PORT);
+
+	private ImportResourcesAction importAction;
+	private ExportResourcesAction exportAction;
+	private ActionContext actionContext;
+	private NavigatorContentService contentService;
+
+	private WizardActionGroup importWizardActionGroup;
+	private WizardActionGroup exportWizardActionGroup;
+
+	/**
+	 * Returns the image descriptor with the given relative path.
+	 */
+	protected ImageDescriptor getImageDescriptor(String relativePath) {
+		String iconPath = "icons/full/"; //$NON-NLS-1$
+		try {
+			AbstractUIPlugin plugin = (AbstractUIPlugin) Platform.getPlugin(PlatformUI.PLUGIN_ID);
+			URL installURL = plugin.getDescriptor().getInstallURL();
+			URL url = new URL(installURL, iconPath + relativePath);
+			return ImageDescriptor.createFromURL(url);
+		} catch (MalformedURLException e) {
+			// should not happen
+			return ImageDescriptor.getMissingImageDescriptor();
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.actions.ICommonActionProvider#init(org.eclipse.ui.IViewPart)
+	 */
+	public void init(String anExtensionId, IViewPart aViewPart, NavigatorContentService aContentService, StructuredViewer aStructuredViewer) {
+		contentService = aContentService;
+		IWorkbenchWindow window = (aViewPart.getViewSite() != null) ? aViewPart.getViewSite().getWorkbenchWindow() : null;
+		importAction = new ImportResourcesAction(window);
+		exportAction = new ExportResourcesAction(window);
+		importWizardActionGroup = new WizardActionGroup(window, WizardActionGroup.IMPORT_WIZARD);
+		exportWizardActionGroup = new WizardActionGroup(window, WizardActionGroup.EXPORT_WIZARD);
+
+	}
+
+	/**
+	 * Extends the superclass implementation to dispose the subgroups.
+	 */
+	public void dispose() {
+		//dispose
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.actions.ICommonActionProvider#setActionContext(org.eclipse.ui.actions.ActionContext)
+	 */
+	public void setActionContext(ActionContext aContext) {
+		actionContext = aContext;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.actions.ICommonActionProvider#fillActionBars(org.eclipse.ui.IActionBars)
+	 */
+	public boolean fillActionBars(IActionBars theActionBars) {
+		theActionBars.setGlobalActionHandler(ActionFactory.IMPORT.getId(), importAction);
+		theActionBars.setGlobalActionHandler(ActionFactory.EXPORT.getId(), exportAction);
+		return true;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.navigator.INavigatorActionsExtension#fillContextMenu(org.eclipse.jface.action.IMenuManager,
+	 *      org.eclipse.jface.viewers.IStructuredSelection)
+	 */
+	public boolean fillContextMenu(IMenuManager aMenu) {
+
+		aMenu.appendToGroup(ICommonMenuConstants.GROUP_REORGANIZE, GROUP_IMPORT_SEPARATOR);
+
+		if (actionContext == null || actionContext.getSelection().isEmpty() || !(actionContext.getSelection() instanceof IStructuredSelection)) {
+			addSimplePortingMenus(aMenu);
+		} else {
+			IStructuredSelection structuredSelection = (IStructuredSelection) actionContext.getSelection();
+			if (structuredSelection.size() > 1)
+				addSimplePortingMenus(aMenu);
+			else
+				/* structuredSelection.size() = 1 */
+				addFocusedPortingMenus(aMenu, structuredSelection.getFirstElement());
+		}
+		return true;
+	}
+
+	private void addSimplePortingMenus(IMenuManager aMenu) {
+		aMenu.appendToGroup(ICommonMenuConstants.GROUP_PORT, importAction);
+		aMenu.appendToGroup(ICommonMenuConstants.GROUP_PORT, exportAction);
+	}
+
+	private void addFocusedPortingMenus(IMenuManager aMenu, Object anElement) {
+		// TODO MDE Add customizations
+		if (contentService != null) {
+			addImportMenu(aMenu, anElement);
+			addExportMenu(aMenu, anElement);
+		} else
+			addSimplePortingMenus(aMenu);
+	}
+
+	/**
+	 * @param aMenu
+	 * @param selection
+	 */
+	private void addImportMenu(IMenuManager aMenu, Object anElement) {
+
+		String[] wizardDescriptorIds = COMMON_WIZARD_REGISTRY.getEnabledCommonWizardDescriptorIds(anElement, TYPE_IMPORT);
+
+		if (wizardDescriptorIds.length == 0) {
+			aMenu.appendToGroup(ICommonMenuConstants.GROUP_PORT, importAction);
+			return;
+		}
+
+		IMenuManager submenu = new MenuManager(WorkbenchMessages.ImportResourcesAction_text, COMMON_NAVIGATOR_IMPORT_MENU); //$NON-NLS-1$
+		importWizardActionGroup.setWizardActionIds(wizardDescriptorIds);
+		importWizardActionGroup.setContext(actionContext);
+		importWizardActionGroup.fillContextMenu(submenu);
+
+		submenu.add(new Separator(ICommonMenuConstants.GROUP_ADDITIONS));
+		submenu.add(new Separator());
+		submenu.add(importAction);
+		aMenu.appendToGroup(ICommonMenuConstants.GROUP_PORT, submenu);
+	}
+
+	/**
+	 * @param aMenu
+	 * @param selection
+	 */
+	private void addExportMenu(IMenuManager aMenu, Object anElement) {
+		String[] wizardDescriptorIds = COMMON_WIZARD_REGISTRY.getEnabledCommonWizardDescriptorIds(anElement, TYPE_EXPORT);
+		if (wizardDescriptorIds.length == 0) {
+			aMenu.appendToGroup(ICommonMenuConstants.GROUP_PORT, exportAction);
+			return;
+		}
+		IMenuManager submenu = new MenuManager(WorkbenchMessages.ExportResourcesAction_text, COMMON_NAVIGATOR_EXPORT_MENU); //$NON-NLS-1$
+		exportWizardActionGroup.setWizardActionIds(wizardDescriptorIds);
+		exportWizardActionGroup.setContext(actionContext);
+		exportWizardActionGroup.fillContextMenu(submenu);
+		submenu.add(new Separator(ICommonMenuConstants.GROUP_ADDITIONS));
+		submenu.add(new Separator());
+		submenu.add(exportAction);
+		aMenu.appendToGroup(ICommonMenuConstants.GROUP_PORT, submenu);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
+	 */
+	public Object getAdapter(Class adapter) {
+		return Platform.getAdapterManager().getAdapter(this, adapter);
+	}
+
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/actions/QuickMenuAction.java b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/actions/QuickMenuAction.java
new file mode 100644
index 0000000..8d1f722
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/actions/QuickMenuAction.java
@@ -0,0 +1,288 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/*
+ * Created on Aug 2, 2004
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package org.eclipse.ui.navigator.resources.internal.actions;
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.swt.custom.StyledText;
+import org.eclipse.swt.graphics.GC;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.graphics.Rectangle;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.commands.ICommand;
+import org.eclipse.ui.commands.ICommandManager;
+import org.eclipse.ui.commands.IKeySequenceBinding;
+
+/**
+ * A quick menu actions provides support to assign short cuts to sub menus.
+ * 
+ * Derived from the class of the same name in the JDT internals.
+ */
+public abstract class QuickMenuAction extends Action {
+
+	private static final int CHAR_INDENT = 3;
+
+	/**
+	 * Creates a new quick menu action with the given command id.
+	 * 
+	 * @param commandId
+	 *            the command id of the short cut used to open the sub menu
+	 */
+	public QuickMenuAction(String commandId) {
+		setActionDefinitionId(commandId);
+	}
+
+	/**
+	 * {@inheritDoc}
+	 */
+	public void run() {
+		Display display = Display.getCurrent();
+		if (display == null)
+			return;
+		Control focus = display.getFocusControl();
+		if (focus == null || focus.isDisposed())
+			return;
+
+		MenuManager menu = new MenuManager();
+		fillMenu(menu);
+		final Menu widget = menu.createContextMenu(focus.getShell());
+		Point location = computeMenuLocation(focus, widget);
+		if (location == null)
+			return;
+		widget.setLocation(location);
+		widget.setVisible(true);
+		while (!widget.isDisposed() && widget.isVisible()) {
+			if (!display.readAndDispatch())
+				display.sleep();
+		}
+		if (!widget.isDisposed()) {
+			widget.dispose();
+		}
+	}
+
+	/**
+	 * Hook to fill a menu manager with the items of the sub menu.
+	 * 
+	 * @param menu
+	 *            the sub menu to fill
+	 */
+	protected abstract void fillMenu(IMenuManager menu);
+
+	/**
+	 * Returns the short cut assigned to the sub menu or <code>null</code> if no short cut is
+	 * assigned.
+	 * 
+	 * @return the short cut as a human readable string or <code>null</code>
+	 */
+	public String getShortCutString() {
+		final ICommandManager commandManager = PlatformUI.getWorkbench().getCommandSupport().getCommandManager();
+		final ICommand command = commandManager.getCommand(getActionDefinitionId());
+		if (command.isDefined()) {
+			List l = command.getKeySequenceBindings();
+			if (!l.isEmpty()) {
+				IKeySequenceBinding binding = (IKeySequenceBinding) l.get(0);
+				return binding.getKeySequence().format();
+			}
+		}
+		return null; //$NON-NLS-1$
+	}
+
+	private Point computeMenuLocation(Control focus, Menu menu) {
+		Point cursorLocation = focus.getDisplay().getCursorLocation();
+		Rectangle clientArea = null;
+		Point result = null;
+		if (focus instanceof StyledText) {
+			StyledText styledText = (StyledText) focus;
+			clientArea = styledText.getClientArea();
+			result = computeMenuLocation(styledText);
+		} else if (focus instanceof Tree) {
+			Tree tree = (Tree) focus;
+			clientArea = tree.getClientArea();
+			result = computeMenuLocation(tree);
+		} else if (focus instanceof Table) {
+			Table table = (Table) focus;
+			clientArea = table.getClientArea();
+			result = computeMenuLocation(table);
+		}
+		if (result == null) {
+			result = focus.toControl(cursorLocation);
+		}
+		if (clientArea != null && !clientArea.contains(result)) {
+			result = new Point(clientArea.x + clientArea.width / 2, clientArea.y + clientArea.height / 2);
+		}
+		Rectangle shellArea = focus.getShell().getClientArea();
+		if (!shellArea.contains(focus.getShell().toControl(focus.toDisplay(result)))) {
+			result = new Point(shellArea.x + shellArea.width / 2, shellArea.y + shellArea.height / 2);
+		}
+		return focus.toDisplay(result);
+	}
+
+	/**
+	 * Hook to compute the menu location if the focus widget is a styled text widget.
+	 * 
+	 * @param text
+	 *            the styled text widget that has the focus
+	 * 
+	 * @return a widget relative position of the menu to pop up or <code>null</code> if now
+	 *         position inside the widget can be computed
+	 */
+	protected Point computeMenuLocation(StyledText text) {
+		Point result = text.getLocationAtOffset(text.getCaretOffset());
+		result.y += text.getLineHeight();
+		if (!text.getClientArea().contains(result))
+			return null;
+		return result;
+	}
+
+	/**
+	 * Hook to compute the menu location if the focus widget is a tree widget.
+	 * 
+	 * @param tree
+	 *            the tree widget that has the focus
+	 * 
+	 * @return a widget relative position of the menu to pop up or <code>null</code> if now
+	 *         position inside the widget can be computed
+	 */
+	protected Point computeMenuLocation(Tree tree) {
+		TreeItem[] items = tree.getSelection();
+		Rectangle clientArea = tree.getClientArea();
+		switch (items.length) {
+			case 0 :
+				return null;
+			case 1 :
+				Rectangle bounds = items[0].getBounds();
+				Rectangle intersect = clientArea.intersection(bounds);
+				if (intersect != null && intersect.height == bounds.height) {
+					return new Point(Math.max(0, bounds.x + getAvarageCharWith(tree) * CHAR_INDENT), bounds.y + bounds.height);
+				}
+				return null;
+
+			default :
+				Rectangle[] rectangles = new Rectangle[items.length];
+				for (int i = 0; i < rectangles.length; i++) {
+					rectangles[i] = items[i].getBounds();
+				}
+				Point cursorLocation = tree.getDisplay().getCursorLocation();
+				Point result = findBestLocation(getIncludedPositions(rectangles, clientArea), tree.toControl(cursorLocation));
+				if (result != null)
+					result.x = result.x + getAvarageCharWith(tree) * CHAR_INDENT;
+				return result;
+		}
+	}
+
+	/**
+	 * Hook to compute the menu location if the focus widget is a table widget.
+	 * 
+	 * @param table
+	 *            the table widget that has the focus
+	 * 
+	 * @return a widget relative position of the menu to pop up or <code>null</code> if now
+	 *         position inside the widget can be computed
+	 */
+	protected Point computeMenuLocation(Table table) {
+		TableItem[] items = table.getSelection();
+		Rectangle clientArea = table.getClientArea();
+		switch (items.length) {
+			case 0 : {
+				return null;
+			}
+			case 1 : {
+				Rectangle bounds = items[0].getBounds(0);
+				Rectangle iBounds = items[0].getImageBounds(0);
+				Rectangle intersect = clientArea.intersection(bounds);
+				if (intersect != null && intersect.height == bounds.height) {
+					return new Point(Math.max(0, bounds.x + iBounds.width + getAvarageCharWith(table) * CHAR_INDENT), bounds.y + bounds.height);
+				}
+				return null;
+
+			}
+			default : {
+				Rectangle[] rectangles = new Rectangle[items.length];
+				for (int i = 0; i < rectangles.length; i++) {
+					rectangles[i] = items[i].getBounds(0);
+				}
+				Rectangle iBounds = items[0].getImageBounds(0);
+				Point cursorLocation = table.getDisplay().getCursorLocation();
+				Point result = findBestLocation(getIncludedPositions(rectangles, clientArea), table.toControl(cursorLocation));
+				if (result != null)
+					result.x = result.x + iBounds.width + getAvarageCharWith(table) * CHAR_INDENT;
+				return result;
+			}
+		}
+	}
+
+	private Point[] getIncludedPositions(Rectangle[] rectangles, Rectangle widgetBounds) {
+		List result = new ArrayList();
+		for (int i = 0; i < rectangles.length; i++) {
+			Rectangle rectangle = rectangles[i];
+			Rectangle intersect = widgetBounds.intersection(rectangle);
+			if (intersect != null && intersect.height == rectangle.height) {
+				result.add(new Point(intersect.x, intersect.y + intersect.height));
+			}
+		}
+		return (Point[]) result.toArray(new Point[result.size()]);
+	}
+
+	private Point findBestLocation(Point[] points, Point relativeCursor) {
+		Point result = null;
+		double bestDist = Double.MAX_VALUE;
+		for (int i = 0; i < points.length; i++) {
+			Point point = points[i];
+			int a = 0;
+			int b = 0;
+			if (point.x > relativeCursor.x) {
+				a = point.x - relativeCursor.x;
+			} else {
+				a = relativeCursor.x - point.x;
+			}
+			if (point.y > relativeCursor.y) {
+				b = point.y - relativeCursor.y;
+			} else {
+				b = relativeCursor.y - point.y;
+			}
+			double dist = Math.sqrt(a * a + b * b);
+			if (dist < bestDist) {
+				result = point;
+				bestDist = dist;
+			}
+		}
+		return result;
+	}
+
+	private int getAvarageCharWith(Control control) {
+		GC gc = null;
+		try {
+			gc = new GC(control);
+			return gc.getFontMetrics().getAverageCharWidth();
+		} finally {
+			if (gc != null)
+				gc.dispose();
+		}
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/actions/RenameResourceAction.java b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/actions/RenameResourceAction.java
new file mode 100644
index 0000000..d821e14
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/actions/RenameResourceAction.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.resources.internal.actions;
+
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IActionDelegate;
+import org.eclipse.ui.PlatformUI;
+
+
+/**
+ * Standard action for renaming the selected resource. The resource may be a file, folder or
+ * project. An INavigatorSiteEditor will be used to let the user type a new name for the selected
+ * resource.
+ * <p>
+ * This class may be instantiated; it is not intended to be subclassed.
+ * </p>
+ * <p>
+ * This class is experimental and is subject to change.
+ * </p>
+ * 
+ * Derived from org.eclipse.ui.actions.RenameResourceAction
+ */
+public class RenameResourceAction implements IActionDelegate {
+	private org.eclipse.ui.actions.RenameResourceAction renameAction = null;
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
+	 */
+	public void run(IAction action) {
+		if (this.renameAction == null)
+			this.renameAction = new org.eclipse.ui.actions.RenameResourceAction(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell());
+		this.renameAction.run();
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action.IAction,
+	 *      org.eclipse.jface.viewers.ISelection)
+	 */
+	public void selectionChanged(IAction action, ISelection selection) {
+		if (this.renameAction == null)
+			this.renameAction = new org.eclipse.ui.actions.RenameResourceAction(PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell());
+
+		this.renameAction.selectionChanged((IStructuredSelection) selection);
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/actions/ResourceOpenListener.java b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/actions/ResourceOpenListener.java
new file mode 100644
index 0000000..671ddec
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/actions/ResourceOpenListener.java
@@ -0,0 +1,54 @@
+
+/*
+ * Created on Feb 4, 2005
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package org.eclipse.ui.navigator.resources.internal.actions;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.OpenEvent;
+import org.eclipse.ui.actions.OpenFileAction;
+import org.eclipse.ui.navigator.CommonNavigator;
+import org.eclipse.ui.navigator.ICommonOpenListener;
+import org.eclipse.ui.navigator.NavigatorContentService;
+
+/**
+ * @author Admin
+ *
+ * TODO To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+public class ResourceOpenListener implements ICommonOpenListener{
+	OpenFileAction openFileAction ;
+	private CommonNavigator commonNavigator;
+	private NavigatorContentService contentService;
+	
+	public void initialize(CommonNavigator aCommonNavigator, NavigatorContentService aContentService) {
+		commonNavigator = aCommonNavigator;
+		contentService = aContentService;
+		openFileAction = new OpenFileAction(commonNavigator.getSite().getPage());
+		
+	}
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.IOpenListener#open(org.eclipse.jface.viewers.OpenEvent)
+	 */
+	public void open(OpenEvent event) {
+		ISelection selection = event.getSelection();
+		if (selection != null && selection instanceof IStructuredSelection) {
+			if (openFileAction != null ) {
+				IStructuredSelection structureSelection = (IStructuredSelection) selection;
+				Object element = structureSelection.getFirstElement();
+		        if (element instanceof IFile) {
+		            openFileAction.selectionChanged(structureSelection);
+		            openFileAction.run();
+		        }
+			}
+		}
+	}
+
+}
diff --git a/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/actions/WizardActionGroup.java b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/actions/WizardActionGroup.java
new file mode 100644
index 0000000..f250a19
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/actions/WizardActionGroup.java
@@ -0,0 +1,143 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.resources.internal.actions;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.core.internal.runtime.Assert;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.actions.ActionGroup;
+import org.eclipse.ui.internal.WorkbenchPlugin;
+import org.eclipse.ui.wizards.IWizardDescriptor;
+import org.eclipse.ui.wizards.IWizardRegistry;
+
+
+/**
+ * @author mdelder
+ *  
+ */
+public class WizardActionGroup extends ActionGroup {
+
+	private Map actions;
+	private IWorkbenchWindow window;
+	private String type;
+	private IWizardRegistry wizardRegistry;
+
+	//protected WizardsRegistryReader reader;
+	private String[] wizardActionIds;
+	public static final String IMPORT_WIZARD = "importWizards"; //$NON-NLS-1$
+	public static final String EXPORT_WIZARD = "exportWizards"; //$NON-NLS-1$
+	public static final String NEW_WIZARD = "newWizards"; //$NON-NLS-1$
+
+
+	/**
+	 *  
+	 */
+	public WizardActionGroup(IWorkbenchWindow window, String type) {
+		super();
+		Assert.isNotNull(type);
+		this.type = type;
+		this.window = window;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.actions.ActionGroup#fillContextMenu(org.eclipse.jface.action.IMenuManager)
+	 */
+	public void fillContextMenu(IMenuManager menu) {
+
+		IAction action = null;
+		// we save a reference to the field in case the original is changed while processing
+		String[] localNewWizardActionIds = wizardActionIds;
+		if (localNewWizardActionIds != null) {
+			for (int i = 0; i < localNewWizardActionIds.length; i++) {
+				if ((action = getAction(localNewWizardActionIds[i])) != null) {
+					menu.add(action);
+				}
+			}
+		}
+
+	}
+
+	/*
+	 * (non-Javadoc) Returns the action for the given wizard id, or null if not found.
+	 */
+	protected IAction getAction(String id) {
+		if (id == null || id.length() == 0)
+			return null;
+
+		// Keep a cache, rather than creating a new action each time,
+		// so that image caching in ActionContributionItem works.
+		IAction action = (IAction) getActions().get(id);
+		if (action == null) {
+			IWizardDescriptor descriptor = getRegistry().findWizard(id);
+			if (descriptor != null) {
+				action = new WizardShortcutAction(window, descriptor);
+				getActions().put(id, action);
+			}
+		}
+
+		return action;
+	}
+
+	/**
+	 * @return
+	 */
+	private IWizardRegistry getRegistry() { 
+		if(wizardRegistry == null) {
+			if(NEW_WIZARD.equals(type))
+				wizardRegistry = WorkbenchPlugin.getDefault().getNewWizardRegistry();
+			else if(IMPORT_WIZARD.equals(type))
+				wizardRegistry = WorkbenchPlugin.getDefault().getImportWizardRegistry();
+			else if(EXPORT_WIZARD.equals(type))
+				wizardRegistry = WorkbenchPlugin.getDefault().getExportWizardRegistry();
+		}
+		return wizardRegistry;
+	}
+
+	/**
+	 * @return Returns the actions.
+	 */
+	protected Map getActions() {
+		if (actions == null)
+			actions = new HashMap();
+		return actions;
+	}
+
+//	/**
+//	 * @return Returns the reader.
+//	 */
+//	protected WizardsRegistryReader getReader() {
+//		if (reader == null)
+//			reader = new WorkbenchWizardsRegistryReader(type);
+//		return reader;
+//	}
+
+	/**
+	 * @return Returns the wizardActionIds.
+	 */
+	public String[] getWizardActionIds() {
+		return wizardActionIds;
+	}
+
+	/**
+	 * @param wizardActionIds
+	 *            The wizardActionIds to set.
+	 */
+	public void setWizardActionIds(String[] wizardActionIds) {
+		this.wizardActionIds = wizardActionIds;
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/actions/WizardShortcutAction.java b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/actions/WizardShortcutAction.java
new file mode 100644
index 0000000..9e93469
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/actions/WizardShortcutAction.java
@@ -0,0 +1,136 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.resources.internal.actions;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.dialogs.ErrorDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IPluginContribution;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.IWorkbenchWizard;
+import org.eclipse.ui.actions.ActionFactory;
+import org.eclipse.ui.help.WorkbenchHelp;
+import org.eclipse.ui.internal.IWorkbenchHelpContextIds;
+import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
+import org.eclipse.ui.wizards.IWizardDescriptor;
+
+/**
+ * @author mdelder
+ *  
+ */
+public class WizardShortcutAction extends Action implements IPluginContribution {
+	private IWizardDescriptor descriptor;
+	private IWorkbenchWindow window;
+
+	/**
+	 *  
+	 */
+	public WizardShortcutAction(IWorkbenchWindow window, IWizardDescriptor aDescriptor) {
+		super(aDescriptor.getLabel());
+		descriptor = aDescriptor;
+		setToolTipText(descriptor.getDescription());
+		setImageDescriptor(descriptor.getImageDescriptor());
+		setId(ActionFactory.NEW.getId()); 
+		this.window = window;
+	}
+
+	//	/**
+	//	 * @param text
+	//	 */
+	//	public WizardShortcutAction(String text) {
+	//		super(text);
+	//	}
+	//
+	//	/**
+	//	 * @param text
+	//	 * @param image
+	//	 */
+	//	public WizardShortcutAction(String text, ImageDescriptor image) {
+	//		super(text, image);
+	//	}
+	//
+	//	/**
+	//	 * @param text
+	//	 * @param style
+	//	 */
+	//	public WizardShortcutAction(String text, int style) {
+	//		super(text, style);
+	//	}
+	//	
+	//	
+
+	/**
+	 * This action has been invoked by the user
+	 * 
+	 * @param context
+	 *            Window
+	 */
+	public void run() {
+		// create instance of target wizard
+
+		IWorkbenchWizard wizard;
+		try {
+			wizard = descriptor.createWizard();
+		} catch (CoreException e) {
+			ErrorDialog.openError(window.getShell(), IDEWorkbenchMessages.NewProjectWizard_errorTitle, //$NON-NLS-1$
+						IDEWorkbenchMessages.NewProjectAction_text, //$NON-NLS-1$
+						e.getStatus());
+			return;
+		}
+
+		ISelection selection = window.getSelectionService().getSelection();
+		/*
+		 * IStructuredSelection selectionToPass = StructuredSelection.EMPTY; if (selection
+		 * instanceof IStructuredSelection) { selectionToPass =
+		 * wizardElement.adaptedSelection((IStructuredSelection) selection); } else { // Build the
+		 * selection from the IFile of the editor IWorkbenchPart part =
+		 * window.getPartService().getActivePart(); if (part instanceof IEditorPart) { IEditorInput
+		 * input = ((IEditorPart) part).getEditorInput(); if (input instanceof IFileEditorInput) {
+		 * selectionToPass = new StructuredSelection(((IFileEditorInput) input).getFile()); } } }
+		 */
+
+		if (selection instanceof IStructuredSelection)
+			wizard.init(window.getWorkbench(), (IStructuredSelection) selection);
+		else
+			wizard.init(window.getWorkbench(), StructuredSelection.EMPTY);
+
+		Shell parent = window.getShell();
+		WizardDialog dialog = new WizardDialog(parent, wizard);
+		dialog.create();
+		WorkbenchHelp.setHelp(dialog.getShell(), IWorkbenchHelpContextIds.NEW_WIZARD_SHORTCUT);
+		dialog.open();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.activities.support.IPluginContribution#getLocalId()
+	 */
+	public String getLocalId() {
+		return descriptor.getId();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.activities.support.IPluginContribution#getPluginId()
+	 */
+	public String getPluginId() {
+		return descriptor.getId();
+	}
+
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/plugin/NavigatorUIPluginImages.java b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/plugin/NavigatorUIPluginImages.java
new file mode 100644
index 0000000..c270e5c
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/plugin/NavigatorUIPluginImages.java
@@ -0,0 +1,120 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.resources.internal.plugin;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.resource.ImageRegistry;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.navigator.internal.NavigatorPlugin;
+
+
+/**
+ * Handles all images and icons for the j2ee ui.
+ */
+public class NavigatorUIPluginImages {
+
+	private static URL fgIconLocation;
+
+
+	//Create image registry
+	private final static ImageRegistry NAVIGATORUIPLUGIN_REGISTRY = NavigatorPlugin.getDefault().getImageRegistry();
+
+	//Create the icon location
+	static {
+		String pathSuffix = "icons/full/"; //$NON-NLS-1$
+		try {
+			fgIconLocation = new URL(NavigatorPlugin.getDefault().getDescriptor().getInstallURL(), pathSuffix);
+		} catch (MalformedURLException ex) {
+			//Ignore
+		}
+	}
+
+	/**
+	 * Gets the current image.
+	 * 
+	 * @param String
+	 *            key - Name of the icon.
+	 * @return Image
+	 */
+	public static Image get(String key) {
+		return NAVIGATORUIPLUGIN_REGISTRY.get(key);
+	}
+
+
+	/**
+	 * Create and returns a image descriptor.
+	 * 
+	 * @param String
+	 *            prefix - Icon dir structure.
+	 * @param String
+	 *            name - The name of the icon.
+	 * @return ImageDescriptor
+	 */
+	private static ImageDescriptor create(String prefix, String name) {
+		return ImageDescriptor.createFromURL(makeIconFileURL(prefix, name));
+	}
+
+	/**
+	 * Creates the icon url
+	 * 
+	 * @param String
+	 *            prefix - Icon dir structure.
+	 * @param String
+	 *            name - The name of the icon.
+	 * @return URL
+	 */
+	private static URL makeIconFileURL(String prefix, String name) {
+		StringBuffer buffer = new StringBuffer(prefix);
+		buffer.append(name);
+		try {
+			return new URL(fgIconLocation, buffer.toString());
+		} catch (MalformedURLException ex) {
+
+			return null;
+		}
+	}
+
+	/**
+	 * Sets the three image descriptors for enabled, disabled, and hovered to an action. The actions
+	 * are retrieved from the *lcl16 folders.
+	 * 
+	 * @param action
+	 *            the action
+	 * @param iconName
+	 *            the icon name
+	 */
+	public static void setLocalImageDescriptors(IAction action, String iconName) {
+		setImageDescriptors(action, "lcl16/", iconName); //$NON-NLS-1$
+	}
+
+	/**
+	 * Sets all available image descriptors for the given action.
+	 * 
+	 * @param IAction
+	 *            action - The action associated with the icon.
+	 * @param String
+	 *            type - The type of icon.
+	 * @param String
+	 *            relPath - The relative path of the icon.
+	 */
+	public static void setImageDescriptors(IAction action, String type, String relPath) {
+		//		/*relPath= relPath.substring(NAVIGATORUI_NAME_PREFIX_LENGTH);*/
+		//		action.setDisabledImageDescriptor(create("d" + type, relPath)); //$NON-NLS-1$
+		//		action.setHoverImageDescriptor(create("c" + type, relPath)); //$NON-NLS-1$
+		action.setImageDescriptor(create("e" + type, relPath)); //$NON-NLS-1$
+	}
+
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/plugin/WorkbenchNavigatorMessages.java b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/plugin/WorkbenchNavigatorMessages.java
new file mode 100644
index 0000000..f2358aa
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/plugin/WorkbenchNavigatorMessages.java
@@ -0,0 +1,93 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.resources.internal.plugin;
+
+import java.text.MessageFormat;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+/**
+ * Utility class which helps managing messages
+ */
+public class WorkbenchNavigatorMessages {
+	private static final String RESOURCE_BUNDLE = "wbnavigator";//$NON-NLS-1$
+	private static ResourceBundle bundle;
+
+	private WorkbenchNavigatorMessages() {
+		// prevent instantiation of class
+	}
+
+
+	/**
+	 * Returns the resource bundle used by all classes in this Project
+	 */
+	public static ResourceBundle getResourceBundle() {
+		try {
+			return ResourceBundle.getBundle(RESOURCE_BUNDLE);//$NON-NLS-1$
+		} catch (MissingResourceException e) {
+			// does nothing - this method will return null and
+			// getString(String, String) will return the key
+			// it was called with
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the formatted message for the given key in the resource bundle.
+	 * 
+	 * @param key
+	 *            the resource name
+	 * @param args
+	 *            the message arguments
+	 * @return the string
+	 */
+	public static String format(String key, Object[] args) {
+		return MessageFormat.format(getString(key), args);
+	}
+
+	/**
+	 * Returns the resource object with the given key in the resource bundle. If there isn't any
+	 * value under the given key, the key is returned.
+	 * 
+	 * @param key
+	 *            the resource name
+	 * @return the string
+	 */
+	public static String getString(String key) {
+		if (bundle == null)
+			bundle = getResourceBundle();
+		try {
+			return (bundle != null) ? bundle.getString(key) : key;
+		} catch (MissingResourceException e) {
+			return key;
+		}
+	}
+
+	/**
+	 * Returns the resource object with the given key in the resource bundle. If there isn't any
+	 * value under the given key, the default value is returned.
+	 * 
+	 * @param key
+	 *            the resource name
+	 * @param def
+	 *            the default value
+	 * @return the string
+	 */
+	public static String getString(String key, String def) {
+		if (bundle == null)
+			bundle = getResourceBundle();
+		try {
+			return (bundle != null) ? bundle.getString(key) : key;
+		} catch (MissingResourceException e) {
+			return def;
+		}
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/plugin/WorkbenchNavigatorPlugin.java b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/plugin/WorkbenchNavigatorPlugin.java
new file mode 100644
index 0000000..8edebdf
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/plugin/WorkbenchNavigatorPlugin.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.resources.internal.plugin;
+
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IStatus; 
+import org.eclipse.core.runtime.Status;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * The main plugin class for the workbench Navigator.
+ */
+public class WorkbenchNavigatorPlugin extends AbstractUIPlugin {
+	//The shared instance.
+	private static WorkbenchNavigatorPlugin plugin;
+	public static String PLUGIN_ID = "org.eclipse.wst.common.navigator.workbench"; //$NON-NLS-1$
+
+	/**
+	 * Creates a new instance of the receiver
+	 */
+	public WorkbenchNavigatorPlugin() {
+		super();
+		plugin = this;
+	}
+
+	/**
+	 * Returns the shared instance.
+	 */
+	public static WorkbenchNavigatorPlugin getDefault() {
+		return plugin;
+	}
+
+	/**
+	 * Returns the workspace instance.
+	 */
+	public static IWorkspace getWorkspace() {
+		return ResourcesPlugin.getWorkspace();
+	}
+
+	/**
+	 * Logs errors.
+	 */
+	public static void log(String message, IStatus status) {
+		if (message != null) {
+			getDefault().getLog().log( new Status(IStatus.ERROR, PLUGIN_ID, 0, message, null));
+			System.err.println(message + "\nReason:"); //$NON-NLS-1$
+		}
+		getDefault().getLog().log(status);
+		System.err.println(status.getMessage());
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/workbench/CustomResourceExtensionFilterProvider.java b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/workbench/CustomResourceExtensionFilterProvider.java
new file mode 100644
index 0000000..83c2ddd
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/workbench/CustomResourceExtensionFilterProvider.java
@@ -0,0 +1,130 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.resources.internal.workbench;
+
+import java.io.StringReader;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.transform.Result;
+import javax.xml.transform.Source;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMResult;
+import javax.xml.transform.stream.StreamSource;
+
+import org.eclipse.core.runtime.Preferences;
+import org.eclipse.jface.viewers.ViewerFilter;
+import org.eclipse.ui.navigator.internal.filters.ExtensionFilterDescriptor;
+import org.eclipse.ui.navigator.internal.filters.ExtensionFilterProvider;
+import org.eclipse.ui.navigator.resources.internal.plugin.WorkbenchNavigatorPlugin;
+import org.eclipse.ui.views.navigator.ResourcePatternFilter;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ * @author mdelder
+ *  
+ */
+public class CustomResourceExtensionFilterProvider implements ExtensionFilterProvider {
+
+	private static final String CUSTOM_FILTERS_PREFERENCE = "CUSTOM_FILTERS_PREFERENCE"; //$NON-NLS-1$
+	private static final String ATT_NAME = "name"; //$NON-NLS-1$
+	private static final String ATT_PATTERN = "pattern"; //$NON-NLS-1$
+
+	public class CustomFilter {
+		public final String name;
+		public final String pattern;
+
+		public CustomFilter(String name, String pattern) {
+			this.name = name;
+			this.pattern = pattern;
+		}
+	}
+
+	/*
+	 * (non-Javadoc) @return a List of ExtensionFilterDescriptor (s)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.navigator.filters.ExtensionFilterProvider#getExtensionFilterDescriptors(java.lang.String)
+	 */
+	public List getExtensionFilterDescriptors(String extensionId, String viewerId) {
+		List extFilterDescriptors = new ArrayList();
+		ExtensionFilterDescriptor extFilterDescriptor = null;
+		ViewerFilter vf = null;
+
+		Preferences preferences = WorkbenchNavigatorPlugin.getDefault().getPluginPreferences();
+		String knownCustomFilters = preferences.getString(viewerId + CUSTOM_FILTERS_PREFERENCE);
+		CustomFilter[] customFilters = parseCustomFilters(knownCustomFilters);
+
+		for (int i = 0; i < customFilters.length; i++) {
+			vf = new ResourcePatternFilter();
+			((ResourcePatternFilter) vf).setPatterns(new String[]{customFilters[i].pattern});
+
+			boolean enabledByDefault = true;
+
+			extFilterDescriptor = new ExtensionFilterDescriptor(extensionId + "." + customFilters[i].pattern, extensionId, //$NON-NLS-1$
+						customFilters[i].name, customFilters[i].pattern, viewerId, enabledByDefault, vf);
+
+			if (!extFilterDescriptors.contains(extFilterDescriptor))
+				extFilterDescriptors.add(extFilterDescriptor);
+		}
+		return extFilterDescriptors;
+	}
+
+	/**
+	 * @param knownCustomFilters
+	 * @return
+	 */
+	private CustomFilter[] parseCustomFilters(String knownCustomFilters) {
+
+		List resultList = new ArrayList();
+		try {
+
+			Source source = new StreamSource(new StringReader(knownCustomFilters));
+			DOMResult result = new DOMResult();
+			transform(source, result);
+
+			Node node = result.getNode();
+			NodeList children = node.getChildNodes();
+
+			CustomFilter filter = null;
+			String name = null;
+			String pattern = null;
+			Node child = null;
+			NamedNodeMap attributes = null;
+			Node temp = null;
+
+			for (int i = 0; i < children.getLength(); i++) {
+				child = children.item(i);
+				attributes = child.getAttributes();
+				name = ((temp = attributes.getNamedItem(ATT_NAME)) != null) ? temp.getNodeValue() : ""; //$NON-NLS-1$
+				pattern = ((temp = attributes.getNamedItem(ATT_PATTERN)) != null) ? temp.getNodeValue() : ""; //$NON-NLS-1$
+				filter = new CustomFilter((name != null) ? name : "", (pattern != null) ? pattern : ""); //$NON-NLS-1$ //$NON-NLS-2$
+				resultList.add(filter);
+			}
+
+			resultList.toArray(new CustomFilter[resultList.size()]);
+
+		} catch (Throwable e) {
+			e.printStackTrace();
+		}
+
+		return new CustomFilter[0];
+	}
+
+
+	private void transform(Source s, Result r) throws Exception {
+		TransformerFactory factory = TransformerFactory.newInstance();
+		Transformer transformer = factory.newTransformer();
+		transformer.transform(s, r);
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/workbench/ResourceComparator.java b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/workbench/ResourceComparator.java
new file mode 100644
index 0000000..87182a3
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/workbench/ResourceComparator.java
@@ -0,0 +1,39 @@
+/*
+ * Created on Jan 22, 2005
+ * 
+ * TODO To change the template for this generated file go to Window - Preferences - Java - Code
+ * Style - Code Templates
+ */
+package org.eclipse.ui.navigator.resources.internal.workbench;
+
+import java.util.Comparator;
+
+import org.eclipse.ui.views.navigator.ResourceSorter;
+
+
+class ResourceComparator implements Comparator {
+
+	private ResourceSorter sorter = new ResourceSorter(ResourceSorter.NAME);
+
+	/**
+	 * The following compare will sort items based on their type (in the order of: ROOT, PROJECT,
+	 * FOLDER, FILE) and then based on their String representation
+	 * 
+	 * (non-Javadoc)
+	 * 
+	 * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
+	 */
+	public int compare(Object o1, Object o2) {
+		return this.sorter.compare(null, o1, o2);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.util.Comparator#equals(java.lang.Object)
+	 */
+	public boolean equals(Object obj) {
+
+		return obj instanceof ResourceComparator;
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/workbench/ResourceDropAction.java b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/workbench/ResourceDropAction.java
new file mode 100644
index 0000000..eb0d80c
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/workbench/ResourceDropAction.java
@@ -0,0 +1,371 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.resources.internal.workbench;
+
+import java.util.List;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.MultiStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.dialogs.ErrorDialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ViewerDropAdapter;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.FileTransfer;
+import org.eclipse.swt.dnd.TransferData;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.actions.CopyFilesAndFoldersOperation;
+import org.eclipse.ui.actions.MoveFilesAndFoldersOperation;
+import org.eclipse.ui.actions.ReadOnlyStateChecker;
+import org.eclipse.ui.dialogs.IOverwriteQuery;
+import org.eclipse.ui.navigator.AdaptabilityUtility;
+import org.eclipse.ui.navigator.internal.dnd.CommonNavigatorDropAdapter;
+import org.eclipse.ui.navigator.internal.dnd.IDropValidator;
+import org.eclipse.ui.navigator.internal.dnd.NavigatorDropActionDelegate;
+import org.eclipse.ui.part.ResourceTransfer;
+import org.eclipse.ui.views.navigator.LocalSelectionTransfer;
+import org.eclipse.ui.views.navigator.ResourceNavigatorMessages;
+
+/**
+ * @author mdelder
+ *  
+ */
+public class ResourceDropAction extends NavigatorDropActionDelegate implements IDropValidator, IOverwriteQuery {
+
+	/**
+	 * A flag indicating that overwrites should always occur.
+	 */
+	private boolean alwaysOverwrite = false;
+
+	/**
+	 * The last valid operation.
+	 */
+	private int lastValidOperation = DND.DROP_NONE;
+
+	protected static final Class IRESOURCE_CLASS = IResource.class;
+
+	private CopyFilesAndFoldersOperation copyOperation;
+
+	private CopyFilesAndFoldersOperation moveOperation;
+
+	/**
+	 *  
+	 */
+	public ResourceDropAction() {
+		super();
+	}
+
+	/**
+	 * Returns an error status with the given info.
+	 */
+	private IStatus error(String message) {
+		return error(message, null);
+	}
+
+	/**
+	 * Returns an error status with the given info.
+	 */
+	private IStatus error(String message, Throwable exception) {
+		return new Status(IStatus.ERROR, PlatformUI.PLUGIN_ID, 0, message, exception);
+	}
+
+	/**
+	 * Returns the actual target of the drop, given the resource under the mouse. If the mouse
+	 * target is a file, then the drop actually occurs in its parent. If the drop location is before
+	 * or after the mouse target and feedback is enabled, the target is also the parent.
+	 */
+	private IContainer getActualTarget(CommonNavigatorDropAdapter dropAdapter, IResource mouseTarget) {
+		/* if cursor is before or after mouseTarget, set target to parent */
+		if (dropAdapter.getFeedbackEnabled()) {
+			if (dropAdapter.getCurrentLocation() == ViewerDropAdapter.LOCATION_BEFORE || dropAdapter.getCurrentLocation() == ViewerDropAdapter.LOCATION_AFTER) {
+				return mouseTarget.getParent();
+			}
+		}
+		/* if cursor is on a file, return the parent */
+		if (mouseTarget.getType() == IResource.FILE) {
+			return mouseTarget.getParent();
+		}
+		/* otherwise the mouseTarget is the real target */
+		return (IContainer) mouseTarget;
+	}
+
+	/**
+	 * Returns the resource selection from the LocalSelectionTransfer.
+	 * 
+	 * @return the resource selection from the LocalSelectionTransfer
+	 */
+	private IResource[] getSelectedResources() {
+		IResource[] selectedResources = null;
+
+		ISelection selection = LocalSelectionTransfer.getInstance().getSelection();
+		if (selection instanceof IStructuredSelection) {
+			List selectionList = ((IStructuredSelection) selection).toList();
+			selectedResources = (IResource[]) selectionList.toArray(new IResource[selectionList.size()]);
+		}
+		return selectedResources;
+	}
+
+	/**
+	 * Returns an error status with the given info.
+	 */
+	private IStatus info(String message) {
+		return new Status(IStatus.INFO, PlatformUI.PLUGIN_ID, 0, message, null);
+	}
+
+	/**
+	 * Adds the given status to the list of problems. Discards OK statuses. If the status is a
+	 * multi-status, only its children are added.
+	 */
+	private void mergeStatus(MultiStatus status, IStatus toMerge) {
+		if (!toMerge.isOK()) {
+			status.merge(toMerge);
+		}
+	}
+
+	/**
+	 * Returns an status indicating success.
+	 */
+	private IStatus ok() {
+		return new Status(IStatus.OK, PlatformUI.PLUGIN_ID, 0, ResourceNavigatorMessages.getString("DropAdapter.ok"), null); //$NON-NLS-1$
+	}
+
+	/**
+	 * Opens an error dialog if necessary. Takes care of complex rules necessary for making the
+	 * error dialog look nice.
+	 */
+	private void openError(IStatus status) {
+		if (status == null)
+			return;
+
+		String genericTitle = ResourceNavigatorMessages.getString("DropAdapter.title"); //$NON-NLS-1$
+		int codes = IStatus.ERROR | IStatus.WARNING;
+
+		//simple case: one error, not a multistatus
+		if (!status.isMultiStatus()) {
+			ErrorDialog.openError(getShell(), genericTitle, null, status, codes);
+			return;
+		}
+
+		//one error, single child of multistatus
+		IStatus[] children = status.getChildren();
+		if (children.length == 1) {
+			ErrorDialog.openError(getShell(), status.getMessage(), null, children[0], codes);
+			return;
+		}
+		//several problems
+		ErrorDialog.openError(getShell(), genericTitle, null, status, codes);
+	}
+
+	/**
+	 * Performs a drop using the FileTransfer transfer type.
+	 */
+	private IStatus performFileDrop(CommonNavigatorDropAdapter dropAdapter, Object data) {
+		MultiStatus problems = new MultiStatus(PlatformUI.PLUGIN_ID, 0, ResourceNavigatorMessages.getString("DropAdapter.problemImporting"), null); //$NON-NLS-1$
+		mergeStatus(problems, validateTarget(dropAdapter, dropAdapter.getCurrentTarget(), dropAdapter.getCurrentTransfer()));
+
+		try {
+			final IContainer target = getActualTarget(dropAdapter, getResource(dropAdapter.getCurrentTarget()));
+			final String[] names = (String[]) data;
+			// Run the import operation asynchronously.
+			// Otherwise the drag source (e.g., Windows Explorer) will be
+			// blocked
+			// while the operation executes. Fixes bug 16478.
+			Display.getCurrent().asyncExec(new Runnable() {
+
+				public void run() {
+					getShell().forceActive();
+					CopyFilesAndFoldersOperation operation = new CopyFilesAndFoldersOperation(getShell());
+					operation.copyFiles(names, target);
+				}
+			});
+		} catch (Throwable t) {
+			t.printStackTrace();
+		}
+		return problems;
+	}
+
+	/**
+	 * Performs a resource copy
+	 */
+	private IStatus performResourceCopy(CommonNavigatorDropAdapter dropAdapter, IResource[] sources) {
+		MultiStatus problems = new MultiStatus(PlatformUI.PLUGIN_ID, 1, ResourceNavigatorMessages.getString("DropAdapter.problemsMoving"), null); //$NON-NLS-1$
+		mergeStatus(problems, validateTarget(dropAdapter, dropAdapter.getCurrentTarget(), dropAdapter.getCurrentTransfer()));
+
+		IContainer target = getActualTarget(dropAdapter, getResource(dropAdapter.getCurrentTarget()));
+		getCopyOperation().copyResources(sources, target);
+		copyOperation = null;
+		return problems;
+	}
+
+	/**
+	 * Performs a resource move
+	 */
+	private IStatus performResourceMove(CommonNavigatorDropAdapter dropAdapter, IResource[] sources) {
+		MultiStatus problems = new MultiStatus(PlatformUI.PLUGIN_ID, 1, ResourceNavigatorMessages.getString("DropAdapter.problemsMoving"), null); //$NON-NLS-1$
+		mergeStatus(problems, validateTarget(dropAdapter, dropAdapter.getCurrentTarget(), dropAdapter.getCurrentTransfer()));
+
+		IContainer target = getActualTarget(dropAdapter, getResource(dropAdapter.getCurrentTarget()));
+		ReadOnlyStateChecker checker = new ReadOnlyStateChecker(getShell(), ResourceNavigatorMessages.getString("MoveResourceAction.title"), //$NON-NLS-1$
+					ResourceNavigatorMessages.getString("MoveResourceAction.checkMoveMessage"));//$NON-NLS-1$	
+		sources = checker.checkReadOnlyResources(sources);
+
+		getMoveOperation().copyResources(sources, target);
+		moveOperation = null;
+
+		return problems;
+	}
+
+	/*
+	 * @see IOverwriteQuery#queryOverwrite(String)
+	 */
+	public String queryOverwrite(String pathString) {
+		if (this.alwaysOverwrite)
+			return ALL;
+
+		final String returnCode[] = {CANCEL};
+		final String msg = ResourceNavigatorMessages.format("DropAdapter.overwriteQuery", new Object[]{pathString}); //$NON-NLS-1$
+		final String[] options = {IDialogConstants.YES_LABEL, IDialogConstants.YES_TO_ALL_LABEL, IDialogConstants.NO_LABEL, IDialogConstants.CANCEL_LABEL};
+		getDisplay().syncExec(new Runnable() {
+
+			public void run() {
+				MessageDialog dialog = new MessageDialog(getShell(), ResourceNavigatorMessages.getString("DropAdapter.question"), null, msg, MessageDialog.QUESTION, options, 0); //$NON-NLS-1$
+				dialog.open();
+				int returnVal = dialog.getReturnCode();
+				String[] returnCodes = {YES, ALL, NO, CANCEL};
+				returnCode[0] = returnVal < 0 ? CANCEL : returnCodes[returnVal];
+			}
+		});
+		if (returnCode[0] == ALL)
+			this.alwaysOverwrite = true;
+		return returnCode[0];
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.navigator.dnd.IDropValidator#validateDrop(org.eclipse.jface.viewers.ViewerDropAdapter,
+	 *      java.lang.Object, int, org.eclipse.swt.dnd.TransferData)
+	 */
+	public boolean validateDrop(CommonNavigatorDropAdapter dropAdapter, Object target, int operation, TransferData transferType) {
+		return validateTarget(dropAdapter, target, transferType).isOK();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.navigator.dnd.NavigatorDropActionDelegate#run(int,
+	 *      int, java.lang.Object, java.lang.Object)
+	 */
+	public boolean run(CommonNavigatorDropAdapter dropAdapter, Object data, Object target) {
+
+		this.alwaysOverwrite = false;
+		if (dropAdapter.getCurrentTarget() == null || data == null) {
+			return false;
+		}
+		boolean result = false;
+		IStatus status = null;
+		IResource[] resources = null;
+		TransferData currentTransfer = dropAdapter.getCurrentTransfer();
+		if (LocalSelectionTransfer.getInstance().isSupportedType(currentTransfer)) {
+			resources = getSelectedResources();
+		} else if (ResourceTransfer.getInstance().isSupportedType(currentTransfer)) {
+			resources = (IResource[]) data;
+		} else if (FileTransfer.getInstance().isSupportedType(currentTransfer)) {
+			status = performFileDrop(dropAdapter, data);
+			result = status.isOK();
+		}
+		if (resources != null) {
+			if (dropAdapter.getCurrentOperation() == DND.DROP_COPY)
+				status = performResourceCopy(dropAdapter, resources);
+			else
+				status = performResourceMove(dropAdapter, resources);
+		}
+		openError(status);
+		return result;
+	}
+
+	/**
+	 * Ensures that the drop target meets certain criteria
+	 */
+	private IStatus validateTarget(CommonNavigatorDropAdapter dropAdapter, Object target, TransferData transferType) {
+		if (!(target instanceof IResource)) {
+			return info(ResourceNavigatorMessages.getString("DropAdapter.targetMustBeResource")); //$NON-NLS-1$
+		}
+		IResource resource = getResource(dropAdapter.getCurrentTarget());
+		if (!resource.isAccessible()) {
+			return error(ResourceNavigatorMessages.getString("DropAdapter.canNotDropIntoClosedProject")); //$NON-NLS-1$
+		}
+		IContainer destination = getActualTarget(dropAdapter, resource);
+		if (destination.getType() == IResource.ROOT) {
+			return error(ResourceNavigatorMessages.getString("DropAdapter.resourcesCanNotBeSiblings")); //$NON-NLS-1$
+		}
+		String message = null;
+		// drag within Eclipse?
+		if (LocalSelectionTransfer.getInstance().isSupportedType(transferType)) {
+			IResource[] selectedResources = getSelectedResources();
+
+			if (selectedResources == null)
+				message = ResourceNavigatorMessages.getString("DropAdapter.dropOperationErrorOther"); //$NON-NLS-1$
+			else {
+				CopyFilesAndFoldersOperation operation;
+				if (this.lastValidOperation == DND.DROP_COPY) {
+					operation = getCopyOperation();
+				} else {
+					operation = getMoveOperation();
+				}
+				message = operation.validateDestination(destination, selectedResources);
+			}
+		} // file import?
+		else if (FileTransfer.getInstance().isSupportedType(transferType)) {
+			String[] sourceNames = (String[]) FileTransfer.getInstance().nativeToJava(transferType);
+			if (sourceNames == null) {
+				// source names will be null on Linux. Use empty names to do
+				// destination validation.
+				// Fixes bug 29778
+				sourceNames = new String[0];
+			}
+			message = getCopyOperation().validateImportDestination(destination, sourceNames);
+		}
+		if (message != null) {
+			return error(message);
+		}
+		return ok();
+	}
+
+	/**
+	 * @return
+	 */
+	private CopyFilesAndFoldersOperation getMoveOperation() {
+		if (moveOperation == null)
+			moveOperation = new MoveFilesAndFoldersOperation(getShell());
+		return moveOperation;
+	}
+
+	/**
+	 * @return
+	 */
+	private CopyFilesAndFoldersOperation getCopyOperation() {
+		if (copyOperation == null)
+			copyOperation = new CopyFilesAndFoldersOperation(getShell());
+		return copyOperation;
+	}
+
+	protected IResource getResource(Object target) {
+		return (IResource) AdaptabilityUtility.getAdapter(target, IRESOURCE_CLASS);
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/workbench/ResourceExtensionContentProvider.java b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/workbench/ResourceExtensionContentProvider.java
new file mode 100644
index 0000000..101842e
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/workbench/ResourceExtensionContentProvider.java
@@ -0,0 +1,47 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.resources.internal.workbench;
+
+import org.eclipse.ui.model.WorkbenchContentProvider;
+
+/**
+ * <p>
+ * The following class is experimental until fully documented.
+ * </p>
+ */
+public class ResourceExtensionContentProvider extends WorkbenchContentProvider {
+
+	/**
+	 *  
+	 */
+	public ResourceExtensionContentProvider() {
+		super();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.model.BaseWorkbenchContentProvider#getElements(java.lang.Object)
+	 */
+	public Object[] getElements(Object element) {
+		return super.getChildren(element);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.model.BaseWorkbenchContentProvider#getChildren(java.lang.Object)
+	 */
+	public Object[] getChildren(Object element) {
+		return super.getChildren(element);
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/workbench/ResourceExtensionFilterProvider.java b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/workbench/ResourceExtensionFilterProvider.java
new file mode 100644
index 0000000..a107ae2
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/workbench/ResourceExtensionFilterProvider.java
@@ -0,0 +1,90 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.resources.internal.workbench;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jface.viewers.ViewerFilter;
+import org.eclipse.ui.navigator.internal.filters.ExtensionFilterDescriptor;
+import org.eclipse.ui.navigator.internal.filters.ExtensionFilterProvider;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.eclipse.ui.views.navigator.ResourcePatternFilter;
+
+/**
+ * @author mdelder
+ *  
+ */
+public class ResourceExtensionFilterProvider implements ExtensionFilterProvider {
+
+	private static final String HIDE = "Hides " ;
+	/**
+	 *  
+	 */
+	public ResourceExtensionFilterProvider() {
+		super();
+	}
+
+	/*
+	 * (non-Javadoc) @return a List of ExtensionFilterDescriptor (s)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.navigator.filters.ExtensionFilterProvider#getExtensionFilterDescriptors(java.lang.String)
+	 */
+	public List getExtensionFilterDescriptors(String extensionId, String viewerId) {
+		List extFilterDescriptors = new ArrayList();
+		ExtensionFilterDescriptor extFilterDescriptor = null;
+		ViewerFilter vf = null;
+
+		AbstractUIPlugin plugin = (AbstractUIPlugin) Platform.getPlugin("org.eclipse.ui.ide"); //$NON-NLS-1$
+		if (plugin != null) {
+			IExtensionPoint extension = plugin.getDescriptor().getExtensionPoint("resourceFilters"); //$NON-NLS-1$
+			if (extension != null) {
+				IExtension[] extensions = extension.getExtensions();
+				for (int i = 0; i < extensions.length; i++) {
+					IConfigurationElement[] configElements = extensions[i].getConfigurationElements();
+					for (int j = 0; j < configElements.length; j++) {
+						String pattern = configElements[j].getAttribute("pattern");//$NON-NLS-1$
+						if (pattern != null) {
+							vf = new ResourcePatternFilter();
+							((ResourcePatternFilter) vf).setPatterns(new String[]{pattern});
+							String selected = configElements[j].getAttribute("selected");//$NON-NLS-1$
+
+							// override the enablement of .* or use the Resource setting
+							boolean isDotStar = (pattern != null && ".*".equals(pattern)); //$NON-NLS-1$
+							boolean enabledByDefault = (isDotStar || (selected != null && selected.equalsIgnoreCase("true"))); //$NON-NLS-1$ 
+							String description = HIDE + pattern;
+							extFilterDescriptor = new ExtensionFilterDescriptor(extensionId + "." + pattern, extensionId, //$NON-NLS-1$
+										pattern, description, viewerId, enabledByDefault, vf);
+
+							if (!extFilterDescriptors.contains(extFilterDescriptor))
+								extFilterDescriptors.add(extFilterDescriptor);
+						}
+					}
+				}
+			}
+		}
+
+
+		//		  if (pattensDefined.size() > 0) {
+		//		  	NamePatternFilter patternFilter = new NamePatternFilter();
+		//		  	patternFilter.setPatterns(patternsDefined);
+		//		  	extFilterDescriptor = new ExtensionFilterDescriptor(descriptors[i].getId(), extensionId,
+		// descriptors[i].getName(), descriptors[i].getDescription(), viewerId, false, vf);
+		//		  	extFilterDescriptors.add(extFilterDescriptor);
+		//		  }
+
+		return extFilterDescriptors;
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/workbench/ResourceExtensionLabelProvider.java b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/workbench/ResourceExtensionLabelProvider.java
new file mode 100644
index 0000000..7ded1ae
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/workbench/ResourceExtensionLabelProvider.java
@@ -0,0 +1,63 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.resources.internal.workbench;
+
+import org.eclipse.core.resources.IResource;
+import org.eclipse.jface.viewers.DecoratingLabelProvider;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.ui.IMemento;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.model.WorkbenchLabelProvider;
+import org.eclipse.ui.navigator.ICommonLabelProvider;
+import org.eclipse.ui.navigator.IExtensionStateModel;
+
+/**
+ * <p>
+ * The following class is experimental until fully documented.
+ * </p>
+ */
+public class ResourceExtensionLabelProvider extends DecoratingLabelProvider implements ICommonLabelProvider {
+
+	public ResourceExtensionLabelProvider() {
+		super(new WorkbenchLabelProvider(), PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.extensions.ICommonLabelProvider#initialize(java.lang.String)
+	 */
+	public void init(IExtensionStateModel aModel, ITreeContentProvider aContentProvider) {
+		//init
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.extensions.ICommonLabelProvider#getDescription(java.lang.Object)
+	 */
+	public String getDescription(Object anElement) {
+
+		if (anElement instanceof IResource)
+			return ((IResource) anElement).getFullPath().makeRelative().toString();
+		return null;
+	}
+
+	public void restoreState(IMemento aMemento) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	public void saveState(IMemento aMemento) {
+		// TODO Auto-generated method stub
+		
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/workbench/ResourceSorter.java b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/workbench/ResourceSorter.java
new file mode 100644
index 0000000..c4f6f09
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator.resources/src-wbnavigator/org/eclipse/ui/navigator/resources/internal/workbench/ResourceSorter.java
@@ -0,0 +1,183 @@
+/** Copyright (c) 2000, 2003 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.resources.internal.workbench;
+
+import java.text.Collator;
+import java.util.Comparator;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IResource;
+
+/**
+ * Derived from {@link org.eclipse.ui.views.navigator.ResourceSorter}.
+ */
+public class ResourceSorter implements Comparator {
+
+    /**
+     * Constructor argument value that indicates to sort items by name.
+     */
+    public final static int NAME = 1;
+
+    /**
+     * Constructor argument value that indicates to sort items by extension.
+     */
+    public final static int TYPE = 2;
+
+    private int criteria;
+
+	private Collator collator = Collator.getInstance();
+
+    /**
+     * Creates a resource sorter that will use the given sort criteria.
+     *
+     * @param criteria the sort criterion to use: one of <code>NAME</code> or 
+     *   <code>TYPE</code>
+     */
+    public ResourceSorter() {
+        super();
+        this.criteria = NAME;
+    }
+
+    /**
+     * Returns an integer value representing the relative sort priority of the 
+     * given element based on its class.
+     * <p>
+     * <ul>
+     *   <li>resources (<code>IResource</code>) - 2</li>
+     *   <li>project references (<code>ProjectReference</code>) - 1</li>
+     *   <li>everything else - 0</li>
+     * </ul>
+     * </p>
+     *
+     * @param element the element
+     * @return the sort priority (larger numbers means more important)
+     */
+    protected int classComparison(Object element) {
+        if (element instanceof IResource) {
+            return 2;
+        }
+        return 0;
+    }
+
+    /* (non-Javadoc)
+     * Method declared on ViewerSorter.
+     */
+    public int compare(Object o1, Object o2) {
+        //have to deal with non-resources in navigator
+        //if one or both objects are not resources, returned a comparison 
+        //based on class.
+        if (!(o1 instanceof IResource && o2 instanceof IResource)) {
+            return compareClass(o1, o2);
+        }
+        IResource r1 = (IResource) o1;
+        IResource r2 = (IResource) o2;
+
+        if (r1 instanceof IContainer && r2 instanceof IContainer)
+            return compareNames(r1, r2);
+        else if (r1 instanceof IContainer)
+            return -1;
+        else if (r2 instanceof IContainer)
+            return 1;
+        else if (criteria == NAME)
+            return compareNames(r1, r2);
+        else if (criteria == TYPE)
+            return compareTypes(r1, r2);
+        else
+            return 0;
+    }
+
+    /**
+     * Returns a number reflecting the collation order of the given elements
+     * based on their class.
+     *
+     * @param element1 the first element to be ordered
+     * @param element2 the second element to be ordered
+     * @return a negative number if the first element is less  than the 
+     *  second element; the value <code>0</code> if the first element is
+     *  equal to the second element; and a positive number if the first
+     *  element is greater than the second element
+     */
+    protected int compareClass(Object element1, Object element2) {
+        return classComparison(element1) - classComparison(element2);
+    }
+
+    /**
+     * Returns a number reflecting the collation order of the given resources
+     * based on their resource names.
+     *
+     * @param resource1 the first resource element to be ordered
+     * @param resource2 the second resource element to be ordered
+     * @return a negative number if the first element is less  than the 
+     *  second element; the value <code>0</code> if the first element is
+     *  equal to the second element; and a positive number if the first
+     *  element is greater than the second element
+     */
+    protected int compareNames(IResource resource1, IResource resource2) {
+        return collator .compare(resource1.getName(), resource2.getName());
+    }
+
+    /**
+     * Returns a number reflecting the collation order of the given resources
+     * based on their respective file extensions. Resources with the same file
+     * extension will be collated based on their names.
+     *
+     * @param resource1 the first resource element to be ordered
+     * @param resource2 the second resource element to be ordered
+     * @return a negative number if the first element is less  than the 
+     *  second element; the value <code>0</code> if the first element is
+     *  equal to the second element; and a positive number if the first
+     *  element is greater than the second element
+     */
+    protected int compareTypes(IResource resource1, IResource resource2) {
+        String ext1 = getExtensionFor(resource1);
+        String ext2 = getExtensionFor(resource2);
+
+        // Compare extensions.  If they're different then return a value that
+        // indicates correct extension ordering.  If they're the same then
+        // return a value that indicates the correct NAME ordering.
+        int result = collator.compare(ext1, ext2);
+
+        if (result != 0) // ie.- different extensions
+            return result;
+
+        return compareNames(resource1, resource2);
+    }
+
+    /**
+     * Returns the sort criteria of this sorter.
+     *
+     * @return the sort criterion: one of <code>NAME</code> or <code>TYPE</code>
+     */
+    public int getCriteria() {
+        return criteria;
+    }
+
+    /**
+     * Returns the extension portion of the given resource.
+     *
+     * @param resource the resource
+     * @return the file extension, possibily the empty string
+     */
+    private String getExtensionFor(IResource resource) {
+        String ext = resource.getFileExtension();
+        return ext == null ? "" : ext; //$NON-NLS-1$
+    }
+
+    /**
+     * Sets the sort criteria of this sorter.
+     * 
+     * @param criteria the sort criterion: 
+     *	one of <code>ResourceSorter.NAME</code> or 
+     *	<code>ResourceSorter.TYPE</code>
+     */
+    public void setCriteria(int criteria) {
+        this.criteria = criteria;
+    }
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/.classpath b/bundles/org.eclipse.ui.navigator/.classpath
new file mode 100644
index 0000000..a83b0b0
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/.classpath
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src-navigator/"/>
+	<classpathentry kind="src" path="property_files/"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/bundles/org.eclipse.ui.navigator/.cvsignore b/bundles/org.eclipse.ui.navigator/.cvsignore
new file mode 100644
index 0000000..3c7f9e5
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/.cvsignore
@@ -0,0 +1,4 @@
+bin
+temp.folder
+navigator.jar
+build.xml
diff --git a/bundles/org.eclipse.ui.navigator/.project b/bundles/org.eclipse.ui.navigator/.project
index 4050c6d..511ec01 100644
--- a/bundles/org.eclipse.ui.navigator/.project
+++ b/bundles/org.eclipse.ui.navigator/.project
@@ -5,7 +5,30 @@
 	<projects>
 	</projects>
 	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>com.ibm.sse.model.structuredbuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>com.ibm.etools.ctc.javaprojectnature</nature>
 	</natures>
 </projectDescription>
diff --git a/bundles/org.eclipse.ui.navigator/META-INF/MANIFEST.MF b/bundles/org.eclipse.ui.navigator/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..683ffba
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/META-INF/MANIFEST.MF
@@ -0,0 +1,23 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %Plugin.name
+Bundle-SymbolicName: org.eclipse.ui.navigator; singleton:=true
+Bundle-Version: 1.0.0
+Bundle-ClassPath: navigator.jar
+Bundle-Activator: org.eclipse.ui.navigator.internal.NavigatorPlugin
+Bundle-Vendor: %Plugin.providerName
+Bundle-Localization: plugin
+Export-Package: org.eclipse.ui.navigator,
+ org.eclipse.ui.navigator.internal,
+ org.eclipse.ui.navigator.internal.actions,
+ org.eclipse.ui.navigator.internal.deferred,
+ org.eclipse.ui.navigator.internal.dnd,
+ org.eclipse.ui.navigator.internal.extensions,
+ org.eclipse.ui.navigator.internal.filters
+Require-Bundle: org.eclipse.jface,
+ org.eclipse.ui.workbench,
+ org.eclipse.core.resources,
+ org.eclipse.ui.ide,
+ org.eclipse.core.runtime,
+ org.eclipse.ui
+Eclipse-AutoStart: true
diff --git a/bundles/org.eclipse.ui.navigator/build.properties b/bundles/org.eclipse.ui.navigator/build.properties
new file mode 100644
index 0000000..78edc3a
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/build.properties
@@ -0,0 +1,18 @@
+###############################################################################
+# Copyright (c) 2003, 2004 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+source.navigator.jar = src-navigator/,\
+                       property_files/
+bin.includes = plugin.xml,\
+               icons/,\
+               navigator.jar,\
+               META-INF/
+output.navigator.jar = bin/
+src.includes = component.xml
diff --git a/bundles/org.eclipse.ui.navigator/component.xml b/bundles/org.eclipse.ui.navigator/component.xml
new file mode 100644
index 0000000..bc45b78
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/component.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8"?><component  xmlns="http://eclipse.org/wtp/releng/tools/component-model" name="org.eclipse.wst.common.navigator.views"><component-depends unrestricted="true"></component-depends><plugin id="org.eclipse.wst.common.navigator.views" fragment="false"/><plugin id="org.eclipse.wst.common.navigator.workbench" fragment="false"/></component>
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/icons/full/clcl16/collapseall.gif b/bundles/org.eclipse.ui.navigator/icons/full/clcl16/collapseall.gif
new file mode 100644
index 0000000..0bae56c
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/icons/full/clcl16/collapseall.gif
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator/icons/full/clcl16/elipses.gif b/bundles/org.eclipse.ui.navigator/icons/full/clcl16/elipses.gif
new file mode 100644
index 0000000..cb41506
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/icons/full/clcl16/elipses.gif
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator/icons/full/clcl16/pause.gif b/bundles/org.eclipse.ui.navigator/icons/full/clcl16/pause.gif
new file mode 100644
index 0000000..d645fa5
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/icons/full/clcl16/pause.gif
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator/icons/full/clcl16/synced.gif b/bundles/org.eclipse.ui.navigator/icons/full/clcl16/synced.gif
new file mode 100644
index 0000000..f865f3a
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/icons/full/clcl16/synced.gif
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator/icons/full/elcl16/collapseall.gif b/bundles/org.eclipse.ui.navigator/icons/full/elcl16/collapseall.gif
new file mode 100644
index 0000000..a2d80a9
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/icons/full/elcl16/collapseall.gif
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator/icons/full/elcl16/filter_ps.gif b/bundles/org.eclipse.ui.navigator/icons/full/elcl16/filter_ps.gif
new file mode 100644
index 0000000..a4c9e60
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/icons/full/elcl16/filter_ps.gif
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator/icons/full/elcl16/synced.gif b/bundles/org.eclipse.ui.navigator/icons/full/elcl16/synced.gif
new file mode 100644
index 0000000..870934b
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/icons/full/elcl16/synced.gif
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator/javadoc-images/framework-overview.jpg b/bundles/org.eclipse.ui.navigator/javadoc-images/framework-overview.jpg
new file mode 100644
index 0000000..95122e2
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/javadoc-images/framework-overview.jpg
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator/javadoc-images/navigator_logical_extension.jpg b/bundles/org.eclipse.ui.navigator/javadoc-images/navigator_logical_extension.jpg
new file mode 100644
index 0000000..eff9f7c
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/javadoc-images/navigator_logical_extension.jpg
Binary files differ
diff --git a/bundles/org.eclipse.ui.navigator/models/CommonNavigator.emx b/bundles/org.eclipse.ui.navigator/models/CommonNavigator.emx
new file mode 100644
index 0000000..ef89efd
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/models/CommonNavigator.emx
@@ -0,0 +1,3387 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--xtools2_universal_type_manager-->
+<uml:Model xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:notation="http://www.ibm.com/xtools/1.5.0/Notation" xmlns:uml="http://www.eclipse.org/uml2/1.0.0/UML" xmlns:umlnotation="http://www.ibm.com/xtools/1.5.0/Umlnotation" xmi:id="_SWX3UH5GEdm797szikHjoQ" name="CommonNavigator" appliedProfile="_SWX3VH5GEdm797szikHjoQ _SWX3V35GEdm797szikHjoQ _SWX3Wn5GEdm797szikHjoQ _SWX3XX5GEdm797szikHjoQ _SWX3YH5GEdm797szikHjoQ">
+  <eAnnotations xmi:id="_SWX3UX5GEdm797szikHjoQ" source="uml2.diagrams" references="_SWX3Un5GEdm797szikHjoQ">
+    <contents xmi:type="notation:Diagram" xmi:id="_SWX3Un5GEdm797szikHjoQ" type="Class" name="Core">
+      <children xmi:id="_YIiqQH5GEdm797szikHjoQ" sourceEdges="_gmJvwH5GEdm797szikHjoQ _pbicEH5GEdm797szikHjoQ _cVmOoH5IEdm797szikHjoQ _qqjuAPy4Edm185zvv0WM_Q" targetEdges="_gmP2Y35GEdm797szikHjoQ">
+        <children xmi:id="_YIiqQ35GEdm797szikHjoQ" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_YIiqRH5GEdm797szikHjoQ" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_YIiqRX5GEdm797szikHjoQ" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_YIiqRn5GEdm797szikHjoQ" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_YIiqR35GEdm797szikHjoQ" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_YIiqSH5GEdm797szikHjoQ" filtering="Automatic" filteringKeys="public,protected,private,package"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_YIiqSX5GEdm797szikHjoQ" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_YIiqSn5GEdm797szikHjoQ" filtering="Manual">
+            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=createCommonViewer^sign=(QComposite%3b)QCommonViewer%3b[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=initListeners^sign=(QTreeViewer%3b)V[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=handleDoubleClick^sign=(QDoubleClickEvent%3b)V[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=createCommonManager^sign=()QCommonNavigatorManager%3b[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=createCommonActionGroup^sign=()QActionGroup%3b[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=createCommonFilter^sign=(QCommonViewer%3b)QViewerFilter%3b[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=createDisposeListener^sign=()QDisposeListener%3b[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=getInitialInput^sign=()QIAdaptable%3b[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=updateTitle^sign=()V[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=getFrameToolTipText^sign=(QObject%3b)QString%3b[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </styles>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_YIiqS35GEdm797szikHjoQ" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_YIiqTH5GEdm797szikHjoQ"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_YIiqTX5GEdm797szikHjoQ" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_YIiqTn5GEdm797szikHjoQ"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_YIiqQX5GEdm797szikHjoQ" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_YIiqQn5GEdm797szikHjoQ" x="36252" y="1590"/>
+      </children>
+      <children xmi:id="_gYyCIH5GEdm797szikHjoQ" sourceEdges="_gmP2Y35GEdm797szikHjoQ _bpR7MH5IEdm797szikHjoQ" targetEdges="_gmJvwH5GEdm797szikHjoQ _w9XssPy0Edm185zvv0WM_Q">
+        <children xmi:id="_gYyCI35GEdm797szikHjoQ" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_gYyCJH5GEdm797szikHjoQ" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_gYyCJX5GEdm797szikHjoQ" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_gYyCJn5GEdm797szikHjoQ" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_gYyCJ35GEdm797szikHjoQ" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_gYyCKH5GEdm797szikHjoQ" filtering="Automatic" filteringKeys="public,protected,private,package"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_gYyCKX5GEdm797szikHjoQ" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_gYyCKn5GEdm797szikHjoQ" filtering="Manual">
+            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=init^sign=()V[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=selectionChanged^sign=(QSelectionChangedEvent%3b)V[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=restoreState^sign=(QIMemento%3b)V[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=saveState^sign=(QIMemento%3b)V[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=fillContextMenu^sign=(QIMenuManager%3b)V[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=initContextMenu^sign=()V[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=updateStatusBar^sign=(QISelection%3b)V[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=getDefaultStatusBarMessage^sign=(QIStructuredSelection%3b)QString%3b[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </styles>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_gYyCK35GEdm797szikHjoQ" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_gYyCLH5GEdm797szikHjoQ"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_gYyCLX5GEdm797szikHjoQ" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_gYyCLn5GEdm797szikHjoQ"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_gYyCIX5GEdm797szikHjoQ" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_gYyCIn5GEdm797szikHjoQ" x="43248" y="5406"/>
+      </children>
+      <children xmi:id="_pX0ZsH5GEdm797szikHjoQ" sourceEdges="_cVsVQH5IEdm797szikHjoQ" targetEdges="_pbicEH5GEdm797szikHjoQ">
+        <children xmi:id="_pX0Zs35GEdm797szikHjoQ" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_pX0ZtH5GEdm797szikHjoQ" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_pX0ZtX5GEdm797szikHjoQ" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_pX0Ztn5GEdm797szikHjoQ" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_pX0Zt35GEdm797szikHjoQ" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_pX0ZuH5GEdm797szikHjoQ" filtering="Automatic" filteringKeys="public,protected,private,package"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_pX0ZuX5GEdm797szikHjoQ" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_pX0Zun5GEdm797szikHjoQ" filtering="Manual">
+            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=init^sign=()V[jsrctype^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=internalAdd^sign=(QWidget%3bQObject%3b%5bQObject%3b)V[jsrctype^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=initDragAndDrop^sign=()V[jsrctype^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=createTreeItem^sign=(QWidget%3bQObject%3bI)V[jsrctype^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </styles>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_pX0Zu35GEdm797szikHjoQ" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_pX0ZvH5GEdm797szikHjoQ"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_pX0ZvX5GEdm797szikHjoQ" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_pX0Zvn5GEdm797szikHjoQ"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_pX0ZsX5GEdm797szikHjoQ" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_pX0Zsn5GEdm797szikHjoQ" x="28620" y="1908"/>
+      </children>
+      <children xmi:id="_blp_cH5IEdm797szikHjoQ" sourceEdges="_cVyb4H5IEdm797szikHjoQ _SjfAUPy4Edm185zvv0WM_Q _cYMbofy4Edm185zvv0WM_Q" targetEdges="_bpR7MH5IEdm797szikHjoQ _Vs4hkPy1Edm185zvv0WM_Q">
+        <children xmi:id="_blp_c35IEdm797szikHjoQ" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_blp_dH5IEdm797szikHjoQ" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_blp_dX5IEdm797szikHjoQ" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_blp_dn5IEdm797szikHjoQ" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_blp_d35IEdm797szikHjoQ" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_blp_eH5IEdm797szikHjoQ" filtering="Automatic" filteringKeys="public,protected,private,package"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_blp_eX5IEdm797szikHjoQ" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_blp_en5IEdm797szikHjoQ" filtering="Manual">
+            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=init^sign=()V[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=addCommonActionProviderMenu^sign=(QIMenuManager%3bQIStructuredSelection%3bQActionContext%3b)V[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=addContentDescriptorMenu^sign=(QIMenuManager%3bQIStructuredSelection%3bQActionContext%3b)V[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=findRelevantActionDescriptors^sign=(QIStructuredSelection%3b)%5bQCommonActionProviderDescriptor%3b[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=getActionProviderInstance^sign=(QCommonActionProviderDescriptor%3b)QICommonActionProvider%3b[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=addActionDescriptor^sign=(QCommonActionProviderDescriptor%3b)V[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=complainIfDisposed^sign=()V[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=onLoad^sign=(QNavigatorContentDescriptorInstance%3b)V[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+            <filteredObjects xmi:type="uml:Operation" href="vizref:///#jmethod^vcore.target=uml2.Operation^name=initialize^sign=(QICommonActionProvider%3b)V[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </styles>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_blp_e35IEdm797szikHjoQ" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_blp_fH5IEdm797szikHjoQ"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_blp_fX5IEdm797szikHjoQ" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_blp_fn5IEdm797szikHjoQ"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_blp_cX5IEdm797szikHjoQ" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_blp_cn5IEdm797szikHjoQ" x="45792" y="10812"/>
+      </children>
+      <children xmi:id="_cS1OgH5IEdm797szikHjoQ" sourceEdges="_zRaDEH5IEdm797szikHjoQ _2IBD0H5IEdm797szikHjoQ _STCGUfy0Edm185zvv0WM_Q _UZHpEPy0Edm185zvv0WM_Q _UZNvsvy0Edm185zvv0WM_Q _1xTY8Py4Edm185zvv0WM_Q" targetEdges="_cVmOoH5IEdm797szikHjoQ _cVsVQH5IEdm797szikHjoQ _cVyb4H5IEdm797szikHjoQ _zRaDGH5IEdm797szikHjoQ _2IBD2H5IEdm797szikHjoQ _UZNvwvy0Edm185zvv0WM_Q _mNKdAPy1Edm185zvv0WM_Q _SjfAWPy4Edm185zvv0WM_Q _qqjuCPy4Edm185zvv0WM_Q">
+        <children xmi:id="_cS1Og35IEdm797szikHjoQ" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_cS1OhH5IEdm797szikHjoQ" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_cS1OhX5IEdm797szikHjoQ" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_cS1Ohn5IEdm797szikHjoQ" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_cS1Oh35IEdm797szikHjoQ" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_cS1OiH5IEdm797szikHjoQ" filtering="Automatic" filteringKeys="public,protected,private,package"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_cS1OiX5IEdm797szikHjoQ" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_cS1Oin5IEdm797szikHjoQ" filtering="Automatic" filteringKeys="private,package,protected"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_cS1Oi35IEdm797szikHjoQ" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_cS1OjH5IEdm797szikHjoQ"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_cS1OjX5IEdm797szikHjoQ" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_cS1Ojn5IEdm797szikHjoQ"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_cS1OgX5IEdm797szikHjoQ" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cS1Ogn5IEdm797szikHjoQ" x="28938" y="16854"/>
+      </children>
+      <children xmi:id="_zPTxUH5IEdm797szikHjoQ" sourceEdges="_zRaDGH5IEdm797szikHjoQ" targetEdges="_zRaDEH5IEdm797szikHjoQ _yKo7oPy1Edm185zvv0WM_Q">
+        <children xmi:id="_zPTxU35IEdm797szikHjoQ" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_zPTxVH5IEdm797szikHjoQ" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_zPZ38H5IEdm797szikHjoQ" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_zPZ38X5IEdm797szikHjoQ" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_zPZ38n5IEdm797szikHjoQ" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_zPZ3835IEdm797szikHjoQ" filtering="Automatic" filteringKeys="public,protected,private,package"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_zPZ39H5IEdm797szikHjoQ" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_zPZ39X5IEdm797szikHjoQ"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_zPZ39n5IEdm797szikHjoQ" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_zPZ3935IEdm797szikHjoQ"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_zPZ3-H5IEdm797szikHjoQ" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_zPZ3-X5IEdm797szikHjoQ"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_zPTxUX5IEdm797szikHjoQ" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_zPTxUn5IEdm797szikHjoQ" x="11086" y="17457"/>
+      </children>
+      <children xmi:id="_2F0rcH5IEdm797szikHjoQ" sourceEdges="_2IBD2H5IEdm797szikHjoQ" targetEdges="_2IBD0H5IEdm797szikHjoQ _ypezwPy1Edm185zvv0WM_Q">
+        <children xmi:id="_2F0rc35IEdm797szikHjoQ" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_2F0rdH5IEdm797szikHjoQ" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_2F0rdX5IEdm797szikHjoQ" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_2F0rdn5IEdm797szikHjoQ" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_2F0rd35IEdm797szikHjoQ" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_2F0reH5IEdm797szikHjoQ" filtering="Automatic" filteringKeys="public,protected,private,package"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_2F0reX5IEdm797szikHjoQ" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_2F0ren5IEdm797szikHjoQ"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_2F0re35IEdm797szikHjoQ" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_2F0rfH5IEdm797szikHjoQ"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_2F0rfX5IEdm797szikHjoQ" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_2F0rfn5IEdm797szikHjoQ"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_2F0rcX5IEdm797szikHjoQ" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2F0rcn5IEdm797szikHjoQ" x="19393" y="17449"/>
+      </children>
+      <children xmi:id="_SJw1kPy0Edm185zvv0WM_Q" sourceEdges="_STINA_y0Edm185zvv0WM_Q _STOTkvy0Edm185zvv0WM_Q" targetEdges="_STOTkvy0Edm185zvv0WM_Q">
+        <children xmi:id="_SJ28MPy0Edm185zvv0WM_Q" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_SJ28Mfy0Edm185zvv0WM_Q" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_SJ28Mvy0Edm185zvv0WM_Q" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_SJ28M_y0Edm185zvv0WM_Q" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_SJ28NPy0Edm185zvv0WM_Q" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_SJ28Nfy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_SJ28Nvy0Edm185zvv0WM_Q" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_SJ28N_y0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_SJ28OPy0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_SJ28Ofy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_SJ28Ovy0Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_SJ28O_y0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_SJw1kfy0Edm185zvv0WM_Q" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SJw1kvy0Edm185zvv0WM_Q" x="11448" y="31800"/>
+      </children>
+      <children xmi:id="_SLrhIPy0Edm185zvv0WM_Q" targetEdges="_STCGUfy0Edm185zvv0WM_Q _STINA_y0Edm185zvv0WM_Q">
+        <children xmi:id="_SLrhI_y0Edm185zvv0WM_Q" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_SLrhJPy0Edm185zvv0WM_Q" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_SLrhJfy0Edm185zvv0WM_Q" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_SLrhJvy0Edm185zvv0WM_Q" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_SLrhJ_y0Edm185zvv0WM_Q" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_SLrhKPy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_SLrhKfy0Edm185zvv0WM_Q" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_SLrhKvy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_SLrhK_y0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_SLrhLPy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_SLrhLfy0Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_SLrhLvy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_SLrhIfy0Edm185zvv0WM_Q" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_SLrhIvy0Edm185zvv0WM_Q" x="21624" y="31164"/>
+      </children>
+      <children xmi:id="_UTY0gPy0Edm185zvv0WM_Q" sourceEdges="_UZNvuvy0Edm185zvv0WM_Q _UZNvwvy0Edm185zvv0WM_Q _UZT2Vfy0Edm185zvv0WM_Q" targetEdges="_UZNvsvy0Edm185zvv0WM_Q _UZT2Vfy0Edm185zvv0WM_Q _KhpYMPy1Edm185zvv0WM_Q">
+        <children xmi:id="_UTY0g_y0Edm185zvv0WM_Q" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_UTY0hPy0Edm185zvv0WM_Q" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_UTY0hfy0Edm185zvv0WM_Q" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_UTY0hvy0Edm185zvv0WM_Q" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_UTY0h_y0Edm185zvv0WM_Q" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_UTY0iPy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_UTY0ify0Edm185zvv0WM_Q" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_UTY0ivy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_UTY0i_y0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_UTY0jPy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_UTY0jfy0Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_UTY0jvy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_UTY0gfy0Edm185zvv0WM_Q" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UTY0gvy0Edm185zvv0WM_Q" x="37524" y="26394"/>
+      </children>
+      <children xmi:id="_UXl_EPy0Edm185zvv0WM_Q" targetEdges="_UZHpEPy0Edm185zvv0WM_Q _UZNvuvy0Edm185zvv0WM_Q">
+        <children xmi:id="_UXl_E_y0Edm185zvv0WM_Q" type="ImageCompartment">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IExtensionActivationListener[jcu^name=IExtensionActivationListener.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_UXl_FPy0Edm185zvv0WM_Q" width="530" height="530"/>
+        </children>
+        <children xmi:id="_UXl_Ffy0Edm185zvv0WM_Q" type="Stereotype">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IExtensionActivationListener[jcu^name=IExtensionActivationListener.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_UXl_Fvy0Edm185zvv0WM_Q" type="Kind">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IExtensionActivationListener[jcu^name=IExtensionActivationListener.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_UXl_F_y0Edm185zvv0WM_Q" type="Name">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IExtensionActivationListener[jcu^name=IExtensionActivationListener.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_UXl_GPy0Edm185zvv0WM_Q" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_UXl_Gfy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IExtensionActivationListener[jcu^name=IExtensionActivationListener.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_UXl_Gvy0Edm185zvv0WM_Q" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_UXl_G_y0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IExtensionActivationListener[jcu^name=IExtensionActivationListener.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_UXl_HPy0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_UXl_Hfy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IExtensionActivationListener[jcu^name=IExtensionActivationListener.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLClassifierStyle" xmi:id="_UXl_Efy0Edm185zvv0WM_Q" showStereotype="Label" useClassifierShape="true"/>
+        <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IExtensionActivationListener[jcu^name=IExtensionActivationListener.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_UXl_Evy0Edm185zvv0WM_Q" x="30210" y="31164"/>
+      </children>
+      <children xmi:id="_mh4lQPy0Edm185zvv0WM_Q" sourceEdges="_w9XssPy0Edm185zvv0WM_Q" element="_mJViYPy0Edm185zvv0WM_Q">
+        <children xmi:id="_mh4lQ_y0Edm185zvv0WM_Q" type="CommentBody" element="_mJViYPy0Edm185zvv0WM_Q"/>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_mh4lQfy0Edm185zvv0WM_Q" fillColor="16763850" lineColor="16744576" showStereotype="Label"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mh4lQvy0Edm185zvv0WM_Q" x="45474" y="2226" width="4928" height="1674"/>
+      </children>
+      <children xmi:id="_ADfXQPy1Edm185zvv0WM_Q" sourceEdges="_KhpYMPy1Edm185zvv0WM_Q" element="_ADTKAPy1Edm185zvv0WM_Q">
+        <children xmi:id="_ADfXQ_y1Edm185zvv0WM_Q" type="CommentBody" element="_ADTKAPy1Edm185zvv0WM_Q"/>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_ADfXQfy1Edm185zvv0WM_Q" fillColor="16763850" lineColor="16744576" showStereotype="Label"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ADfXQvy1Edm185zvv0WM_Q" x="50244" y="26712" width="5715" height="2540"/>
+      </children>
+      <children xmi:id="_MRrLYPy1Edm185zvv0WM_Q" sourceEdges="_Vs4hkPy1Edm185zvv0WM_Q" element="_MRe-IPy1Edm185zvv0WM_Q">
+        <children xmi:id="_MRrLY_y1Edm185zvv0WM_Q" type="CommentBody" element="_MRe-IPy1Edm185zvv0WM_Q"/>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_MRrLYfy1Edm185zvv0WM_Q" fillColor="16763850" lineColor="16744576" showStereotype="Label"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_MRrLYvy1Edm185zvv0WM_Q" x="41658" y="10812" width="3175" height="5432"/>
+      </children>
+      <children xmi:id="_XJC9kPy1Edm185zvv0WM_Q" sourceEdges="_mNKdAPy1Edm185zvv0WM_Q" element="_XIwpsPy1Edm185zvv0WM_Q">
+        <children xmi:id="_XJC9k_y1Edm185zvv0WM_Q" type="CommentBody" element="_XIwpsPy1Edm185zvv0WM_Q"/>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_XJC9kfy1Edm185zvv0WM_Q" fillColor="16763850" lineColor="16744576" showStereotype="Label"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_XJC9kvy1Edm185zvv0WM_Q" x="22260" y="11130" width="5715" height="4762"/>
+      </children>
+      <children xmi:id="_vA1SEPy1Edm185zvv0WM_Q" sourceEdges="_yKo7oPy1Edm185zvv0WM_Q _ypezwPy1Edm185zvv0WM_Q" element="_vAWw8Py1Edm185zvv0WM_Q">
+        <children xmi:id="_vA1SE_y1Edm185zvv0WM_Q" type="CommentBody" element="_vAWw8Py1Edm185zvv0WM_Q"/>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_vA1SEfy1Edm185zvv0WM_Q" fillColor="16763850" lineColor="16744576" showStereotype="Label"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_vA1SEvy1Edm185zvv0WM_Q" x="16826" y="9900" width="4471" height="1270"/>
+      </children>
+      <children xmi:id="_She1MPy4Edm185zvv0WM_Q" sourceEdges="_SjfAWPy4Edm185zvv0WM_Q" targetEdges="_SjfAUPy4Edm185zvv0WM_Q _cYSiQ_y4Edm185zvv0WM_Q">
+        <children xmi:id="_She1M_y4Edm185zvv0WM_Q" type="ImageCompartment">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_She1NPy4Edm185zvv0WM_Q" width="530" height="530"/>
+        </children>
+        <children xmi:id="_She1Nfy4Edm185zvv0WM_Q" type="Stereotype">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_She1Nvy4Edm185zvv0WM_Q" type="Kind">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_She1N_y4Edm185zvv0WM_Q" type="Name">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_She1OPy4Edm185zvv0WM_Q" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_She1Ofy4Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_She1Ovy4Edm185zvv0WM_Q" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_She1O_y4Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_She1PPy4Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_She1Pfy4Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLClassifierStyle" xmi:id="_She1Mfy4Edm185zvv0WM_Q" showStereotype="Label" useClassifierShape="true"/>
+        <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_She1Mvy4Edm185zvv0WM_Q" x="49608" y="18444"/>
+      </children>
+      <children xmi:id="_cT5xgPy4Edm185zvv0WM_Q" sourceEdges="_cYSiQ_y4Edm185zvv0WM_Q" targetEdges="_cYMbofy4Edm185zvv0WM_Q">
+        <children xmi:id="_cT_4IPy4Edm185zvv0WM_Q" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_cT_4Ify4Edm185zvv0WM_Q" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_cT_4Ivy4Edm185zvv0WM_Q" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_cT_4I_y4Edm185zvv0WM_Q" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_cT_4JPy4Edm185zvv0WM_Q" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_cT_4Jfy4Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_cT_4Jvy4Edm185zvv0WM_Q" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_cT_4J_y4Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_cT_4KPy4Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_cT_4Kfy4Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_cT_4Kvy4Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_cT_4K_y4Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_cT5xgfy4Edm185zvv0WM_Q" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_cT5xgvy4Edm185zvv0WM_Q" x="52034" y="10759" width="8804"/>
+      </children>
+      <children xmi:id="_qn-7IPy4Edm185zvv0WM_Q" sourceEdges="_qqjuCPy4Edm185zvv0WM_Q" targetEdges="_qqjuAPy4Edm185zvv0WM_Q">
+        <children xmi:id="_qn-7I_y4Edm185zvv0WM_Q" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_qn-7JPy4Edm185zvv0WM_Q" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_qn-7Jfy4Edm185zvv0WM_Q" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_qn-7Jvy4Edm185zvv0WM_Q" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_qn-7J_y4Edm185zvv0WM_Q" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_qn-7KPy4Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_qn-7Kfy4Edm185zvv0WM_Q" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_qn-7Kvy4Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_qn-7K_y4Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_qn-7LPy4Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_qn-7Lfy4Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_qn-7Lvy4Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_qn-7Ify4Edm185zvv0WM_Q" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_qn-7Ivy4Edm185zvv0WM_Q" x="13705" y="25135"/>
+      </children>
+      <children xmi:id="_1ucSMPy4Edm185zvv0WM_Q" targetEdges="_1xTY8Py4Edm185zvv0WM_Q _8M1R8Py4Edm185zvv0WM_Q">
+        <children xmi:id="_1ucSM_y4Edm185zvv0WM_Q" type="ImageCompartment">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_1ucSNPy4Edm185zvv0WM_Q" width="530" height="530"/>
+        </children>
+        <children xmi:id="_1ucSNfy4Edm185zvv0WM_Q" type="Stereotype">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_1ucSNvy4Edm185zvv0WM_Q" type="Kind">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_1ucSN_y4Edm185zvv0WM_Q" type="Name">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_1ucSOPy4Edm185zvv0WM_Q" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_1ucSOfy4Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_1ucSOvy4Edm185zvv0WM_Q" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_1ucSO_y4Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_1ucSPPy4Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_1ucSPfy4Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLClassifierStyle" xmi:id="_1ucSMfy4Edm185zvv0WM_Q" showStereotype="Label" useClassifierShape="true"/>
+        <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1ucSMvy4Edm185zvv0WM_Q" x="4452" y="17490"/>
+      </children>
+      <children xmi:id="_8MEc8Py4Edm185zvv0WM_Q" sourceEdges="_8M1R8Py4Edm185zvv0WM_Q _E9EYgPy5Edm185zvv0WM_Q">
+        <children xmi:id="_8MKjkPy4Edm185zvv0WM_Q" type="ImageCompartment">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ICommonLabelProvider[jcu^name=ICommonLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_8MKjkfy4Edm185zvv0WM_Q" width="530" height="530"/>
+        </children>
+        <children xmi:id="_8MKjkvy4Edm185zvv0WM_Q" type="Stereotype">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ICommonLabelProvider[jcu^name=ICommonLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_8MKjk_y4Edm185zvv0WM_Q" type="Kind">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ICommonLabelProvider[jcu^name=ICommonLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_8MKjlPy4Edm185zvv0WM_Q" type="Name">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ICommonLabelProvider[jcu^name=ICommonLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_8MKjlfy4Edm185zvv0WM_Q" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_8MKjlvy4Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ICommonLabelProvider[jcu^name=ICommonLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_8MKjl_y4Edm185zvv0WM_Q" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_8MKjmPy4Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ICommonLabelProvider[jcu^name=ICommonLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_8MKjmfy4Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_8MKjmvy4Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ICommonLabelProvider[jcu^name=ICommonLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLClassifierStyle" xmi:id="_8MEc8fy4Edm185zvv0WM_Q" showStereotype="Label" useClassifierShape="true"/>
+        <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ICommonLabelProvider[jcu^name=ICommonLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_8MEc8vy4Edm185zvv0WM_Q" x="42294" y="21624"/>
+      </children>
+      <children xmi:id="_E7KUAPy5Edm185zvv0WM_Q" targetEdges="_E9EYgPy5Edm185zvv0WM_Q">
+        <children xmi:id="_E7KUA_y5Edm185zvv0WM_Q" type="ImageCompartment">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IDescriptionProvider[jcu^name=IDescriptionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_E7KUBPy5Edm185zvv0WM_Q" width="530" height="530"/>
+        </children>
+        <children xmi:id="_E7KUBfy5Edm185zvv0WM_Q" type="Stereotype">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IDescriptionProvider[jcu^name=IDescriptionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_E7KUBvy5Edm185zvv0WM_Q" type="Kind">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IDescriptionProvider[jcu^name=IDescriptionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_E7KUB_y5Edm185zvv0WM_Q" type="Name">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IDescriptionProvider[jcu^name=IDescriptionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_E7KUCPy5Edm185zvv0WM_Q" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_E7KUCfy5Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IDescriptionProvider[jcu^name=IDescriptionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_E7KUCvy5Edm185zvv0WM_Q" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_E7KUC_y5Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IDescriptionProvider[jcu^name=IDescriptionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_E7KUDPy5Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_E7KUDfy5Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IDescriptionProvider[jcu^name=IDescriptionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLClassifierStyle" xmi:id="_E7KUAfy5Edm185zvv0WM_Q" showStereotype="Label" useClassifierShape="true"/>
+        <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IDescriptionProvider[jcu^name=IDescriptionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_E7KUAvy5Edm185zvv0WM_Q" x="42612" y="18126"/>
+      </children>
+      <styles xmi:type="umlnotation:UMLDiagramStyle" xmi:id="_SWX3U35GEdm797szikHjoQ"/>
+      <edges xmi:id="_gmJvwH5GEdm797szikHjoQ" source="_YIiqQH5GEdm797szikHjoQ" target="_gYyCIH5GEdm797szikHjoQ">
+        <children xmi:id="_gmJvw35GEdm797szikHjoQ" type="KindLabel">
+          <children xmi:id="_gmP2YH5GEdm797szikHjoQ" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_gmP2Yn5GEdm797szikHjoQ" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_gmP2YX5GEdm797szikHjoQ" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_gmJvxH5GEdm797szikHjoQ" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_gmJvwX5GEdm797szikHjoQ" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gmJvwn5GEdm797szikHjoQ" points="[-14, 3413, -6800, -4577]$[6786, 5000, 0, -2990]"/>
+      </edges>
+      <edges xmi:id="_gmP2Y35GEdm797szikHjoQ" source="_gYyCIH5GEdm797szikHjoQ" target="_YIiqQH5GEdm797szikHjoQ">
+        <children xmi:id="_gmP2Zn5GEdm797szikHjoQ" type="KindLabel">
+          <children xmi:id="_gmP2aH5GEdm797szikHjoQ" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_gmP2an5GEdm797szikHjoQ" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_gmP2aX5GEdm797szikHjoQ" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_gmP2Z35GEdm797szikHjoQ" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_gmP2ZH5GEdm797szikHjoQ" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gmP2ZX5GEdm797szikHjoQ" points="[0, -2990, 6786, 5000]$[-6800, -4577, -14, 3413]"/>
+      </edges>
+      <edges xmi:id="_pbicEH5GEdm797szikHjoQ" source="_YIiqQH5GEdm797szikHjoQ" target="_pX0ZsH5GEdm797szikHjoQ">
+        <children xmi:id="_pbicE35GEdm797szikHjoQ" type="KindLabel">
+          <children xmi:id="_pbicFX5GEdm797szikHjoQ" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_pbicF35GEdm797szikHjoQ" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_pbicFn5GEdm797szikHjoQ" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_pbicFH5GEdm797szikHjoQ" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_pbicEX5GEdm797szikHjoQ" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_pbicEn5GEdm797szikHjoQ" points="[-14, 3413, 3161, -4577]$[-3189, 5000, -14, -2990]"/>
+      </edges>
+      <edges xmi:id="_bpR7MH5IEdm797szikHjoQ" source="_gYyCIH5GEdm797szikHjoQ" target="_blp_cH5IEdm797szikHjoQ">
+        <children xmi:id="_bpR7M35IEdm797szikHjoQ" type="KindLabel">
+          <children xmi:id="_bpR7NX5IEdm797szikHjoQ" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_bpR7N35IEdm797szikHjoQ" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_bpR7Nn5IEdm797szikHjoQ" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_bpR7NH5IEdm797szikHjoQ" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_bpR7MX5IEdm797szikHjoQ" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_bpR7Mn5IEdm797szikHjoQ" points="[0, 2990, 3915, -5927]$[-3916, 4578, -1, -4339]"/>
+      </edges>
+      <edges xmi:id="_cVmOoH5IEdm797szikHjoQ" source="_YIiqQH5GEdm797szikHjoQ" target="_cS1OgH5IEdm797szikHjoQ">
+        <children xmi:id="_cVmOo35IEdm797szikHjoQ" type="KindLabel">
+          <children xmi:id="_cVmOpX5IEdm797szikHjoQ" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_cVmOp35IEdm797szikHjoQ" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_cVmOpn5IEdm797szikHjoQ" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_cVmOpH5IEdm797szikHjoQ" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_cVmOoX5IEdm797szikHjoQ" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cVmOon5IEdm797szikHjoQ" points="[-14, 3413, 10001, -25585]$[-14, 21247, 10001, -7751]$[-10015, 22833, 0, -6165]"/>
+      </edges>
+      <edges xmi:id="_cVsVQH5IEdm797szikHjoQ" source="_pX0ZsH5GEdm797szikHjoQ" target="_cS1OgH5IEdm797szikHjoQ">
+        <children xmi:id="_cVsVQ35IEdm797szikHjoQ" type="KindLabel">
+          <children xmi:id="_cVsVRX5IEdm797szikHjoQ" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_cVsVR35IEdm797szikHjoQ" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_cVsVRn5IEdm797szikHjoQ" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_cVsVRH5IEdm797szikHjoQ" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_cVsVQX5IEdm797szikHjoQ" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonViewer[jcu^name=CommonViewer.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cVsVQn5IEdm797szikHjoQ" points="[-14, 2990, 6826, -18018]$[2738, 4578, 9578, -16430]$[2738, 13257, 9578, -7751]$[-6840, 14843, 0, -6165]"/>
+      </edges>
+      <edges xmi:id="_cVyb4H5IEdm797szikHjoQ" source="_blp_cH5IEdm797szikHjoQ" target="_cS1OgH5IEdm797szikHjoQ">
+        <children xmi:id="_cVyb435IEdm797szikHjoQ" type="KindLabel">
+          <children xmi:id="_cVyb5X5IEdm797szikHjoQ" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_cVyb535IEdm797szikHjoQ" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_cVyb5n5IEdm797szikHjoQ" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_cVyb5H5IEdm797szikHjoQ" y="1"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_cVyb4X5IEdm797szikHjoQ" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cVyb4n5IEdm797szikHjoQ" points="[26, 2963, 16325, -6244]$[26, 6562, 16325, -2645]$[-13335, 6562, 2964, -2645]"/>
+      </edges>
+      <edges xmi:id="_zRaDEH5IEdm797szikHjoQ" source="_cS1OgH5IEdm797szikHjoQ" target="_zPTxUH5IEdm797szikHjoQ">
+        <children xmi:id="_zRaDE35IEdm797szikHjoQ" type="KindLabel">
+          <children xmi:id="_zRaDFX5IEdm797szikHjoQ" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_zRaDF35IEdm797szikHjoQ" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_zRaDFn5IEdm797szikHjoQ" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_zRaDFH5IEdm797szikHjoQ" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_zRaDEX5IEdm797szikHjoQ" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_zRaDEn5IEdm797szikHjoQ" points="[0, -6165, 14565, 5926]$[-14579, -7752, -14, 4339]"/>
+      </edges>
+      <edges xmi:id="_zRaDGH5IEdm797szikHjoQ" source="_zPTxUH5IEdm797szikHjoQ" target="_cS1OgH5IEdm797szikHjoQ">
+        <children xmi:id="_zRaDG35IEdm797szikHjoQ" type="KindLabel">
+          <children xmi:id="_zRaDHX5IEdm797szikHjoQ" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_zRaDH35IEdm797szikHjoQ" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_zRaDHn5IEdm797szikHjoQ" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_zRaDHH5IEdm797szikHjoQ" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_zRaDGX5IEdm797szikHjoQ" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_zRaDGn5IEdm797szikHjoQ" points="[-14, 4339, -14579, -7752]$[14565, 5926, 0, -6165]"/>
+      </edges>
+      <edges xmi:id="_2IBD0H5IEdm797szikHjoQ" source="_cS1OgH5IEdm797szikHjoQ" target="_2F0rcH5IEdm797szikHjoQ">
+        <children xmi:id="_2IBD035IEdm797szikHjoQ" type="KindLabel">
+          <children xmi:id="_2IBD1X5IEdm797szikHjoQ" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_2IBD135IEdm797szikHjoQ" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_2IBD1n5IEdm797szikHjoQ" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_2IBD1H5IEdm797szikHjoQ" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_2IBD0X5IEdm797szikHjoQ" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2IBD0n5IEdm797szikHjoQ" points="[0, -6165, 6509, 5926]$[-6509, -7752, 0, 4339]"/>
+      </edges>
+      <edges xmi:id="_2IBD2H5IEdm797szikHjoQ" source="_2F0rcH5IEdm797szikHjoQ" target="_cS1OgH5IEdm797szikHjoQ">
+        <children xmi:id="_2IBD235IEdm797szikHjoQ" type="KindLabel">
+          <children xmi:id="_2IBD3X5IEdm797szikHjoQ" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_2IBD335IEdm797szikHjoQ" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_2IBD3n5IEdm797szikHjoQ" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_2IBD3H5IEdm797szikHjoQ" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_2IBD2X5IEdm797szikHjoQ" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2IBD2n5IEdm797szikHjoQ" points="[0, 4339, -6509, -7752]$[6509, 5926, 0, -6165]"/>
+      </edges>
+      <edges xmi:id="_STCGUfy0Edm185zvv0WM_Q" source="_cS1OgH5IEdm797szikHjoQ" target="_SLrhIPy0Edm185zvv0WM_Q">
+        <children xmi:id="_STCGVPy0Edm185zvv0WM_Q" type="KindLabel">
+          <children xmi:id="_STIM8Py0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_STIM8vy0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_STIM8fy0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_STCGVfy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_STCGUvy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_STCGU_y0Edm185zvv0WM_Q" points="[0, 6165, 3612, -6337]$[-3625, 7752, -13, -4750]"/>
+      </edges>
+      <edges xmi:id="_STINA_y0Edm185zvv0WM_Q" source="_SJw1kPy0Edm185zvv0WM_Q" target="_SLrhIPy0Edm185zvv0WM_Q">
+        <children xmi:id="_STINBvy0Edm185zvv0WM_Q" type="KindLabel">
+          <children xmi:id="_STINCPy0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_STOTkfy0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_STOTkPy0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_STINB_y0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_STINBPy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerDescriptor[jcu^name=NavigatorViewerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_STINBfy0Edm185zvv0WM_Q" points="[0, 6165, -3638, -6337]$[3625, 7752, -13, -4750]"/>
+      </edges>
+      <edges xmi:id="_STOTkvy0Edm185zvv0WM_Q" source="_SJw1kPy0Edm185zvv0WM_Q" target="_SJw1kPy0Edm185zvv0WM_Q">
+        <children xmi:id="_STOTlfy0Edm185zvv0WM_Q" type="KindLabel">
+          <children xmi:id="_STOTl_y0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_STOTmfy0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_STOTmPy0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_STOTlvy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_STOTk_y0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerDescriptorRegistry[jcu^name=NavigatorViewerDescriptorRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_STOTlPy0Edm185zvv0WM_Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      </edges>
+      <edges xmi:id="_UZHpEPy0Edm185zvv0WM_Q" source="_cS1OgH5IEdm797szikHjoQ" target="_UXl_EPy0Edm185zvv0WM_Q">
+        <children xmi:id="_UZHpE_y0Edm185zvv0WM_Q" type="NameLabel">
+          <children xmi:id="_UZNvsPy0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Implementation" href="vizref:///#jimpl^vcore.target=uml2.Implementation[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionActivationListener[jcu^name=IExtensionActivationListener.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_UZNvsfy0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Implementation" href="vizref:///#jimpl^vcore.target=uml2.Implementation[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionActivationListener[jcu^name=IExtensionActivationListener.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Implementation" href="vizref:///#jimpl^vcore.target=uml2.Implementation[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionActivationListener[jcu^name=IExtensionActivationListener.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_UZHpFPy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_UZHpEfy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Implementation" href="vizref:///#jimpl^vcore.target=uml2.Implementation[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionActivationListener[jcu^name=IExtensionActivationListener.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UZHpEvy0Edm185zvv0WM_Q" points="[0, 6165, -3400, -6337]$[3387, 7752, -13, -4750]"/>
+      </edges>
+      <edges xmi:id="_UZNvsvy0Edm185zvv0WM_Q" source="_cS1OgH5IEdm797szikHjoQ" target="_UTY0gPy0Edm185zvv0WM_Q">
+        <children xmi:id="_UZNvtfy0Edm185zvv0WM_Q" type="KindLabel">
+          <children xmi:id="_UZNvt_y0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_UZNvufy0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_UZNvuPy0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_UZNvtvy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_UZNvs_y0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UZNvtPy0Edm185zvv0WM_Q" points="[0, -6165, -3387, 5926]$[3387, -7752, 0, 4339]"/>
+      </edges>
+      <edges xmi:id="_UZNvuvy0Edm185zvv0WM_Q" source="_UTY0gPy0Edm185zvv0WM_Q" target="_UXl_EPy0Edm185zvv0WM_Q">
+        <children xmi:id="_UZNvvfy0Edm185zvv0WM_Q" type="KindLabel">
+          <children xmi:id="_UZNvv_y0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionActivationListener[jcu^name=IExtensionActivationListener.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_UZNvwfy0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionActivationListener[jcu^name=IExtensionActivationListener.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_UZNvwPy0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionActivationListener[jcu^name=IExtensionActivationListener.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionActivationListener[jcu^name=IExtensionActivationListener.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_UZNvvvy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_UZNvu_y0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionActivationListener[jcu^name=IExtensionActivationListener.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UZNvvPy0Edm185zvv0WM_Q" points="[0, 4339, -13, -20254]$[0, 19843, -13, -4750]"/>
+      </edges>
+      <edges xmi:id="_UZNvwvy0Edm185zvv0WM_Q" source="_UTY0gPy0Edm185zvv0WM_Q" target="_cS1OgH5IEdm797szikHjoQ">
+        <children xmi:id="_UZT2UPy0Edm185zvv0WM_Q" type="KindLabel">
+          <children xmi:id="_UZT2Uvy0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_UZT2VPy0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_UZT2U_y0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_UZT2Ufy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_UZNvw_y0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UZNvxPy0Edm185zvv0WM_Q" points="[0, 4339, 3387, -7752]$[-3387, 5926, 0, -6165]"/>
+      </edges>
+      <edges xmi:id="_UZT2Vfy0Edm185zvv0WM_Q" source="_UTY0gPy0Edm185zvv0WM_Q" target="_UTY0gPy0Edm185zvv0WM_Q">
+        <children xmi:id="_UZT2WPy0Edm185zvv0WM_Q" type="KindLabel">
+          <children xmi:id="_UZT2Wvy0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_UZT2XPy0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_UZT2W_y0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_UZT2Wfy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_UZT2Vvy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_UZT2V_y0Edm185zvv0WM_Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      </edges>
+      <edges xmi:id="_w9XssPy0Edm185zvv0WM_Q" type="Reference" source="_mh4lQPy0Edm185zvv0WM_Q" target="_gYyCIH5GEdm797szikHjoQ">
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_w9Xssfy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_w9Xssvy0Edm185zvv0WM_Q" points="[0, 3413, 0, -4577]$[0, 5000, 0, -2990]"/>
+      </edges>
+      <edges xmi:id="_KhpYMPy1Edm185zvv0WM_Q" type="Reference" source="_ADfXQPy1Edm185zvv0WM_Q" target="_UTY0gPy0Edm185zvv0WM_Q">
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_KhpYMfy1Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_KhpYMvy1Edm185zvv0WM_Q" points="[-13, 2990, -2593, -5927]$[2580, 4578, 0, -4339]"/>
+      </edges>
+      <edges xmi:id="_Vs4hkPy1Edm185zvv0WM_Q" type="Reference" source="_MRrLYPy1Edm185zvv0WM_Q" target="_blp_cH5IEdm797szikHjoQ">
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_Vs4hkfy1Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Vs4hkvy1Edm185zvv0WM_Q" points="[-14, 2990, -874, -5927]$[859, 4578, -1, -4339]"/>
+      </edges>
+      <edges xmi:id="_mNKdAPy1Edm185zvv0WM_Q" type="Reference" source="_XJC9kPy1Edm185zvv0WM_Q" target="_cS1OgH5IEdm797szikHjoQ">
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_mNKdAfy1Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mNKdAvy1Edm185zvv0WM_Q" points="[2170, 2434, -4603, -7064]$[2170, 3782, -4603, -5716]$[3810, 3782, -2963, -5716]"/>
+      </edges>
+      <edges xmi:id="_yKo7oPy1Edm185zvv0WM_Q" type="Reference" source="_vA1SEPy1Edm185zvv0WM_Q" target="_zPTxUH5IEdm797szikHjoQ">
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_yKo7ofy1Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_yKo7ovy1Edm185zvv0WM_Q" points="[0, 2990, 4035, -5927]$[-4049, 4578, -14, -4339]"/>
+      </edges>
+      <edges xmi:id="_ypezwPy1Edm185zvv0WM_Q" type="Reference" source="_vA1SEPy1Edm185zvv0WM_Q" target="_2F0rcH5IEdm797szikHjoQ">
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_ypezwfy1Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ypezwvy1Edm185zvv0WM_Q" points="[0, 2990, -4021, -5927]$[4021, 4578, 0, -4339]"/>
+      </edges>
+      <edges xmi:id="_SjfAUPy4Edm185zvv0WM_Q" source="_blp_cH5IEdm797szikHjoQ" target="_She1MPy4Edm185zvv0WM_Q">
+        <children xmi:id="_SjfAU_y4Edm185zvv0WM_Q" type="KindLabel">
+          <children xmi:id="_SjfAVfy4Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_SjfAV_y4Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_SjfAVvy4Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_SjfAVPy4Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_SjfAUfy4Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SjfAUvy4Edm185zvv0WM_Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      </edges>
+      <edges xmi:id="_SjfAWPy4Edm185zvv0WM_Q" source="_She1MPy4Edm185zvv0WM_Q" target="_cS1OgH5IEdm797szikHjoQ">
+        <children xmi:id="_SjfAW_y4Edm185zvv0WM_Q" type="KindLabel">
+          <children xmi:id="_SjfAXfy4Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_SjlG8Py4Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_SjfAXvy4Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_SjfAXPy4Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_SjfAWfy4Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_SjfAWvy4Edm185zvv0WM_Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      </edges>
+      <edges xmi:id="_cYMbofy4Edm185zvv0WM_Q" source="_blp_cH5IEdm797szikHjoQ" target="_cT5xgPy4Edm185zvv0WM_Q">
+        <children xmi:id="_cYMbpPy4Edm185zvv0WM_Q" type="KindLabel">
+          <children xmi:id="_cYSiQPy4Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_cYSiQvy4Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_cYSiQfy4Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_cYMbpfy4Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_cYMbovy4Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cYMbo_y4Edm185zvv0WM_Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      </edges>
+      <edges xmi:id="_cYSiQ_y4Edm185zvv0WM_Q" source="_cT5xgPy4Edm185zvv0WM_Q" target="_She1MPy4Edm185zvv0WM_Q">
+        <children xmi:id="_cYSiRvy4Edm185zvv0WM_Q" type="KindLabel">
+          <children xmi:id="_cYSiSPy4Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_cYSiSvy4Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_cYSiSfy4Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_cYSiR_y4Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_cYSiRPy4Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonActionProviderDescriptor[jcu^name=CommonActionProviderDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.actions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ICommonActionProvider[jcu^name=ICommonActionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_cYSiRfy4Edm185zvv0WM_Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      </edges>
+      <edges xmi:id="_qqjuAPy4Edm185zvv0WM_Q" source="_YIiqQH5GEdm797szikHjoQ" target="_qn-7IPy4Edm185zvv0WM_Q">
+        <children xmi:id="_qqjuA_y4Edm185zvv0WM_Q" type="KindLabel">
+          <children xmi:id="_qqjuBfy4Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_qqjuB_y4Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_qqjuBvy4Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_qqjuBPy4Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_qqjuAfy4Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigator[jcu^name=CommonNavigator.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_qqjuAvy4Edm185zvv0WM_Q" points="[-2249, 3439, 17251, -19156]$[-2249, 36459, 17251, 13864]$[-19473, 36459, 27, 13864]$[-19473, 24976, 27, 2381]"/>
+      </edges>
+      <edges xmi:id="_qqjuCPy4Edm185zvv0WM_Q" source="_qn-7IPy4Edm185zvv0WM_Q" target="_cS1OgH5IEdm797szikHjoQ">
+        <children xmi:id="_qqjuC_y4Edm185zvv0WM_Q" type="KindLabel">
+          <children xmi:id="_qqjuDfy4Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_qqjuD_y4Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_qqjuDvy4Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_qqjuDPy4Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_qqjuCfy4Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonSorter[jcu^name=CommonSorter.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_qqjuCvy4Edm185zvv0WM_Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      </edges>
+      <edges xmi:id="_1xTY8Py4Edm185zvv0WM_Q" source="_cS1OgH5IEdm797szikHjoQ" target="_1ucSMPy4Edm185zvv0WM_Q">
+        <children xmi:id="_1xTY8_y4Edm185zvv0WM_Q" type="KindLabel">
+          <children xmi:id="_1xTY9fy4Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_1xTY9_y4Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_1xTY9vy4Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_1xTY9Py4Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_1xTY8fy4Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_1xTY8vy4Edm185zvv0WM_Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      </edges>
+      <edges xmi:id="_8M1R8Py4Edm185zvv0WM_Q" source="_8MEc8Py4Edm185zvv0WM_Q" target="_1ucSMPy4Edm185zvv0WM_Q">
+        <children xmi:id="_8M1R8_y4Edm185zvv0WM_Q" type="KindLabel">
+          <children xmi:id="_8M1R9fy4Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ICommonLabelProvider[jcu^name=ICommonLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_8M1R9_y4Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ICommonLabelProvider[jcu^name=ICommonLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_8M1R9vy4Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ICommonLabelProvider[jcu^name=ICommonLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ICommonLabelProvider[jcu^name=ICommonLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_8M1R9Py4Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_8M1R8fy4Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ICommonLabelProvider[jcu^name=ICommonLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IExtensionStateModel[jcu^name=IExtensionStateModel.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_8M1R8vy4Edm185zvv0WM_Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      </edges>
+      <edges xmi:id="_E9EYgPy5Edm185zvv0WM_Q" source="_8MEc8Py4Edm185zvv0WM_Q" target="_E7KUAPy5Edm185zvv0WM_Q">
+        <children xmi:id="_E9EYg_y5Edm185zvv0WM_Q" type="NameLabel">
+          <children xmi:id="_E9EYhfy5Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Generalization" href="vizref:///#jgen^vcore.target=uml2.Generalization[jsrctype^name=ICommonLabelProvider[jcu^name=ICommonLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDescriptionProvider[jcu^name=IDescriptionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_E9EYhvy5Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Generalization" href="vizref:///#jgen^vcore.target=uml2.Generalization[jsrctype^name=ICommonLabelProvider[jcu^name=ICommonLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDescriptionProvider[jcu^name=IDescriptionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Generalization" href="vizref:///#jgen^vcore.target=uml2.Generalization[jsrctype^name=ICommonLabelProvider[jcu^name=ICommonLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDescriptionProvider[jcu^name=IDescriptionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_E9EYhPy5Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_E9EYgfy5Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Generalization" href="vizref:///#jgen^vcore.target=uml2.Generalization[jsrctype^name=ICommonLabelProvider[jcu^name=ICommonLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDescriptionProvider[jcu^name=IDescriptionProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_E9EYgvy5Edm185zvv0WM_Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      </edges>
+    </contents>
+    <contents xmi:type="notation:Diagram" xmi:id="_0Lw7oIOwEdmyd--cXlrqyQ" type="Component" name="Extension">
+      <children xmi:id="_GABgEIO0Edmyd--cXlrqyQ" type="rectangle">
+        <children xmi:id="_GABgE4O0Edmyd--cXlrqyQ" type="DiagramName"/>
+        <children xmi:id="_GABgFIO0Edmyd--cXlrqyQ" type="Description"/>
+        <styles xmi:type="notation:ShapeStyle" xmi:id="_GABgEYO0Edmyd--cXlrqyQ" fillColor="13369343" lineColor="6737151"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_GABgEoO0Edmyd--cXlrqyQ" x="14310" y="6042" width="6058" height="8254"/>
+      </children>
+      <children xmi:id="_bdRhQIOzEdmyd--cXlrqyQ" type="rectangle">
+        <children xmi:id="_bdRhQ4OzEdmyd--cXlrqyQ" type="DiagramName"/>
+        <children xmi:id="_bdRhRIOzEdmyd--cXlrqyQ" type="Description"/>
+        <styles xmi:type="notation:ShapeStyle" xmi:id="_bdRhQYOzEdmyd--cXlrqyQ" fillColor="13420443" lineColor="6737151"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_bdRhQoOzEdmyd--cXlrqyQ" x="636" y="6350" width="5715" height="7937"/>
+      </children>
+      <children xmi:id="_uX5iwIO0Edmyd--cXlrqyQ" type="rectangle">
+        <children xmi:id="_uX5iw4O0Edmyd--cXlrqyQ" type="DiagramName"/>
+        <children xmi:id="_uX5ixIO0Edmyd--cXlrqyQ" type="Description"/>
+        <styles xmi:type="notation:ShapeStyle" xmi:id="_uX5iwYO0Edmyd--cXlrqyQ" fillColor="13369343" lineColor="6737151"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uX5iwoO0Edmyd--cXlrqyQ" x="635" y="9525" width="5714" height="2222"/>
+      </children>
+      <children xmi:id="_-Cw18IOwEdmyd--cXlrqyQ" targetEdges="_DeykUIOyEdmyd--cXlrqyQ" element="_9330kIOwEdmyd--cXlrqyQ">
+        <children xmi:id="_-DPXEIOwEdmyd--cXlrqyQ" type="Stereotype" element="_9330kIOwEdmyd--cXlrqyQ"/>
+        <children xmi:id="_-DPXEYOwEdmyd--cXlrqyQ" type="Kind" element="_9330kIOwEdmyd--cXlrqyQ"/>
+        <children xmi:id="_-DPXEoOwEdmyd--cXlrqyQ" type="Name" element="_9330kIOwEdmyd--cXlrqyQ"/>
+        <children xmi:id="_-DPXE4OwEdmyd--cXlrqyQ" visible="false" type="AttributeCompartment" element="_9330kIOwEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_-DPXFIOwEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_-DPXFYOwEdmyd--cXlrqyQ" visible="false" type="OperationCompartment" element="_9330kIOwEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_-DPXFoOwEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_-DPXF4OwEdmyd--cXlrqyQ" visible="false" type="RealizationListCompartment" element="_9330kIOwEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_-DPXGIOwEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_-DVdsIOwEdmyd--cXlrqyQ" visible="false" type="RequiredInterfaceListCompartment" element="_9330kIOwEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_-DVdsYOwEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_-DVdsoOwEdmyd--cXlrqyQ" visible="false" type="ProvidedInterfaceListCompartment" element="_9330kIOwEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_-DVds4OwEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_-DVdtIOwEdmyd--cXlrqyQ" visible="false" type="StructureCompartment" element="_9330kIOwEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_-DVdtYOwEdmyd--cXlrqyQ"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLComponentStyle" xmi:id="_-Cw18YOwEdmyd--cXlrqyQ" showStereotype="Label"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-Cw18oOwEdmyd--cXlrqyQ" x="1086" y="12402"/>
+      </children>
+      <children xmi:id="_X4hTAIOxEdmyd--cXlrqyQ" sourceEdges="_gS43QIOxEdmyd--cXlrqyQ" element="_X4I4gIOxEdmyd--cXlrqyQ">
+        <children xmi:id="_X4oAsIOxEdmyd--cXlrqyQ" type="Stereotype" element="_X4I4gIOxEdmyd--cXlrqyQ"/>
+        <children xmi:id="_X4oAsYOxEdmyd--cXlrqyQ" type="Kind" element="_X4I4gIOxEdmyd--cXlrqyQ"/>
+        <children xmi:id="_X4oAsoOxEdmyd--cXlrqyQ" type="Name" element="_X4I4gIOxEdmyd--cXlrqyQ"/>
+        <children xmi:id="_X4oAs4OxEdmyd--cXlrqyQ" visible="false" type="AttributeCompartment" element="_X4I4gIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_X4oAtIOxEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_X4oAtYOxEdmyd--cXlrqyQ" visible="false" type="OperationCompartment" element="_X4I4gIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_X4oAtoOxEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_X4oAt4OxEdmyd--cXlrqyQ" visible="false" type="RealizationListCompartment" element="_X4I4gIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_X4oAuIOxEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_X4oAuYOxEdmyd--cXlrqyQ" visible="false" type="RequiredInterfaceListCompartment" element="_X4I4gIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_X4oAuoOxEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_X4oAu4OxEdmyd--cXlrqyQ" visible="false" type="ProvidedInterfaceListCompartment" element="_X4I4gIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_X4oAvIOxEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_X4oAvYOxEdmyd--cXlrqyQ" visible="false" type="StructureCompartment" element="_X4I4gIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_X4oAvoOxEdmyd--cXlrqyQ"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLComponentStyle" xmi:id="_X4hTAYOxEdmyd--cXlrqyQ" showStereotype="Label"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_X4hTAoOxEdmyd--cXlrqyQ" x="954" y="9858"/>
+      </children>
+      <children xmi:id="_b7Ja8IOxEdmyd--cXlrqyQ" targetEdges="_gS43QIOxEdmyd--cXlrqyQ _AbrYoIOyEdmyd--cXlrqyQ" element="_b6MYsIOxEdmyd--cXlrqyQ">
+        <children xmi:id="_b7Ja84OxEdmyd--cXlrqyQ" type="Stereotype" element="_b6MYsIOxEdmyd--cXlrqyQ"/>
+        <children xmi:id="_b7Ja9IOxEdmyd--cXlrqyQ" type="Kind" element="_b6MYsIOxEdmyd--cXlrqyQ"/>
+        <children xmi:id="_b7Ja9YOxEdmyd--cXlrqyQ" type="Name" element="_b6MYsIOxEdmyd--cXlrqyQ"/>
+        <children xmi:id="_b7Ja9oOxEdmyd--cXlrqyQ" visible="false" type="AttributeCompartment" element="_b6MYsIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_b7Ja94OxEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_b7Ja-IOxEdmyd--cXlrqyQ" visible="false" type="OperationCompartment" element="_b6MYsIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_b7Ja-YOxEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_b7Ja-oOxEdmyd--cXlrqyQ" visible="false" type="RealizationListCompartment" element="_b6MYsIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_b7Ja-4OxEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_b7Ja_IOxEdmyd--cXlrqyQ" visible="false" type="RequiredInterfaceListCompartment" element="_b6MYsIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_b7Ja_YOxEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_b7Ja_oOxEdmyd--cXlrqyQ" visible="false" type="ProvidedInterfaceListCompartment" element="_b6MYsIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_b7Ja_4OxEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_b7JbAIOxEdmyd--cXlrqyQ" visible="false" type="StructureCompartment" element="_b6MYsIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_b7JbAYOxEdmyd--cXlrqyQ"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLComponentStyle" xmi:id="_b7Ja8YOxEdmyd--cXlrqyQ" showStereotype="Label"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_b7Ja8oOxEdmyd--cXlrqyQ" x="1590" y="7021"/>
+      </children>
+      <children xmi:id="_jhv_8IOxEdmyd--cXlrqyQ" targetEdges="_mJKuIIOxEdmyd--cXlrqyQ _Jsqb0IOyEdmyd--cXlrqyQ" element="_jhjysIOxEdmyd--cXlrqyQ">
+        <children xmi:id="_jhv_84OxEdmyd--cXlrqyQ" type="Stereotype" element="_jhjysIOxEdmyd--cXlrqyQ"/>
+        <children xmi:id="_jhv_9IOxEdmyd--cXlrqyQ" type="Kind" element="_jhjysIOxEdmyd--cXlrqyQ"/>
+        <children xmi:id="_jhv_9YOxEdmyd--cXlrqyQ" type="Name" element="_jhjysIOxEdmyd--cXlrqyQ"/>
+        <children xmi:id="_jhv_9oOxEdmyd--cXlrqyQ" visible="false" type="AttributeCompartment" element="_jhjysIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_jhv_94OxEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_jhv_-IOxEdmyd--cXlrqyQ" visible="false" type="OperationCompartment" element="_jhjysIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_jhv_-YOxEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_jhv_-oOxEdmyd--cXlrqyQ" visible="false" type="RealizationListCompartment" element="_jhjysIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_jhv_-4OxEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_jhv__IOxEdmyd--cXlrqyQ" visible="false" type="RequiredInterfaceListCompartment" element="_jhjysIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_jhv__YOxEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_jhv__oOxEdmyd--cXlrqyQ" visible="false" type="ProvidedInterfaceListCompartment" element="_jhjysIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_jhv__4OxEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_jhwAAIOxEdmyd--cXlrqyQ" visible="false" type="StructureCompartment" element="_jhjysIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_jhwAAYOxEdmyd--cXlrqyQ"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLComponentStyle" xmi:id="_jhv_8YOxEdmyd--cXlrqyQ" showStereotype="Label"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_jhv_8oOxEdmyd--cXlrqyQ" x="15713" y="9631"/>
+      </children>
+      <children xmi:id="_kdDxoIOxEdmyd--cXlrqyQ" sourceEdges="_mJKuIIOxEdmyd--cXlrqyQ" element="_kc3kYIOxEdmyd--cXlrqyQ">
+        <children xmi:id="_kdDxo4OxEdmyd--cXlrqyQ" type="Stereotype" element="_kc3kYIOxEdmyd--cXlrqyQ"/>
+        <children xmi:id="_kdDxpIOxEdmyd--cXlrqyQ" type="Kind" element="_kc3kYIOxEdmyd--cXlrqyQ"/>
+        <children xmi:id="_kdDxpYOxEdmyd--cXlrqyQ" type="Name" element="_kc3kYIOxEdmyd--cXlrqyQ"/>
+        <children xmi:id="_kdDxpoOxEdmyd--cXlrqyQ" visible="false" type="AttributeCompartment" element="_kc3kYIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_kdDxp4OxEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_kdDxqIOxEdmyd--cXlrqyQ" visible="false" type="OperationCompartment" element="_kc3kYIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_kdDxqYOxEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_kdDxqoOxEdmyd--cXlrqyQ" visible="false" type="RealizationListCompartment" element="_kc3kYIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_kdDxq4OxEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_kdDxrIOxEdmyd--cXlrqyQ" visible="false" type="RequiredInterfaceListCompartment" element="_kc3kYIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_kdDxrYOxEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_kdDxroOxEdmyd--cXlrqyQ" visible="false" type="ProvidedInterfaceListCompartment" element="_kc3kYIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_kdDxr4OxEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_kdDxsIOxEdmyd--cXlrqyQ" visible="false" type="StructureCompartment" element="_kc3kYIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_kdDxsYOxEdmyd--cXlrqyQ"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLComponentStyle" xmi:id="_kdDxoYOxEdmyd--cXlrqyQ" showStereotype="Label"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_kdDxooOxEdmyd--cXlrqyQ" x="14972" y="12408"/>
+      </children>
+      <children xmi:id="_mor7sIOxEdmyd--cXlrqyQ" targetEdges="_LdKwIIOyEdmyd--cXlrqyQ" element="_mol1EIOxEdmyd--cXlrqyQ">
+        <children xmi:id="_mor7s4OxEdmyd--cXlrqyQ" type="Stereotype" element="_mol1EIOxEdmyd--cXlrqyQ"/>
+        <children xmi:id="_mor7tIOxEdmyd--cXlrqyQ" type="Kind" element="_mol1EIOxEdmyd--cXlrqyQ"/>
+        <children xmi:id="_mor7tYOxEdmyd--cXlrqyQ" type="Name" element="_mol1EIOxEdmyd--cXlrqyQ"/>
+        <children xmi:id="_mor7toOxEdmyd--cXlrqyQ" visible="false" type="AttributeCompartment" element="_mol1EIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_mor7t4OxEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_mor7uIOxEdmyd--cXlrqyQ" visible="false" type="OperationCompartment" element="_mol1EIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_mor7uYOxEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_mor7uoOxEdmyd--cXlrqyQ" visible="false" type="RealizationListCompartment" element="_mol1EIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_mor7u4OxEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_moyCUIOxEdmyd--cXlrqyQ" visible="false" type="RequiredInterfaceListCompartment" element="_mol1EIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_moyCUYOxEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_moyCUoOxEdmyd--cXlrqyQ" visible="false" type="ProvidedInterfaceListCompartment" element="_mol1EIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_moyCU4OxEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_moyCVIOxEdmyd--cXlrqyQ" visible="false" type="StructureCompartment" element="_mol1EIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_moyCVYOxEdmyd--cXlrqyQ"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLComponentStyle" xmi:id="_mor7sYOxEdmyd--cXlrqyQ" showStereotype="Label"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_mor7soOxEdmyd--cXlrqyQ" x="14839" y="6762"/>
+      </children>
+      <children xmi:id="_4TvoMIOxEdmyd--cXlrqyQ" sourceEdges="_AbrYoIOyEdmyd--cXlrqyQ _DeykUIOyEdmyd--cXlrqyQ _Jsqb0IOyEdmyd--cXlrqyQ _LdKwIIOyEdmyd--cXlrqyQ _IVOVgIO3Edmyd--cXlrqyQ" element="_4TXNsIOxEdmyd--cXlrqyQ">
+        <children xmi:id="_4TvoM4OxEdmyd--cXlrqyQ" type="Stereotype" element="_4TXNsIOxEdmyd--cXlrqyQ"/>
+        <children xmi:id="_4TvoNIOxEdmyd--cXlrqyQ" type="Kind" element="_4TXNsIOxEdmyd--cXlrqyQ"/>
+        <children xmi:id="_4TvoNYOxEdmyd--cXlrqyQ" type="Name" element="_4TXNsIOxEdmyd--cXlrqyQ"/>
+        <children xmi:id="_4TvoNoOxEdmyd--cXlrqyQ" type="AttributeCompartment" element="_4TXNsIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_4TvoN4OxEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_4TvoOIOxEdmyd--cXlrqyQ" visible="false" type="OperationCompartment" element="_4TXNsIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_4TvoOYOxEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_4TvoOoOxEdmyd--cXlrqyQ" visible="false" type="RealizationListCompartment" element="_4TXNsIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_4TvoO4OxEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_4TvoPIOxEdmyd--cXlrqyQ" visible="false" type="RequiredInterfaceListCompartment" element="_4TXNsIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_4TvoPYOxEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_4TvoPoOxEdmyd--cXlrqyQ" visible="false" type="ProvidedInterfaceListCompartment" element="_4TXNsIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_4TvoP4OxEdmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_4T1u0IOxEdmyd--cXlrqyQ" visible="false" type="StructureCompartment" element="_4TXNsIOxEdmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_4T1u0YOxEdmyd--cXlrqyQ"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLComponentStyle" xmi:id="_4TvoMYOxEdmyd--cXlrqyQ" showStereotype="Label"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_4TvoMoOxEdmyd--cXlrqyQ" x="7923" y="8983" width="4921" height="3256"/>
+      </children>
+      <children xmi:id="_DnN1oIO0Edmyd--cXlrqyQ" type="rectangle">
+        <children xmi:id="_DnN1o4O0Edmyd--cXlrqyQ" type="DiagramName"/>
+        <children xmi:id="_DnN1pIO0Edmyd--cXlrqyQ" type="Description"/>
+        <styles xmi:type="notation:ShapeStyle" xmi:id="_DnN1oYO0Edmyd--cXlrqyQ" bold="true" description="Optional" fillColor="13369343" lineColor="6737151"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DnN1ooO0Edmyd--cXlrqyQ" x="18126" y="14946" width="2247" height="635"/>
+      </children>
+      <children xmi:id="_d429cIO0Edmyd--cXlrqyQ" type="rectangle">
+        <children xmi:id="_d49EEoO0Edmyd--cXlrqyQ" type="DiagramName"/>
+        <children xmi:id="_d49EE4O0Edmyd--cXlrqyQ" type="Description"/>
+        <styles xmi:type="notation:ShapeStyle" xmi:id="_d49EEIO0Edmyd--cXlrqyQ" bold="true" description="Required" fillColor="13420443" lineColor="6737151"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_d49EEYO0Edmyd--cXlrqyQ" x="18126" y="15900" width="2222" height="635"/>
+      </children>
+      <children xmi:id="_hzkqEIO1Edmyd--cXlrqyQ" type="rectangle">
+        <children xmi:id="_hzkqE4O1Edmyd--cXlrqyQ" type="DiagramName"/>
+        <children xmi:id="_hzkqFIO1Edmyd--cXlrqyQ" type="Description"/>
+        <styles xmi:type="notation:ShapeStyle" xmi:id="_hzkqEYO1Edmyd--cXlrqyQ" fillColor="13420443" lineColor="6737151"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_hzkqEoO1Edmyd--cXlrqyQ" x="7314" y="9858" width="634" height="317"/>
+      </children>
+      <children xmi:id="_uNsBYIO1Edmyd--cXlrqyQ" type="rectangle">
+        <children xmi:id="_uNsBY4O1Edmyd--cXlrqyQ" type="DiagramName"/>
+        <children xmi:id="_uNsBZIO1Edmyd--cXlrqyQ" type="Description"/>
+        <styles xmi:type="notation:ShapeStyle" xmi:id="_uNsBYYO1Edmyd--cXlrqyQ" fillColor="13420443" lineColor="6737151"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_uNsBYoO1Edmyd--cXlrqyQ" x="7314" y="10812" width="635" height="317"/>
+      </children>
+      <children xmi:id="_1rTpgIO1Edmyd--cXlrqyQ" element="_1rBVoIO1Edmyd--cXlrqyQ">
+        <children xmi:id="_1rTpg4O1Edmyd--cXlrqyQ" type="CommentBody" element="_1rBVoIO1Edmyd--cXlrqyQ"/>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_1rTpgYO1Edmyd--cXlrqyQ" fillColor="16763850" lineColor="16744576" showStereotype="Label"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_1rTpgoO1Edmyd--cXlrqyQ" x="636" y="14946" width="6376" height="2565"/>
+      </children>
+      <children xmi:id="_2N_DUIO2Edmyd--cXlrqyQ" targetEdges="_IVOVgIO3Edmyd--cXlrqyQ" element="_2NsvcIO2Edmyd--cXlrqyQ">
+        <children xmi:id="_2N_DU4O2Edmyd--cXlrqyQ" type="Stereotype" element="_2NsvcIO2Edmyd--cXlrqyQ"/>
+        <children xmi:id="_2N_DVIO2Edmyd--cXlrqyQ" type="Kind" element="_2NsvcIO2Edmyd--cXlrqyQ"/>
+        <children xmi:id="_2N_DVYO2Edmyd--cXlrqyQ" type="Name" element="_2NsvcIO2Edmyd--cXlrqyQ"/>
+        <children xmi:id="_2N_DVoO2Edmyd--cXlrqyQ" visible="false" type="AttributeCompartment" element="_2NsvcIO2Edmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_2N_DV4O2Edmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_2N_DWIO2Edmyd--cXlrqyQ" visible="false" type="OperationCompartment" element="_2NsvcIO2Edmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_2N_DWYO2Edmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_2N_DWoO2Edmyd--cXlrqyQ" visible="false" type="RealizationListCompartment" element="_2NsvcIO2Edmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_2N_DW4O2Edmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_2N_DXIO2Edmyd--cXlrqyQ" visible="false" type="RequiredInterfaceListCompartment" element="_2NsvcIO2Edmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_2N_DXYO2Edmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_2N_DXoO2Edmyd--cXlrqyQ" visible="false" type="ProvidedInterfaceListCompartment" element="_2NsvcIO2Edmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_2N_DX4O2Edmyd--cXlrqyQ"/>
+        </children>
+        <children xmi:id="_2N_DYIO2Edmyd--cXlrqyQ" visible="false" type="StructureCompartment" element="_2NsvcIO2Edmyd--cXlrqyQ">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_2N_DYYO2Edmyd--cXlrqyQ"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLComponentStyle" xmi:id="_2N_DUYO2Edmyd--cXlrqyQ" showStereotype="Label"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2N_DUoO2Edmyd--cXlrqyQ" x="7725" y="13228"/>
+      </children>
+      <styles xmi:type="umlnotation:UMLDiagramStyle" xmi:id="_0Lw7oYOwEdmyd--cXlrqyQ"/>
+      <edges xmi:id="_gS43QIOxEdmyd--cXlrqyQ" element="_gSmjYIOxEdmyd--cXlrqyQ" source="_X4hTAIOxEdmyd--cXlrqyQ" target="_b7Ja8IOxEdmyd--cXlrqyQ">
+        <children xmi:id="_gS43Q4OxEdmyd--cXlrqyQ" type="NameLabel" element="_gSmjYIOxEdmyd--cXlrqyQ">
+          <children xmi:id="_gS43RYOxEdmyd--cXlrqyQ" type="Stereotype" element="_gSmjYIOxEdmyd--cXlrqyQ"/>
+          <children xmi:id="_gS43RoOxEdmyd--cXlrqyQ" type="Name" element="_gSmjYIOxEdmyd--cXlrqyQ"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_gS43RIOxEdmyd--cXlrqyQ" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_gS43QYOxEdmyd--cXlrqyQ" routing="Rectilinear" showStereotype="Text"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_gS43QoOxEdmyd--cXlrqyQ" points="[2, -31, 5, 90]$[62, -95, 65, 26]"/>
+      </edges>
+      <edges xmi:id="_mJKuIIOxEdmyd--cXlrqyQ" element="_mI-g4IOxEdmyd--cXlrqyQ" source="_kdDxoIOxEdmyd--cXlrqyQ" target="_jhv_8IOxEdmyd--cXlrqyQ">
+        <children xmi:id="_mJKuI4OxEdmyd--cXlrqyQ" type="NameLabel" element="_mI-g4IOxEdmyd--cXlrqyQ">
+          <children xmi:id="_mJKuJYOxEdmyd--cXlrqyQ" type="Stereotype" element="_mI-g4IOxEdmyd--cXlrqyQ"/>
+          <children xmi:id="_mJQ0wIOxEdmyd--cXlrqyQ" type="Name" element="_mI-g4IOxEdmyd--cXlrqyQ"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_mJKuJIOxEdmyd--cXlrqyQ" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_mJKuIYOxEdmyd--cXlrqyQ" routing="Rectilinear" showStereotype="Text"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_mJKuIoOxEdmyd--cXlrqyQ" points="[-42, -820, 11, 2249]$[-42, -2249, 11, 820]"/>
+      </edges>
+      <edges xmi:id="_AbrYoIOyEdmyd--cXlrqyQ" element="_AbfLYIOyEdmyd--cXlrqyQ" source="_4TvoMIOxEdmyd--cXlrqyQ" target="_b7Ja8IOxEdmyd--cXlrqyQ">
+        <children xmi:id="_AbrYo4OyEdmyd--cXlrqyQ" type="KindLabel" element="_AbfLYIOyEdmyd--cXlrqyQ">
+          <children xmi:id="_AbrYpYOyEdmyd--cXlrqyQ" type="Stereotype" element="_AbfLYIOyEdmyd--cXlrqyQ"/>
+          <children xmi:id="_AbrYp4OyEdmyd--cXlrqyQ" type="Kind" element="_AbfLYIOyEdmyd--cXlrqyQ"/>
+          <children xmi:id="_AbrYpoOyEdmyd--cXlrqyQ" type="Name" element="_AbfLYIOyEdmyd--cXlrqyQ"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_AbrYpIOyEdmyd--cXlrqyQ" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_AbrYoYOyEdmyd--cXlrqyQ" routing="Rectilinear" showStereotype="Text"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_AbrYooOyEdmyd--cXlrqyQ" points="[-2434, -1085, 4604, 2011]$[-2857, -1085, 4181, 2011]$[-2857, -2963, 4181, 133]$[-5318, -2963, 1720, 133]"/>
+      </edges>
+      <edges xmi:id="_DeykUIOyEdmyd--cXlrqyQ" element="_DeUDMIOyEdmyd--cXlrqyQ" source="_4TvoMIOxEdmyd--cXlrqyQ" target="_-Cw18IOwEdmyd--cXlrqyQ">
+        <children xmi:id="_DeykU4OyEdmyd--cXlrqyQ" type="KindLabel" element="_DeUDMIOyEdmyd--cXlrqyQ">
+          <children xmi:id="_DeykVYOyEdmyd--cXlrqyQ" type="Stereotype" element="_DeUDMIOyEdmyd--cXlrqyQ"/>
+          <children xmi:id="_DeykV4OyEdmyd--cXlrqyQ" type="Kind" element="_DeUDMIOyEdmyd--cXlrqyQ"/>
+          <children xmi:id="_DeykVoOyEdmyd--cXlrqyQ" type="Name" element="_DeUDMIOyEdmyd--cXlrqyQ"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_DeykVIOyEdmyd--cXlrqyQ" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_DeykUYOyEdmyd--cXlrqyQ" routing="Rectilinear" showStereotype="Text"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_DeykUoOyEdmyd--cXlrqyQ" points="[-2434, 1032, 4524, -1270]$[-2857, 1032, 4101, -1270]$[-2857, 2275, 4101, -27]$[-4630, 2275, 2328, -27]"/>
+      </edges>
+      <edges xmi:id="_Jsqb0IOyEdmyd--cXlrqyQ" element="_JsSBUIOyEdmyd--cXlrqyQ" source="_4TvoMIOxEdmyd--cXlrqyQ" target="_jhv_8IOxEdmyd--cXlrqyQ">
+        <children xmi:id="_Jsqb04OyEdmyd--cXlrqyQ" type="KindLabel" element="_JsSBUIOyEdmyd--cXlrqyQ">
+          <children xmi:id="_Jsqb1YOyEdmyd--cXlrqyQ" type="Stereotype" element="_JsSBUIOyEdmyd--cXlrqyQ"/>
+          <children xmi:id="_Jsqb14OyEdmyd--cXlrqyQ" type="Kind" element="_JsSBUIOyEdmyd--cXlrqyQ"/>
+          <children xmi:id="_Jsqb1oOyEdmyd--cXlrqyQ" type="Name" element="_JsSBUIOyEdmyd--cXlrqyQ"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_Jsqb1IOyEdmyd--cXlrqyQ" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_Jsqb0YOyEdmyd--cXlrqyQ" routing="Rectilinear" showStereotype="Text"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Jsqb0oOyEdmyd--cXlrqyQ" points="[2143, 80, -4921, 185]$[5371, 80, -1693, 185]"/>
+      </edges>
+      <edges xmi:id="_LdKwIIOyEdmyd--cXlrqyQ" element="_Lc-i4IOyEdmyd--cXlrqyQ" source="_4TvoMIOxEdmyd--cXlrqyQ" target="_mor7sIOxEdmyd--cXlrqyQ">
+        <children xmi:id="_LdKwI4OyEdmyd--cXlrqyQ" type="KindLabel" element="_Lc-i4IOyEdmyd--cXlrqyQ">
+          <children xmi:id="_LdKwJYOyEdmyd--cXlrqyQ" type="Stereotype" element="_Lc-i4IOyEdmyd--cXlrqyQ"/>
+          <children xmi:id="_LdKwJ4OyEdmyd--cXlrqyQ" type="Kind" element="_Lc-i4IOyEdmyd--cXlrqyQ"/>
+          <children xmi:id="_LdKwJoOyEdmyd--cXlrqyQ" type="Name" element="_Lc-i4IOyEdmyd--cXlrqyQ"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_LdKwJIOyEdmyd--cXlrqyQ" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_LdKwIYOyEdmyd--cXlrqyQ" routing="Rectilinear" showStereotype="Text"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LdKwIoOyEdmyd--cXlrqyQ" points="[2143, -502, -4895, 2461]$[3122, -502, -3916, 2461]$[3122, -2989, -3916, -26]$[4498, -2989, -2540, -26]"/>
+      </edges>
+      <edges xmi:id="_IVOVgIO3Edmyd--cXlrqyQ" element="_ITURAIO3Edmyd--cXlrqyQ" source="_4TvoMIOxEdmyd--cXlrqyQ" target="_2N_DUIO2Edmyd--cXlrqyQ">
+        <children xmi:id="_IVOVg4O3Edmyd--cXlrqyQ" type="KindLabel" element="_ITURAIO3Edmyd--cXlrqyQ">
+          <children xmi:id="_IVOVhYO3Edmyd--cXlrqyQ" type="Stereotype" element="_ITURAIO3Edmyd--cXlrqyQ"/>
+          <children xmi:id="_IVOVh4O3Edmyd--cXlrqyQ" type="Kind" element="_ITURAIO3Edmyd--cXlrqyQ"/>
+          <children xmi:id="_IVOVhoO3Edmyd--cXlrqyQ" type="Name" element="_ITURAIO3Edmyd--cXlrqyQ"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_IVOVhIO3Edmyd--cXlrqyQ" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_IVOVgYO3Edmyd--cXlrqyQ" routing="Rectilinear" showStereotype="Text"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_IVOVgoO3Edmyd--cXlrqyQ" points="[-15, 61, -17, -57]$[-100, 120, -102, 2]"/>
+      </edges>
+    </contents>
+    <contents xmi:type="notation:Diagram" xmi:id="_yKPk8PyzEdm185zvv0WM_Q" type="Class" element="_SWX3UH5GEdm797szikHjoQ" name="Drag-n-Drop">
+      <children xmi:id="_FS5Q0Py0Edm185zvv0WM_Q" sourceEdges="_GBT2APy0Edm185zvv0WM_Q _GBT2CPy0Edm185zvv0WM_Q _GBZ8oPy0Edm185zvv0WM_Q _GBZ8qPy0Edm185zvv0WM_Q">
+        <children xmi:id="_FXGbYPy0Edm185zvv0WM_Q" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_FXGbYfy0Edm185zvv0WM_Q" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_FXGbYvy0Edm185zvv0WM_Q" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FXGbY_y0Edm185zvv0WM_Q" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FXGbZPy0Edm185zvv0WM_Q" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FXGbZfy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FXGbZvy0Edm185zvv0WM_Q" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FXGbZ_y0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FXGbaPy0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FXGbafy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FXMiAPy0Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_FXMiAfy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_FS5Q0fy0Edm185zvv0WM_Q" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FS5Q0vy0Edm185zvv0WM_Q" x="1272" y="7314"/>
+      </children>
+      <children xmi:id="_FYuMAPy0Edm185zvv0WM_Q" sourceEdges="_GBZ8sPy0Edm185zvv0WM_Q" targetEdges="_GBZ8uPy0Edm185zvv0WM_Q _GBsQgPy0Edm185zvv0WM_Q">
+        <children xmi:id="_FYuMA_y0Edm185zvv0WM_Q" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_FYuMBPy0Edm185zvv0WM_Q" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_FYuMBfy0Edm185zvv0WM_Q" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FYuMBvy0Edm185zvv0WM_Q" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FYuMB_y0Edm185zvv0WM_Q" visible="false" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FYuMCPy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FYuMCfy0Edm185zvv0WM_Q" visible="false" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FYuMCvy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FYuMC_y0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FYuMDPy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FYuMDfy0Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_FYuMDvy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_FYuMAfy0Edm185zvv0WM_Q" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FYuMAvy0Edm185zvv0WM_Q" x="1908" y="16218"/>
+      </children>
+      <children xmi:id="_FZ9iIPy0Edm185zvv0WM_Q" sourceEdges="_GBZ8uPy0Edm185zvv0WM_Q _GBgDQPy0Edm185zvv0WM_Q _GBgDSPy0Edm185zvv0WM_Q _GBgDUPy0Edm185zvv0WM_Q _GBgDWPy0Edm185zvv0WM_Q _GBmJ4_y0Edm185zvv0WM_Q" targetEdges="_GCErEfy0Edm185zvv0WM_Q _GCErGfy0Edm185zvv0WM_Q">
+        <children xmi:id="_FZ9iI_y0Edm185zvv0WM_Q" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_FZ9iJPy0Edm185zvv0WM_Q" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_FZ9iJfy0Edm185zvv0WM_Q" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FZ9iJvy0Edm185zvv0WM_Q" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FZ9iJ_y0Edm185zvv0WM_Q" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FZ9iKPy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FZ9iKfy0Edm185zvv0WM_Q" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FZ9iKvy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FZ9iK_y0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FZ9iLPy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FZ9iLfy0Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_FZ9iLvy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_FZ9iIfy0Edm185zvv0WM_Q" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FZ9iIvy0Edm185zvv0WM_Q" x="13038" y="7314"/>
+      </children>
+      <children xmi:id="_FcKhkPy0Edm185zvv0WM_Q" sourceEdges="_GBmJ7vy0Edm185zvv0WM_Q _GBmJ9vy0Edm185zvv0WM_Q" targetEdges="_GBZ8sPy0Edm185zvv0WM_Q _GBgDSPy0Edm185zvv0WM_Q _GBsQmPy0Edm185zvv0WM_Q _GB4dwPy0Edm185zvv0WM_Q">
+        <children xmi:id="_FcKhk_y0Edm185zvv0WM_Q" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_FcKhlPy0Edm185zvv0WM_Q" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_FcKhlfy0Edm185zvv0WM_Q" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FcKhlvy0Edm185zvv0WM_Q" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FcKhl_y0Edm185zvv0WM_Q" visible="false" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FcKhmPy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FcKhmfy0Edm185zvv0WM_Q" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FcKhmvy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FcQoMPy0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FcQoMfy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FcQoMvy0Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_FcQoM_y0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_FcKhkfy0Edm185zvv0WM_Q" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FcKhkvy0Edm185zvv0WM_Q" x="32754" y="33072"/>
+      </children>
+      <children xmi:id="_Fe1bEPy0Edm185zvv0WM_Q" sourceEdges="_GBmJ_vy0Edm185zvv0WM_Q" targetEdges="_GByXNfy0Edm185zvv0WM_Q _GB4d2Py0Edm185zvv0WM_Q _GB-kcvy0Edm185zvv0WM_Q">
+        <children xmi:id="_Fe1bE_y0Edm185zvv0WM_Q" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_Fe1bFPy0Edm185zvv0WM_Q" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_Fe7hsPy0Edm185zvv0WM_Q" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_Fe7hsfy0Edm185zvv0WM_Q" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_Fe7hsvy0Edm185zvv0WM_Q" visible="false" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_Fe7hs_y0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_Fe7htPy0Edm185zvv0WM_Q" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_Fe7htfy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_Fe7htvy0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_Fe7ht_y0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_Fe7huPy0Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_Fe7hufy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_Fe1bEfy0Edm185zvv0WM_Q" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Fe1bEvy0Edm185zvv0WM_Q" x="32754" y="29892"/>
+      </children>
+      <children xmi:id="_FfgJcPy0Edm185zvv0WM_Q" sourceEdges="_GBsQgPy0Edm185zvv0WM_Q _GBsQiPy0Edm185zvv0WM_Q _GBsQkPy0Edm185zvv0WM_Q _GBsQmPy0Edm185zvv0WM_Q _GBsQoPy0Edm185zvv0WM_Q _GByXIvy0Edm185zvv0WM_Q _GByXKvy0Edm185zvv0WM_Q">
+        <children xmi:id="_FfgJc_y0Edm185zvv0WM_Q" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_FfgJdPy0Edm185zvv0WM_Q" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_FfgJdfy0Edm185zvv0WM_Q" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FfgJdvy0Edm185zvv0WM_Q" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FfgJd_y0Edm185zvv0WM_Q" visible="false" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FfgJePy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FfmQEPy0Edm185zvv0WM_Q" visible="false" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FfmQEfy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FfmQEvy0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FfmQE_y0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FfmQFPy0Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_FfmQFfy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_FfgJcfy0Edm185zvv0WM_Q" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FfgJcvy0Edm185zvv0WM_Q" x="9858" y="16218"/>
+      </children>
+      <children xmi:id="_Ff-qkPy0Edm185zvv0WM_Q" targetEdges="_GBZ8qPy0Edm185zvv0WM_Q">
+        <children xmi:id="_Ff-qk_y0Edm185zvv0WM_Q" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=FileTransferDragAdapter[jcu^name=FileTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_Ff-qlPy0Edm185zvv0WM_Q" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_Ff-qlfy0Edm185zvv0WM_Q" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=FileTransferDragAdapter[jcu^name=FileTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_Ff-qlvy0Edm185zvv0WM_Q" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=FileTransferDragAdapter[jcu^name=FileTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_Ff-ql_y0Edm185zvv0WM_Q" visible="false" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_Ff-qmPy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=FileTransferDragAdapter[jcu^name=FileTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_Ff-qmfy0Edm185zvv0WM_Q" visible="false" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_Ff-qmvy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=FileTransferDragAdapter[jcu^name=FileTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_Ff-qm_y0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_Ff-qnPy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=FileTransferDragAdapter[jcu^name=FileTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_Ff-qnfy0Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_Ff-qnvy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=FileTransferDragAdapter[jcu^name=FileTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_Ff-qkfy0Edm185zvv0WM_Q" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=FileTransferDragAdapter[jcu^name=FileTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Ff-qkvy0Edm185zvv0WM_Q" y="13674"/>
+      </children>
+      <children xmi:id="_Fhsh0Py0Edm185zvv0WM_Q" targetEdges="_GBT2CPy0Edm185zvv0WM_Q">
+        <children xmi:id="_Fhsh0_y0Edm185zvv0WM_Q" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ResourceTransferDragAdapter[jcu^name=ResourceTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_Fhsh1Py0Edm185zvv0WM_Q" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_Fhsh1fy0Edm185zvv0WM_Q" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ResourceTransferDragAdapter[jcu^name=ResourceTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_Fhsh1vy0Edm185zvv0WM_Q" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ResourceTransferDragAdapter[jcu^name=ResourceTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_Fhsh1_y0Edm185zvv0WM_Q" visible="false" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_Fhsh2Py0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ResourceTransferDragAdapter[jcu^name=ResourceTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_Fhsh2fy0Edm185zvv0WM_Q" visible="false" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_Fhsh2vy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ResourceTransferDragAdapter[jcu^name=ResourceTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_Fhsh2_y0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_Fhsh3Py0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ResourceTransferDragAdapter[jcu^name=ResourceTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_Fhsh3fy0Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_Fhsh3vy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ResourceTransferDragAdapter[jcu^name=ResourceTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_Fhsh0fy0Edm185zvv0WM_Q" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ResourceTransferDragAdapter[jcu^name=ResourceTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Fhsh0vy0Edm185zvv0WM_Q" x="5406" y="13674"/>
+      </children>
+      <children xmi:id="_FikEgPy0Edm185zvv0WM_Q" sourceEdges="_GByXNfy0Edm185zvv0WM_Q" targetEdges="_GBmJ7vy0Edm185zvv0WM_Q _GByXPfy0Edm185zvv0WM_Q">
+        <children xmi:id="_FikEg_y0Edm185zvv0WM_Q" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_FikEhPy0Edm185zvv0WM_Q" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_FikEhfy0Edm185zvv0WM_Q" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FikEhvy0Edm185zvv0WM_Q" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FikEh_y0Edm185zvv0WM_Q" visible="false" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FikEiPy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FikEify0Edm185zvv0WM_Q" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FikEivy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FikEi_y0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FikEjPy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FikEjfy0Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_FikEjvy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_FikEgfy0Edm185zvv0WM_Q" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FikEgvy0Edm185zvv0WM_Q" x="33072" y="25440"/>
+      </children>
+      <children xmi:id="_FjtUAPy0Edm185zvv0WM_Q" sourceEdges="_GByXPfy0Edm185zvv0WM_Q _GB4dwPy0Edm185zvv0WM_Q _GB4dyPy0Edm185zvv0WM_Q _GB4d0Py0Edm185zvv0WM_Q _GB4d2Py0Edm185zvv0WM_Q" targetEdges="_GBmJ4_y0Edm185zvv0WM_Q _GByXIvy0Edm185zvv0WM_Q _GB4dyPy0Edm185zvv0WM_Q _GCErCfy0Edm185zvv0WM_Q">
+        <children xmi:id="_FjtUA_y0Edm185zvv0WM_Q" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_FjtUBPy0Edm185zvv0WM_Q" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_FjtUBfy0Edm185zvv0WM_Q" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FjtUBvy0Edm185zvv0WM_Q" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FjtUB_y0Edm185zvv0WM_Q" visible="false" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FjtUCPy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FjtUCfy0Edm185zvv0WM_Q" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FjtUCvy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FjtUC_y0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_FjtUDPy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FjtUDfy0Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_FjtUDvy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_FjtUAfy0Edm185zvv0WM_Q" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FjtUAvy0Edm185zvv0WM_Q" x="24995" y="25418"/>
+      </children>
+      <children xmi:id="_FyglAPy0Edm185zvv0WM_Q" sourceEdges="_GB-kYPy0Edm185zvv0WM_Q _GB-kY_y0Edm185zvv0WM_Q _GB-kavy0Edm185zvv0WM_Q _GB-kcvy0Edm185zvv0WM_Q _GCErAfy0Edm185zvv0WM_Q _GCErCfy0Edm185zvv0WM_Q" targetEdges="_GBT2APy0Edm185zvv0WM_Q _GBgDWPy0Edm185zvv0WM_Q _GByXKvy0Edm185zvv0WM_Q">
+        <children xmi:id="_FymroPy0Edm185zvv0WM_Q" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_Fymrofy0Edm185zvv0WM_Q" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_Fymrovy0Edm185zvv0WM_Q" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_Fymro_y0Edm185zvv0WM_Q" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FymrpPy0Edm185zvv0WM_Q" visible="false" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_Fymrpfy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_Fymrpvy0Edm185zvv0WM_Q" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_Fymrp_y0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_FymrqPy0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_Fymrqfy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_Fymrqvy0Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_Fymrq_y0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_FyglAfy0Edm185zvv0WM_Q" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_FyglAvy0Edm185zvv0WM_Q" x="17808" y="25440"/>
+      </children>
+      <children xmi:id="_F5evsPy0Edm185zvv0WM_Q" sourceEdges="_GCErEfy0Edm185zvv0WM_Q" targetEdges="_GBgDQPy0Edm185zvv0WM_Q _GBmJ9vy0Edm185zvv0WM_Q _GBsQiPy0Edm185zvv0WM_Q _GB4d0Py0Edm185zvv0WM_Q">
+        <children xmi:id="_F5evs_y0Edm185zvv0WM_Q" type="ImageCompartment">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_F5evtPy0Edm185zvv0WM_Q" width="530" height="530"/>
+        </children>
+        <children xmi:id="_F5evtfy0Edm185zvv0WM_Q" type="Stereotype">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_F5evtvy0Edm185zvv0WM_Q" type="Kind">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_F5evt_y0Edm185zvv0WM_Q" type="Name">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_F5evuPy0Edm185zvv0WM_Q" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_F5evufy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_F5evuvy0Edm185zvv0WM_Q" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_F5evu_y0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_F5evvPy0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_F5evvfy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLClassifierStyle" xmi:id="_F5evsfy0Edm185zvv0WM_Q" showStereotype="Label" useClassifierShape="true"/>
+        <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_F5evsvy0Edm185zvv0WM_Q" x="33339" y="745"/>
+      </children>
+      <children xmi:id="_F5xDkfy0Edm185zvv0WM_Q" targetEdges="_GBsQoPy0Edm185zvv0WM_Q _GB-kYPy0Edm185zvv0WM_Q _GCErAfy0Edm185zvv0WM_Q">
+        <children xmi:id="_F5xDlPy0Edm185zvv0WM_Q" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_F5xDlfy0Edm185zvv0WM_Q" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_F5xDlvy0Edm185zvv0WM_Q" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        </children>
+        <children xmi:id="_F5xDl_y0Edm185zvv0WM_Q" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        </children>
+        <children xmi:id="_F5xDmPy0Edm185zvv0WM_Q" visible="false" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_F5xDmfy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        </children>
+        <children xmi:id="_F5xDmvy0Edm185zvv0WM_Q" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_F5xDm_y0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        </children>
+        <children xmi:id="_F5xDnPy0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_F5xDnfy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        </children>
+        <children xmi:id="_F5xDnvy0Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_F5xDn_y0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_F5xDkvy0Edm185zvv0WM_Q" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_F5xDk_y0Edm185zvv0WM_Q" x="18126" y="33390"/>
+      </children>
+      <children xmi:id="_F6n_MPy0Edm185zvv0WM_Q" targetEdges="_GBZ8oPy0Edm185zvv0WM_Q _GBgDUPy0Edm185zvv0WM_Q _GBmJ_vy0Edm185zvv0WM_Q _GBsQkPy0Edm185zvv0WM_Q _GB-kY_y0Edm185zvv0WM_Q _GB-kavy0Edm185zvv0WM_Q">
+        <children xmi:id="_F6n_M_y0Edm185zvv0WM_Q" type="ImageCompartment">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_F6n_NPy0Edm185zvv0WM_Q" width="530" height="530"/>
+        </children>
+        <children xmi:id="_F6n_Nfy0Edm185zvv0WM_Q" type="Stereotype">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_F6n_Nvy0Edm185zvv0WM_Q" type="Kind">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_F6n_N_y0Edm185zvv0WM_Q" type="Name">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_F6n_OPy0Edm185zvv0WM_Q" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_F6n_Ofy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_F6n_Ovy0Edm185zvv0WM_Q" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_F6n_O_y0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_F6n_PPy0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_F6n_Pfy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLClassifierStyle" xmi:id="_F6n_Mfy0Edm185zvv0WM_Q" showStereotype="Label" useClassifierShape="true"/>
+        <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_F6n_Mvy0Edm185zvv0WM_Q" x="28251" y="745"/>
+      </children>
+      <children xmi:id="_F66TEPy0Edm185zvv0WM_Q" sourceEdges="_GCErGfy0Edm185zvv0WM_Q">
+        <children xmi:id="_F66TE_y0Edm185zvv0WM_Q" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorDropActionDelegate[jcu^name=NavigatorDropActionDelegate.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_F66TFPy0Edm185zvv0WM_Q" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_F66TFfy0Edm185zvv0WM_Q" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorDropActionDelegate[jcu^name=NavigatorDropActionDelegate.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_F66TFvy0Edm185zvv0WM_Q" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorDropActionDelegate[jcu^name=NavigatorDropActionDelegate.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_F66TF_y0Edm185zvv0WM_Q" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_F66TGPy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorDropActionDelegate[jcu^name=NavigatorDropActionDelegate.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_F66TGfy0Edm185zvv0WM_Q" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_F66TGvy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorDropActionDelegate[jcu^name=NavigatorDropActionDelegate.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_F66TG_y0Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_F66THPy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorDropActionDelegate[jcu^name=NavigatorDropActionDelegate.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_F66THfy0Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_F66THvy0Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorDropActionDelegate[jcu^name=NavigatorDropActionDelegate.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_F66TEfy0Edm185zvv0WM_Q" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorDropActionDelegate[jcu^name=NavigatorDropActionDelegate.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_F66TEvy0Edm185zvv0WM_Q" x="20670" y="636"/>
+      </children>
+      <styles xmi:type="umlnotation:UMLDiagramStyle" xmi:id="_yKPk8fyzEdm185zvv0WM_Q"/>
+      <edges xmi:id="_GBT2APy0Edm185zvv0WM_Q" source="_FS5Q0Py0Edm185zvv0WM_Q" target="_FyglAPy0Edm185zvv0WM_Q">
+        <children xmi:id="_GBT2A_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
+          <children xmi:id="_GBT2Bfy0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBT2B_y0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBT2Bvy0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBT2BPy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBT2Afy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBT2Avy0Edm185zvv0WM_Q" points="[-14, 3691, -8560, -5491]$[8532, 5279, -14, -3903]"/>
+      </edges>
+      <edges xmi:id="_GBT2CPy0Edm185zvv0WM_Q" source="_FS5Q0Py0Edm185zvv0WM_Q" target="_Fhsh0Py0Edm185zvv0WM_Q">
+        <children xmi:id="_GBT2C_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
+          <children xmi:id="_GBT2Dfy0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ResourceTransferDragAdapter[jcu^name=ResourceTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBT2D_y0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ResourceTransferDragAdapter[jcu^name=ResourceTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBT2Dvy0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ResourceTransferDragAdapter[jcu^name=ResourceTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ResourceTransferDragAdapter[jcu^name=ResourceTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBT2DPy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBT2Cfy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ResourceTransferDragAdapter[jcu^name=ResourceTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBT2Cvy0Edm185zvv0WM_Q" points="[-14, 3691, 648, -5491]$[-675, 5279, -13, -3903]"/>
+      </edges>
+      <edges xmi:id="_GBZ8oPy0Edm185zvv0WM_Q" source="_FS5Q0Py0Edm185zvv0WM_Q" target="_F6n_MPy0Edm185zvv0WM_Q">
+        <children xmi:id="_GBZ8o_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
+          <children xmi:id="_GBZ8pfy0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBZ8p_y0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBZ8pvy0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBZ8pPy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBZ8ofy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBZ8ovy0Edm185zvv0WM_Q" points="[27, -2407, -23680, 5504]$[27, -4630, -23680, 3281]$[23733, -4630, 26, 3281]$[23733, -6826, 26, 1085]"/>
+      </edges>
+      <edges xmi:id="_GBZ8qPy0Edm185zvv0WM_Q" source="_FS5Q0Py0Edm185zvv0WM_Q" target="_Ff-qkPy0Edm185zvv0WM_Q">
+        <children xmi:id="_GBZ8q_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
+          <children xmi:id="_GBZ8rfy0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=FileTransferDragAdapter[jcu^name=FileTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBZ8r_y0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=FileTransferDragAdapter[jcu^name=FileTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBZ8rvy0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=FileTransferDragAdapter[jcu^name=FileTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=FileTransferDragAdapter[jcu^name=FileTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBZ8rPy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBZ8qfy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDragAdapter[jcu^name=CommonNavigatorDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=FileTransferDragAdapter[jcu^name=FileTransferDragAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBZ8qvy0Edm185zvv0WM_Q" points="[-14, 3691, 6640, -5491]$[-6655, 5279, -1, -3903]"/>
+      </edges>
+      <edges xmi:id="_GBZ8sPy0Edm185zvv0WM_Q" source="_FYuMAPy0Edm185zvv0WM_Q" target="_FcKhkPy0Edm185zvv0WM_Q">
+        <children xmi:id="_GBZ8s_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
+          <children xmi:id="_GBZ8tfy0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBZ8t_y0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBZ8tvy0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBZ8tPy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBZ8sfy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBZ8svy0Edm185zvv0WM_Q" points="[27, 503, -30242, -18468]$[27, 4789, -30242, -14182]$[19976, 4789, -10293, -14182]$[19976, 19315, -10293, 344]$[27887, 19315, -2382, 344]"/>
+      </edges>
+      <edges xmi:id="_GBZ8uPy0Edm185zvv0WM_Q" source="_FZ9iIPy0Edm185zvv0WM_Q" target="_FYuMAPy0Edm185zvv0WM_Q">
+        <children xmi:id="_GBZ8u_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
+          <children xmi:id="_GBZ8vfy0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBZ8v_y0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBZ8vvy0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBZ8vPy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBZ8ufy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBZ8uvy0Edm185zvv0WM_Q" points="[-14, 3691, -10756, -5491]$[10728, 5279, -14, -3903]"/>
+      </edges>
+      <edges xmi:id="_GBgDQPy0Edm185zvv0WM_Q" source="_FZ9iIPy0Edm185zvv0WM_Q" target="_F5evsPy0Edm185zvv0WM_Q">
+        <children xmi:id="_GBgDQ_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
+          <children xmi:id="_GBgDRfy0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBgDR_y0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBgDRvy0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBgDRPy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBgDQfy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBgDQvy0Edm185zvv0WM_Q" points="[-14, 3691, -2673, -35084]$[-3665, 5279, -6324, -33496]$[-3665, 34410, -6324, -4365]$[2659, 35997, 0, -2778]"/>
+      </edges>
+      <edges xmi:id="_GBgDSPy0Edm185zvv0WM_Q" source="_FZ9iIPy0Edm185zvv0WM_Q" target="_FcKhkPy0Edm185zvv0WM_Q">
+        <children xmi:id="_GBgDS_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
+          <children xmi:id="_GBgDTfy0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBgDT_y0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBgDTvy0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBgDTPy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBgDSfy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBgDSvy0Edm185zvv0WM_Q" points="[3096, 3335, -15928, -21351]$[8652, 3335, -10372, -21351]$[8652, 10478, -10372, -14208]$[15399, 10478, -3625, -14208]$[15399, 24686, -3625, 0]$[16616, 24686, -2408, 0]"/>
+      </edges>
+      <edges xmi:id="_GBgDUPy0Edm185zvv0WM_Q" source="_FZ9iIPy0Edm185zvv0WM_Q" target="_F6n_MPy0Edm185zvv0WM_Q">
+        <children xmi:id="_GBgDU_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
+          <children xmi:id="_GBgDVfy0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBgDV_y0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBgDVvy0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBgDVPy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBgDUfy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBgDUvy0Edm185zvv0WM_Q" points="[2117, 3678, -11721, 12859]$[2117, 11563, -11721, 20744]$[15161, 11563, 1323, 20744]$[15161, -8096, 1323, 1085]"/>
+      </edges>
+      <edges xmi:id="_GBgDWPy0Edm185zvv0WM_Q" source="_FZ9iIPy0Edm185zvv0WM_Q" target="_FyglAPy0Edm185zvv0WM_Q">
+        <children xmi:id="_GBgDW_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
+          <children xmi:id="_GBmJ4Py0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBmJ4vy0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBmJ4fy0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBgDXPy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBgDWfy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBgDWvy0Edm185zvv0WM_Q" points="[-14, 3691, -14, -5491]$[-14, 5279, -14, -3903]"/>
+      </edges>
+      <edges xmi:id="_GBmJ4_y0Edm185zvv0WM_Q" source="_FZ9iIPy0Edm185zvv0WM_Q" target="_FjtUAPy0Edm185zvv0WM_Q">
+        <children xmi:id="_GBmJ5vy0Edm185zvv0WM_Q" visible="false" type="KindLabel">
+          <children xmi:id="_GBmJ6Py0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBmJ6vy0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBmJ6fy0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBmJ5_y0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBmJ5Py0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBmJ5fy0Edm185zvv0WM_Q" points="[-14, 3691, -9036, -15519]$[3294, 5279, -5728, -13931]$[3294, 13085, -5728, -6125]$[9009, 14672, -13, -4538]"/>
+      </edges>
+      <edges xmi:id="_GBmJ7vy0Edm185zvv0WM_Q" source="_FcKhkPy0Edm185zvv0WM_Q" target="_FikEgPy0Edm185zvv0WM_Q">
+        <children xmi:id="_GBmJ8fy0Edm185zvv0WM_Q" visible="false" type="KindLabel">
+          <children xmi:id="_GBmJ8_y0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBmJ9fy0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBmJ9Py0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBmJ8vy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBmJ7_y0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBmJ8Py0Edm185zvv0WM_Q" points="[-1, 4537, 5278, -4366]$[-5292, 6125, -13, -2778]"/>
+      </edges>
+      <edges xmi:id="_GBmJ9vy0Edm185zvv0WM_Q" source="_FcKhkPy0Edm185zvv0WM_Q" target="_F5evsPy0Edm185zvv0WM_Q">
+        <children xmi:id="_GBmJ-fy0Edm185zvv0WM_Q" visible="false" type="KindLabel">
+          <children xmi:id="_GBmJ-_y0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBmJ_fy0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBmJ_Py0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBmJ-vy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBmJ9_y0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBmJ-Py0Edm185zvv0WM_Q" points="[-1, 4537, 11641, -4366]$[-11642, 6125, 0, -2778]"/>
+      </edges>
+      <edges xmi:id="_GBmJ_vy0Edm185zvv0WM_Q" source="_Fe1bEPy0Edm185zvv0WM_Q" target="_F6n_MPy0Edm185zvv0WM_Q">
+        <children xmi:id="_GBmKAfy0Edm185zvv0WM_Q" visible="false" type="KindLabel">
+          <children xmi:id="_GBmKA_y0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBmKBfy0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBmKBPy0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBmKAvy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBmJ__y0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBmKAPy0Edm185zvv0WM_Q" points="[-2090, 0, 2778, 28999]$[-5450, 0, -582, 28999]$[-5450, -27914, -582, 1085]"/>
+      </edges>
+      <edges xmi:id="_GBsQgPy0Edm185zvv0WM_Q" source="_FfgJcPy0Edm185zvv0WM_Q" target="_FYuMAPy0Edm185zvv0WM_Q">
+        <children xmi:id="_GBsQg_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
+          <children xmi:id="_GBsQhfy0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBsQh_y0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBsQhvy0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBsQhPy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBsQgfy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorDropSelectionDialog[jcu^name=NavigatorDropSelectionDialog.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBsQgvy0Edm185zvv0WM_Q" points="[0, 3691, -4009, -5491]$[3995, 5279, -14, -3903]"/>
+      </edges>
+      <edges xmi:id="_GBsQiPy0Edm185zvv0WM_Q" source="_FfgJcPy0Edm185zvv0WM_Q" target="_F5evsPy0Edm185zvv0WM_Q">
+        <children xmi:id="_GBsQi_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
+          <children xmi:id="_GBsQjfy0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBsQj_y0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBsQjvy0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBsQjPy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBsQify0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBsQivy0Edm185zvv0WM_Q" points="[26, -502, -23204, 14605]$[26, -10213, -23204, 4894]$[23283, -10213, 53, 4894]$[23283, -14234, 53, 873]"/>
+      </edges>
+      <edges xmi:id="_GBsQkPy0Edm185zvv0WM_Q" source="_FfgJcPy0Edm185zvv0WM_Q" target="_F6n_MPy0Edm185zvv0WM_Q">
+        <children xmi:id="_GBsQk_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
+          <children xmi:id="_GBsQlfy0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBsQl_y0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBsQlvy0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBsQlPy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBsQkfy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBsQkvy0Edm185zvv0WM_Q" points="[1058, 503, -17066, 15399]$[1058, 8123, -17066, 23019]$[18600, 8123, 476, 23019]$[18600, -13811, 476, 1085]"/>
+      </edges>
+      <edges xmi:id="_GBsQmPy0Edm185zvv0WM_Q" source="_FfgJcPy0Edm185zvv0WM_Q" target="_FcKhkPy0Edm185zvv0WM_Q">
+        <children xmi:id="_GBsQm_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
+          <children xmi:id="_GBsQnfy0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBsQn_y0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GBsQnvy0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBsQnPy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBsQmfy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBsQmvy0Edm185zvv0WM_Q" points="[26, 503, -23284, -18468]$[26, 19712, -23284, 741]$[20928, 19712, -2382, 741]"/>
+      </edges>
+      <edges xmi:id="_GBsQoPy0Edm185zvv0WM_Q" source="_FfgJcPy0Edm185zvv0WM_Q" target="_F5xDkfy0Edm185zvv0WM_Q">
+        <children xmi:id="_GBsQo_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
+          <children xmi:id="_GBsQpfy0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
+          </children>
+          <children xmi:id="_GByXIfy0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
+          </children>
+          <children xmi:id="_GByXIPy0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GBsQpPy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GBsQofy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GBsQovy0Edm185zvv0WM_Q" points="[27, 1376, 6324, -16775]$[27, 20876, 6324, 2725]$[7938, 20876, 14235, 2725]$[7938, 18574, 14235, 423]$[-3466, 18574, 2831, 423]"/>
+      </edges>
+      <edges xmi:id="_GByXIvy0Edm185zvv0WM_Q" source="_FfgJcPy0Edm185zvv0WM_Q" target="_FjtUAPy0Edm185zvv0WM_Q">
+        <children xmi:id="_GByXJfy0Edm185zvv0WM_Q" visible="false" type="KindLabel">
+          <children xmi:id="_GByXJ_y0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GByXKfy0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GByXKPy0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GByXJvy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GByXI_y0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GByXJPy0Edm185zvv0WM_Q" points="[0, 1376, -2249, -20161]$[0, 16987, -2249, -4550]"/>
+      </edges>
+      <edges xmi:id="_GByXKvy0Edm185zvv0WM_Q" source="_FfgJcPy0Edm185zvv0WM_Q" target="_FyglAPy0Edm185zvv0WM_Q">
+        <children xmi:id="_GByXLfy0Edm185zvv0WM_Q" visible="false" type="KindLabel">
+          <children xmi:id="_GByXL_y0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GByXMfy0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GByXMPy0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GByXLvy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GByXK_y0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=PluginDropAction[jcu^name=PluginDropAction.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GByXLPy0Edm185zvv0WM_Q" points="[53, 1376, 6800, -7991]$[53, 6827, 6800, -2540]$[-6720, 6827, 27, -2540]$[-6720, 7620, 27, -1747]"/>
+      </edges>
+      <edges xmi:id="_GByXNfy0Edm185zvv0WM_Q" source="_FikEgPy0Edm185zvv0WM_Q" target="_Fe1bEPy0Edm185zvv0WM_Q">
+        <children xmi:id="_GByXOPy0Edm185zvv0WM_Q" visible="false" type="KindLabel">
+          <children xmi:id="_GByXOvy0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GByXPPy0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GByXO_y0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GByXOfy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GByXNvy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GByXN_y0Edm185zvv0WM_Q" points="[-13, 2778, 7673, -3374]$[-7686, 4366, 0, -1786]"/>
+      </edges>
+      <edges xmi:id="_GByXPfy0Edm185zvv0WM_Q" source="_FjtUAPy0Edm185zvv0WM_Q" target="_FikEgPy0Edm185zvv0WM_Q">
+        <children xmi:id="_GByXQPy0Edm185zvv0WM_Q" visible="false" type="KindLabel">
+          <children xmi:id="_GByXQvy0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GByXRPy0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GByXQ_y0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GByXQfy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GByXPvy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerCollectionDescriptor[jcu^name=SerializerCollectionDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GByXP_y0Edm185zvv0WM_Q" points="[-13, 4537, -13, -15028]$[-13, 16787, -13, -2778]"/>
+      </edges>
+      <edges xmi:id="_GB4dwPy0Edm185zvv0WM_Q" source="_FjtUAPy0Edm185zvv0WM_Q" target="_FcKhkPy0Edm185zvv0WM_Q">
+        <children xmi:id="_GB4dw_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
+          <children xmi:id="_GB4dxfy0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GB4dx_y0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GB4dxvy0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GB4dxPy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GB4dwfy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=DropHandlerDescriptor[jcu^name=DropHandlerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GB4dwvy0Edm185zvv0WM_Q" points="[-13, 4537, -5292, -6125]$[5278, 6124, -1, -4538]"/>
+      </edges>
+      <edges xmi:id="_GB4dyPy0Edm185zvv0WM_Q" source="_FjtUAPy0Edm185zvv0WM_Q" target="_FjtUAPy0Edm185zvv0WM_Q">
+        <children xmi:id="_GB4dy_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
+          <children xmi:id="_GB4dzfy0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GB4dz_y0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GB4dzvy0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GB4dzPy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GB4dyfy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GB4dyvy0Edm185zvv0WM_Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      </edges>
+      <edges xmi:id="_GB4d0Py0Edm185zvv0WM_Q" source="_FjtUAPy0Edm185zvv0WM_Q" target="_F5evsPy0Edm185zvv0WM_Q">
+        <children xmi:id="_GB4d0_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
+          <children xmi:id="_GB4d1fy0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GB4d1_y0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GB4d1vy0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GB4d1Py0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GB4d0fy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GB4d0vy0Edm185zvv0WM_Q" points="[-13, 4537, 6350, -15028]$[-4617, 6124, 1746, -13441]$[-4617, 15200, 1746, -4365]$[-6363, 16787, 0, -2778]"/>
+      </edges>
+      <edges xmi:id="_GB4d2Py0Edm185zvv0WM_Q" source="_FjtUAPy0Edm185zvv0WM_Q" target="_Fe1bEPy0Edm185zvv0WM_Q">
+        <children xmi:id="_GB4d2_y0Edm185zvv0WM_Q" visible="false" type="KindLabel">
+          <children xmi:id="_GB4d3fy0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GB4d3_y0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GB4d3vy0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GB4d3Py0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GB4d2fy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GB4d2vy0Edm185zvv0WM_Q" points="[1614, 3466, -5371, 1534]$[1614, 3916, -5371, 1984]$[6297, 3916, -688, 1984]$[6297, 2858, -688, 926]"/>
+      </edges>
+      <edges xmi:id="_GB-kYPy0Edm185zvv0WM_Q" type="OwnedElement" source="_FyglAPy0Edm185zvv0WM_Q" target="_F5xDkfy0Edm185zvv0WM_Q">
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GB-kYfy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GB-kYvy0Edm185zvv0WM_Q" points="[-14, 3902, -477, -6126]$[462, 5490, -1, -4538]"/>
+      </edges>
+      <edges xmi:id="_GB-kY_y0Edm185zvv0WM_Q" source="_FyglAPy0Edm185zvv0WM_Q" target="_F6n_MPy0Edm185zvv0WM_Q">
+        <children xmi:id="_GB-kZvy0Edm185zvv0WM_Q" visible="false" type="NameLabel">
+          <children xmi:id="_GB-kaPy0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Implementation" href="vizref:///#jimpl^vcore.target=uml2.Implementation[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GB-kafy0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Implementation" href="vizref:///#jimpl^vcore.target=uml2.Implementation[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Implementation" href="vizref:///#jimpl^vcore.target=uml2.Implementation[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GB-kZ_y0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GB-kZPy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Implementation" href="vizref:///#jimpl^vcore.target=uml2.Implementation[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GB-kZfy0Edm185zvv0WM_Q" points="[-14, 3902, 4921, -36301]$[-4935, 5490, 0, -34713]$[-4935, 39118, 0, -1085]"/>
+      </edges>
+      <edges xmi:id="_GB-kavy0Edm185zvv0WM_Q" source="_FyglAPy0Edm185zvv0WM_Q" target="_F6n_MPy0Edm185zvv0WM_Q">
+        <children xmi:id="_GB-kbfy0Edm185zvv0WM_Q" visible="false" type="KindLabel">
+          <children xmi:id="_GB-kb_y0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GB-kcfy0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GB-kcPy0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GB-kbvy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GB-ka_y0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ISerializer[jcu^name=ISerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GB-kbPy0Edm185zvv0WM_Q" points="[2778, 0, -6588, 25189]$[10239, 0, 873, 25189]$[10239, -24104, 873, 1085]"/>
+      </edges>
+      <edges xmi:id="_GB-kcvy0Edm185zvv0WM_Q" source="_FyglAPy0Edm185zvv0WM_Q" target="_Fe1bEPy0Edm185zvv0WM_Q">
+        <children xmi:id="_GB-kdfy0Edm185zvv0WM_Q" visible="false" type="KindLabel">
+          <children xmi:id="_GB-kd_y0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GCErAPy0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GB-kePy0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GB-kdvy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GB-kc_y0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=SerializerDescriptor[jcu^name=SerializerDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GB-kdPy0Edm185zvv0WM_Q" points="[2302, 1561, -11932, -2249]$[2302, 13176, -11932, 9366]$[4894, 13176, -9340, 9366]$[4894, 5609, -9340, 1799]$[14287, 5609, 53, 1799]$[14287, 4736, 53, 926]"/>
+      </edges>
+      <edges xmi:id="_GCErAfy0Edm185zvv0WM_Q" source="_FyglAPy0Edm185zvv0WM_Q" target="_F5xDkfy0Edm185zvv0WM_Q">
+        <children xmi:id="_GCErBPy0Edm185zvv0WM_Q" visible="false" type="KindLabel">
+          <children xmi:id="_GCErBvy0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
+          </children>
+          <children xmi:id="_GCErCPy0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
+          </children>
+          <children xmi:id="_GCErB_y0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GCErBfy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GCErAvy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorSerializedSelection[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GCErA_y0Edm185zvv0WM_Q" points="[-14, 3902, -477, -6126]$[462, 5490, -1, -4538]"/>
+      </edges>
+      <edges xmi:id="_GCErCfy0Edm185zvv0WM_Q" source="_FyglAPy0Edm185zvv0WM_Q" target="_FjtUAPy0Edm185zvv0WM_Q">
+        <children xmi:id="_GCErDPy0Edm185zvv0WM_Q" visible="false" type="KindLabel">
+          <children xmi:id="_GCErDvy0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GCErEPy0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GCErD_y0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GCErDfy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GCErCvy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorSelectionSerializer[jcu^name=NavigatorSelectionSerializer.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonDropHandlerService[jcu^name=CommonDropHandlerService.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GCErC_y0Edm185zvv0WM_Q" points="[-14, 3902, -9036, -6126]$[9009, 5490, -13, -4538]"/>
+      </edges>
+      <edges xmi:id="_GCErEfy0Edm185zvv0WM_Q" source="_F5evsPy0Edm185zvv0WM_Q" target="_FZ9iIPy0Edm185zvv0WM_Q">
+        <children xmi:id="_GCErFPy0Edm185zvv0WM_Q" visible="false" type="KindLabel">
+          <children xmi:id="_GCErFvy0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GCErGPy0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GCErF_y0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GCErFfy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GCErEvy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=IDropValidator[jcu^name=IDropValidator.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GCErE_y0Edm185zvv0WM_Q" points="[0, -2778, 2659, 35997]$[-5901, -4365, -3242, 34410]$[-5901, -33496, -3242, 5279]$[-2673, -35084, -14, 3691]"/>
+      </edges>
+      <edges xmi:id="_GCErGfy0Edm185zvv0WM_Q" source="_F66TEPy0Edm185zvv0WM_Q" target="_FZ9iIPy0Edm185zvv0WM_Q">
+        <children xmi:id="_GCErHPy0Edm185zvv0WM_Q" visible="false" type="KindLabel">
+          <children xmi:id="_GCErHvy0Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorDropActionDelegate[jcu^name=NavigatorDropActionDelegate.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GCErIPy0Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorDropActionDelegate[jcu^name=NavigatorDropActionDelegate.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_GCErH_y0Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorDropActionDelegate[jcu^name=NavigatorDropActionDelegate.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorDropActionDelegate[jcu^name=NavigatorDropActionDelegate.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_GCErHfy0Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_GCErGvy0Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=NavigatorDropActionDelegate[jcu^name=NavigatorDropActionDelegate.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=CommonNavigatorDropAdapter[jcu^name=CommonNavigatorDropAdapter.java[jpack^name=org.eclipse.ui.navigator.views.internal.dnd[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_GCErG_y0Edm185zvv0WM_Q" points="[-13, 1997, -14, -5278]$[-13, 3584, -14, -3691]"/>
+      </edges>
+    </contents>
+    <contents xmi:type="notation:Diagram" xmi:id="_H10VAPy-Edm185zvv0WM_Q" type="Class" element="_SWX3UH5GEdm797szikHjoQ" name="Link-with-Editor">
+      <children xmi:id="_KDiw0Py-Edm185zvv0WM_Q" targetEdges="_NC76IPy-Edm185zvv0WM_Q">
+        <children xmi:id="_KDiw0_y-Edm185zvv0WM_Q" type="ImageCompartment">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ILinkHelper[jcu^name=ILinkHelper.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_KDiw1Py-Edm185zvv0WM_Q" width="530" height="530"/>
+        </children>
+        <children xmi:id="_KDiw1fy-Edm185zvv0WM_Q" type="Stereotype">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ILinkHelper[jcu^name=ILinkHelper.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_KDiw1vy-Edm185zvv0WM_Q" type="Kind">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ILinkHelper[jcu^name=ILinkHelper.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_KDiw1_y-Edm185zvv0WM_Q" type="Name">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ILinkHelper[jcu^name=ILinkHelper.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_KDiw2Py-Edm185zvv0WM_Q" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_KDiw2fy-Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ILinkHelper[jcu^name=ILinkHelper.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_KDiw2vy-Edm185zvv0WM_Q" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_KDiw2_y-Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ILinkHelper[jcu^name=ILinkHelper.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_KDiw3Py-Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_KDiw3fy-Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ILinkHelper[jcu^name=ILinkHelper.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLClassifierStyle" xmi:id="_KDiw0fy-Edm185zvv0WM_Q" showStereotype="Label" useClassifierShape="true"/>
+        <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ILinkHelper[jcu^name=ILinkHelper.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_KDiw0vy-Edm185zvv0WM_Q" x="5688" y="3439"/>
+      </children>
+      <children xmi:id="_M7rbkPy-Edm185zvv0WM_Q" sourceEdges="_NC1zgfy-Edm185zvv0WM_Q _NC76IPy-Edm185zvv0WM_Q _NC76KPy-Edm185zvv0WM_Q _NC76MPy-Edm185zvv0WM_Q" targetEdges="_NC76KPy-Edm185zvv0WM_Q">
+        <children xmi:id="_M7rbk_y-Edm185zvv0WM_Q" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_M7rblPy-Edm185zvv0WM_Q" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_M7rblfy-Edm185zvv0WM_Q" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_M7rblvy-Edm185zvv0WM_Q" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_M7rbl_y-Edm185zvv0WM_Q" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_M7rbmPy-Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_M7rbmfy-Edm185zvv0WM_Q" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_M7rbmvy-Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_M7rbm_y-Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_M7rbnPy-Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_M7rbnfy-Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_M7rbnvy-Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_M7rbkfy-Edm185zvv0WM_Q" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M7rbkvy-Edm185zvv0WM_Q" x="10176" y="3180"/>
+      </children>
+      <children xmi:id="_M9fZcPy-Edm185zvv0WM_Q" targetEdges="_NC1zgfy-Edm185zvv0WM_Q _NC76MPy-Edm185zvv0WM_Q">
+        <children xmi:id="_M9fZc_y-Edm185zvv0WM_Q" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=Descriptor[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_M9fZdPy-Edm185zvv0WM_Q" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_M9fZdfy-Edm185zvv0WM_Q" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=Descriptor[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        </children>
+        <children xmi:id="_M9fZdvy-Edm185zvv0WM_Q" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=Descriptor[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        </children>
+        <children xmi:id="_M9fZd_y-Edm185zvv0WM_Q" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_M9fZePy-Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=Descriptor[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        </children>
+        <children xmi:id="_M9fZefy-Edm185zvv0WM_Q" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_M9fZevy-Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=Descriptor[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        </children>
+        <children xmi:id="_M9fZe_y-Edm185zvv0WM_Q" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_M9fZfPy-Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=Descriptor[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        </children>
+        <children xmi:id="_M9fZffy-Edm185zvv0WM_Q" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_M9fZfvy-Edm185zvv0WM_Q"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=Descriptor[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_M9fZcfy-Edm185zvv0WM_Q" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=Descriptor[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_M9fZcvy-Edm185zvv0WM_Q" x="11561" y="10466"/>
+      </children>
+      <styles xmi:type="umlnotation:UMLDiagramStyle" xmi:id="_H10VAfy-Edm185zvv0WM_Q"/>
+      <edges xmi:id="_NC1zgfy-Edm185zvv0WM_Q" type="OwnedElement" source="_M7rbkPy-Edm185zvv0WM_Q" target="_M9fZcPy-Edm185zvv0WM_Q">
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_NC1zgvy-Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NC1zg_y-Edm185zvv0WM_Q" points="[0, 2857, 0, -6125]$[0, 4444, 0, -4538]"/>
+      </edges>
+      <edges xmi:id="_NC76IPy-Edm185zvv0WM_Q" source="_M7rbkPy-Edm185zvv0WM_Q" target="_KDiw0Py-Edm185zvv0WM_Q">
+        <children xmi:id="_NC76I_y-Edm185zvv0WM_Q" type="KindLabel">
+          <children xmi:id="_NC76Jfy-Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ILinkHelper[jcu^name=ILinkHelper.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_NC76J_y-Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ILinkHelper[jcu^name=ILinkHelper.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_NC76Jvy-Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ILinkHelper[jcu^name=ILinkHelper.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ILinkHelper[jcu^name=ILinkHelper.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_NC76JPy-Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_NC76Ify-Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ILinkHelper[jcu^name=ILinkHelper.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NC76Ivy-Edm185zvv0WM_Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      </edges>
+      <edges xmi:id="_NC76KPy-Edm185zvv0WM_Q" source="_M7rbkPy-Edm185zvv0WM_Q" target="_M7rbkPy-Edm185zvv0WM_Q">
+        <children xmi:id="_NC76K_y-Edm185zvv0WM_Q" type="KindLabel">
+          <children xmi:id="_NC76Lfy-Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_NC76L_y-Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_NC76Lvy-Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_NC76LPy-Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_NC76Kfy-Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NC76Kvy-Edm185zvv0WM_Q" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      </edges>
+      <edges xmi:id="_NC76MPy-Edm185zvv0WM_Q" source="_M7rbkPy-Edm185zvv0WM_Q" target="_M9fZcPy-Edm185zvv0WM_Q">
+        <children xmi:id="_NC76M_y-Edm185zvv0WM_Q" type="KindLabel">
+          <children xmi:id="_NC76Nfy-Edm185zvv0WM_Q" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=Descriptor[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
+          </children>
+          <children xmi:id="_NC76N_y-Edm185zvv0WM_Q" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=Descriptor[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
+          </children>
+          <children xmi:id="_NC76Nvy-Edm185zvv0WM_Q" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=Descriptor[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=Descriptor[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_NC76NPy-Edm185zvv0WM_Q" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_NC76Mfy-Edm185zvv0WM_Q" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=Descriptor[jsrctype^name=LinkHelperRegistry[jcu^name=LinkHelperRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NC76Mvy-Edm185zvv0WM_Q" points="[0, 2857, 0, -6125]$[0, 4444, 0, -4538]"/>
+      </edges>
+    </contents>
+    <contents xmi:type="notation:Diagram" xmi:id="_Mkq0UPy_Edm185zvv0WM_Q" type="Class" element="_SWX3UH5GEdm797szikHjoQ" name="Diagram2">
+      <children xmi:id="_HJWQ8P0IEdmIXMUQntzgXA" sourceEdges="_Hci5wP0IEdmIXMUQntzgXA _Hci5yP0IEdmIXMUQntzgXA" targetEdges="_coh54P0JEdmIXMUQntzgXA">
+        <children xmi:id="_HJok0P0IEdmIXMUQntzgXA" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_HJok0f0IEdmIXMUQntzgXA" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_HJok0v0IEdmIXMUQntzgXA" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HJok0_0IEdmIXMUQntzgXA" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HJok1P0IEdmIXMUQntzgXA" visible="false" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HJok1f0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HJok1v0IEdmIXMUQntzgXA" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HJok1_0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HJok2P0IEdmIXMUQntzgXA" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HJok2f0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HJok2v0IEdmIXMUQntzgXA" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_HJok2_0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_HJWQ8f0IEdmIXMUQntzgXA" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HJWQ8v0IEdmIXMUQntzgXA" x="22260" y="6678"/>
+      </children>
+      <children xmi:id="_HK4iAP0IEdmIXMUQntzgXA" sourceEdges="_HcpAZf0IEdmIXMUQntzgXA _HcpAbf0IEdmIXMUQntzgXA" targetEdges="_Hci5wP0IEdmIXMUQntzgXA _HcpAZf0IEdmIXMUQntzgXA">
+        <children xmi:id="_HK4iA_0IEdmIXMUQntzgXA" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_HK4iBP0IEdmIXMUQntzgXA" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_HK4iBf0IEdmIXMUQntzgXA" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HK4iBv0IEdmIXMUQntzgXA" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HK4iB_0IEdmIXMUQntzgXA" visible="false" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HK4iCP0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HK4iCf0IEdmIXMUQntzgXA" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HK4iCv0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HK4iC_0IEdmIXMUQntzgXA" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HK4iDP0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HK4iDf0IEdmIXMUQntzgXA" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_HK4iDv0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_HK4iAf0IEdmIXMUQntzgXA" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HK4iAv0IEdmIXMUQntzgXA" x="14746" y="6650"/>
+      </children>
+      <children xmi:id="_HLjQYP0IEdmIXMUQntzgXA" sourceEdges="_HcpAdf0IEdmIXMUQntzgXA _HcpAff0IEdmIXMUQntzgXA _HcvHAf0IEdmIXMUQntzgXA _HcvHCf0IEdmIXMUQntzgXA _HcvHEf0IEdmIXMUQntzgXA" targetEdges="_HcpAbf0IEdmIXMUQntzgXA _Hc1Nu_0IEdmIXMUQntzgXA">
+        <children xmi:id="_HLjQY_0IEdmIXMUQntzgXA" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_HLjQZP0IEdmIXMUQntzgXA" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_HLjQZf0IEdmIXMUQntzgXA" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HLjQZv0IEdmIXMUQntzgXA" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HLjQZ_0IEdmIXMUQntzgXA" visible="false" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HLjQaP0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HLjQaf0IEdmIXMUQntzgXA" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HLjQav0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HLjQa_0IEdmIXMUQntzgXA" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HLjQbP0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HLjQbf0IEdmIXMUQntzgXA" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_HLjQbv0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_HLjQYf0IEdmIXMUQntzgXA" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HLjQYv0IEdmIXMUQntzgXA" x="14946" y="13674"/>
+      </children>
+      <children xmi:id="_HSJAkP0IEdmIXMUQntzgXA" sourceEdges="_HcvHGf0IEdmIXMUQntzgXA" targetEdges="_Hc1Ns_0IEdmIXMUQntzgXA _Bl_rMP0KEdmIXMUQntzgXA">
+        <children xmi:id="_HSJAk_0IEdmIXMUQntzgXA" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_HSJAlP0IEdmIXMUQntzgXA" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_HSPHMP0IEdmIXMUQntzgXA" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HSPHMf0IEdmIXMUQntzgXA" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HSPHMv0IEdmIXMUQntzgXA" visible="false" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HSPHM_0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HSPHNP0IEdmIXMUQntzgXA" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HSPHNf0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HSPHNv0IEdmIXMUQntzgXA" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HSPHN_0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HSPHOP0IEdmIXMUQntzgXA" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_HSPHOf0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_HSJAkf0IEdmIXMUQntzgXA" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HSJAkv0IEdmIXMUQntzgXA" x="7314" y="27348"/>
+      </children>
+      <children xmi:id="_HStoUP0IEdmIXMUQntzgXA" targetEdges="_HcvHGf0IEdmIXMUQntzgXA">
+        <children xmi:id="_HStoU_0IEdmIXMUQntzgXA" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorExtensionFilter[jcu^name=NavigatorExtensionFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_HStoVP0IEdmIXMUQntzgXA" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_HStoVf0IEdmIXMUQntzgXA" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorExtensionFilter[jcu^name=NavigatorExtensionFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HStoVv0IEdmIXMUQntzgXA" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorExtensionFilter[jcu^name=NavigatorExtensionFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HStoV_0IEdmIXMUQntzgXA" visible="false" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HStoWP0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorExtensionFilter[jcu^name=NavigatorExtensionFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HStoWf0IEdmIXMUQntzgXA" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HStoWv0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorExtensionFilter[jcu^name=NavigatorExtensionFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HStoW_0IEdmIXMUQntzgXA" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HStoXP0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorExtensionFilter[jcu^name=NavigatorExtensionFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HSzu8P0IEdmIXMUQntzgXA" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_HSzu8f0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorExtensionFilter[jcu^name=NavigatorExtensionFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_HStoUf0IEdmIXMUQntzgXA" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorExtensionFilter[jcu^name=NavigatorExtensionFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HStoUv0IEdmIXMUQntzgXA" x="6996" y="22578"/>
+      </children>
+      <children xmi:id="_HTMJcP0IEdmIXMUQntzgXA" sourceEdges="_Hc1NoP0IEdmIXMUQntzgXA _Hc1No_0IEdmIXMUQntzgXA" targetEdges="_HcvHAf0IEdmIXMUQntzgXA _sp32kP0JEdmIXMUQntzgXA">
+        <children xmi:id="_HTMJc_0IEdmIXMUQntzgXA" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_HTMJdP0IEdmIXMUQntzgXA" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_HTMJdf0IEdmIXMUQntzgXA" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HTMJdv0IEdmIXMUQntzgXA" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HTMJd_0IEdmIXMUQntzgXA" visible="false" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HTMJeP0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HTMJef0IEdmIXMUQntzgXA" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HTMJev0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HTMJe_0IEdmIXMUQntzgXA" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HTMJfP0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HTMJff0IEdmIXMUQntzgXA" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_HTMJfv0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_HTMJcf0IEdmIXMUQntzgXA" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HTMJcv0IEdmIXMUQntzgXA" x="13722" y="22584"/>
+      </children>
+      <children xmi:id="_HT8-cP0IEdmIXMUQntzgXA" targetEdges="_HcvHCf0IEdmIXMUQntzgXA _Hc1NoP0IEdmIXMUQntzgXA _Hc1No_0IEdmIXMUQntzgXA">
+        <children xmi:id="_HT8-c_0IEdmIXMUQntzgXA" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_HT8-dP0IEdmIXMUQntzgXA" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_HT8-df0IEdmIXMUQntzgXA" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        </children>
+        <children xmi:id="_HT8-dv0IEdmIXMUQntzgXA" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        </children>
+        <children xmi:id="_HT8-d_0IEdmIXMUQntzgXA" visible="false" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HT8-eP0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        </children>
+        <children xmi:id="_HT8-ef0IEdmIXMUQntzgXA" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HT8-ev0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        </children>
+        <children xmi:id="_HT8-e_0IEdmIXMUQntzgXA" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HT8-fP0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        </children>
+        <children xmi:id="_HT8-ff0IEdmIXMUQntzgXA" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_HT8-fv0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_HT8-cf0IEdmIXMUQntzgXA" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HT8-cv0IEdmIXMUQntzgXA" x="13992" y="27030"/>
+      </children>
+      <children xmi:id="_HVAHUP0IEdmIXMUQntzgXA" sourceEdges="_Hc1Nq_0IEdmIXMUQntzgXA _Hc1Ns_0IEdmIXMUQntzgXA" targetEdges="_Hci5yP0IEdmIXMUQntzgXA _HcpAff0IEdmIXMUQntzgXA _Hc1Nq_0IEdmIXMUQntzgXA _Hc7UQP0IEdmIXMUQntzgXA">
+        <children xmi:id="_HVAHU_0IEdmIXMUQntzgXA" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_HVAHVP0IEdmIXMUQntzgXA" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_HVAHVf0IEdmIXMUQntzgXA" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HVAHVv0IEdmIXMUQntzgXA" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HVAHV_0IEdmIXMUQntzgXA" visible="false" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HVAHWP0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HVAHWf0IEdmIXMUQntzgXA" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HVAHWv0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HVAHW_0IEdmIXMUQntzgXA" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HVAHXP0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HVAHXf0IEdmIXMUQntzgXA" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_HVAHXv0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_HVAHUf0IEdmIXMUQntzgXA" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HVAHUv0IEdmIXMUQntzgXA" x="6042" y="14628"/>
+      </children>
+      <children xmi:id="_HXk6MP0IEdmIXMUQntzgXA" targetEdges="_HcvHEf0IEdmIXMUQntzgXA">
+        <children xmi:id="_HXk6M_0IEdmIXMUQntzgXA" type="ImageCompartment">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ExtensionFilterProvider[jcu^name=ExtensionFilterProvider.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_HXk6NP0IEdmIXMUQntzgXA" width="530" height="530"/>
+        </children>
+        <children xmi:id="_HXk6Nf0IEdmIXMUQntzgXA" type="Stereotype">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ExtensionFilterProvider[jcu^name=ExtensionFilterProvider.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HXk6Nv0IEdmIXMUQntzgXA" type="Kind">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ExtensionFilterProvider[jcu^name=ExtensionFilterProvider.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HXk6N_0IEdmIXMUQntzgXA" type="Name">
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ExtensionFilterProvider[jcu^name=ExtensionFilterProvider.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HXk6OP0IEdmIXMUQntzgXA" visible="false" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HXk6Of0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ExtensionFilterProvider[jcu^name=ExtensionFilterProvider.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HXk6Ov0IEdmIXMUQntzgXA" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HXk6O_0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ExtensionFilterProvider[jcu^name=ExtensionFilterProvider.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HXk6PP0IEdmIXMUQntzgXA" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HXk6Pf0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ExtensionFilterProvider[jcu^name=ExtensionFilterProvider.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLClassifierStyle" xmi:id="_HXk6Mf0IEdmIXMUQntzgXA" showStereotype="Label" useClassifierShape="true"/>
+        <element xmi:type="uml:Interface" href="vizref:///#jsrctype^vcore.target=uml2.Interface^name=ExtensionFilterProvider[jcu^name=ExtensionFilterProvider.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HXk6Mv0IEdmIXMUQntzgXA" x="21690" y="22588"/>
+      </children>
+      <children xmi:id="_HYWWQP0IEdmIXMUQntzgXA" sourceEdges="_Hc1Nu_0IEdmIXMUQntzgXA _Hc7UQP0IEdmIXMUQntzgXA" targetEdges="_HcpAdf0IEdmIXMUQntzgXA _ifGrsP0JEdmIXMUQntzgXA">
+        <children xmi:id="_HYWWQ_0IEdmIXMUQntzgXA" type="ImageCompartment">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+          <layoutConstraint xmi:type="notation:Size" xmi:id="_HYWWRP0IEdmIXMUQntzgXA" width="1320" height="1320"/>
+        </children>
+        <children xmi:id="_HYWWRf0IEdmIXMUQntzgXA" type="Stereotype">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HYcc4P0IEdmIXMUQntzgXA" type="Name">
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HYcc4f0IEdmIXMUQntzgXA" visible="false" type="AttributeCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HYcc4v0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HYcc4_0IEdmIXMUQntzgXA" type="OperationCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HYcc5P0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HYcc5f0IEdmIXMUQntzgXA" visible="false" type="SignalCompartment">
+          <styles xmi:type="umlnotation:UMLListCompartmentStyle" xmi:id="_HYcc5v0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <children xmi:id="_HYcc5_0IEdmIXMUQntzgXA" visible="false" type="StructureCompartment">
+          <styles xmi:type="umlnotation:UMLShapeCompartmentStyle" xmi:id="_HYcc6P0IEdmIXMUQntzgXA"/>
+          <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_HYWWQf0IEdmIXMUQntzgXA" showStereotype="Label"/>
+        <element xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HYWWQv0IEdmIXMUQntzgXA" x="6210" y="6661"/>
+      </children>
+      <children xmi:id="_W3B1UP0JEdmIXMUQntzgXA" sourceEdges="_coh54P0JEdmIXMUQntzgXA" element="_WrLxsP0JEdmIXMUQntzgXA">
+        <children xmi:id="_W3H78P0JEdmIXMUQntzgXA" type="CommentBody" element="_WrLxsP0JEdmIXMUQntzgXA"/>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_W3B1Uf0JEdmIXMUQntzgXA" fillColor="16763850" lineColor="16744576" showStereotype="Label"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_W3B1Uv0JEdmIXMUQntzgXA" x="22260" y="3498" width="4445" height="2222"/>
+      </children>
+      <children xmi:id="_eM52sP0JEdmIXMUQntzgXA" sourceEdges="_ifGrsP0JEdmIXMUQntzgXA" element="_eMhcMP0JEdmIXMUQntzgXA">
+        <children xmi:id="_eM52s_0JEdmIXMUQntzgXA" type="CommentBody" element="_eMhcMP0JEdmIXMUQntzgXA"/>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_eM52sf0JEdmIXMUQntzgXA" fillColor="16763850" lineColor="16744576" showStereotype="Label"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eM52sv0JEdmIXMUQntzgXA" x="952" y="6667" width="4127" height="2539"/>
+      </children>
+      <children xmi:id="_lGtnIP0JEdmIXMUQntzgXA" sourceEdges="_sp32kP0JEdmIXMUQntzgXA" element="_lGVMoP0JEdmIXMUQntzgXA">
+        <children xmi:id="_lGtnI_0JEdmIXMUQntzgXA" type="CommentBody" element="_lGVMoP0JEdmIXMUQntzgXA"/>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_lGtnIf0JEdmIXMUQntzgXA" fillColor="16763850" lineColor="16744576" showStereotype="Label"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lGtnIv0JEdmIXMUQntzgXA" x="21942" y="24804" width="5397" height="2248"/>
+      </children>
+      <children xmi:id="_-xrwgP0JEdmIXMUQntzgXA" sourceEdges="_Bl_rMP0KEdmIXMUQntzgXA" element="_-xTWAP0JEdmIXMUQntzgXA">
+        <children xmi:id="_-xrwg_0JEdmIXMUQntzgXA" type="CommentBody" element="_-xTWAP0JEdmIXMUQntzgXA"/>
+        <styles xmi:type="umlnotation:UMLShapeStyle" xmi:id="_-xrwgf0JEdmIXMUQntzgXA" fillColor="16763850" lineColor="16744576" showStereotype="Label"/>
+        <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-xrwgv0JEdmIXMUQntzgXA" x="7314" y="30210" width="3492" height="1587"/>
+      </children>
+      <styles xmi:type="umlnotation:UMLDiagramStyle" xmi:id="_Mkq0Ufy_Edm185zvv0WM_Q"/>
+      <edges xmi:id="_Hci5wP0IEdmIXMUQntzgXA" source="_HJWQ8P0IEdmIXMUQntzgXA" target="_HK4iAP0IEdmIXMUQntzgXA">
+        <children xmi:id="_Hci5w_0IEdmIXMUQntzgXA" type="KindLabel">
+          <children xmi:id="_Hci5xf0IEdmIXMUQntzgXA" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_Hci5x_0IEdmIXMUQntzgXA" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_Hci5xv0IEdmIXMUQntzgXA" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_Hci5xP0IEdmIXMUQntzgXA" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_Hci5wf0IEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Hci5wv0IEdmIXMUQntzgXA" points="[0, 1799, 4008, -5279]$[-4022, 3387, -14, -3691]"/>
+      </edges>
+      <edges xmi:id="_Hci5yP0IEdmIXMUQntzgXA" source="_HJWQ8P0IEdmIXMUQntzgXA" target="_HVAHUP0IEdmIXMUQntzgXA">
+        <children xmi:id="_HcpAYP0IEdmIXMUQntzgXA" type="KindLabel">
+          <children xmi:id="_HcpAYv0IEdmIXMUQntzgXA" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_HcpAZP0IEdmIXMUQntzgXA" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_HcpAY_0IEdmIXMUQntzgXA" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_HcpAYf0IEdmIXMUQntzgXA" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_Hci5yf0IEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Hci5yv0IEdmIXMUQntzgXA" points="[0, 1799, 12078, -28509]$[0, 21009, 12078, -9299]$[-12092, 22595, -14, -7713]"/>
+      </edges>
+      <edges xmi:id="_HcpAZf0IEdmIXMUQntzgXA" source="_HK4iAP0IEdmIXMUQntzgXA" target="_HK4iAP0IEdmIXMUQntzgXA">
+        <children xmi:id="_HcpAaP0IEdmIXMUQntzgXA" type="KindLabel">
+          <children xmi:id="_HcpAav0IEdmIXMUQntzgXA" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_HcpAbP0IEdmIXMUQntzgXA" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_HcpAa_0IEdmIXMUQntzgXA" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_HcpAaf0IEdmIXMUQntzgXA" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_HcpAZv0IEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HcpAZ_0IEdmIXMUQntzgXA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      </edges>
+      <edges xmi:id="_HcpAbf0IEdmIXMUQntzgXA" source="_HK4iAP0IEdmIXMUQntzgXA" target="_HLjQYP0IEdmIXMUQntzgXA">
+        <children xmi:id="_HcpAcP0IEdmIXMUQntzgXA" type="KindLabel">
+          <children xmi:id="_HcpAcv0IEdmIXMUQntzgXA" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_HcpAdP0IEdmIXMUQntzgXA" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_HcpAc_0IEdmIXMUQntzgXA" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_HcpAcf0IEdmIXMUQntzgXA" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_HcpAbv0IEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterRegistryManager[jcu^name=ExtensionFilterRegistryManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HcpAb_0IEdmIXMUQntzgXA" points="[-14, 3690, 1442, -5914]$[-1469, 5278, -13, -4326]"/>
+      </edges>
+      <edges xmi:id="_HcpAdf0IEdmIXMUQntzgXA" source="_HLjQYP0IEdmIXMUQntzgXA" target="_HYWWQP0IEdmIXMUQntzgXA">
+        <children xmi:id="_HcpAeP0IEdmIXMUQntzgXA" type="KindLabel">
+          <children xmi:id="_HcpAev0IEdmIXMUQntzgXA" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_HcpAfP0IEdmIXMUQntzgXA" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_HcpAe_0IEdmIXMUQntzgXA" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_HcpAef0IEdmIXMUQntzgXA" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_HcpAdv0IEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HcpAd_0IEdmIXMUQntzgXA" points="[-13, -4326, 6614, 5278]$[-6628, -5914, -1, 3690]"/>
+      </edges>
+      <edges xmi:id="_HcpAff0IEdmIXMUQntzgXA" source="_HLjQYP0IEdmIXMUQntzgXA" target="_HVAHUP0IEdmIXMUQntzgXA">
+        <children xmi:id="_HcpAgP0IEdmIXMUQntzgXA" type="KindLabel">
+          <children xmi:id="_HcpAgv0IEdmIXMUQntzgXA" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_HcvHAP0IEdmIXMUQntzgXA" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_HcpAg_0IEdmIXMUQntzgXA" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_HcpAgf0IEdmIXMUQntzgXA" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_HcpAfv0IEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HcpAf_0IEdmIXMUQntzgXA" points="[-13, 4326, 6601, -9300]$[-6628, 5913, -14, -7713]"/>
+      </edges>
+      <edges xmi:id="_HcvHAf0IEdmIXMUQntzgXA" source="_HLjQYP0IEdmIXMUQntzgXA" target="_HTMJcP0IEdmIXMUQntzgXA">
+        <children xmi:id="_HcvHBP0IEdmIXMUQntzgXA" type="KindLabel">
+          <children xmi:id="_HcvHBv0IEdmIXMUQntzgXA" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_HcvHCP0IEdmIXMUQntzgXA" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_HcvHB_0IEdmIXMUQntzgXA" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_HcvHBf0IEdmIXMUQntzgXA" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_HcvHAv0IEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HcvHA_0IEdmIXMUQntzgXA" points="[-13, 4326, -529, -9300]$[516, 5913, 0, -7713]"/>
+      </edges>
+      <edges xmi:id="_HcvHCf0IEdmIXMUQntzgXA" source="_HLjQYP0IEdmIXMUQntzgXA" target="_HT8-cP0IEdmIXMUQntzgXA">
+        <children xmi:id="_HcvHDP0IEdmIXMUQntzgXA" type="KindLabel">
+          <children xmi:id="_HcvHDv0IEdmIXMUQntzgXA" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
+          </children>
+          <children xmi:id="_HcvHEP0IEdmIXMUQntzgXA" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
+          </children>
+          <children xmi:id="_HcvHD_0IEdmIXMUQntzgXA" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_HcvHDf0IEdmIXMUQntzgXA" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_HcvHCv0IEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HcvHC_0IEdmIXMUQntzgXA" points="[-13, 4326, -2514, -20386]$[4485, 5913, 1984, -18799]$[4485, 21339, 1984, -3373]$[2500, 22926, -1, -1786]"/>
+      </edges>
+      <edges xmi:id="_HcvHEf0IEdmIXMUQntzgXA" source="_HLjQYP0IEdmIXMUQntzgXA" target="_HXk6MP0IEdmIXMUQntzgXA">
+        <children xmi:id="_HcvHFP0IEdmIXMUQntzgXA" type="KindLabel">
+          <children xmi:id="_HcvHFv0IEdmIXMUQntzgXA" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterProvider[jcu^name=ExtensionFilterProvider.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_HcvHGP0IEdmIXMUQntzgXA" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterProvider[jcu^name=ExtensionFilterProvider.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_HcvHF_0IEdmIXMUQntzgXA" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterProvider[jcu^name=ExtensionFilterProvider.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterProvider[jcu^name=ExtensionFilterProvider.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_HcvHFf0IEdmIXMUQntzgXA" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_HcvHEv0IEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterProvider[jcu^name=ExtensionFilterProvider.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HcvHE_0IEdmIXMUQntzgXA" points="[-13, 4326, -7726, -9300]$[7713, 5913, 0, -7713]"/>
+      </edges>
+      <edges xmi:id="_HcvHGf0IEdmIXMUQntzgXA" source="_HSJAkP0IEdmIXMUQntzgXA" target="_HStoUP0IEdmIXMUQntzgXA">
+        <children xmi:id="_HcvHHP0IEdmIXMUQntzgXA" type="NameLabel">
+          <children xmi:id="_HcvHHv0IEdmIXMUQntzgXA" type="Stereotype">
+            <element xmi:type="uml:Generalization" href="vizref:///#jgen^vcore.target=uml2.Generalization[jsrctype^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorExtensionFilter[jcu^name=NavigatorExtensionFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_HcvHH_0IEdmIXMUQntzgXA" type="Name">
+            <element xmi:type="uml:Generalization" href="vizref:///#jgen^vcore.target=uml2.Generalization[jsrctype^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorExtensionFilter[jcu^name=NavigatorExtensionFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Generalization" href="vizref:///#jgen^vcore.target=uml2.Generalization[jsrctype^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorExtensionFilter[jcu^name=NavigatorExtensionFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_HcvHHf0IEdmIXMUQntzgXA" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_HcvHGv0IEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Generalization" href="vizref:///#jgen^vcore.target=uml2.Generalization[jsrctype^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorExtensionFilter[jcu^name=NavigatorExtensionFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HcvHG_0IEdmIXMUQntzgXA" points="[0, -1786, 3056, 9300]$[-3070, -3373, -14, 7713]"/>
+      </edges>
+      <edges xmi:id="_Hc1NoP0IEdmIXMUQntzgXA" type="OwnedElement" source="_HTMJcP0IEdmIXMUQntzgXA" target="_HT8-cP0IEdmIXMUQntzgXA">
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_Hc1Nof0IEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Hc1Nov0IEdmIXMUQntzgXA" points="[0, 7713, -1985, -3373]$[1984, 9300, -1, -1786]"/>
+      </edges>
+      <edges xmi:id="_Hc1No_0IEdmIXMUQntzgXA" source="_HTMJcP0IEdmIXMUQntzgXA" target="_HT8-cP0IEdmIXMUQntzgXA">
+        <children xmi:id="_Hc1Npv0IEdmIXMUQntzgXA" type="KindLabel">
+          <children xmi:id="_Hc1NqP0IEdmIXMUQntzgXA" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
+          </children>
+          <children xmi:id="_Hc1Nqv0IEdmIXMUQntzgXA" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
+          </children>
+          <children xmi:id="_Hc1Nqf0IEdmIXMUQntzgXA" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_Hc1Np_0IEdmIXMUQntzgXA" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_Hc1NpP0IEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ThirdPartyFilterProviderDescriptor[jsrctype^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Hc1Npf0IEdmIXMUQntzgXA" points="[0, 7713, -1985, -3373]$[1984, 9300, -1, -1786]"/>
+      </edges>
+      <edges xmi:id="_Hc1Nq_0IEdmIXMUQntzgXA" source="_HVAHUP0IEdmIXMUQntzgXA" target="_HVAHUP0IEdmIXMUQntzgXA">
+        <children xmi:id="_Hc1Nrv0IEdmIXMUQntzgXA" type="KindLabel">
+          <children xmi:id="_Hc1NsP0IEdmIXMUQntzgXA" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_Hc1Nsv0IEdmIXMUQntzgXA" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_Hc1Nsf0IEdmIXMUQntzgXA" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_Hc1Nr_0IEdmIXMUQntzgXA" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_Hc1NrP0IEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Hc1Nrf0IEdmIXMUQntzgXA" points="[0, 0, 0, 0]$[0, 0, 0, 0]"/>
+      </edges>
+      <edges xmi:id="_Hc1Ns_0IEdmIXMUQntzgXA" source="_HVAHUP0IEdmIXMUQntzgXA" target="_HSJAkP0IEdmIXMUQntzgXA">
+        <children xmi:id="_Hc1Ntv0IEdmIXMUQntzgXA" type="KindLabel">
+          <children xmi:id="_Hc1NuP0IEdmIXMUQntzgXA" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_Hc1Nuv0IEdmIXMUQntzgXA" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_Hc1Nuf0IEdmIXMUQntzgXA" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_Hc1Nt_0IEdmIXMUQntzgXA" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_Hc1NtP0IEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Hc1Ntf0IEdmIXMUQntzgXA" points="[-2566, 27, -3519, -10372]$[-3704, 27, -4657, -10372]$[-3704, 10425, -4657, 26]$[-1296, 10425, -2249, 26]"/>
+      </edges>
+      <edges xmi:id="_Hc1Nu_0IEdmIXMUQntzgXA" source="_HYWWQP0IEdmIXMUQntzgXA" target="_HLjQYP0IEdmIXMUQntzgXA">
+        <children xmi:id="_Hc1Nvv0IEdmIXMUQntzgXA" type="KindLabel">
+          <children xmi:id="_Hc1NwP0IEdmIXMUQntzgXA" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_Hc1Nwv0IEdmIXMUQntzgXA" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_Hc1Nwf0IEdmIXMUQntzgXA" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_Hc1Nv_0IEdmIXMUQntzgXA" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_Hc1NvP0IEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterViewerRegistry[jcu^name=ExtensionFilterViewerRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Hc1Nvf0IEdmIXMUQntzgXA" points="[-1, 3690, -6628, -5914]$[6614, 5278, -13, -4326]"/>
+      </edges>
+      <edges xmi:id="_Hc7UQP0IEdmIXMUQntzgXA" source="_HYWWQP0IEdmIXMUQntzgXA" target="_HVAHUP0IEdmIXMUQntzgXA">
+        <children xmi:id="_Hc7UQ_0IEdmIXMUQntzgXA" type="KindLabel">
+          <children xmi:id="_Hc7URf0IEdmIXMUQntzgXA" type="Stereotype">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_Hc7UR_0IEdmIXMUQntzgXA" type="Kind">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <children xmi:id="_Hc7URv0IEdmIXMUQntzgXA" type="Name">
+            <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          </children>
+          <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+          <layoutConstraint xmi:type="notation:Location" xmi:id="_Hc7URP0IEdmIXMUQntzgXA" y="-185"/>
+        </children>
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_Hc7UQf0IEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
+        <element xmi:type="uml:Usage" href="vizref:///#jdep^vcore.target=uml2.Usage[jsrctype^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]][jsrctype^name=ExtensionFilterDescriptor[jcu^name=ExtensionFilterDescriptor.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]]"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Hc7UQv0IEdmIXMUQntzgXA" points="[-1, 3690, -14, -19540]$[-1, 15517, -14, -7713]"/>
+      </edges>
+      <edges xmi:id="_coh54P0JEdmIXMUQntzgXA" type="Reference" source="_W3B1UP0JEdmIXMUQntzgXA" target="_HJWQ8P0IEdmIXMUQntzgXA">
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_coh54f0JEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_coh54v0JEdmIXMUQntzgXA" points="[-85, 8, 261, -24]$[-129, 8, 217, -24]"/>
+      </edges>
+      <edges xmi:id="_ifGrsP0JEdmIXMUQntzgXA" type="Reference" source="_eM52sP0JEdmIXMUQntzgXA" target="_HYWWQP0IEdmIXMUQntzgXA">
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_ifGrsf0JEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_ifGrsv0JEdmIXMUQntzgXA" points="[79, 10, -194, -80]$[222, -49, -51, -139]"/>
+      </edges>
+      <edges xmi:id="_sp32kP0JEdmIXMUQntzgXA" type="Reference" source="_lGtnIP0JEdmIXMUQntzgXA" target="_HTMJcP0IEdmIXMUQntzgXA">
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_sp32kf0JEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_sp32kv0JEdmIXMUQntzgXA" points="[-103, 1, 232, 62]$[-264, 38, 71, 99]"/>
+      </edges>
+      <edges xmi:id="_Bl_rMP0KEdmIXMUQntzgXA" type="Reference" source="_-xrwgP0JEdmIXMUQntzgXA" target="_HSJAkP0IEdmIXMUQntzgXA">
+        <styles xmi:type="umlnotation:UMLConnectorStyle" xmi:id="_Bl_rMf0KEdmIXMUQntzgXA" routing="Rectilinear" showStereotype="Text"/>
+        <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Bl_rMv0KEdmIXMUQntzgXA" points="[67, 28, -126, -35]$[108, 56, -85, -7]"/>
+      </edges>
+    </contents>
+  </eAnnotations>
+  <ownedComment xmi:id="_1rBVoIO1Edmyd--cXlrqyQ" body="The Logical Extension uses various classes to supply information to the Common Navigator. See the extension point: &#xD;&#xA;org.eclipse.ui.navigator.views&#xD;&#xA; for more details."/>
+  <ownedComment xmi:id="_mJViYPy0Edm185zvv0WM_Q" body="The CNM handles the logic for selection listeners and menus for the CommonNavigator view part.">
+    <annotatedElement xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonNavigatorManager[jcu^name=CommonNavigatorManager.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+  </ownedComment>
+  <ownedComment xmi:id="_ADTKAPy1Edm185zvv0WM_Q" body="The NAS can notify interested parties when Content Extensions are initialized for a specific instance of the CommonNavigator. (Used to force the initialization of CommonActionProviders for the various extensions).">
+    <annotatedElement xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActivationService[jcu^name=NavigatorActivationService.java[jpack^name=org.eclipse.ui.navigator.views.internal.extensions[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+  </ownedComment>
+  <ownedComment xmi:id="_MRe-IPy1Edm185zvv0WM_Q" body="The NAS handles the work of allowing CommonActionProviders to inject items into the context menu of the viewer and to update the action bars as the user changes their selection in the Common Navigator.">
+    <annotatedElement xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorActionService[jcu^name=NavigatorActionService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+  </ownedComment>
+  <ownedComment xmi:id="_XIwpsPy1Edm185zvv0WM_Q" body="The NCS is the heart of the framework for content. Any viewer can use a instance of the NCS. The instance does not have a dependency to an Eclipse view part, so any StructuredViewer could use the service. The NCS will create specific Content Providers and Label Providers for use in any viewer. Each of the provider instances are tied to the NCS that created them.">
+    <annotatedElement xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentService[jcu^name=NavigatorContentService.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+  </ownedComment>
+  <ownedComment xmi:id="_vAWw8Py1Edm185zvv0WM_Q" body="Used to supply a viewer with content or labels">
+    <annotatedElement xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceContentProvider[jcu^name=NavigatorContentServiceContentProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+    <annotatedElement xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorContentServiceLabelProvider[jcu^name=NavigatorContentServiceLabelProvider.java[jpack^name=org.eclipse.ui.navigator.views[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+  </ownedComment>
+  <ownedComment xmi:id="_WrLxsP0JEdmIXMUQntzgXA" body="Integrates the filters from extensions. There is one CommonViewerFilter per viewer, not per filter.">
+    <annotatedElement xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=CommonViewerFilter[jcu^name=CommonViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+  </ownedComment>
+  <ownedComment xmi:id="_eMhcMP0JEdmIXMUQntzgXA" body="Handles activating filters and managing the persistance and restoration of these activations.">
+    <annotatedElement xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ExtensionFilterActivationManager[jcu^name=ExtensionFilterActivationManager.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+  </ownedComment>
+  <ownedComment xmi:id="_lGVMoP0JEdmIXMUQntzgXA" body="Provides integration point for Resource Navigator and Package Explorer filters. Likely to be removed.">
+    <annotatedElement xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=ThirdPartyFilterProviderRegistry[jcu^name=ThirdPartyFilterProviderRegistry.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+  </ownedComment>
+  <ownedComment xmi:id="_-xTWAP0JEdmIXMUQntzgXA" body="Used to wrap filters provided from ThirdPartyProviders">
+    <annotatedElement xmi:type="uml:Class" href="vizref:///#jsrctype^vcore.target=uml2.Class^name=NavigatorViewerFilter[jcu^name=NavigatorViewerFilter.java[jpack^name=org.eclipse.ui.navigator.views.internal.filters[jsrcroot^srcfolder=src-navigator[project^vcore.target=uml2.Model^id=org.eclipse.ui.navigator.views]]]]"/>
+  </ownedComment>
+  <packageImport xmi:type="uml:ProfileApplication" xmi:id="_SWX3VH5GEdm797szikHjoQ">
+    <eAnnotations xmi:id="_SWX3VX5GEdm797szikHjoQ" source="attributes">
+      <details xmi:id="_SWX3Vn5GEdm797szikHjoQ" key="version" value="0"/>
+    </eAnnotations>
+    <importedPackage xmi:type="uml:Profile" href="pathmap://UML2_PROFILES/Basic.profile.uml2#_6mFRgK86Edih9-GG5afQ0g"/>
+    <importedProfile href="pathmap://UML2_PROFILES/Basic.profile.uml2#_6mFRgK86Edih9-GG5afQ0g"/>
+  </packageImport>
+  <packageImport xmi:type="uml:ProfileApplication" xmi:id="_SWX3V35GEdm797szikHjoQ">
+    <eAnnotations xmi:id="_SWX3WH5GEdm797szikHjoQ" source="attributes">
+      <details xmi:id="_SWX3WX5GEdm797szikHjoQ" key="version" value="0"/>
+    </eAnnotations>
+    <importedPackage xmi:type="uml:Profile" href="pathmap://UML2_PROFILES/Intermediate.profile.uml2#_Cz7csK87Edih9-GG5afQ0g"/>
+    <importedProfile href="pathmap://UML2_PROFILES/Intermediate.profile.uml2#_Cz7csK87Edih9-GG5afQ0g"/>
+  </packageImport>
+  <packageImport xmi:type="uml:ProfileApplication" xmi:id="_SWX3Wn5GEdm797szikHjoQ">
+    <eAnnotations xmi:id="_SWX3W35GEdm797szikHjoQ" source="attributes">
+      <details xmi:id="_SWX3XH5GEdm797szikHjoQ" key="version" value="0"/>
+    </eAnnotations>
+    <importedPackage xmi:type="uml:Profile" href="pathmap://UML2_PROFILES/Complete.profile.uml2#_M7pTkK87Edih9-GG5afQ0g"/>
+    <importedProfile href="pathmap://UML2_PROFILES/Complete.profile.uml2#_M7pTkK87Edih9-GG5afQ0g"/>
+  </packageImport>
+  <packageImport xmi:type="uml:ProfileApplication" xmi:id="_SWX3XX5GEdm797szikHjoQ">
+    <eAnnotations xmi:id="_SWX3Xn5GEdm797szikHjoQ" source="attributes">
+      <details xmi:id="_SWX3X35GEdm797szikHjoQ" key="version" value="0"/>
+    </eAnnotations>
+    <importedPackage xmi:type="uml:Profile" href="pathmap://UML2_MSL_PROFILES/Default.epx#_a_S3wNWLEdiy4IqP8whjFA?Default"/>
+    <importedProfile href="pathmap://UML2_MSL_PROFILES/Default.epx#_a_S3wNWLEdiy4IqP8whjFA?Default"/>
+  </packageImport>
+  <packageImport xmi:type="uml:ProfileApplication" xmi:id="_SWX3YH5GEdm797szikHjoQ">
+    <eAnnotations xmi:id="_SWX3YX5GEdm797szikHjoQ" source="attributes">
+      <details xmi:id="_SWX3Yn5GEdm797szikHjoQ" key="version" value="0"/>
+    </eAnnotations>
+    <importedPackage xmi:type="uml:Profile" href="pathmap://UML2_MSL_PROFILES/Deployment.epx#_vjbuwOvHEdiDX5bji0iVSA?Deployment"/>
+    <importedProfile href="pathmap://UML2_MSL_PROFILES/Deployment.epx#_vjbuwOvHEdiDX5bji0iVSA?Deployment"/>
+  </packageImport>
+  <packageImport xmi:id="_SWX3Y35GEdm797szikHjoQ">
+    <importedPackage xmi:type="uml:Model" href="pathmap://UML2_LIBRARIES/UML2PrimitiveTypes.library.uml2#_EfRZoK86EdieaYgxtVWN8Q"/>
+  </packageImport>
+  <ownedMember xmi:type="uml:Component" xmi:id="_9330kIOwEdmyd--cXlrqyQ" name="ITreeContentProvider"/>
+  <ownedMember xmi:type="uml:Component" xmi:id="_X4I4gIOxEdmyd--cXlrqyQ" name="ICommonLabelProvider" clientDependency="_gSmjYIOxEdmyd--cXlrqyQ">
+    <realization xmi:id="_gSmjYIOxEdmyd--cXlrqyQ" client="_X4I4gIOxEdmyd--cXlrqyQ" supplier="_b6MYsIOxEdmyd--cXlrqyQ" realizingClassifier="_b6MYsIOxEdmyd--cXlrqyQ">
+      <mapping xmi:id="_gSmjYYOxEdmyd--cXlrqyQ"/>
+    </realization>
+  </ownedMember>
+  <ownedMember xmi:type="uml:Component" xmi:id="_b6MYsIOxEdmyd--cXlrqyQ" name="ILabelProvider"/>
+  <ownedMember xmi:type="uml:Component" xmi:id="_jhjysIOxEdmyd--cXlrqyQ" name="IOpenListener"/>
+  <ownedMember xmi:type="uml:Component" xmi:id="_kc3kYIOxEdmyd--cXlrqyQ" name="ICommonOpenListener" clientDependency="_mI-g4IOxEdmyd--cXlrqyQ">
+    <realization xmi:id="_mI-g4IOxEdmyd--cXlrqyQ" client="_kc3kYIOxEdmyd--cXlrqyQ" supplier="_jhjysIOxEdmyd--cXlrqyQ" realizingClassifier="_jhjysIOxEdmyd--cXlrqyQ">
+      <mapping xmi:id="_mI-g4YOxEdmyd--cXlrqyQ"/>
+    </realization>
+  </ownedMember>
+  <ownedMember xmi:type="uml:Component" xmi:id="_mol1EIOxEdmyd--cXlrqyQ" name="ICommonActionProvider"/>
+  <ownedMember xmi:type="uml:Component" xmi:id="_4TXNsIOxEdmyd--cXlrqyQ" name="Logical Extension" clientDependency="_AbfLYIOyEdmyd--cXlrqyQ _DeUDMIOyEdmyd--cXlrqyQ _JsSBUIOyEdmyd--cXlrqyQ _Lc-i4IOyEdmyd--cXlrqyQ _ITURAIO3Edmyd--cXlrqyQ">
+    <ownedAttribute xmi:id="_Ssv8QIOyEdmyd--cXlrqyQ" name="id">
+      <type xmi:type="uml:PrimitiveType" href="pathmap://UML2_LIBRARIES/UML2PrimitiveTypes.library.uml2#_IXlH8a86EdieaYgxtVWN8Q"/>
+    </ownedAttribute>
+    <ownedAttribute xmi:id="_T8lzgIOyEdmyd--cXlrqyQ" name="priority">
+      <type xmi:type="uml:PrimitiveType" href="pathmap://UML2_LIBRARIES/UML2PrimitiveTypes.library.uml2#_IXlH8a86EdieaYgxtVWN8Q"/>
+    </ownedAttribute>
+    <ownedAttribute xmi:id="_sTa0cIOyEdmyd--cXlrqyQ" name="name">
+      <type xmi:type="uml:PrimitiveType" href="pathmap://UML2_LIBRARIES/UML2PrimitiveTypes.library.uml2#_IXlH8a86EdieaYgxtVWN8Q"/>
+    </ownedAttribute>
+    <ownedAttribute xmi:id="_BP7DkIOzEdmyd--cXlrqyQ" name="enabledByDefault">
+      <type xmi:type="uml:PrimitiveType" href="pathmap://UML2_LIBRARIES/UML2PrimitiveTypes.library.uml2#_IXfBUK86EdieaYgxtVWN8Q"/>
+    </ownedAttribute>
+    <ownedAttribute xmi:id="_LqEuQIOzEdmyd--cXlrqyQ" name="icon">
+      <type xmi:type="uml:PrimitiveType" href="pathmap://UML2_LIBRARIES/UML2PrimitiveTypes.library.uml2#_IXlH8a86EdieaYgxtVWN8Q"/>
+    </ownedAttribute>
+    <ownedOperation xmi:id="_u47eIIOyEdmyd--cXlrqyQ" name="Operation1"/>
+  </ownedMember>
+  <ownedMember xmi:type="uml:Usage" xmi:id="_AbfLYIOyEdmyd--cXlrqyQ" client="_4TXNsIOxEdmyd--cXlrqyQ" supplier="_b6MYsIOxEdmyd--cXlrqyQ"/>
+  <ownedMember xmi:type="uml:Usage" xmi:id="_DeUDMIOyEdmyd--cXlrqyQ" client="_4TXNsIOxEdmyd--cXlrqyQ" supplier="_9330kIOwEdmyd--cXlrqyQ"/>
+  <ownedMember xmi:type="uml:Usage" xmi:id="_JsSBUIOyEdmyd--cXlrqyQ" client="_4TXNsIOxEdmyd--cXlrqyQ" supplier="_jhjysIOxEdmyd--cXlrqyQ"/>
+  <ownedMember xmi:type="uml:Usage" xmi:id="_Lc-i4IOyEdmyd--cXlrqyQ" client="_4TXNsIOxEdmyd--cXlrqyQ" supplier="_mol1EIOxEdmyd--cXlrqyQ"/>
+  <ownedMember xmi:type="uml:Component" xmi:id="_2NsvcIO2Edmyd--cXlrqyQ" name="Logical Enablement Clause"/>
+  <ownedMember xmi:type="uml:Usage" xmi:id="_ITURAIO3Edmyd--cXlrqyQ" client="_4TXNsIOxEdmyd--cXlrqyQ" supplier="_2NsvcIO2Edmyd--cXlrqyQ"/>
+</uml:Model>
diff --git a/bundles/org.eclipse.ui.navigator/plugin.properties b/bundles/org.eclipse.ui.navigator/plugin.properties
new file mode 100644
index 0000000..a6f92af
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/plugin.properties
@@ -0,0 +1,3 @@
+Plugin.name=Common Navigator View
+Plugin.providerName=Eclipse.org and others
+Plugin.description=Contains the base generic navigator components
diff --git a/bundles/org.eclipse.ui.navigator/plugin.xml b/bundles/org.eclipse.ui.navigator/plugin.xml
new file mode 100644
index 0000000..7e4c78e
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/plugin.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<plugin>
+
+   <extension-point id="navigatorContent" name="%ExtPoint.navigatorContent" schema="schema/navigatorContent.exsd"/>
+   <extension-point id="navigatorViewer" name="%ExtPoint.navigatorViewer" schema="schema/navigatorViewer.exsd"/>
+   <extension-point id="commonFilter" name="%ExtPoint.commonFilter" schema="schema/commonFilter.exsd"/>
+   <extension-point id="dropHandler" name="%ExtPoint.dropHandler" schema="schema/dropHandler.exsd"/>
+   <extension-point id="thirdPartyFilterProvider" name="%ExtPoint.thirdPartyFilterProvider"/>
+   <extension-point id="linkHelper" name="Link Helper" schema="schema/linkHelper.exsd"/>
+   <extension-point id="actionProvider" name="Common Action Provider" schema="schema/actionProvider.exsd"/>
+ 
+   <extension
+         point="org.eclipse.ui.dropActions">
+      <action
+            class="org.eclipse.ui.navigator.internal.dnd.PluginDropAction"
+            id="org.eclipse.ui.navigator.internal.dnd.PluginDropAction">
+      </action>
+   </extension>
+   
+
+
+</plugin>
diff --git a/bundles/org.eclipse.ui.navigator/prepareforpii.xml b/bundles/org.eclipse.ui.navigator/prepareforpii.xml
new file mode 100644
index 0000000..c4552c3
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/prepareforpii.xml
@@ -0,0 +1,36 @@
+<project name="PrepareForPII" default="main" basedir=".">
+		
+	<!-- Setup temp variables -->
+	<target name="init">
+		<property name="nlsDir" value="d:/NLS/Corona/0526"/>
+		<property name="plugin" value="org.eclipse.ui.views.navigator"/>
+		<property name="plugindir" value="d:/workspaceCorona/${plugin}"/>
+		<property name="outputDir" value="${nlsDir}/${plugin}"/>
+		
+	
+	</target>
+
+	<!-- Create the destination dir -->
+	<target name="nlsDir" depends="init">
+		<mkdir dir="${nlsDir}"/>
+	</target>
+	
+	<!-- Create the destination dir -->
+	<target name="plugindir" depends="nlsDir">
+		<delete dir="${outputDir}"/>
+		<mkdir dir="${outputDir}"/>
+	</target>
+
+	<!-- Move the files to the correct locations in the workspace. -->
+	<target name="main" depends="plugindir">
+	
+		<messageIdGen folderPath = "${plugindir}" componentId = "E" />
+		
+		<copy todir = "${outputDir}/property_files" >
+			 <fileset dir="${plugindir}/property_files">
+           	  <include name="**/*.properties"/>
+  			 </fileset>
+  		</copy>
+  		
+	</target>
+</project>
diff --git a/bundles/org.eclipse.ui.navigator/property_files/messages.properties b/bundles/org.eclipse.ui.navigator/property_files/messages.properties
new file mode 100644
index 0000000..88aacab
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/property_files/messages.properties
@@ -0,0 +1,76 @@
+###############################################################################
+# Copyright (c) 2003, 2004 IBM Corporation and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Eclipse Public License v1.0
+# which accompanies this distribution, and is available at
+# http://www.eclipse.org/legal/epl-v10.html
+# 
+# Contributors:
+# IBM Corporation - initial API and implementation
+###############################################################################
+
+# package: org.eclipse.ui.views.navigator.internal
+CopyAction.title=&Copy
+CopyAction.toolTip=Copy
+
+PasteAction.title=&Paste
+PasteAction.toolTip=Paste
+
+#==============================================================================
+# Property Pages
+#==============================================================================
+PropertyDialog.text=P&roperties
+PropertyDialog.toolTip=Open Properties Dialog
+PropertyDialog.messageTitle=Property Pages
+PropertyDialog.noPropertyMessage=No property pages for {0}.
+PropertyDialog.propertyMessage=Properties for {0}
+FetchElementsJob.0=Fetching children ...
+
+NavigatorContentExtensionRecord.0=The extension cannot be null
+NavigatorSelectionSerializer.0=A valid INavigatorExtensionSite must be used to create a NavigatorSerializer.
+NavigatorSelectionSerializer.1=Could not create byte array.
+NavigatorDropSelectionDialog.1=Available Actions
+NavigatorDropSelectionDialog.1=Available Actions
+NavigatorDropSelectionDialog.3=Skip this dialog when only one action is available
+NavigatorDropSelectionDialog.0=NavigatorDropSelectionDialog.SKIP_ON_SINGLE_SELECTION
+NavigatorDropSelectionDialog.3=Skip this dialog when only one action is available
+NavigatorExtensionSite.0=Preloading Selected Navigator Extensions
+
+NavigatorViewer.0=Warning: An element (\"{0}\") was disposed during isExpandable().
+NavigatorViewer.1=An error occurred in {0}:
+NavigatorViewer.2=item = \"{0}\"
+NavigatorViewer.3=Is Disposed
+NavigatorViewer.4=model element = \"{0}\"
+NavigatorViewer.5=An error occurred in {0}:
+NavigatorViewer.6=widget = \"{0}\"
+NavigatorViewer.7=model element = \"{0}\"
+NavigatorViewer.8=fullMap = \"{0}\"
+DropHandlerDescriptor.10=Problem creating INavigatorDropActionDelegate for "{0}".
+DropHandlerRegistry.0=Problem determing Drop Handlers
+SerializerDescriptor.0=A valid IConfigurationElement must be used to create a SerializerDescriptor
+SerializerDescriptor.1=A valid id is required for a SerializerDescriptor
+SerializerDescriptor.3=Warning: Serializer Descriptor {0} has more than one ActionExpression.
+SerializerDescriptor.5=Could not create serializer with id: {0} : {1}
+ExtensionFilterDescriptor.10=The filterId cannot be null
+ExtensionFilterDescriptor.11=The navigatorExtensionId cannot be null
+ExtensionFilterRegistry.16=Warning: All Third Party Extension Filters must provide a valid navigatorExtensionid.
+CommonFilterSelectionDialog.0=Select Common Navigator Filters
+CommonFilterSelectionDialog.0=Filters
+CommonFilterSelectionDialog.1=Available Extensions and Filters
+CommonFilterSelectionDialog.1=Types of content
+CommonFilterSelectionDialog.2=Hides all content associated with the \"{0}\" content extension.
+CommonFilterSelectionDialog.3=Checked extensions will be ENABLED and will SHOW content.
+CommonFilterSelectionDialog.4=Checked filters will be ENABLED and will HIDE content.
+LinkHelperRegistry.4=LinkHelperRegistry.Descriptor objects cannot be null.
+LinkHelperRegistry.5=LinkHelperRegistry.Descriptor objects must have the name "linkHelper"
+LinkHelperRegistry.6=The linkHelper extension point requires exactly one editorInputEnablement child.
+LinkHelperRegistry.7=The linkHelper extension point requires exactly one editorInputEnablement child.
+CommonElementAdapter.0=<pending...>
+CollapseAllActionDelegate.0=Collapse All
+CollapseAllActionDelegate.1=Collapse All
+SelectFiltersActionDelegate.0=Filters...
+SelectFiltersActionDelegate.1=Select and deselect filters to apply to the content in the tree
+LinkEditorActionDelegate.0=Link Editor
+LinkEditorActionDelegate.1=Link open editors with content in the Navigator
+
+Navigator.statusLineMultiSelect={0} items selected
diff --git a/bundles/org.eclipse.ui.navigator/schema/actionProvider.exsd b/bundles/org.eclipse.ui.navigator/schema/actionProvider.exsd
new file mode 100644
index 0000000..b877a0d
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/schema/actionProvider.exsd
@@ -0,0 +1,128 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.wst.common.navigator.views">
+<annotation>
+      <appInfo>
+         <meta.schema plugin="org.eclipse.wst.common.navigator.views" id="actionProvder" name="Common Action Provider"/>
+      </appInfo>
+      <documentation>
+         [Enter description of this extension point.]
+      </documentation>
+   </annotation>
+
+   <include schemaLocation="commonExpression.exsd"/>
+
+   <element name="extension">
+      <complexType>
+         <sequence>
+            <element ref="actionProvider"/>
+         </sequence>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="actionProvider">
+      <complexType>
+         <sequence>
+            <element ref="enablement"/>
+            <element ref="emfEnablement"/>
+         </sequence>
+         <attribute name="class" type="string">
+            <annotation>
+               <documentation>
+                  A class which implments the ICommonActionProvider interface.
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="enablement">
+      <annotation>
+         <documentation>
+            This element is used to define the enablement for the extension. 
+Objects which are accepted by the expression will cause the ActionProvider to be invoked.
+         </documentation>
+      </annotation>
+      <complexType>
+         <choice>
+            <element ref="and"/>
+            <element ref="or"/>
+            <element ref="not"/>
+            <element ref="objectClass"/>
+            <element ref="objectState"/>
+            <element ref="pluginState"/>
+            <element ref="systemProperty"/>
+         </choice>
+      </complexType>
+   </element>
+
+   <element name="emfEnablement" type="string">
+   </element>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="since"/>
+      </appInfo>
+      <documentation>
+         [Enter the first release in which this extension point appears.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="examples"/>
+      </appInfo>
+      <documentation>
+         [Enter extension point usage example here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="apiInfo"/>
+      </appInfo>
+      <documentation>
+         [Enter API information here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="implementation"/>
+      </appInfo>
+      <documentation>
+         [Enter information about supplied implementation of this extension point.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="copyright"/>
+      </appInfo>
+      <documentation>
+         
+      </documentation>
+   </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.ui.navigator/schema/commonExpression.exsd b/bundles/org.eclipse.ui.navigator/schema/commonExpression.exsd
new file mode 100644
index 0000000..ed7a9f2
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/schema/commonExpression.exsd
@@ -0,0 +1,281 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui">
+<annotation>
+      <appInfo>
+         <meta.schema plugin="org.eclipse.ui" id="commonExpression" name="Common Expressions"/>
+      </appInfo>
+      <documentation>
+         An action&apos;s enablement and/or visibility can be defined using the elements &lt;samp&gt;enablement&lt;/samp&gt; and &lt;samp&gt;visibility&lt;/samp&gt; respectively. These two elements contain a boolean expression that is evaluated to determine the enablement and/or visibility.
+&lt;p&gt;
+The syntax is the same for the &lt;samp&gt;enablement&lt;/samp&gt; and &lt;samp&gt;visibility&lt;/samp&gt; elements. Both contain only one boolean expression sub-element. In the simplest case, this will be an &lt;samp&gt;objectClass&lt;/samp&gt;, &lt;samp&gt;objectState&lt;/samp&gt;, &lt;samp&gt;pluginState&lt;/samp&gt;, or &lt;samp&gt;systemProperty&lt;/samp&gt; element. In the more complex case, the &lt;samp&gt;and&lt;/samp&gt;, &lt;samp&gt;or&lt;/samp&gt;, and &lt;samp&gt;not&lt;/samp&gt; elements can be combined to form a boolean expression. Both the &lt;samp&gt;and&lt;/samp&gt;, and &lt;samp&gt;or&lt;/samp&gt; elements must contain 2 sub-elements. The &lt;samp&gt;not&lt;/samp&gt; element must contain only 1 sub-element.
+&lt;/p&gt;
+      </documentation>
+   </annotation>
+
+   <element name="enablement">
+      <annotation>
+         <documentation>
+            This element is used to define the enablement for the extension.
+         </documentation>
+      </annotation>
+      <complexType>
+         <choice>
+            <element ref="and"/>
+            <element ref="or"/>
+            <element ref="not"/>
+            <element ref="objectClass"/>
+            <element ref="objectState"/>
+            <element ref="pluginState"/>
+            <element ref="systemProperty"/>
+         </choice>
+      </complexType>
+   </element>
+
+   <element name="visibility">
+      <annotation>
+         <documentation>
+            This element is used to define the visibility for the extension.
+         </documentation>
+      </annotation>
+      <complexType>
+         <choice>
+            <element ref="and"/>
+            <element ref="or"/>
+            <element ref="not"/>
+            <element ref="objectClass"/>
+            <element ref="objectState"/>
+            <element ref="pluginState"/>
+            <element ref="systemProperty"/>
+         </choice>
+      </complexType>
+   </element>
+
+   <element name="and">
+      <annotation>
+         <documentation>
+            This element represent a boolean AND operation on the result of evaluating it&apos;s two sub-element expressions.
+         </documentation>
+      </annotation>
+      <complexType>
+         <choice minOccurs="2" maxOccurs="2">
+            <element ref="and"/>
+            <element ref="or"/>
+            <element ref="not"/>
+            <element ref="objectClass"/>
+            <element ref="objectState"/>
+            <element ref="pluginState"/>
+            <element ref="systemProperty"/>
+         </choice>
+      </complexType>
+   </element>
+
+   <element name="or">
+      <annotation>
+         <documentation>
+            This element represent a boolean OR operation on the result of evaluating it&apos;s two sub-element expressions.
+         </documentation>
+      </annotation>
+      <complexType>
+         <choice minOccurs="2" maxOccurs="2">
+            <element ref="and"/>
+            <element ref="or"/>
+            <element ref="not"/>
+            <element ref="objectClass"/>
+            <element ref="objectState"/>
+            <element ref="pluginState"/>
+            <element ref="systemProperty"/>
+         </choice>
+      </complexType>
+   </element>
+
+   <element name="not">
+      <annotation>
+         <documentation>
+            This element represent a boolean NOT operation on the result of evaluating it&apos;s sub-element expressions.
+         </documentation>
+      </annotation>
+      <complexType>
+         <choice>
+            <element ref="and"/>
+            <element ref="or"/>
+            <element ref="not"/>
+            <element ref="objectClass"/>
+            <element ref="objectState"/>
+            <element ref="pluginState"/>
+            <element ref="systemProperty"/>
+         </choice>
+      </complexType>
+   </element>
+
+   <element name="objectClass">
+      <annotation>
+         <appInfo>
+            <meta.element labelAttribute="name"/>
+         </appInfo>
+         <documentation>
+            This element is used to evaluate the class or interface of each object in the current selection. If each object in the selection implements the specified class or interface, the expression is evaluated as true.
+         </documentation>
+      </annotation>
+      <complexType>
+         <attribute name="name" type="string" use="required">
+            <annotation>
+               <documentation>
+                  a fully qualified name of a class or interface.  The expression is evaluated as true only if all objects within the selection implement this class or interface.
+               </documentation>
+               <appInfo>
+                  <meta.attribute kind="java" basedOn="java.lang.Object"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+         <attribute name="adaptable" type="boolean">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="objectState">
+      <annotation>
+         <appInfo>
+            <meta.element labelAttribute="name"/>
+         </appInfo>
+         <documentation>
+            This element is used to evaluate the attribute state of each object in the current selection. If each object in the selection has the specified attribute state, the expression is evaluated as true. To evaluate this type of expression, each object in the selection must implement, or adapt to, &lt;samp&gt;org.eclipse.ui.IActionFilter&lt;/samp&gt; interface.
+         </documentation>
+      </annotation>
+      <complexType>
+         <attribute name="name" type="string" use="required">
+            <annotation>
+               <documentation>
+                  the name of an object&apos;s attribute. Acceptable names reflect the object type, and should be publicly declared by the plug-in where the object type is declared.
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="value" type="string" use="required">
+            <annotation>
+               <documentation>
+                  the required value of the object&apos;s attribute. The acceptable values for the object&apos;s attribute should be publicly declared.
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="pluginState">
+      <annotation>
+         <appInfo>
+            <meta.element labelAttribute="id"/>
+         </appInfo>
+         <documentation>
+            This element is used to evaluate the state of a plug-in. The state of the plug-in may be one of the following: &lt;samp&gt;installed&lt;/samp&gt; or &lt;samp&gt;activated&lt;/samp&gt;.
+         </documentation>
+      </annotation>
+      <complexType>
+         <attribute name="id" type="string" use="required">
+            <annotation>
+               <documentation>
+                  the identifier of a plug-in which may or may not exist in the plug-in registry.
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="value" use="default" value="installed">
+            <annotation>
+               <documentation>
+                  the required state of the plug-in. The state of the plug-in may be one of the following: &lt;samp&gt;installed&lt;/samp&gt; or &lt;samp&gt;activated&lt;/samp&gt;.
+               </documentation>
+            </annotation>
+            <simpleType>
+               <restriction base="string">
+                  <enumeration value="installed">
+                  </enumeration>
+                  <enumeration value="activated">
+                  </enumeration>
+               </restriction>
+            </simpleType>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="systemProperty">
+      <annotation>
+         <appInfo>
+            <meta.element labelAttribute="name"/>
+         </appInfo>
+         <documentation>
+            This element is used to evaluate the state of some system property.  The property value is retrieved from the &lt;samp&gt;java.lang.System&lt;/samp&gt;.
+         </documentation>
+      </annotation>
+      <complexType>
+         <attribute name="name" type="string" use="required">
+            <annotation>
+               <documentation>
+                  the name of the system property.
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="value" type="string" use="required">
+            <annotation>
+               <documentation>
+                  the required value of the system property.
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="since"/>
+      </appInfo>
+      <documentation>
+         Release 2.0
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="examples"/>
+      </appInfo>
+      <documentation>
+         
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="apiInfo"/>
+      </appInfo>
+      <documentation>
+         
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="implementation"/>
+      </appInfo>
+      <documentation>
+         
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="copyright"/>
+      </appInfo>
+      <documentation>
+         Copyright (c) 2002, 2004 IBM Corporation and others.&lt;br&gt;
+All rights reserved. This program and the accompanying materials are made 
+available under the terms of the Common Public License v1.0 which 
+accompanies 
+this distribution, and is available at 
+&lt;a 
+href=&quot;http://www.eclipse.org/legal/cpl-v10.html&quot;&gt;http://www.eclipse.org/legal/cpl-v10.html&lt;/a&gt;
+      </documentation>
+   </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.ui.navigator/schema/commonFilter.exsd b/bundles/org.eclipse.ui.navigator/schema/commonFilter.exsd
new file mode 100644
index 0000000..a662f27
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/schema/commonFilter.exsd
@@ -0,0 +1,187 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui.views.navigator">
+<annotation>
+      <appInfo>
+         <meta.schema plugin="org.eclipse.ui.views.navigator" id="filters" name="Common Navigator Filter"/>
+      </appInfo>
+      <documentation>
+         [Enter description of this extension point.]
+      </documentation>
+   </annotation>
+
+   <include schemaLocation="commonExpression.exsd"/>
+
+   <element name="extension">
+      <complexType>
+         <sequence>
+            <element ref="commonFilter"/>
+         </sequence>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="commonFilter">
+      <complexType>
+         <sequence>
+            <element ref="enablement" minOccurs="0" maxOccurs="1"/>
+            <sequence>
+               <element ref="property" minOccurs="0" maxOccurs="unbounded"/>
+            </sequence>
+         </sequence>
+         <attribute name="id" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="navigatorExtensionId" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="description" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="viewId" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="className" type="string" use="required">
+            <annotation>
+               <documentation>
+                  Must provide a concrete implementation of INavigatorExtensionFilter.
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="enabledByDefault" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="enablement">
+      <complexType>
+         <attribute name="functionGroup" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="enabled" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="property">
+      <complexType>
+         <attribute name="name" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="value" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="since"/>
+      </appInfo>
+      <documentation>
+         [Enter the first release in which this extension point appears.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="examples"/>
+      </appInfo>
+      <documentation>
+         [Enter extension point usage example here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="apiInfo"/>
+      </appInfo>
+      <documentation>
+         [Enter API information here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="implementation"/>
+      </appInfo>
+      <documentation>
+         [Enter information about supplied implementation of this extension point.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="copyright"/>
+      </appInfo>
+      <documentation>
+         
+      </documentation>
+   </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.ui.navigator/schema/dropHandler.exsd b/bundles/org.eclipse.ui.navigator/schema/dropHandler.exsd
new file mode 100644
index 0000000..360c8df
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/schema/dropHandler.exsd
@@ -0,0 +1,204 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui.views.navigator">
+<annotation>
+      <appInfo>
+         <meta.schema plugin="org.eclipse.ui.views.navigator" id="dropHandler" name="Common Navigator Drop Handler"/>
+      </appInfo>
+      <documentation>
+         [Enter description of this extension point.]
+      </documentation>
+   </annotation>
+
+   <include schemaLocation="commonExpression.exsd"/>
+
+   <element name="extension">
+      <complexType>
+         <sequence>
+            <element ref="dropHandler" minOccurs="1" maxOccurs="unbounded"/>
+         </sequence>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="dropHandler">
+      <complexType>
+         <sequence>
+            <element ref="dragEnablement"/>
+            <element ref="dropEnablement"/>
+            <element ref="serializers"/>
+         </sequence>
+         <attribute name="id" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="dropActionId" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="description" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="dragEnablement">
+      <annotation>
+         <documentation>
+            This element is used to define the dragEnablement for the extension.
+         </documentation>
+      </annotation>
+      <complexType>
+         <choice>
+            <element ref="and"/>
+            <element ref="or"/>
+            <element ref="not"/>
+            <element ref="objectClass"/>
+            <element ref="objectState"/>
+            <element ref="pluginState"/>
+            <element ref="systemProperty"/>
+         </choice>
+      </complexType>
+   </element>
+
+   <element name="dropEnablement">
+      <complexType>
+         <choice>
+            <element ref="and"/>
+            <element ref="or"/>
+            <element ref="not"/>
+            <element ref="objectClass"/>
+            <element ref="objectState"/>
+            <element ref="pluginState"/>
+            <element ref="systemProperty"/>
+         </choice>
+         <attribute name="validatorClass" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="serializers">
+      <complexType>
+         <sequence>
+            <element ref="serializer" minOccurs="1" maxOccurs="unbounded"/>
+         </sequence>
+      </complexType>
+   </element>
+
+   <element name="serializer">
+      <complexType>
+         <sequence>
+            <element ref="enablement"/>
+         </sequence>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="since"/>
+      </appInfo>
+      <documentation>
+         [Enter the first release in which this extension point appears.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="examples"/>
+      </appInfo>
+      <documentation>
+         [Enter extension point usage example here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="apiInfo"/>
+      </appInfo>
+      <documentation>
+         [Enter API information here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="implementation"/>
+      </appInfo>
+      <documentation>
+         [Enter information about supplied implementation of this extension point.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="copyright"/>
+      </appInfo>
+      <documentation>
+         
+      </documentation>
+   </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.ui.navigator/schema/enablementExtension.exsd b/bundles/org.eclipse.ui.navigator/schema/enablementExtension.exsd
new file mode 100644
index 0000000..86beca8
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/schema/enablementExtension.exsd
@@ -0,0 +1,105 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.wst.common.navigator.views">
+<annotation>
+      <appInfo>
+         <meta.schema plugin="org.eclipse.wst.common.navigator.views" id="enablementExtension" name="Enablement Extension"/>
+      </appInfo>
+      <documentation>
+         [Enter description of this extension point.]
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <complexType>
+         <sequence>
+            <element ref="enablement"/>
+         </sequence>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appInfo>
+                  <meta.attribute translatable="true"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="enablement">
+      <complexType>
+         <attribute name="class" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appInfo>
+                  <meta.attribute kind="java"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="since"/>
+      </appInfo>
+      <documentation>
+         [Enter the first release in which this extension point appears.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="examples"/>
+      </appInfo>
+      <documentation>
+         [Enter extension point usage example here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="apiInfo"/>
+      </appInfo>
+      <documentation>
+         [Enter API information here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="implementation"/>
+      </appInfo>
+      <documentation>
+         [Enter information about supplied implementation of this extension point.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="copyright"/>
+      </appInfo>
+      <documentation>
+         
+      </documentation>
+   </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.ui.navigator/schema/linkHelper.exsd b/bundles/org.eclipse.ui.navigator/schema/linkHelper.exsd
new file mode 100644
index 0000000..128ede7
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/schema/linkHelper.exsd
@@ -0,0 +1,147 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.ui.views.navigator">
+<annotation>
+      <appInfo>
+         <meta.schema plugin="org.eclipse.ui.views.navigator" id="linkHelper" name="Navigator Link Helper"/>
+      </appInfo>
+      <documentation>
+         [Enter description of this extension point.]
+      </documentation>
+   </annotation>
+
+   <include schemaLocation="commonExpression.exsd"/>
+
+   <element name="extension">
+      <complexType>
+         <sequence>
+            <element ref="linkHelper"/>
+         </sequence>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="linkHelper">
+      <complexType>
+         <sequence>
+            <element ref="editorInputEnablement"/>
+            <element ref="selectionEnablement" minOccurs="0" maxOccurs="1"/>
+         </sequence>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="editorInputEnablement">   
+      <complexType>
+         <choice>
+            <element ref="and"/>
+            <element ref="or"/>
+            <element ref="not"/>
+            <element ref="objectClass"/>
+            <element ref="objectState"/>
+            <element ref="pluginState"/>
+            <element ref="systemProperty"/>
+         </choice>
+      </complexType>
+   </element>
+
+   <element name="selectionEnablement">
+      <complexType>
+         <attribute name="navigatorContentExtensionId" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>         
+         <choice>
+            <element ref="and"/>
+            <element ref="or"/>
+            <element ref="not"/>
+            <element ref="objectClass"/>
+            <element ref="objectState"/>
+            <element ref="pluginState"/>
+            <element ref="systemProperty"/>
+         </choice> 
+      </complexType>
+   </element>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="since"/>
+      </appInfo>
+      <documentation>
+         [Enter the first release in which this extension point appears.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="examples"/>
+      </appInfo>
+      <documentation>
+         [Enter extension point usage example here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="apiInfo"/>
+      </appInfo>
+      <documentation>
+         [Enter API information here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="implementation"/>
+      </appInfo>
+      <documentation>
+         [Enter information about supplied implementation of this extension point.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="copyright"/>
+      </appInfo>
+      <documentation>
+         
+      </documentation>
+   </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.ui.navigator/schema/navigatorContent.exsd b/bundles/org.eclipse.ui.navigator/schema/navigatorContent.exsd
new file mode 100644
index 0000000..30f2b9e
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/schema/navigatorContent.exsd
@@ -0,0 +1,366 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.wst.common.navigator.views">
+<annotation>
+      <appInfo>
+         <meta.schema plugin="org.eclipse.wst.common.navigator.views" id="navigatorContent" name="navigatorContent"/>
+      </appInfo>
+      <documentation>
+         [Enter description of this extension point.]
+      </documentation>
+   </annotation>
+
+   <include schemaLocation="commonExpression.exsd"/>
+
+   <include schemaLocation="emfEnablement.exsd"/>
+
+   <element name="extension">
+      <complexType>
+         <sequence>
+            <element ref="navigatorContent"/>
+         </sequence>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="navigatorContent">
+      <annotation>
+         <documentation>
+            The root element of the extension schema. Defines information used by the Common Navigator to find available extensions.
+         </documentation>
+      </annotation>
+      <complexType>
+         <sequence>
+            <element ref="enablement"/>
+         </sequence>
+         <attribute name="contentProvider" type="string">
+            <annotation>
+               <documentation>
+                  Supplies the name of a class which implements org.eclipse.jface.viewers.ITreeContentProvider or org.eclipse.wst.common.navigator.views.INavigatorContentProvider.
+               </documentation>
+               <appInfo>
+                  <meta.attribute kind="java"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+         <attribute name="labelProvider" type="string">
+            <annotation>
+               <documentation>
+                  Supplies the name of a class which implements org.eclipse.jface.viewers.ILabelProvider or org.eclipse.wst.common.navigator.views.ICommonLabelProvider.
+               </documentation>
+               <appInfo>
+                  <meta.attribute kind="java"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+         <attribute name="actionProvider" type="string">
+            <annotation>
+               <documentation>
+                  Supplies the name of a class that implements org.eclipse.wst.common.navigator.views.ICommonActionProvider.
+               </documentation>
+               <appInfo>
+                  <meta.attribute kind="java"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  A unique ID to identify this extension. Used for extension activation and by other extensions that would like to extend the defined extension (e.g. add another ICommonActionProvider)
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="openListener" type="string">
+            <annotation>
+               <documentation>
+                  Supplies the name of a class that implements org.eclipse.jface.views.OpenListener or org.eclipse.wst.common.navigator.views.ICommonOpenListener.
+               </documentation>
+               <appInfo>
+                  <meta.attribute kind="java"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+         <attribute name="priority">
+            <annotation>
+               <documentation>
+                  Indicates the relative priority of this extension to other extensions. Used by the Common Navigator to handle sorting and organization of the contributed content from this extension in relation to content from other extensions. Defaults to &quot;normal&quot;
+               </documentation>
+            </annotation>
+            <simpleType>
+               <restriction base="string">
+                  <enumeration value="lowest">
+                  </enumeration>
+                  <enumeration value="lower">
+                  </enumeration>
+                  <enumeration value="low">
+                  </enumeration>
+                  <enumeration value="normal">
+                  </enumeration>
+                  <enumeration value="high">
+                  </enumeration>
+                  <enumeration value="higher">
+                  </enumeration>
+                  <enumeration value="highest">
+                  </enumeration>
+               </restriction>
+            </simpleType>
+         </attribute>
+         <attribute name="name" type="string" use="required">
+            <annotation>
+               <documentation>
+                  Specify a display name for the Content Extension
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="enabledByDefault" type="boolean">
+            <annotation>
+               <documentation>
+                  Indicates whether the current extension will be enabled by default. True will enable the extension, False will disable the extension. Users can later choose to override this value.
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="icon" type="string">
+            <annotation>
+               <documentation>
+                  A plugin-relative path to an icon for use when displaying the metadata about the content extension to the user.
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="sorter" type="string">
+            <annotation>
+               <documentation>
+                  Indicates the name of class which implements java.util.Comparator that knows how to sort the items supported by this extension. If the extension enables on types that it does not provide, but understands, it may be called upon to sort items that it did not contribute.
+               </documentation>
+               <appInfo>
+                  <meta.attribute kind="java"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="enablement">
+      <annotation>
+         <documentation>
+            This element is used to define the enablement for the extension. 
+Objects which are accepted by the expression will cause the extension to be invoked.
+         </documentation>
+      </annotation>
+      <complexType>
+         <choice>
+            <element ref="and"/>
+            <element ref="or"/>
+            <element ref="not"/>
+            <element ref="objectClass"/>
+            <element ref="objectState"/>
+            <element ref="pluginState"/>
+            <element ref="systemProperty"/>
+         </choice>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="contentProvider">
+      <complexType>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appInfo>
+                  <meta.attribute kind="java" basedOn="org.eclipse.jface.viewers.ITreeContentProvider"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="filterProvider">
+      <complexType>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appInfo>
+                  <meta.attribute kind="java" basedOn="org.eclipse.wst.common.navigator.internal.views.filters.ExtensionFilterProvider"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="linkWithEditorHandler">
+      <complexType>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appInfo>
+                  <meta.attribute kind="java" basedOn="org.eclipse.wst.common.navigator.internal.provisional.views.ILinkHelper"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="actionProvider">
+      <complexType>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appInfo>
+                  <meta.attribute kind="java"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="labelProvider">
+      <complexType>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appInfo>
+                  <meta.attribute kind="java" basedOn="org.eclipse.jface.viewers.ILabeltProvider"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="sorter">
+      <complexType>
+         <attribute name="class" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+               <appInfo>
+                  <meta.attribute kind="java" basedOn="java.util.Comparator"/>
+               </appInfo>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="since"/>
+      </appInfo>
+      <documentation>
+         [Enter the first release in which this extension point appears.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="examples"/>
+      </appInfo>
+      <documentation>
+         [Enter extension point usage example here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="apiInfo"/>
+      </appInfo>
+      <documentation>
+         [Enter API information here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="implementation"/>
+      </appInfo>
+      <documentation>
+         [Enter information about supplied implementation of this extension point.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="copyright"/>
+      </appInfo>
+      <documentation>
+         
+      </documentation>
+   </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.ui.navigator/schema/navigatorViewer.exsd b/bundles/org.eclipse.ui.navigator/schema/navigatorViewer.exsd
new file mode 100644
index 0000000..61aa772
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/schema/navigatorViewer.exsd
@@ -0,0 +1,118 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- Schema file written by PDE -->
+<schema targetNamespace="org.eclipse.wst.common.navigator.views">
+<annotation>
+      <appInfo>
+         <meta.schema plugin="org.eclipse.wst.common.navigator.views" id="navigatorViewer" name="navigatorViewer"/>
+      </appInfo>
+      <documentation>
+         [Enter description of this extension point.]
+      </documentation>
+   </annotation>
+
+   <element name="extension">
+      <complexType>
+         <sequence>
+            <element ref="navigatorViewer"/>
+         </sequence>
+         <attribute name="point" type="string" use="required">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="id" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="name" type="string">
+            <annotation>
+               <documentation>
+                  
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <element name="navigatorViewer">
+      <annotation>
+         <documentation>
+            Used to associate one or more extensions with a particular viewer id. This extension is not required for those who just want a basic Common Navigator instance, but can be useful for clients who are creating a logical viewer.
+         </documentation>
+      </annotation>
+      <complexType>
+         <attribute name="rootContentExtensionId" type="string">
+            <annotation>
+               <documentation>
+                  Specify the ID of a Content Extension that will be used to provide content for the viewer instance. This ID must correspond to the ID of a navigatorContent extension point.
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="viewerId" type="string">
+            <annotation>
+               <documentation>
+                  An ID that corresponds to an org.eclipse.ui.views extension point that defines an instance or subclass of org.eclipse.wst.common.navigator.CommonNavigator.
+               </documentation>
+            </annotation>
+         </attribute>
+         <attribute name="popupMenuId" type="string">
+            <annotation>
+               <documentation>
+                  A custom popupMenuId to use for extensions that wish to contribute to the view ID. The default value is specified by NavigatorViewerDescriptor.DEFAULT_POPUPMENU_ID
+               </documentation>
+            </annotation>
+         </attribute>
+      </complexType>
+   </element>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="since"/>
+      </appInfo>
+      <documentation>
+         [Enter the first release in which this extension point appears.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="examples"/>
+      </appInfo>
+      <documentation>
+         [Enter extension point usage example here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="apiInfo"/>
+      </appInfo>
+      <documentation>
+         [Enter API information here.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="implementation"/>
+      </appInfo>
+      <documentation>
+         [Enter information about supplied implementation of this extension point.]
+      </documentation>
+   </annotation>
+
+   <annotation>
+      <appInfo>
+         <meta.section type="copyright"/>
+      </appInfo>
+      <documentation>
+         
+      </documentation>
+   </annotation>
+
+</schema>
diff --git a/bundles/org.eclipse.ui.navigator/scripts/src-navigator.jardesc b/bundles/org.eclipse.ui.navigator/scripts/src-navigator.jardesc
new file mode 100644
index 0000000..4aa489b
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/scripts/src-navigator.jardesc
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<jardesc>
+	<jar path="C:/dev/workspaces/general-purpose-navigator/org.eclipse.ui.views.navigator/navigator.jar"/>
+	<options compress="true"
+		descriptionLocation="/org.eclipse.ui.views.navigator/scripts/src-navigator.jardesc"
+		exportErrors="true" exportWarnings="true" logErrors="true"
+		logWarnings="true" overwrite="false" saveDescription="true" useSourceFolders="false"/>
+	<manifest generateManifest="false"
+		manifestLocation="/org.eclipse.ui.views.navigator/src-navigator/META-INF/MANIFEST.MF"
+		manifestVersion="1.0" reuseManifest="false" saveManifest="false" usesManifest="false">
+		<sealing sealJar="false"><packagesToSeal/><packagesToUnSeal/></sealing>
+	</manifest>
+	<selectedElements exportClassFiles="true" exportJavaFiles="false">
+		<javaElement handleIdentifier="=org.eclipse.ui.views.navigator/src-navigator"/>
+	</selectedElements>
+</jardesc>
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/AdaptabilityUtility.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/AdaptabilityUtility.java
new file mode 100644
index 0000000..7b0b048
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/AdaptabilityUtility.java
@@ -0,0 +1,41 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.Platform;
+
+/**
+ * <p>
+ * Provides utilities for working with adaptable and non-adaptable objects.
+ * </p>
+ *  
+ */
+public class AdaptabilityUtility {
+
+
+	/**
+	 * <p>
+	 * Returns an adapter of the requested type (anAdapterType)
+	 * @param anElement The element to adapt, which may or may not implement {@link IAdaptable}
+	 * @param anAdapterType The class type to return 
+	 * @return
+	 */
+	public static Object getAdapter(Object anElement, Class anAdapterType) {
+		if (anElement == null)
+			return null;
+		else if (anElement instanceof IAdaptable)
+			return ((IAdaptable) anElement).getAdapter(anAdapterType);
+		else
+			return Platform.getAdapterManager().getAdapter(anElement, anAdapterType);
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/CommonActivitiesUtilities.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/CommonActivitiesUtilities.java
new file mode 100644
index 0000000..b46259e
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/CommonActivitiesUtilities.java
@@ -0,0 +1,36 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator;
+
+import org.eclipse.ui.navigator.internal.extensions.NavigatorContentDescriptor;
+
+/**
+ * <p>
+ * A placeholder for activities API. Still under construction.
+ * </p>
+ * <p>
+ * The following class is experimental until fully documented.
+ * </p>
+ */
+public class CommonActivitiesUtilities {
+
+
+	/**
+	 * <p>
+	 * Filters the supplied array of theDescriptors by the currently enabled Activities
+	 * @param theDescriptors
+	 * @return
+	 */
+	public static NavigatorContentDescriptor[] filterByActivity(NavigatorContentDescriptor[] theDescriptors) {
+		return theDescriptors;
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/CommonNavigator.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/CommonNavigator.java
new file mode 100644
index 0000000..7ea9602
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/CommonNavigator.java
@@ -0,0 +1,531 @@
+/***************************************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others. All rights reserved. This program and the
+ * accompanying materials are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors: IBM Corporation - initial API and implementation
+ **************************************************************************************************/
+package org.eclipse.ui.navigator;
+
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspace;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.jface.viewers.DoubleClickEvent;
+import org.eclipse.jface.viewers.IDoubleClickListener;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.jface.viewers.ViewerFilter;
+import org.eclipse.jface.viewers.ViewerSorter;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.events.DisposeListener;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.ui.IMemento;
+import org.eclipse.ui.IViewSite;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.actions.ActionGroup;
+import org.eclipse.ui.navigator.internal.CommonNavigatorActionGroup;
+import org.eclipse.ui.navigator.internal.NavigatorMessages;
+import org.eclipse.ui.navigator.internal.extensions.NavigatorViewerDescriptor;
+import org.eclipse.ui.navigator.internal.filters.CommonViewerFilter;
+import org.eclipse.ui.navigator.internal.filters.ExtensionFilterRegistryManager;
+import org.eclipse.ui.part.ISetSelectionTarget;
+import org.eclipse.ui.part.ViewPart;
+
+/**
+ * <p>
+ * Provides the hook for the Common Navigator framework into the Eclipse workbench. It also serves
+ * as the backbone for the rest of the framework, including the following components:
+ * <ul>
+ * <li>
+ * <p>
+ * {@link org.eclipse.wst.common.navigator.views.CommonViewer}: The UI component that renders the
+ * extensible tree. Also creates and manages the lifecylce of the Navigator Content Service
+ * (described below).
+ * </p>
+ * </li>
+ * <li>
+ * <p>
+ * {@link org.eclipse.wst.common.navigator.views.CommonNavigatorManager}: Handles auxillary
+ * functions, such as updating the status bar, populating popup menus, and managing the Navigator
+ * Action Service (described below). Not expected to be needed by clients.
+ * </p>
+ * </li>
+ * <li>
+ * <p>
+ * {@link org.eclipse.wst.common.navigator.views.NavigatorActionService}: Manages instances of
+ * {@link org.eclipse.wst.common.navigator.internal.views.actions.ICommonActionProvider}&nbsp;provided
+ * by individual extensions and content extensions.
+ * </p>
+ * </li>
+ * <li>
+ * <p>
+ * {@link org.eclipse.wst.common.navigator.views.NavigatorContentService}: Manages instances of
+ * Navigator Content Extensions. Instances are created as needed, and disposed of upon the disposal
+ * of the Common Navigator.
+ * </p>
+ * </li>
+ * </ul>
+ * <p>
+ * Clients are not expected to subclass CommonNavigator. Clients that which to define their own
+ * custom extensible navigator view need to specify an instance of the <b>org.eclipse.ui.views </b>
+ * extension point:
+ * 
+ * <pre> 
+ *        &lt;extension
+ *        		point=&quot;org.eclipse.ui.views&quot;&gt;
+ *        	&lt;view
+ *        		name=&quot;My Custom View&quot;
+ *        		icon=&quot;relative/path/to/icon.gif&quot;
+ *        		category=&quot;org.acme.mycategory&quot;
+ *        		class=&quot;org.eclipse.wst.common.navigator.views.CommonNavigator&quot;
+ *        		id=&quot;org.acme.MyCustomNavigatorID&quot;&gt;
+ *        	&lt;/view&gt;
+ *        &lt;/extension&gt; 
+ *  
+ * </pre>
+ * 
+ * </p>
+ * <p>
+ * In the event that a consumer of the Common Navigator does need to change the actual behavior,
+ * methods are provided to override specific pieces of functionality. Each of these methods begin
+ * with <i>create </i> and explain what modular component they are responsible for creating. Each of
+ * these pieces may take the instance of the Common Viewer (
+ * {@link org.eclipse.wst.common.navigator.views.CommonViewer}) and have depedencies to that object,
+ * but the instance of the Common Viewer should never assume more than the standard Eclipse
+ * interfaces when working with these components.
+ * </p>
+ * <p>
+ * Clients that wish to extend the view menu provided via the org.eclipse.ui.popupMenus extension
+ * may specify the {@link POPUP_MENU_ID}&nbsp;as their target menu id.
+ * 
+ * <p>
+ * This class may be instantiated; it is not intended to be subclassed.
+ * </p>
+ * <p>
+ * The following class is experimental until fully documented.
+ * </p>
+ */
+public class CommonNavigator extends ViewPart implements ISetSelectionTarget {
+
+	/**
+	 * <p>
+	 * Provides a constant for the pop-up menu id for extensions that wish to contribute to the view
+	 * menu. The defualt value specified is "CommonNavigatorPopupMenu". The
+	 * <b>org.eclipse.common.navigator.views.navigatorViewer </b> may override the value to be used.
+	 * </p>
+	 */
+	public static final String POPUP_MENU_ID = NavigatorViewerDescriptor.DEFAULT_POPUP_MENU_ID;
+
+	/**
+	 * <p>
+	 * Used to track changes to the {@link #isLinkingEnabled}&nbsp;property.
+	 * </p>
+	 */
+	public static final int IS_LINKING_ENABLED_PROPERTY = 1;
+
+	private CommonViewer commonViewer;
+	private CommonNavigatorManager commonManager;
+	private ActionGroup commonActionGroup;
+
+	private IMemento memento;
+	private boolean isLinkingEnabled = false;
+	private String LINKING_ENABLED = "CommonNavigator.LINKING_ENABLED"; //$NON-NLS-1$ 
+
+	/**
+	 * 
+	 */
+	public CommonNavigator() {
+		super();
+	}
+
+	/**
+	 * <p>
+	 * Create the CommonViewer part control and setup the default providers as necessary.
+	 * </p>
+	 * 
+	 * 
+	 * @see org.eclipse.ui.part.WorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
+	 */
+	public void createPartControl(Composite aParent) {
+
+		commonViewer = createCommonViewer(aParent);
+		commonViewer.addFilter(createCommonFilter(commonViewer));
+		commonViewer.setSorter(createCommonSorter(commonViewer));
+ 
+
+		/* make sure input is set after sorters and filters to avoid unnecessary refreshes */
+		commonViewer.setInput(getInitialInput() != null ? getInitialInput() : ResourcesPlugin.getWorkspace().getRoot());
+		commonViewer.getControl().addDisposeListener(createDisposeListener());
+
+		getSite().setSelectionProvider(commonViewer);
+
+
+		updateTitle();
+
+		/*
+		 * Create the CommonNavigatorManager last because information about the state of the
+		 * CommonNavigator is required for the initialization of the CommonNavigatorManager
+		 */
+		commonManager = createCommonManager();
+		if (memento != null) {
+			commonManager.restoreState(memento);
+			commonViewer.getNavigatorContentService().restoreState(memento);
+		}
+
+		commonActionGroup = createCommonActionGroup();
+		commonActionGroup.fillActionBars(getViewSite().getActionBars());
+
+	}
+
+	/**
+	 * <p>
+	 * Note: This method is for internal use only. Clients should not call this method.
+	 * </p>
+	 * <p>
+	 * This method will be invoked when the DisposeListener is notified of the disposal of the
+	 * Eclipse view part.
+	 * </p>
+	 * 
+	 * @see org.eclipse.ui.part.WorkbenchPart#dispose()
+	 */
+	public void dispose() {
+		if (commonManager != null)
+			commonManager.dispose();
+		super.dispose();
+	}
+
+	/**
+	 * <p>
+	 * Note: This method is for internal use only. Clients should not call this method.
+	 * </p>
+	 * 
+	 * @see org.eclipse.ui.part.ViewPart#init(org.eclipse.ui.IViewSite, org.eclipse.ui.IMemento)
+	 */
+	public void init(IViewSite aSite, IMemento aMemento) throws PartInitException {
+		super.init(aSite, aMemento);
+		memento = aMemento;
+		if (memento != null) {
+			Integer linkingEnabledInteger = memento.getInteger(LINKING_ENABLED);
+			setLinkingEnabled(((linkingEnabledInteger != null) ? linkingEnabledInteger.intValue() == 1 : false));
+		}
+
+	}
+
+	/**
+	 * 
+	 * <p>
+	 * Note: This method is for internal use only. Clients should not call this method.
+	 * </p>
+	 * 
+	 * @see org.eclipse.ui.part.ViewPart#saveState(org.eclipse.ui.IMemento)
+	 */
+	public void saveState(IMemento aMemento) {
+		aMemento.putInteger(LINKING_ENABLED, (isLinkingEnabled) ? 1 : 0);
+		super.saveState(aMemento);
+		commonManager.saveState(aMemento);
+		commonViewer.getNavigatorContentService().saveState(aMemento);
+	}
+
+	/**
+	 * <p>
+	 * Force the workbench to focus on the Common Navigator tree.
+	 * </p>
+	 * 
+	 * @see org.eclipse.ui.part.WorkbenchPart#setFocus()
+	 */
+	public void setFocus() {
+		if (commonViewer != null)
+			commonViewer.getTree().setFocus();
+	}
+
+	/**
+	 * <p>
+	 * Set the selection to the Common Navigator tree, and expand nodes if necessary. Use caution
+	 * when invoking this method as it can cause Navigator Content Extensions to load, thus causing
+	 * plugin activation.
+	 * </p>
+	 * 
+	 * @see org.eclipse.ui.part.ISetSelectionTarget#selectReveal(org.eclipse.jface.viewers.ISelection)
+	 */
+	public void selectReveal(ISelection selection) {
+		if (commonViewer != null)
+			commonViewer.setSelection(selection, true);
+	}
+
+	/**
+	 * <p>
+	 * Linking is handled by
+	 * {@link org.eclipse.wst.common.navigator.internal.views.actions.LinkEditorAction}, which
+	 * listens for changes to the {@link CommonNavigator#IS_LINKING_ENABLED_PROPERTY}. Custom
+	 * implementations that wish to override this functionality, need to override the action used by
+	 * CommonNavigatorActionGroup and listen for changes to the above property.
+	 * 
+	 * @param toEnableLinking
+	 *            True enables linking the current selection with open editors
+	 */
+	public final void setLinkingEnabled(boolean toEnableLinking) {
+		isLinkingEnabled = toEnableLinking;
+		firePropertyChange(IS_LINKING_ENABLED_PROPERTY);
+	}
+
+	/**
+	 * @return Whether linking the current selection with open editors is enabled.
+	 */
+	public final boolean isLinkingEnabled() {
+		return isLinkingEnabled;
+	}
+
+	/**
+	 * <p>
+	 * Provides access to the commonViewer used by the current CommonNavigator. The field will not
+	 * be valid until after {@link #init(IViewSite, IMemento)}&nbsp;has been called by the Workbench.
+	 * </p>
+	 * 
+	 * @see CommonNavigator#createCommonViewer(Composite)
+	 * @return The (already created) instance of Common Viewer.
+	 */
+	public CommonViewer getCommonViewer() {
+		return commonViewer;
+	}
+
+	/**
+	 * @return The Navigator Content Service which populates this instance of Common Navigator
+	 */
+	public NavigatorContentService getNavigatorContentService() {
+		return getCommonViewer().getNavigatorContentService();
+	}
+	
+	public Object getAdapter(Class adapter) {
+		if(adapter == CommonViewer.class)
+			return getCommonViewer();
+		else if(adapter == NavigatorContentService.class)
+			return getCommonViewer().getNavigatorContentService();
+		return super.getAdapter(adapter);
+	}
+	
+
+	/**
+	 * @return The Navigator Content Service which populates this instance of Common Navigator
+	 */
+	public NavigatorActionService getNavigatorActionService() {
+		return commonManager.getNavigatorActionService();
+	}
+
+	/**
+	 * <p>
+	 * Constructs and returns an instance of {@link CommonViewer}. The ID of the Eclipse view part
+	 * will be used to create the viewer. The ID is important as some extensions indicate they
+	 * should only be used with a particular viewer ID.
+	 * <p>
+	 * 
+	 * @param aParent
+	 *            A composite parent to contain the Common Viewer
+	 * @return An initialized instance of CommonViewer
+	 */
+	protected CommonViewer createCommonViewer(Composite aParent) {
+		CommonViewer aViewer = new CommonViewer(getViewSite().getId(), aParent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
+		initListeners(aViewer);
+		aViewer.getNavigatorContentService().restoreState(memento);
+		return aViewer;
+	}
+
+	/**
+	 * <p>
+	 * Adds the listeners to the Common Viewer.
+	 * </p>
+	 * 
+	 * @param viewer
+	 *            The viewer
+	 * @since 2.0
+	 */
+	protected void initListeners(TreeViewer viewer) {
+
+		viewer.addDoubleClickListener(new IDoubleClickListener() {
+			
+			public void doubleClick(DoubleClickEvent event) {
+				try {
+					handleDoubleClick(event);
+				} catch(RuntimeException re) {
+					re.printStackTrace();
+				}
+			}
+		});
+	}
+
+	/**
+	 * <p>
+	 * Note: This method is for internal use only. Clients should not call this method.
+	 * </p>
+	 * 
+	 * @param anEvent
+	 *            Supplied by the DoubleClick listener.
+	 */
+	protected void handleDoubleClick(DoubleClickEvent anEvent) {
+		
+		IStructuredSelection selection = (IStructuredSelection) anEvent.getSelection();
+		Object element = selection.getFirstElement();
+
+		TreeViewer viewer = getCommonViewer();
+		if (viewer.isExpandable(element)) {
+			viewer.setExpandedState(element, !viewer.getExpandedState(element));
+		}
+	}
+
+	/**
+	 * <p>
+	 * The Common Navigator Manager handles the setup of the Common Navigator Menu, manages updates
+	 * to the ActionBars from
+	 * {@link org.eclipse.wst.common.navigator.internal.views.actions.ICommonActionProvider}&nbsp;
+	 * extensions as the user's selection changes, and also updates the status bar based on the
+	 * current selection.
+	 * 
+	 * @return
+	 */
+	protected CommonNavigatorManager createCommonManager() {
+		return new CommonNavigatorManager(this);
+	}
+
+	/**
+	 * <p>
+	 * The ActionGroup is used to populate the ActionBars of Common Navigator View Part, and the
+	 * returned implementation will have an opportunity to fill the ActionBars of the view as soon
+	 * as it is created. ({@link ActionGroup#fillActionBars(org.eclipse.ui.IActionBars)}.
+	 * </p>
+	 * <p>
+	 * The default implementation returns an instance of {@link CommonNavigatorActionGroup}&nbsp;which
+	 * will add the following actions:
+	 * <ul>
+	 * <li>
+	 * <p>
+	 * Link with editor support (
+	 * {@link org.eclipse.wst.common.navigator.internal.views.actions.LinkEditorAction}). Allows the
+	 * user to toggling linking the current selection with the active editors.
+	 * </p>
+	 * <li>
+	 * <p>
+	 * Collapse all (
+	 * {@link org.eclipse.wst.common.navigator.internal.views.actions.CollapseAllAction}). Collapses
+	 * all expanded nodes.
+	 * </p>
+	 * <li>
+	 * <p>
+	 * Select Filters (
+	 * {@link org.eclipse.wst.common.navigator.internal.views.filters.SelectFiltersAction}).
+	 * Provides access to the "Select Filters" dialog that allows users to enable/disable filters
+	 * and also the Content Extension activations.
+	 * </p>
+	 * </ul>
+	 * 
+	 * @return The Action Group to be associated with the Common Navigator View Part.
+	 */
+	protected ActionGroup createCommonActionGroup() {
+		return new CommonNavigatorActionGroup(this, commonViewer);
+	}
+
+	/**
+	 * <p>
+	 * The default implementation hooks into the extensible navigator's framework for extensions to
+	 * provide filters. Custom implementations will probably require some changes to
+	 * {@link org.eclipse.wst.common.navigator.internal.views.filters.SelectFiltersAction}&nbsp;as
+	 * well.
+	 * </p>
+	 * 
+	 * @see CommonViewerFilter
+	 * @see ExtensionFilterRegistryManager
+	 * @return The ViewerFilter to provide the desired extensibility for Filters
+	 */
+	protected ViewerFilter createCommonFilter(CommonViewer aViewer) {
+		return new CommonViewerFilter(aViewer);
+	}
+
+
+
+	/**
+	 * <p>
+	 * The following method creates a basic sorter for the M3 release. This functionality will
+	 * change substantially for the M4 release.
+	 * </p>
+	 * 
+	 * @return The ViewerSorter to sort the contents of the Common Viewer
+	 */
+	protected ViewerSorter createCommonSorter(CommonViewer aViewer) {
+		return new CommonSorter(aViewer.getNavigatorContentService());
+	}
+
+	/**
+	 * @return A listener to track the disposal of the Eclipse view part in order to dispose of the
+	 *         framework state.
+	 */
+	protected DisposeListener createDisposeListener() {
+		return new DisposeListener() {
+			/**
+			 * @see org.eclipse.swt.events.DisposeListener#widgetDisposed(org.eclipse.swt.events.DisposeEvent)
+			 */
+			public void widgetDisposed(DisposeEvent e) {
+				dispose();
+			}
+		};
+	}
+
+	/**
+	 * @return The initial input for the viewer. Defaults to getSite().getPage().getInput()
+	 */
+	protected IAdaptable getInitialInput() {
+		return getSite().getPage().getInput();
+	}
+
+
+	/**
+	 * <p>
+	 * Updates the title text and title tool tip. Called whenever the input of the viewer changes.
+	 * </p>
+	 */
+	protected void updateTitle() {
+
+		if (commonViewer == null)
+			return;
+
+		Object input = commonViewer.getInput();
+		String viewName = getConfigurationElement().getAttribute("name"); //$NON-NLS-1$
+		IWorkspace workspace = ResourcesPlugin.getWorkspace();
+		// IWorkingSet workingSet = workingSetFilter.getWorkingSet();
+
+		if (input == null || input.equals(workspace) || input.equals(workspace.getRoot())) {
+			setPartName(viewName);
+			setTitleToolTip(""); //$NON-NLS-1$ 
+		} else {
+			ILabelProvider labelProvider = (ILabelProvider) commonViewer.getLabelProvider();
+			String inputToolTip = getFrameToolTipText(input);
+
+			setPartName(NavigatorMessages.format("Navigator.title", //$NON-NLS-1$
+						new Object[]{viewName, labelProvider.getText(input)}));
+			setTitleToolTip(inputToolTip);
+		}
+	}
+
+	/**
+	 * <p>
+	 * Returns the tool tip text for the given element. Used as the tool tip text for the current
+	 * frame, and for the view title tooltip.
+	 * </p>
+	 */
+	protected String getFrameToolTipText(Object anElement) {
+		if (anElement instanceof IResource) {
+			IPath path = ((IResource) anElement).getFullPath();
+			if (path.isRoot()) {
+				return NavigatorMessages.getString("Navigator.toolTip"); //$NON-NLS-1$
+			}
+			return path.makeRelative().toString();
+		}
+		if (commonViewer != null)
+			return ((ILabelProvider) commonViewer.getLabelProvider()).getText(anElement);
+		return ""; //$NON-NLS-1$
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/CommonNavigatorManager.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/CommonNavigatorManager.java
new file mode 100644
index 0000000..8cd1ca2
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/CommonNavigatorManager.java
@@ -0,0 +1,217 @@
+/***************************************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others. All rights reserved. This program and the
+ * accompanying materials are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors: IBM Corporation - initial API and implementation
+ **************************************************************************************************/
+package org.eclipse.ui.navigator;
+
+import org.eclipse.jface.action.IMenuListener;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.IStatusLineManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Menu;
+import org.eclipse.ui.IMemento;
+import org.eclipse.ui.IWorkbenchActionConstants;
+
+/**
+ * <p>
+ * Manages the non-viewer responsibilities of the Common Navigator View Part,
+ * including the display and population of the context menu and the registration
+ * of extensions for opening content.
+ * </p>
+ * <p>
+ * This class is not intended to be instantiated or subclassed by clients
+ * </p>
+ * <p>
+ * The following class is experimental until fully documented.
+ * </p>
+ */
+public class CommonNavigatorManager implements ISelectionChangedListener {
+
+	private final CommonNavigator commonNavigator;
+
+	private final NavigatorContentService contentService;
+
+	private NavigatorActionService actionService;
+
+	private final IDescriptionProvider commonDescriptionProvider;
+
+	private final IStatusLineManager statusLineManager;
+
+	private final ILabelProvider labelProvider;
+
+	/**
+	 * <p>
+	 * Adds listeners to aNavigator to listen for selection changes and respond
+	 * to mouse events.
+	 * </p>
+	 * 
+	 * @param aNavigator
+	 *            The CommonNavigator managed by this class. Requires a non-null
+	 *            value.
+	 */
+	public CommonNavigatorManager(CommonNavigator aNavigator) {
+		super();
+		commonNavigator = aNavigator;
+		contentService = commonNavigator.getNavigatorContentService();
+		statusLineManager = commonNavigator.getViewSite().getActionBars()
+				.getStatusLineManager();
+		commonDescriptionProvider = new NavigatorContentServiceDescriptionProvider(
+				contentService);
+		labelProvider = (ILabelProvider) commonNavigator.getCommonViewer()
+				.getLabelProvider();
+		init();
+	}
+
+	private void init() {
+		commonNavigator.getCommonViewer().addSelectionChangedListener(this);
+		updateStatusBar(commonNavigator.getCommonViewer().getSelection());
+		actionService = new NavigatorActionService(commonNavigator,
+				commonNavigator.getCommonViewer(), contentService);
+		// commonNavigator.getCommonViewer().addOpenListener(commonOpenService);
+		initContextMenu();
+		initViewMenu();
+	}
+
+	/**
+	 * <p>
+	 * Called by {@link CommonNavigator} when the View Part is disposed.
+	 * 
+	 */
+	protected void dispose() {
+		commonNavigator.getCommonViewer().removeSelectionChangedListener(this);
+		// commonNavigator.getCommonViewer().removeOpenListener(commonOpenService);
+		// commonOpenService.dispose();
+		actionService.dispose();
+	}
+
+	/**
+	 * 
+	 * @param anEvent
+	 *            An event indicating the current selection of the
+	 *            {@link CommonViewer}
+	 * 
+	 * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
+	 */
+	public void selectionChanged(SelectionChangedEvent anEvent) {
+		updateStatusBar(anEvent.getSelection());
+		if (anEvent.getSelection() instanceof IStructuredSelection) {
+			IStructuredSelection structuredSelection = (IStructuredSelection) anEvent
+					.getSelection();
+			actionService.fillActionBars(commonNavigator.getViewSite()
+					.getActionBars(), structuredSelection);
+		}
+	}
+
+	/**
+	 * @param aMemento
+	 *            Used to restore state of action extensions via the
+	 *            {@link NavigatorActionService}.
+	 */
+	protected void restoreState(IMemento aMemento) {
+		actionService.restoreState(aMemento);
+	}
+
+	/**
+	 * @param aMemento
+	 *            Used to save state of action extensions via the
+	 *            {@link NavigatorActionService}.
+	 */
+	protected void saveState(IMemento aMemento) {
+		actionService.saveState(aMemento);
+	}
+
+	/**
+	 * <p>
+	 * Fills aMenuManager with menu contributions from the
+	 * {@link NavigatorActionService}.
+	 * </p>
+	 * 
+	 * @param aMenuManager
+	 *            A popup menu
+	 * @see NavigatorActionService#fillContextMenu(IMenuManager,
+	 *      IStructuredSelection)
+	 * 
+	 */
+	protected void fillContextMenu(IMenuManager aMenuManager) {
+		ISelection selection = commonNavigator.getCommonViewer().getSelection();
+		if (selection instanceof IStructuredSelection)
+			actionService.fillContextMenu(aMenuManager,
+					(IStructuredSelection) selection);
+		else
+			actionService.fillContextMenu(aMenuManager,
+					StructuredSelection.EMPTY);
+	}
+
+	/**
+	 * <p>
+	 * Initializes and registers the context menu.
+	 * </p>
+	 */
+	protected void initContextMenu() {
+		MenuManager menuMgr = new MenuManager(contentService
+				.getViewerDescriptor().getPopupMenuId());
+		menuMgr.setRemoveAllWhenShown(true);
+		menuMgr.addMenuListener(new IMenuListener() {
+
+			public void menuAboutToShow(IMenuManager manager) {
+				fillContextMenu(manager);
+			}
+		});
+		TreeViewer commonViewer = commonNavigator.getCommonViewer();
+		Menu menu = menuMgr.createContextMenu(commonViewer.getTree());
+
+		commonViewer.getTree().setMenu(menu);
+		actionService.setUpdateMenu(menuMgr);
+
+		/*
+		 * Hooks into the Eclipse framework for Object contributions, and View
+		 * contributions.
+		 */
+		commonNavigator.getSite().registerContextMenu(
+				contentService.getViewerDescriptor().getPopupMenuId(), menuMgr,
+				commonViewer);
+
+	}
+
+	protected void initViewMenu() {
+		IMenuManager viewMenu = commonNavigator.getViewSite().getActionBars()
+				.getMenuManager();
+		viewMenu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
+		viewMenu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS
+				+ "-end"));//$NON-NLS-1$	
+	}
+
+	/**
+	 * @param aSelection
+	 *            The current selection from the {@link CommonViewer}
+	 */
+	protected void updateStatusBar(ISelection aSelection) {
+
+		Image img = null;
+		if (aSelection != null && !aSelection.isEmpty()
+				&& aSelection instanceof IStructuredSelection)
+			img = labelProvider.getImage(((IStructuredSelection) aSelection)
+					.getFirstElement());
+
+		statusLineManager.setMessage(img, commonDescriptionProvider
+				.getDescription(aSelection));
+	}
+
+	public NavigatorActionService getNavigatorActionService() {
+		return actionService;
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/CommonSorter.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/CommonSorter.java
new file mode 100644
index 0000000..02a67aa
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/CommonSorter.java
@@ -0,0 +1,107 @@
+/***************************************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others. All rights reserved. This program and the
+ * accompanying materials are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors: IBM Corporation - initial API and implementation
+ **************************************************************************************************/
+package org.eclipse.ui.navigator;
+
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.List;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerSorter;
+import org.eclipse.ui.navigator.internal.extensions.NavigatorContentDescriptor;
+import org.eclipse.ui.navigator.internal.extensions.NavigatorContentDescriptorRegistry;
+import org.eclipse.ui.navigator.internal.extensions.NavigatorContentExtension;
+
+// TODO Fix up Common Sorter
+
+/**
+ * <p>
+ * Provides generic, extensible sorting strategies for the Common Navigator.
+ * </p>
+ * <p>
+ * The following class is experimental until fully documented.
+ * </p>
+ */
+public class CommonSorter extends ViewerSorter {
+
+	private static final NavigatorContentDescriptorRegistry CONTENT_DESCRIPTOR_REGISTRY = NavigatorContentDescriptorRegistry.getInstance();
+ 
+	private Comparator comparator = null;
+	private NavigatorContentService contentService;
+
+	/**
+	 * 
+	 */
+	public CommonSorter(NavigatorContentService aContentService) {
+		super();
+		contentService = aContentService;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.ViewerSorter#category(java.lang.Object)
+	 */
+	public int category(Object anElement) {
+		List descriptors = CONTENT_DESCRIPTOR_REGISTRY.getEnabledContentDescriptors(anElement);
+		if (descriptors.size() > 0)
+			return ((NavigatorContentDescriptor) descriptors.get(0)).getPriority();
+		return Priority.NORMAL_PRIORITY_VALUE;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.ViewerSorter#compare(org.eclipse.jface.viewers.Viewer,
+	 *      java.lang.Object, java.lang.Object)
+	 */
+	public int compare(Viewer viewer, Object lvalue, Object rvalue) {
+		int rank = category(rvalue) - category(lvalue);
+		if(rank == 0) { 
+			IStructuredSelection selection = new StructuredSelection(new Object[] {lvalue, rvalue});
+			NavigatorContentExtension[] descriptorInstances = contentService.findRelevantContentExtensions(selection);
+			if(descriptorInstances.length > 0)
+				return descriptorInstances[0].getComparator().compare(lvalue, rvalue);
+			return rank;
+			
+		}
+		return rank;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.ViewerSorter#sort(org.eclipse.jface.viewers.Viewer,
+	 *      java.lang.Object[])
+	 */
+	public void sort(Viewer viewer, Object[] elements) {
+		Arrays.sort(elements, getComparator());
+	}
+	 
+
+	protected Comparator getComparator() {
+		if (comparator == null) {
+			comparator = new Comparator() {
+				/*
+				 * (non-Javadoc)
+				 * 
+				 * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
+				 */
+				public int compare(Object o1, Object o2) {
+					return CommonSorter.this.compare(null, o1, o2);
+				}
+			};
+		}
+		return comparator;
+	}
+
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/CommonViewer.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/CommonViewer.java
new file mode 100644
index 0000000..c9a72cc
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/CommonViewer.java
@@ -0,0 +1,304 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator;
+
+import java.util.ArrayList;
+
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.ISchedulingRule;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.jface.viewers.DecoratingLabelProvider;
+import org.eclipse.jface.viewers.IBaseLabelProvider;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.LabelProviderChangedEvent;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.FileTransfer;
+import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.swt.events.DisposeEvent;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Item;
+import org.eclipse.swt.widgets.Widget;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.navigator.internal.NavigatorPlugin;
+import org.eclipse.ui.navigator.internal.ResourceToItemsMapper;
+import org.eclipse.ui.navigator.internal.dnd.CommonNavigatorDragAdapter;
+import org.eclipse.ui.navigator.internal.dnd.CommonNavigatorDropAdapter;
+import org.eclipse.ui.part.PluginTransfer;
+import org.eclipse.ui.part.ResourceTransfer;
+import org.eclipse.ui.views.navigator.LocalSelectionTransfer;
+
+/**
+ * <p>
+ * Provides the Tree Viewer for the Common Navigator. Content and labels are
+ * provided by an instance of
+ * {@link org.eclipse.wst.common.navigator.views.NavigatorContentService}&nbsp;
+ * which uses the ID supplied in the constructor
+ * {@link CommonViewer#CommonViewer(String, Composite, int)}.
+ * <p>
+ * The following class is experimental until fully documented.
+ * </p>
+ */
+public class CommonViewer extends TreeViewer {
+
+	private final NavigatorContentService contentService;
+
+	protected ResourceToItemsMapper fResourceToItemsMapper;
+
+	/**
+	 * <p>
+	 * Constructs the Tree Viewer for the Common Navigator and the corresponding
+	 * NavigatorContentService. The NavigatorContentService will provide the
+	 * Content Provider and Label Provider -- these need not be supplied by
+	 * clients.
+	 * <p>
+	 * For the valid bits to supply in the style mask (aStyle), see
+	 * documentation provided by {@link TreeViewer}.
+	 * </p>
+	 * 
+	 * @param anId
+	 *            An id tied to the extensions that is used to focus specific
+	 *            content to a particular instance of the Common Navigator
+	 * @param aParent
+	 *            A Composite parent to contain the actual SWT widget
+	 * @param aStyle
+	 *            A style mask that will be used to create the TreeViewer
+	 *            Composite.
+	 */
+	public CommonViewer(String aCommonNavigatorId, Composite aParent, int aStyle) {
+		super(aParent, aStyle);
+		contentService = new NavigatorContentService(aCommonNavigatorId, this);
+		init();
+	}
+
+	/**
+	 * <p>
+	 * Initializes the content provider, label provider, and drag and drop
+	 * support. Should not be called by clients -- this method is invoked when
+	 * the constructor is invoked.
+	 * </p>
+	 */
+	protected void init() {
+		setUseHashlookup(true);
+		setContentProvider(contentService.createCommonContentProvider());
+		DecoratingLabelProvider decoratingProvider = new DecoratingLabelProvider(
+				contentService.createCommonLabelProvider(), PlatformUI
+						.getWorkbench().getDecoratorManager()
+						.getLabelDecorator());
+		setLabelProvider(decoratingProvider);
+		initMapper();
+		initDragAndDrop();
+
+	}
+
+	private void initMapper() {
+		fResourceToItemsMapper = new ResourceToItemsMapper(this);
+	}
+
+	/**
+	 * <p>
+	 * Disposes of the NavigatorContentService, which will dispose the Content
+	 * and Label providers.
+	 * </p>
+	 */
+	public void dispose() {
+
+		if (contentService != null)
+			contentService.dispose();
+
+	}
+
+	/**
+	 * <p>
+	 * The {@link NavigatorContentService}provides the hook into the framework
+	 * to provide content from the various extensions.
+	 * </p>
+	 * 
+	 * @return The {@link NavigatorContentService}that was created when the
+	 *         viewer was created.
+	 */
+	public NavigatorContentService getNavigatorContentService() {
+		return contentService;
+	}
+
+	/**
+	 * <p>
+	 * Whenever the internal structure of the tree changes through this method,
+	 * a refresh of the parent will occur. When one extension has found the need
+	 * to modify a parent, other extensions may also choose to do update that
+	 * node as well. Extensions are also not permitted to add children to a
+	 * viewer that they would not have returned from a call to the extension
+	 * content provider ({@link ITreeContentProvider}).
+	 * 
+	 * @see org.eclipse.jface.viewers.AbstractTreeViewer#internalAdd(org.eclipse.swt.widgets.Widget,
+	 *      java.lang.Object, java.lang.Object[])
+	 */
+	protected void internalAdd(Widget widget, Object parentElement,
+			Object[] childElements) {
+		super.internalRefresh(widget, parentElement, true, true);
+	}
+
+	/**
+	 * <p>
+	 * Removals are handled by refreshing the parents of each of the given
+	 * elements. The parents are determined via calls ot the contentProvider.
+	 * </p>
+	 * 
+	 * @see org.eclipse.jface.viewers.AbstractTreeViewer#remove(java.lang.Object[])
+	 */
+	public void remove(Object[] elements) {
+		super.remove(elements);
+		ITreeContentProvider contentProvider = (ITreeContentProvider) getContentProvider();
+		for (int i = 0; i < elements.length; i++) {
+			super.internalRefresh(contentProvider.getParent(elements[i]));
+		}
+	}
+
+	protected void removeWithoutRefresh(Object[] elements) {
+		super.remove(elements);
+	}
+
+	/**
+	 * <p>
+	 * Adds DND support to the Navigator. Uses hooks into the extensible
+	 * framework for DND.
+	 * </p>
+	 * <p>
+	 * By default, the following Transfer types are supported:
+	 * <ul>
+	 * <li>LocalSelectionTransfer.getInstance(),
+	 * <li>PluginTransfer.getInstance(),
+	 * <li>FileTransfer.getInstance(), and
+	 * <li>ResourceTransfer.getInstance()
+	 * </ul>
+	 * </p>
+	 * 
+	 * @see CommonNavigatorDragAdapter
+	 * @see CommonNavigatorDropAdapter
+	 */
+	protected void initDragAndDrop() {
+		/* Handle Drag and Drop */
+		int operations = DND.DROP_COPY | DND.DROP_MOVE;
+		Transfer[] transfers = new Transfer[] {
+				LocalSelectionTransfer.getInstance(),
+				PluginTransfer.getInstance(), FileTransfer.getInstance(),
+				ResourceTransfer.getInstance() };
+		addDragSupport(operations, transfers, new CommonNavigatorDragAdapter(
+				this));
+		addDropSupport(operations, transfers, new CommonNavigatorDropAdapter(
+				this));
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.AbstractTreeViewer#createTreeItem(org.eclipse.swt.widgets.Widget,
+	 *      java.lang.Object, int)
+	 */
+	protected void createTreeItem(Widget parent, final Object element, int index) {
+		// TODO Auto-generated method stub
+		try {
+			super.createTreeItem(parent, element, index);
+		} catch (Exception ex) {
+			ex.printStackTrace();
+		} catch (Error e) {
+			e.printStackTrace();
+		}
+		Job job = new Job("Extract the Content Descriptor of children") {
+			public IStatus run(IProgressMonitor monitor) {
+				try {
+					contentService.findRelevantContentProviders(element);
+				} catch (RuntimeException ex) {
+					String msg = "Could not acquire children for Object: "
+							+ element.getClass();
+					NavigatorPlugin.log(msg, new Status(IStatus.ERROR,
+							NavigatorPlugin.PLUGIN_ID, 0, msg, ex));
+				}
+				return Status.OK_STATUS;
+			}
+		};
+		if (element instanceof ISchedulingRule)
+			job.setRule((ISchedulingRule) element);
+		else {
+			ISchedulingRule rule = (ISchedulingRule) AdaptabilityUtility
+					.getAdapter(element, ISchedulingRule.class);
+			if (rule != null) {
+				job.setRule(rule);
+			}
+		}
+
+		job.schedule();
+
+	}
+
+	/*
+	 * @see StructuredViewer#mapElement(Object, Widget)
+	 */
+	protected void mapElement(Object element, Widget item) {
+		super.mapElement(element, item);
+		if (item instanceof Item) {
+			fResourceToItemsMapper.addToMap(element, (Item) item);
+		}
+	}
+
+	/*
+	 * @see StructuredViewer#unmapElement(Object, Widget)
+	 */
+	protected void unmapElement(Object element, Widget item) {
+		if (item instanceof Item) {
+			fResourceToItemsMapper.removeFromMap(element, (Item) item);
+		}
+		super.unmapElement(element, item);
+	}
+
+	/*
+	 * @see StructuredViewer#unmapAllElements()
+	 */
+	protected void unmapAllElements() {
+		fResourceToItemsMapper.clearMap();
+		super.unmapAllElements();
+	}
+
+	/*
+	 * @see ContentViewer#handleLabelProviderChanged(LabelProviderChangedEvent)
+	 */
+	protected void handleLabelProviderChanged(LabelProviderChangedEvent event) {
+
+		Object[] changed = event.getElements();
+		if (changed != null && !fResourceToItemsMapper.isEmpty()) {
+			ArrayList others = new ArrayList();
+			for (int i = 0; i < changed.length; i++) {
+				Object curr = changed[i];
+				if (curr instanceof IResource) {
+					fResourceToItemsMapper.resourceChanged((IResource) curr);
+				} else {
+					others.add(curr);
+				}
+			}
+			if (others.isEmpty()) {
+				return;
+			}
+			event = new LabelProviderChangedEvent((IBaseLabelProvider) event
+					.getSource(), others.toArray());
+		}
+		super.handleLabelProviderChanged(event);
+	}
+
+	protected void handleDispose(DisposeEvent event) {
+		super.handleDispose(event);
+		dispose();
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/ICommonActionProvider.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/ICommonActionProvider.java
new file mode 100644
index 0000000..ef0609f
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/ICommonActionProvider.java
@@ -0,0 +1,95 @@
+/***************************************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others. All rights reserved. This program and the
+ * accompanying materials are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors: IBM Corporation - initial API and implementation
+ **************************************************************************************************/
+package org.eclipse.ui.navigator;
+
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IViewPart;
+import org.eclipse.ui.actions.ActionContext;
+
+/**
+ * <p>
+ * Provides actions from extensions for menu and {@link org.eclipse.ui.IActionBars}
+ * &nbsp;contributions.
+ * </p>
+ * This interface is used by the <b>org.eclipse.wst.common.navigator.views.actionProvider </b>
+ * extension point and also as the <i>actionProvider </a> attribute for the
+ * <b>org.eclipse.wst.common.navigator.views.navigatorContent </b> extension point.
+ * </p>
+ * <p>
+ * The following class is experimental until fully documented.
+ * </p>
+ */
+public interface ICommonActionProvider extends IMementoAware {
+
+	/**
+	 * <p>
+	 * Initialize the current ICommonActionProvider with the supplied information.
+	 * </p>
+	 * @param anExtensionId TODO
+	 * @param aViewPart
+	 *            The view part that the current ICommonActionProvider will be associated with
+	 * @param aContentService
+	 *            The content service that the current ICommonActionProvider will be associated with
+	 * @param aStructuredViewer TODO
+	 */
+	public void init(String anExtensionId, IViewPart aViewPart, 
+						NavigatorContentService aContentService, StructuredViewer aStructuredViewer);
+
+	/**
+	 * <p>
+	 * Clean up any long-lived objects or resources. Do not dispose of any of the components
+	 * supplied during {@link #init(IViewPart, StructuredViewer, NavigatorContentService)}.
+	 * </p>
+	 *  
+	 */
+	public void dispose();
+
+	/**
+	 * <p>
+	 * The action context will be made available before any invocation of
+	 * {@link #fillContextMenu(IMenuManager)}&nbsp; or {@link #fillActionBars(IActionBars)}. The
+	 * action context contains the current selection in the viewer. Implementors should use that
+	 * selection when computing their additions.
+	 * </p>
+	 * 
+	 * @param aContext
+	 *            An action context that contains the current selection in the viewer.
+	 */
+	public void setActionContext(ActionContext aContext);
+
+	/**
+	 * <p>
+	 * Contribute menu actions to aMenu which are relevant to the selection supplied from
+	 * {@link #setActionContext(ActionContext)}.
+	 * </p>
+	 * 
+	 * @param aMenu
+	 *            The menu from the viewer that requires contributions.
+	 * @return True if anything was added to the menu
+	 */
+	public boolean fillContextMenu(IMenuManager aMenu);
+
+	/**
+	 * <p>
+	 * Contribute the correct global, retargetable actions based on the selection supplied in
+	 * {@link #setActionContext(ActionContext)}. Do not call {@link IActionBars#updateActionBars()}
+	 * &nbsp; during this method. The action bars will be updated after all extensions have had a
+	 * chance to contribute.
+	 * </p>
+	 * 
+	 * @param theActionBars
+	 *            The action bars associated with the current viewer
+	 * @return True if anything was added to the action bars
+	 */
+	public boolean fillActionBars(IActionBars theActionBars);
+
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/ICommonDropActionDelegate.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/ICommonDropActionDelegate.java
new file mode 100644
index 0000000..35d74fc
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/ICommonDropActionDelegate.java
@@ -0,0 +1,49 @@
+/***************************************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others. All rights reserved. This program and the
+ * accompanying materials are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors: IBM Corporation - initial API and implementation
+ **************************************************************************************************/
+package org.eclipse.ui.navigator;
+
+import org.eclipse.ui.navigator.internal.dnd.CommonNavigatorDropAdapter;
+import org.eclipse.ui.part.IDropActionDelegate;
+
+/**
+ * <p>
+ * Used by the <b>org.eclipse.wst.common.navigator.views.dropHandler</b> extension point to carry
+ * out pluggable Drag and Drop actions.
+ * </p>
+ * <p>
+ * This interface is experimental and is subject to change.
+ * </p>
+ *  
+ */
+public interface ICommonDropActionDelegate extends IDropActionDelegate {
+
+	/**
+	 * <p>
+	 * Perform any necessary initialization using the {@link CommonViewer}.
+	 * </p>
+	 * 
+	 * @param aViewer
+	 *            The instance of {@link CommonViewer}that the current ICommonDropActionDelegate
+	 *            will be associated with
+	 */
+	void init(CommonViewer aViewer);
+
+	/**
+	 * Carry out the DND operation
+	 * 
+	 * @param operation
+	 *            one of DND.DROP_MOVE|DND.DROP_COPY|DND.DROP_LINK
+	 * @param source
+	 *            The object being dragged
+	 * @param target
+	 *            The object being dragged onto
+	 * @return
+	 */
+	boolean run(CommonNavigatorDropAdapter dropAdapter, Object source, Object target);
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/ICommonLabelProvider.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/ICommonLabelProvider.java
new file mode 100644
index 0000000..4ad121d
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/ICommonLabelProvider.java
@@ -0,0 +1,48 @@
+/***************************************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others. All rights reserved. This program and the
+ * accompanying materials are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors: IBM Corporation - initial API and implementation
+ **************************************************************************************************/
+package org.eclipse.ui.navigator;
+
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+
+/**
+ * <p>
+ * A custom interface for Common Navigator extensions that either (1) require
+ * more information about the specific
+ * {@link org.eclipse.wst.common.navigator.views.CommonViewer}&nbsp;they are
+ * associated with, or (2) would like to return a custom description for use in
+ * the Status Bar. Clients may choose to implement this interface for the
+ * <i>labelProvider</i> attribute of the
+ * <b>org.eclipse.wst.common.navigator.views.navigatorContent </b> extension
+ * point.
+ * </p>
+ * <p>
+ * Clients need not implement this interface if there is no cause to do so.
+ * {@link org.eclipse.jface.viewers.ILabelProvider}&nbsp;is respected by the
+ * Common Navigator.
+ * <p>
+ * The following class is experimental until fully documented.
+ * </p>
+ */
+public interface ICommonLabelProvider extends ILabelProvider, IMementoAware,
+		IDescriptionProvider {
+
+	/**
+	 * <p>
+	 * Provides the viewer id for any label provider initialization.
+	 * </p>
+	 * 
+	 * @param aViewerId
+	 *            The ID of the viewer that will be associated with the current
+	 *            ICommonLabelProvider
+	 */
+	void init(IExtensionStateModel aStateModel,
+			ITreeContentProvider aContentProvider);
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/ICommonMenuConstants.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/ICommonMenuConstants.java
new file mode 100644
index 0000000..643c4b9
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/ICommonMenuConstants.java
@@ -0,0 +1,179 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/*
+ * Created on Feb 5, 2004
+ *
+ * To change the template for this generated file go to
+ * Window - Preferences - Java - Code Generation - Code and Comments
+ */
+package org.eclipse.ui.navigator;
+
+import org.eclipse.ui.IWorkbenchActionConstants;
+
+/**
+ * @author mdelder
+ *  
+ */
+public interface ICommonMenuConstants {
+
+	// the following was taken directly from the JDT's menu constants
+
+	//		/**
+	//		 * Type hierarchy view part: pop-up menu target ID for type hierarchy viewer
+	//		 * (value <code>"org.eclipse.jdt.ui.TypeHierarchy.typehierarchy"</code>).
+	//		 *
+	//		 * @since 2.0
+	//		 */
+	//		public static final String TARGET_ID_HIERARCHY_VIEW= JavaUI.ID_TYPE_HIERARCHY +
+	// ".typehierarchy"; //$NON-NLS-1$
+	//
+	//		/**
+	//		 * Type hierarchy view part: pop-up menu target ID for supertype hierarchy viewer
+	//		 * (value <code>"org.eclipse.jdt.ui.TypeHierarchy.supertypes"</code>).
+	//		 *
+	//		 * @since 2.0
+	//		 */
+	//		public static final String TARGET_ID_SUPERTYPES_VIEW= JavaUI.ID_TYPE_HIERARCHY +
+	// ".supertypes"; //$NON-NLS-1$
+	//
+	//		/**
+	//		 * Type hierarchy view part: Pop-up menu target ID for the subtype hierarchy viewer
+	//		 * (value <code>"org.eclipse.jdt.ui.TypeHierarchy.subtypes"</code>).
+	//		 *
+	//		 * @since 2.0
+	//		 */
+	//		public static final String TARGET_ID_SUBTYPES_VIEW= JavaUI.ID_TYPE_HIERARCHY + ".subtypes";
+	// //$NON-NLS-1$
+	//
+	//		/**
+	//		 * Type hierarchy view part: pop-up menu target ID for the meber viewer
+	//		 * (value <code>"org.eclipse.jdt.ui.TypeHierarchy.members"</code>).
+	//		 *
+	//		 * @since 2.0
+	//		 */
+	//		public static final String TARGET_ID_MEMBERS_VIEW= JavaUI.ID_TYPE_HIERARCHY + ".members";
+	// //$NON-NLS-1$
+
+
+	/**
+	 * Pop-up menu: name of group for goto actions (value <code>"group.open"</code>).
+	 * <p>
+	 * Examples for open actions are:
+	 * <ul>
+	 * <li>Go Into</li>
+	 * <li>Go To</li>
+	 * </ul>
+	 * </p>
+	 */
+	public static final String GROUP_GOTO = "group.goto"; //$NON-NLS-1$
+
+	/**
+	 * Pop-up menu: name of group for porting actions (value <code>"group.port"</code>).
+	 * <p>
+	 * Examples for open actions are:
+	 * <ul>
+	 * <li>Import</li>
+	 * <li>Export</li>
+	 * </ul>
+	 * </p>
+	 */
+	public static final String GROUP_PORT = "group.port";//$NON-NLS-1$
+	/**
+	 * Pop-up menu: name of group for open actions (value <code>"group.open"</code>).
+	 * <p>
+	 * Examples for open actions are:
+	 * <ul>
+	 * <li>Open To</li>
+	 * <li>Open With</li>
+	 * </ul>
+	 * </p>
+	 */
+	public static final String GROUP_OPEN = "group.open"; //$NON-NLS-1$
+
+	/**
+	 * Pop-up menu: name of group for show actions (value <code>"group.show"</code>).
+	 * <p>
+	 * Examples for show actions are:
+	 * <ul>
+	 * <li>Show in Navigator</li>
+	 * <li>Show in Type Hierarchy</li>
+	 * </ul>
+	 * </p>
+	 */
+	public static final String GROUP_SHOW = "group.show"; //$NON-NLS-1$
+
+	/**
+	 * Pop-up menu: name of group for new actions (value <code>"group.new"</code>).
+	 * <p>
+	 * Examples for new actions are:
+	 * <ul>
+	 * <li>Create new class</li>
+	 * <li>Create new interface</li>
+	 * </ul>
+	 * </p>
+	 */
+	public static final String GROUP_NEW = "group.new"; //$NON-NLS-1$
+
+	/**
+	 * Pop-up menu: name of group for build actions (value <code>"group.build"</code>).
+	 */
+	public static final String GROUP_BUILD = "group.build"; //$NON-NLS-1$
+
+	/**
+	 * Pop-up menu: name of group for reorganize actions (value <code>"group.reorganize"</code>).
+	 */
+	public static final String GROUP_REORGANIZE = IWorkbenchActionConstants.GROUP_REORGANIZE;
+
+	/**
+	 * Pop-up menu: name of group for code generation actions ( value <code>"group.generate"</code>).
+	 */
+	public static final String GROUP_GENERATE = "group.generate"; //$NON-NLS-1$
+
+	/**
+	 * Pop-up menu: name of group for source actions. This is an alias for
+	 * <code>GROUP_GENERATE</code> to be more consistent with main menu bar structure.
+	 * 
+	 * @since 2.0
+	 */
+	public static final String GROUP_SOURCE = GROUP_GENERATE;
+
+	/**
+	 * Pop-up menu: name of group for search actions (value <code>"group.search"</code>).
+	 */
+	public static final String GROUP_SEARCH = "group.search"; //$NON-NLS-1$
+
+	/**
+	 * Pop-up menu: name of group for additional actions (value <code>"additions"</code>).
+	 */
+	public static final String GROUP_ADDITIONS = "additions"; //$NON-NLS-1$
+
+	/**
+	 * Pop-up menu: name of group for viewer setup actions (value <code>"group.viewerSetup"</code>).
+	 */
+	public static final String GROUP_VIEWER_SETUP = "group.viewerSetup"; //$NON-NLS-1$
+
+	/**
+	 * Pop-up menu: name of group for properties actions (value <code>"group.properties"</code>).
+	 */
+	public static final String GROUP_PROPERTIES = "group.properties"; //$NON-NLS-1$ 
+
+	public static final String COMMON_MENU_TOP = GROUP_NEW;
+	public static final String COMMON_MENU_OPEN_ACTION = GROUP_OPEN;
+	public static final String COMMON_MENU_OPEN_WITH_ACTIONS = "common-menu-openwith-actions"; //$NON-NLS-1$
+	public static final String COMMON_MENU_EDIT_ACTIONS = "common-menu-edit-actions"; //$NON-NLS-1$
+	public static final String COMMON_MENU_EDIT_CUT = "common-menu-edit-cut"; //$NON-NLS-1$
+	public static final String COMMON_MENU_EDIT_COPY = "common-menu-edit-copy"; //$NON-NLS-1$		
+	public static final String COMMON_MENU_EDIT_PASTE = "common-menu-edit-paste"; //$NON-NLS-1$
+	public static final String COMMON_MENU_EDIT_DELETE = "common-menu-edit-delete"; //$NON-NLS-1$
+	public static final String COMMON_MENU_ADDITIONS = IWorkbenchActionConstants.MB_ADDITIONS;
+	public static final String COMMON_MENU_BOTTOM = "common-menu-bottom"; //$NON-NLS-1$
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/ICommonOpenListener.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/ICommonOpenListener.java
new file mode 100644
index 0000000..1839374
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/ICommonOpenListener.java
@@ -0,0 +1,43 @@
+/***************************************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others. All rights reserved. This program and the
+ * accompanying materials are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors: IBM Corporation - initial API and implementation
+ **************************************************************************************************/
+package org.eclipse.ui.navigator;
+
+import org.eclipse.jface.viewers.IOpenListener;
+
+/**
+ * <p>
+ * Provides a custom interface for clients that require more information than the standard
+ * {@link org.eclipse.jface.viewers.IOpenListener}&nbsp;allows. Clients may choose to implement this
+ * interface for the openListener attribute of the
+ * <b>org.eclipse.wst.common.navigator.views.navigatorContent </b> extension point.
+ * </p>
+ * <p>
+ * Clients need not implement this interface if there is no cause to do so.
+ * {@link ICommonOpenListener}&nbsp;is respected by the Common Navigator.
+ * <p>
+ * <p>
+ * The following class is experimental until fully documented.
+ * </p>
+ */
+public interface ICommonOpenListener extends IOpenListener {
+
+	/**
+	 * <p>
+	 * Allows ICommonOpenListeners to customize their display based on the current viewer.
+	 * </p>
+	 * 
+	 * @param aCommonNavigator
+	 *            The instance of {@link CommonNavigator}&nbsp;that the current ICommonOpenListener
+	 *            will be associated with
+	 * @param aContentService
+	 *            The instance of {@link NavigatorContentService}&nbsp;that the current
+	 *            ICommonOpenListener will be associated with
+	 */
+	void initialize(CommonNavigator aCommonNavigator, NavigatorContentService aContentService);
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/IDescriptionProvider.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/IDescriptionProvider.java
new file mode 100644
index 0000000..4fecd36
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/IDescriptionProvider.java
@@ -0,0 +1,34 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/ 
+package org.eclipse.ui.navigator;
+
+
+public interface IDescriptionProvider {
+	
+	
+	/**
+	 * <p>
+	 * Provide a description for the status bar view, if available. A default string of the form
+	 * "(x) items selected" will be used if this method choosed to return null.
+	 * </p>
+	 * 
+	 * <p>
+	 * The empty string ("") will be respected as a valid value if returned. Return <b>null </b> if
+	 * the extension defers to the default method of supplying status bar descriptions.
+	 * </p>
+	 * 
+	 * @param anElement
+	 *            The element selected in the Navigator
+	 * @return A description for the status bar view, or null if not available.
+	 */
+	String getDescription(Object anElement);
+
+}
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/IExtensionStateModel.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/IExtensionStateModel.java
new file mode 100644
index 0000000..5b22249
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/IExtensionStateModel.java
@@ -0,0 +1,40 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator;
+
+import org.eclipse.jface.util.IPropertyChangeListener;
+
+public interface IExtensionStateModel {
+
+	String getId();
+
+	String getViewerId();
+
+	String getStringProperty(String aPropertyName);
+
+	boolean getBooleanProperty(String aPropertyName);
+
+	int getIntProperty(String aPropertyName);
+	
+	Object getProperty(String aPropertyName);
+
+	void setStringProperty(String aPropertyName, String aPropertyValue);
+
+	void setBooleanProperty(String aPropertyName, boolean aPropertyValue);
+
+	void setIntProperty(String aPropertyName, int aPropertyValue);
+	
+	void setProperty(String aPropertyName, Object aPropertyValue);
+
+	void addPropertyChangeListener(IPropertyChangeListener aListener);
+
+	void removePropertyChangeListener(IPropertyChangeListener aListener);
+}
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/ILinkHelper.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/ILinkHelper.java
new file mode 100644
index 0000000..153deb5
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/ILinkHelper.java
@@ -0,0 +1,52 @@
+/***************************************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others. All rights reserved. This program and the
+ * accompanying materials are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors: IBM Corporation - initial API and implementation
+ **************************************************************************************************/
+package org.eclipse.ui.navigator;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IWorkbenchPage;
+
+
+/**
+ * <p>
+ * Provides information to the Common Navigator on how to link selections with active editors and
+ * vice versa.
+ * </p>
+ * <p>
+ * The Common Navigator allows clients to plug-in their own custom logic for linking selections from
+ * the Viewer to active editors. This interface is used by the
+ * <b>org.eclipse.wst.common.navigator.views.linkHelper </b> extension point to gather information
+ * and trigger editor activations.
+ * </p>
+ */
+public interface ILinkHelper {
+
+	/**
+	 * <p>
+	 * Determine the correct structured selection for the Common Navigator given anInput.
+	 * </p>
+	 * 
+	 * @param anInput
+	 *            An Editor input
+	 * @return A selection to be set against the {@link CommonViewer}
+	 */
+	IStructuredSelection findSelection(IEditorInput anInput);
+
+	/**
+	 * <p>
+	 * Activate the correct editor for aSelection.
+	 * </p>
+	 * 
+	 * @param aPage
+	 *            A WorkbenchPage to use for editor location and activation
+	 * @param aSelection
+	 *            The current selection from the {@link CommonViewer}
+	 */
+	void activateEditor(IWorkbenchPage aPage, IStructuredSelection aSelection);
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/IMementoAware.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/IMementoAware.java
new file mode 100644
index 0000000..47e4b33
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/IMementoAware.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/ 
+package org.eclipse.ui.navigator;
+
+import org.eclipse.ui.IMemento;
+
+public interface IMementoAware {
+
+	/**
+	 * <p>
+	 * Restore the previous state of any actions using the flags in aMemento. This method allows the
+	 * state of any actions that persist from session to session to be restored.
+	 * </p> 
+	 * 
+	 * @param aMemento
+	 *            A memento that was given to the view part to restore its state.
+	 */
+	public void restoreState(IMemento aMemento);
+
+	/**
+	 * <p>
+	 * Save flags in aMemento to remember the state of any actions that persist from session to
+	 * session.
+	 * </p>
+	 * <p>
+	 * Extensions should qualify any keys stored in the memento with their plugin id
+	 * </p>
+	 * 
+	 * @param aMemento
+	 *            A memento that was given to the view part to save its state.
+	 */
+	public void saveState(IMemento aMemento);
+ 
+}
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/INavigatorExtensionFilter.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/INavigatorExtensionFilter.java
new file mode 100644
index 0000000..d566862
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/INavigatorExtensionFilter.java
@@ -0,0 +1,55 @@
+/***************************************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others. All rights reserved. This program and the
+ * accompanying materials are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors: IBM Corporation - initial API and implementation
+ **************************************************************************************************/
+package org.eclipse.ui.navigator;
+
+
+
+/**
+ * <p>
+ * Handles the filtering responsibilities for extensions of the
+ * <b>org.eclipse.wst.common.navigator.views.commonFilter </b> extension point.
+ * <p>
+ * This interface is experimental and is subject to change.
+ * </p>
+ */
+public interface INavigatorExtensionFilter {
+
+
+	/**
+	 * <p>
+	 * Returns an array of the objects that should be displayed in the viewer.
+	 * </p>
+	 * 
+	 * @param aViewer
+	 *            The instance of {@link CommonViewer}that is requesting the filtering action
+	 * @param aParentElement
+	 *            The parent object in the tree that will have children specified by theElements
+	 * @param theElements
+	 *            The original list of elements as returned by the viewer's content provider
+	 * @return A subset of theElements that should be displayed in the viewer.
+	 */
+	Object[] select(CommonViewer aViewer, Object aParentElement, Object[] theElements);
+
+	/**
+	 * <p>
+	 * Returns true if the child anElement should be displayed within the viewer aViewer.
+	 * </p>
+	 * 
+	 * @param aViewer
+	 *            The instance of {@link CommonViewer}that is requesting the filtering action
+	 * @param aParentElement
+	 *            The parent object in the tree that has the child anElement
+	 * @param anElement
+	 *            The child under interrogation of the Filter inquisition
+	 * @return True if the child anElement should be displayed in the viewer aViewer as a child of
+	 *         aParentElement
+	 */
+	boolean select(CommonViewer aViewer, Object aParentElement, Object anElement);
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/NavigatorActionService.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/NavigatorActionService.java
new file mode 100644
index 0000000..9797ee9
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/NavigatorActionService.java
@@ -0,0 +1,411 @@
+/***************************************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others. All rights reserved. This program and the
+ * accompanying materials are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors: IBM Corporation - initial API and implementation
+ **************************************************************************************************/
+package org.eclipse.ui.navigator;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.ISafeRunnable;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jface.action.GroupMarker;
+import org.eclipse.jface.action.IContributionItem;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.MenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IMemento;
+import org.eclipse.ui.IViewPart;
+import org.eclipse.ui.IWorkbenchActionConstants;
+import org.eclipse.ui.actions.ActionContext;
+import org.eclipse.ui.navigator.internal.NavigatorPlugin;
+import org.eclipse.ui.navigator.internal.actions.CommonActionProviderDescriptor;
+import org.eclipse.ui.navigator.internal.extensions.NavigatorContentExtension;
+import org.eclipse.ui.navigator.internal.extensions.RegistryReader;
+import org.eclipse.ui.navigator.internal.extensions.SkeletonActionProvider;
+
+/**
+ * <p>
+ * The following class is experimental until fully documented.
+ * </p>
+ */
+public class NavigatorActionService {
+	
+
+	private static final CommonActionProviderDescriptor[] NO_DESCRIPTORS= new CommonActionProviderDescriptor[0];
+
+	private static final IContributionItem NEW_GROUP= new Separator(ICommonMenuConstants.GROUP_NEW);
+	private static final IContributionItem GOTO_GROUP= new GroupMarker(ICommonMenuConstants.GROUP_GOTO);
+	private static final IContributionItem OPEN_GROUP= new Separator(ICommonMenuConstants.GROUP_OPEN);
+	private static final IContributionItem SHOW_GROUP= new GroupMarker(ICommonMenuConstants.GROUP_SHOW);
+	private static final IContributionItem EDIT_GROUP= new Separator(ICommonMenuConstants.COMMON_MENU_EDIT_ACTIONS);
+	private static final IContributionItem REORGANIZE_GROUP= new GroupMarker(ICommonMenuConstants.GROUP_REORGANIZE);
+	private static final IContributionItem PORT_GROUP= new GroupMarker(ICommonMenuConstants.GROUP_PORT);
+	private static final IContributionItem GENERATE_GROUP= new Separator(ICommonMenuConstants.GROUP_GENERATE);
+	private static final IContributionItem SEARCH_GROUP= new Separator(ICommonMenuConstants.GROUP_SEARCH);
+	private static final IContributionItem BUILD_GROUP= new Separator(ICommonMenuConstants.GROUP_BUILD);
+	private static final IContributionItem ADDITIONS_GROUP= new Separator(ICommonMenuConstants.GROUP_ADDITIONS);
+	private static final IContributionItem VIEWER_GROUP= new Separator(ICommonMenuConstants.GROUP_VIEWER_SETUP);
+	private static final IContributionItem PROPERTIES_GROUP= new Separator(ICommonMenuConstants.GROUP_PROPERTIES);
+
+	private final IViewPart viewPart;
+	private final StructuredViewer structuredViewer;
+	private final NavigatorContentService contentService;
+	private final Set actionProviderDescriptors= new HashSet();
+	private final Map actionProviderInstances= new HashMap();
+	private boolean isApplyingActionsFromContentExtensions;
+
+	private IMemento memento;
+
+	private boolean isDisposed= false;
+	private boolean isInitialized= false;
+
+	private MenuManager contextMenu;
+
+	/**
+	 * 
+	 */
+	public NavigatorActionService(IViewPart aViewPart, StructuredViewer aStructuredViewer, NavigatorContentService aContentService) {
+		this(aViewPart, aStructuredViewer, aContentService, true);
+	}
+
+	/**
+	 * 
+	 */
+	public NavigatorActionService(IViewPart aViewPart, StructuredViewer aStructuredViewer, NavigatorContentService aContentService, boolean toApplyActionsFromContentExtensions) {
+		super();
+		viewPart= aViewPart;
+		contentService= aContentService;
+		structuredViewer= aStructuredViewer;
+		isApplyingActionsFromContentExtensions= toApplyActionsFromContentExtensions;
+
+		init();
+	}
+
+	public void refresh() {
+		IStructuredSelection sSelection= (IStructuredSelection) structuredViewer.getSelection();
+		fillActionBars(viewPart.getViewSite().getActionBars(), sSelection);
+		fillContextMenu(contextMenu, sSelection);
+
+	}
+
+	private void init() {
+		if (isInitialized)
+			return;
+		try {
+			new CommonActionRegistry().readRegistry();
+
+			Collection contentDescriptors= contentService.getExtensions();
+			if (contentDescriptors.size() > 0) { 
+				NavigatorContentExtension descriptorInstance= null;
+				for (Iterator iter= contentDescriptors.iterator(); iter.hasNext();) {
+					descriptorInstance= (NavigatorContentExtension) iter.next();
+					descriptorInstance.getActionProvider(this);
+// moved initialization to getActionProvider(this); 					
+//					initialize(descriptorInstance.getId(), provider);
+				}
+			}
+
+		} catch (RuntimeException re) {
+			NavigatorPlugin.log("Could not initialize NavigatorActionService for " + contentService.getViewerId() + ": " + re.getMessage());
+			re.printStackTrace();
+		}
+		isInitialized= true;
+	}
+
+	public void fillContextMenu(IMenuManager aMenu, IStructuredSelection aStructuredSelection) {
+		complainIfDisposed();
+
+		aMenu.add(NEW_GROUP);
+		aMenu.add(GOTO_GROUP);
+		aMenu.add(OPEN_GROUP);
+		aMenu.add(SHOW_GROUP);
+		aMenu.add(EDIT_GROUP);
+		aMenu.add(REORGANIZE_GROUP);
+		aMenu.add(PORT_GROUP);
+		aMenu.add(GENERATE_GROUP);
+		aMenu.add(SEARCH_GROUP);
+		aMenu.add(BUILD_GROUP);
+		aMenu.add(ADDITIONS_GROUP);
+		aMenu.add(VIEWER_GROUP);
+		aMenu.add(PROPERTIES_GROUP);
+
+		if (aStructuredSelection == null || aStructuredSelection.isEmpty())
+			aStructuredSelection= new StructuredSelection(structuredViewer.getInput());
+		ActionContext context= new ActionContext(aStructuredSelection);
+		addContentDescriptorMenu(aMenu, aStructuredSelection, context);
+		addCommonActionProviderMenu(aMenu, aStructuredSelection, context);
+
+		aMenu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
+	}
+
+	/**
+	 * @param aMenu
+	 * @param aStructuredSelection
+	 * @param aContext
+	 */
+	private void addCommonActionProviderMenu(IMenuManager aMenu, IStructuredSelection aStructuredSelection, ActionContext aContext) {
+		CommonActionProviderDescriptor[] providerDescriptors= findRelevantActionDescriptors(aStructuredSelection);
+		if (providerDescriptors.length > 0) {
+			ICommonActionProvider provider= null;
+			for (int i= 0; i < providerDescriptors.length; i++) {
+				try {
+					provider= getActionProviderInstance(providerDescriptors[i]);
+					provider.setActionContext(aContext);
+					provider.fillContextMenu(aMenu);
+				} catch (RuntimeException e) {
+					// TODO Auto-generated catch block
+					e.printStackTrace();
+				}
+			}
+		}
+	}
+
+	/**
+	 * @param aMenu
+	 * @param aStructuredSelection
+	 * @param aContext
+	 */
+	private void addContentDescriptorMenu(IMenuManager aMenu, IStructuredSelection aStructuredSelection, ActionContext aContext) {
+		if (isApplyingActionsFromContentExtensions) {
+			NavigatorContentExtension[] contentDescriptorInstances= contentService.findRelevantContentExtensions(aStructuredSelection);
+			NavigatorContentExtension contentDescriptorInstance= null;
+			ICommonActionProvider provider= null;
+			for (int x= 0; x < contentDescriptorInstances.length; ++x) {
+				try {
+					contentDescriptorInstance= contentDescriptorInstances[x];
+					provider= contentDescriptorInstance.getActionProvider(this);
+					if (provider != SkeletonActionProvider.INSTANCE) {
+						provider.setActionContext(aContext);
+						provider.fillContextMenu(aMenu);
+					}
+				} catch (RuntimeException e) {
+					// TODO Auto-generated catch block
+					e.printStackTrace();
+				}
+			}
+		}
+	}
+
+	public void fillActionBars(IActionBars theActionBars, IStructuredSelection aStructuredSelection) {
+		complainIfDisposed();
+
+		boolean actionBarsChanged= false;
+		ActionContext context= new ActionContext(aStructuredSelection);
+		if (isApplyingActionsFromContentExtensions) {
+			NavigatorContentExtension[] contentDescriptorInstances= contentService.findRelevantContentExtensions(aStructuredSelection);
+			NavigatorContentExtension contentDescriptorInstance= null;
+			ICommonActionProvider provider= null;
+			for (int x= 0; x < contentDescriptorInstances.length; ++x) {
+				try {
+					contentDescriptorInstance= contentDescriptorInstances[x];
+					provider= contentDescriptorInstance.getActionProvider(this);
+					if (provider != SkeletonActionProvider.INSTANCE) {
+						provider.setActionContext(context);
+						actionBarsChanged|= provider.fillActionBars(theActionBars);
+					}
+				} catch (RuntimeException e) {
+					// TODO Auto-generated catch block
+					e.printStackTrace();
+				}
+			}
+		}
+
+		CommonActionProviderDescriptor[] providerDescriptors= findRelevantActionDescriptors(aStructuredSelection);
+		if (providerDescriptors.length > 0) {
+			ICommonActionProvider provider= null;
+			for (int i= 0; i < providerDescriptors.length; i++) {
+				try {
+					provider= getActionProviderInstance(providerDescriptors[i]);
+					provider.setActionContext(context);
+					actionBarsChanged|= provider.fillActionBars(theActionBars);
+				} catch (RuntimeException e) {
+					// TODO Auto-generated catch block
+					e.printStackTrace();
+				}
+			}
+		}
+		if (actionBarsChanged) {
+			theActionBars.updateActionBars();
+			theActionBars.getMenuManager().update();
+		}
+	}
+
+	private CommonActionProviderDescriptor[] findRelevantActionDescriptors(IStructuredSelection aStructuredSelection) {
+		CommonActionProviderDescriptor actionDescriptor= null;
+		List providers= new ArrayList();
+		for (Iterator providerItr= actionProviderDescriptors.iterator(); providerItr.hasNext();) {
+			actionDescriptor= (CommonActionProviderDescriptor) providerItr.next();
+			if (actionDescriptor.isEnabledFor(aStructuredSelection))
+				providers.add(actionDescriptor);
+		}
+		if (providers.size() > 0)
+			return (CommonActionProviderDescriptor[]) providers.toArray(new CommonActionProviderDescriptor[providers.size()]);
+		return NO_DESCRIPTORS;
+	}
+
+	public void dispose() {
+		if (isDisposed)
+			return;
+		synchronized (actionProviderInstances) {
+			for (Iterator iter= actionProviderInstances.values().iterator(); iter.hasNext();) {
+				ICommonActionProvider element= (ICommonActionProvider) iter.next();
+				element.dispose();
+			}
+			actionProviderInstances.clear();
+		}
+		actionProviderDescriptors.clear();
+		isDisposed= true;
+	}
+
+	private ICommonActionProvider getActionProviderInstance(CommonActionProviderDescriptor aProviderDescriptor) {
+		ICommonActionProvider provider= (ICommonActionProvider) actionProviderInstances.get(aProviderDescriptor);
+		if (provider != null)
+			return provider;
+		synchronized (actionProviderInstances) {
+			provider= (ICommonActionProvider) actionProviderInstances.get(aProviderDescriptor);
+			if (provider == null) {
+				provider= aProviderDescriptor.createActionProvider();
+				if (provider != null) {
+					initialize(null, provider);
+					actionProviderInstances.put(aProviderDescriptor, provider);
+				} else
+					actionProviderInstances.put(aProviderDescriptor, (provider= SkeletonActionProvider.INSTANCE));
+			}
+		}
+		return provider;
+	}
+
+	private void addActionDescriptor(CommonActionProviderDescriptor aDescriptor) {
+		actionProviderDescriptors.add(aDescriptor);
+	}
+
+	private void complainIfDisposed() {
+		if (isDisposed)
+			throw new IllegalStateException("NavigatorActionService has already been disposed.");
+	}
+
+	private class CommonActionRegistry extends RegistryReader {
+
+		private static final String ACTION_PROVIDER= "actionProvider"; //$NON-NLS-1$
+
+		public CommonActionRegistry() {
+			super(NavigatorPlugin.PLUGIN_ID, ACTION_PROVIDER);
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.wst.common.navigator.internal.views.extensions.RegistryReader#readElement(org.eclipse.core.runtime.IConfigurationElement)
+		 */
+		protected boolean readElement(IConfigurationElement anElement) {
+			if (ACTION_PROVIDER.equals(anElement.getName())) {
+				addActionDescriptor(new CommonActionProviderDescriptor(anElement));
+			}
+			return true;
+		}
+	}
+
+	/**
+	 * @param aMemento
+	 */
+	public void restoreState(IMemento aMemento) {
+		memento= aMemento;
+
+		synchronized (actionProviderInstances) {
+			for (Iterator actionProviderIterator= actionProviderInstances.values().iterator(); actionProviderIterator.hasNext();) {
+				final ICommonActionProvider provider= (ICommonActionProvider) actionProviderIterator.next();
+				ISafeRunnable runnable= new ISafeRunnable() {
+					public void run() throws Exception {
+						provider.restoreState(memento);
+
+					}
+
+					public void handleException(Throwable exception) {
+						NavigatorPlugin.logError(0, "Could not restore state for action provider \"" + provider.getClass() + "\".", exception);
+
+					}
+				};
+				Platform.run(runnable);
+
+			}
+		}
+
+		Collection contentDescriptors= contentService.getExtensions();
+		if (contentDescriptors.size() > 0) {
+			NavigatorContentExtension element= null;
+			for (Iterator iter= contentDescriptors.iterator(); iter.hasNext();) {
+				element= (NavigatorContentExtension) iter.next();
+				final ICommonActionProvider provider= element.getActionProvider(this);
+				ISafeRunnable runnable= new ISafeRunnable() {
+					public void run() throws Exception {
+						provider.restoreState(memento);
+
+					}
+
+					public void handleException(Throwable exception) {
+						NavigatorPlugin.logError(0, "Could not restore state for action provider \"" + provider.getClass() + "\".", exception);
+
+					}
+				};
+				Platform.run(runnable);
+			}
+		}
+	}
+
+
+	/**
+	 * @param memento2
+	 */
+	public void saveState(IMemento aMemento) {
+		memento= aMemento;
+		ICommonActionProvider provider= null;
+		synchronized (actionProviderInstances) {
+			for (Iterator actionProviderIterator= actionProviderInstances.values().iterator(); actionProviderIterator.hasNext();) {
+				provider= (ICommonActionProvider) actionProviderIterator.next();
+				provider.saveState(memento);
+			}
+		}
+
+		Collection contentDescriptors= contentService.getExtensions();
+		if (contentDescriptors.size() > 0) {
+			NavigatorContentExtension element= null;
+			for (Iterator iter= contentDescriptors.iterator(); iter.hasNext();) {
+				element= (NavigatorContentExtension) iter.next();
+				provider= element.getActionProvider(this);
+				provider.saveState(memento);
+			}
+		}
+	}
+
+	public void initialize(String anExtensionId, ICommonActionProvider anActionProvider) {
+		if (anActionProvider != null && anActionProvider != SkeletonActionProvider.INSTANCE) {
+			anActionProvider.init(anExtensionId, viewPart, contentService, structuredViewer);
+			if (memento != null)
+				anActionProvider.restoreState(memento);
+			anActionProvider.setActionContext(new ActionContext(StructuredSelection.EMPTY));
+			anActionProvider.fillActionBars(viewPart.getViewSite().getActionBars());
+		}
+
+	}
+
+	public void setUpdateMenu(MenuManager menuMgr) {
+		contextMenu= menuMgr;
+
+	}
+}
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/NavigatorContentService.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/NavigatorContentService.java
new file mode 100644
index 0000000..2da29a4
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/NavigatorContentService.java
@@ -0,0 +1,479 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.runtime.ISafeRunnable;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.ui.IMemento;
+import org.eclipse.ui.navigator.internal.NavigatorPlugin;
+import org.eclipse.ui.navigator.internal.extensions.IExtensionActivationListener;
+import org.eclipse.ui.navigator.internal.extensions.INavigatorContentServiceListener;
+import org.eclipse.ui.navigator.internal.extensions.NavigatorActivationService;
+import org.eclipse.ui.navigator.internal.extensions.NavigatorContentDescriptor;
+import org.eclipse.ui.navigator.internal.extensions.NavigatorContentDescriptorRegistry;
+import org.eclipse.ui.navigator.internal.extensions.NavigatorContentExtension;
+import org.eclipse.ui.navigator.internal.extensions.NavigatorViewerDescriptor;
+import org.eclipse.ui.navigator.internal.extensions.NavigatorViewerDescriptorRegistry;
+import org.eclipse.ui.navigator.internal.extensions.StructuredViewerManager;
+
+/**
+ * <p>
+ * Provides centralized access to the information provided by NavigatorContentExtensions. Can be
+ * instantiated as needed, but should be cached for active viewers. Information specific to a given
+ * viewer will be cached by the NavigatorContentService, not including ContentProviders and Label
+ * Providers created by {@link #createCommonContentProvider()}and
+ * {@link #createCommonLabelProvider()}respectively.
+ * </p>
+ * 
+ * <p>
+ * The following class is experimental until fully documented.
+ * </p>
+ */
+public class NavigatorContentService implements IExtensionActivationListener, IMementoAware {
+
+	private static final NavigatorActivationService NAVIGATOR_ACTIVATION_SERVICE = NavigatorActivationService.getInstance();
+	private static final NavigatorContentDescriptorRegistry CONTENT_DESCRIPTOR_REGISTRY = NavigatorContentDescriptorRegistry.getInstance();
+	private static final NavigatorViewerDescriptorRegistry VIEWER_DESCRIPTOR_REGISTRY = NavigatorViewerDescriptorRegistry.getInstance();
+
+	private static final NavigatorContentExtension[] NO_DESCRIPTOR_INSTANCES = new NavigatorContentExtension[0];
+	private static final ITreeContentProvider[] NO_CONTENT_PROVIDERS = new ITreeContentProvider[0];
+	private static final ILabelProvider[] NO_LABEL_PROVIDERS = new ILabelProvider[0];
+
+	private final NavigatorViewerDescriptor viewerDescriptor;
+	private final List listeners = new ArrayList();
+
+	/*
+	 * A map of (String-based-Navigator-Content-Extension-IDs,
+	 * NavigatorContentExtension-objects)-pairs
+	 */
+	private final Map contentExtensions = new HashMap();
+	private StructuredViewerManager structuredViewerManager;
+
+	private ITreeContentProvider[] rootContentProviders;
+	private Collection exclusions = new ArrayList();
+
+	/**
+	 *  
+	 */
+	public NavigatorContentService(String aViewerId) {
+		super();
+		aViewerId = aViewerId != null ? aViewerId : ""; //$NON-NLS-1$
+		viewerDescriptor = VIEWER_DESCRIPTOR_REGISTRY.getNavigatorViewerDescriptor(aViewerId);
+		NavigatorActivationService.getInstance().addExtensionActivationListener(viewerDescriptor.getViewerId(), this);
+	}
+
+	/**
+	 *  
+	 */
+	public NavigatorContentService(String aViewerId, StructuredViewer aViewer) {
+		this(aViewerId);
+		structuredViewerManager = new StructuredViewerManager(aViewer);
+	} 	
+
+	public ITreeContentProvider createCommonContentProvider() {
+		return new NavigatorContentServiceContentProvider(this);
+	}
+
+	/**
+	 * @return
+	 */
+	public ILabelProvider createCommonLabelProvider() {
+		return new NavigatorContentServiceLabelProvider(this);
+	}
+
+	/**
+	 *  
+	 */
+	public void dispose() {
+		for (Iterator contentItr = contentExtensions.values().iterator(); contentItr.hasNext();)
+			((NavigatorContentExtension) contentItr.next()).dispose();
+		NavigatorActivationService.getInstance().removeExtensionActivationListener(viewerDescriptor.getViewerId(), this);
+	}
+
+	protected void updateService(Viewer aViewer, Object anOldInput, Object aNewInput) {
+
+		synchronized (this) {
+
+			if (structuredViewerManager == null) {
+				structuredViewerManager = new StructuredViewerManager(aViewer);
+				structuredViewerManager.inputChanged(anOldInput, aNewInput);
+			} else
+				structuredViewerManager.inputChanged(aViewer, anOldInput, aNewInput);
+
+			for (Iterator contentItr = contentExtensions.values().iterator(); contentItr.hasNext();)
+				structuredViewerManager.initialize(((NavigatorContentExtension) contentItr.next()).getContentProvider());
+
+			NavigatorContentExtension[] resultInstances = findRootContentDescriptors(aNewInput);
+			rootContentProviders = extractContentProviders(resultInstances);
+		}
+	}
+	
+	public IExtensionStateModel findStateModel(String anExtensionId) {
+		return getExtension(CONTENT_DESCRIPTOR_REGISTRY.getContentDescriptor(anExtensionId)).getStateModel();		
+	}
+
+	/**
+	 * @param element
+	 * @return
+	 */
+	public ITreeContentProvider[] findParentContentProviders(Object anElement) {
+		NavigatorContentExtension[] resultInstances = findRelevantContentExtensions(anElement);
+		return extractContentProviders(resultInstances);
+	}
+
+	/**
+	 * <p>
+	 * Return all of the content providers that are relevant for the viewer. The viewer is
+	 * determined by the ID used to create the NavigatorContentService.
+	 * </p>
+	 * 
+	 * @return
+	 */
+	public ITreeContentProvider[] findRootContentProviders(Object anElement) {
+		if (rootContentProviders != null)
+			return rootContentProviders;
+		synchronized (this) {
+			if (rootContentProviders == null) {
+				NavigatorContentExtension[] resultInstances = findRootContentDescriptors(anElement);
+				if (resultInstances.length > 0)
+					rootContentProviders = extractContentProviders(resultInstances);
+				else {
+					resultInstances = findRootContentDescriptors(anElement, false);
+					rootContentProviders = extractContentProviders(resultInstances);
+				}
+			}
+		}
+		return rootContentProviders;
+	}
+
+	/**
+	 * <p>
+	 * Return all of the content providers that are enabled for the given parameter 'element'.
+	 * 
+	 * @param anElement
+	 * @return
+	 */
+	public ITreeContentProvider[] findRelevantContentProviders(Object anElement) {
+		NavigatorContentExtension[] resultInstances = findRelevantContentExtensions(anElement);
+		return extractContentProviders(resultInstances);
+	}
+
+
+	/**
+	 * <p>
+	 * Return all of the label providers that are enabled for the given parameter 'element'.
+	 * 
+	 * @param anElement
+	 * @return
+	 */
+	
+	public ILabelProvider[] findRelevantLabelProviders(Object anElement) {
+		NavigatorContentExtension[] resultInstances = findRelevantContentExtensions(anElement,false);
+		return extractLabelProviders(resultInstances);
+	}
+	
+	public NavigatorContentExtension[] findRelevantContentExtensions(Object anElement) {
+		List enabledDescriptors = getEnabledDescriptors(anElement);
+		return extractDescriptorInstances(enabledDescriptors);		
+	}
+	
+	public NavigatorContentExtension[] findRelevantContentExtensions(Object anElement, boolean toLoadIfNecessary) {
+		List enabledDescriptors = getEnabledDescriptors(anElement);
+		return extractDescriptorInstances(enabledDescriptors,toLoadIfNecessary);		
+	}
+	
+	
+
+	public NavigatorContentExtension[] findRelevantContentExtensions(IStructuredSelection aSelection) {
+		List contentDescriptors = getEnabledDescriptors(aSelection);
+		if(contentDescriptors.size() == 0)
+			return NO_DESCRIPTOR_INSTANCES;
+		NavigatorContentExtension[] contentDescriptorInstances = new NavigatorContentExtension[contentDescriptors.size()];
+		NavigatorContentDescriptor descriptor; 		
+		for(int i=0; i<contentDescriptors.size(); i++ ) {
+			descriptor = (NavigatorContentDescriptor) contentDescriptors.get(i);
+			contentDescriptorInstances[i] = getExtension(descriptor);
+		}
+		return contentDescriptorInstances;
+		
+	}
+
+
+	/**
+	 * @param anElement
+	 * @return
+	 */
+	private List getEnabledDescriptors(Object anElement) {
+		return filterDescriptors(CONTENT_DESCRIPTOR_REGISTRY.getEnabledContentDescriptors(anElement, viewerDescriptor)); 
+	}
+
+	/**
+	 * @param aSelection
+	 * @return
+	 */
+	private List getEnabledDescriptors(IStructuredSelection aSelection) {
+		return filterDescriptors(CONTENT_DESCRIPTOR_REGISTRY.getEnabledContentDescriptors(aSelection));
+	}
+	 
+	private List filterDescriptors(List contentDescriptors) {
+		List result = new ArrayList();
+		for (int x=0; x< contentDescriptors.size(); ++x) {
+			NavigatorContentDescriptor descriptor = (NavigatorContentDescriptor) contentDescriptors.get(x);
+			if(!exclusions.contains(descriptor.getId()))
+				result.add(descriptor);			
+		}
+		return result;
+		
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.extensions.IInitializationManager#initialize(org.eclipse.jface.viewers.IStructuredContentProvider)
+	 */
+	public boolean initialize(IStructuredContentProvider aContentProvider) {
+		return structuredViewerManager.initialize(aContentProvider);
+	}
+
+	/**
+	 * @param viewerId
+	 * @param navigatorExtensionId
+	 * @param toEnable
+	 */
+	public void onExtensionActivation(String aViewerId, String aNavigatorExtensionId, boolean toEnable) {
+		update();
+	}
+
+	public void update() {
+		rootContentProviders = null;
+		structuredViewerManager.safeRefresh();
+	}
+
+	/**
+	 * @return Returns the viewerId.
+	 */
+	public final String getViewerId() {
+		return viewerDescriptor.getViewerId();
+	}
+	/**
+	 * @param object
+	 * @return
+	 */
+	public final NavigatorContentExtension getExtension(NavigatorContentDescriptor aDescriptorKey) {
+		return getExtension(aDescriptorKey,true);
+	}
+	
+	/**
+	 * @param object
+	 * @return
+	 */
+	public final NavigatorContentExtension getExtension(NavigatorContentDescriptor aDescriptorKey , boolean toLoadIfNecessary) {
+		/* Query and return the relevant descriptor instance */
+		NavigatorContentExtension extension = (NavigatorContentExtension) contentExtensions.get(aDescriptorKey);
+		if (extension != null || !toLoadIfNecessary)
+			return extension;
+
+		/*
+		 * If the descriptor instance hasn't been created yet, then we need to (1) verify that it
+		 * wasn't added by another thread, (2) create and add the result into the map
+		 */
+		synchronized (this) {
+			extension = (NavigatorContentExtension) contentExtensions.get(aDescriptorKey);
+			if (extension == null) {
+				contentExtensions.put(aDescriptorKey, (extension = new NavigatorContentExtension(aDescriptorKey, this, structuredViewerManager)));
+				notifyListeners(extension);
+			}
+		}
+		return extension;
+		
+	}
+
+	/**
+	 * 
+	 * @return The ViewerDescriptor for tihs Content Service instance. 
+	 */
+	public NavigatorViewerDescriptor getViewerDescriptor() {
+		return viewerDescriptor;
+	}
+	
+	
+	public void addExclusion(String anExtensionId) {
+		exclusions.add(anExtensionId);
+	}
+	
+	public void removeExclusion(String anExtensionId) {
+		exclusions.remove(anExtensionId);
+	}
+	
+	public void restoreState(final IMemento aMemento) { 
+		synchronized (this) { 
+			for (Iterator extensionItr = getExtensions().iterator(); extensionItr.hasNext();) {
+				final NavigatorContentExtension element = (NavigatorContentExtension) extensionItr.next();
+				ISafeRunnable runnable = new ISafeRunnable() {
+					public void run() throws Exception {
+						element.restoreState(aMemento);	
+						
+					}
+					public void handleException(Throwable exception) {
+						NavigatorPlugin.logError(0, "Could not restore state for Common Navigator content extension \""+element.getId()+"\".", exception);
+						
+					}
+				};
+				Platform.run(runnable);				
+				
+			}
+		}		
+	}
+	
+	public void saveState(IMemento aMemento) { 
+		synchronized (this) { 
+			for (Iterator extensionItr = getExtensions().iterator(); extensionItr.hasNext();) {
+				NavigatorContentExtension element = (NavigatorContentExtension) extensionItr.next();
+				element.saveState(aMemento);
+			}
+		}		
+	}
+
+	protected final NavigatorContentExtension[] findRootContentDescriptors(Object anElement) {
+		return findRootContentDescriptors(anElement, true);
+	}
+
+	protected final NavigatorContentExtension[] findRootContentDescriptors(Object anElement, boolean toRespectViewerRoots) {
+		String[] rootDescriptorIds = viewerDescriptor.getRootContentExtensionIds();
+		NavigatorContentExtension[] resultInstances = null;
+
+		if (toRespectViewerRoots && rootDescriptorIds.length > 0) {
+			List resultInstancesList = new ArrayList();
+
+			NavigatorContentDescriptor descriptor = null;
+			NavigatorContentExtension extension = null;
+			for (int i = 0; i < rootDescriptorIds.length; i++) {
+				if (isActive(rootDescriptorIds[i])) {
+					descriptor = CONTENT_DESCRIPTOR_REGISTRY.getContentDescriptor(rootDescriptorIds[i]);
+					extension = getExtension(descriptor);
+					if (!extension.hasLoadingFailed())
+						resultInstancesList.add(extension);
+				}
+			}
+			resultInstancesList.toArray((resultInstances = new NavigatorContentExtension[resultInstancesList.size()]));
+		} else
+			resultInstances = findRelevantContentExtensions(anElement);
+		return resultInstances;
+	}
+
+	protected boolean isActive(String anExtensionId) {
+		return !exclusions.contains(anExtensionId) && NAVIGATOR_ACTIVATION_SERVICE.isNavigatorExtensionActive(getViewerId(), anExtensionId);
+	}	
+
+	protected final Collection getExtensions() {
+		return (contentExtensions.size() > 0) ? Collections.unmodifiableCollection(contentExtensions.values()) : Collections.EMPTY_LIST;
+	}
+
+	public void addListener(INavigatorContentServiceListener aListener) {
+		listeners.add(aListener);
+	}
+
+	public void removeListener(INavigatorContentServiceListener aListener) {
+		listeners.remove(aListener);
+	}
+
+	private void notifyListeners(NavigatorContentExtension aDescriptorInstance) {
+		
+		if (listeners.size() == 0)
+			return;
+		INavigatorContentServiceListener listener = null;
+		List failedListeners = null;
+		for (Iterator listenersItr = listeners.iterator(); listenersItr.hasNext();) {
+			try {
+				listener = (INavigatorContentServiceListener) listenersItr.next();
+				listener.onLoad(aDescriptorInstance);
+			} catch (RuntimeException re) {
+				if (failedListeners == null)
+					failedListeners = new ArrayList();
+				failedListeners.add(listener);				
+			}
+		}
+		if (failedListeners != null) {
+			listeners.removeAll(failedListeners);
+		}
+	}
+
+	/**
+	 * @param theDescriptorInstances
+	 * @return
+	 */
+	private ITreeContentProvider[] extractContentProviders(NavigatorContentExtension[] theDescriptorInstances) {
+		if (theDescriptorInstances.length == 0)
+			return NO_CONTENT_PROVIDERS;
+		List resultProvidersList = new ArrayList();
+		for (int i = 0; i < theDescriptorInstances.length; i++)
+			if (theDescriptorInstances[i].getContentProvider() != null)
+				resultProvidersList.add(theDescriptorInstances[i].getContentProvider());
+		return (ITreeContentProvider[]) resultProvidersList.toArray(new ITreeContentProvider[resultProvidersList.size()]);
+	}
+
+	/**
+	 * @param theDescriptors
+	 *            a List of NavigatorContentDescriptor objects
+	 * @return
+	 */
+	private NavigatorContentExtension[] extractDescriptorInstances(List theDescriptors) {
+		return extractDescriptorInstances(theDescriptors,true);
+	}
+	
+	
+	/**
+	 * @param theDescriptors
+	 *            a List of NavigatorContentDescriptor objects
+	 * @return
+	 */
+	private NavigatorContentExtension[] extractDescriptorInstances(List theDescriptors, boolean toLoadAllIfNecessary) {
+		if (theDescriptors.size() == 0)
+			return NO_DESCRIPTOR_INSTANCES;
+		List  resultInstances = new ArrayList();
+		for (int i = 0; i < theDescriptors.size(); i++) {
+			NavigatorContentExtension extension = getExtension((NavigatorContentDescriptor) theDescriptors.get(i), toLoadAllIfNecessary);
+			if (extension != null) {
+				resultInstances.add(extension);
+				
+			}
+		}
+		return (NavigatorContentExtension[]) resultInstances.toArray(new NavigatorContentExtension[resultInstances.size()]);
+	}
+
+	/**
+	 * @param theDescriptorInstances
+	 * @return
+	 */
+	private ILabelProvider[] extractLabelProviders(NavigatorContentExtension[] theDescriptorInstances) {
+		if (theDescriptorInstances.length == 0)
+			return NO_LABEL_PROVIDERS;
+		List resultProvidersList = new ArrayList();
+		for (int i = 0; i < theDescriptorInstances.length; i++)
+			if (theDescriptorInstances[i].getLabelProvider() != null)
+				resultProvidersList.add(theDescriptorInstances[i].getLabelProvider());
+		return (ILabelProvider[]) resultProvidersList.toArray(new ILabelProvider[resultProvidersList.size()]);
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/NavigatorContentServiceContentProvider.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/NavigatorContentServiceContentProvider.java
new file mode 100644
index 0000000..d6acfd3
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/NavigatorContentServiceContentProvider.java
@@ -0,0 +1,265 @@
+/***************************************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others. All rights reserved. This program and the
+ * accompanying materials are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors: IBM Corporation - initial API and implementation
+ **************************************************************************************************/
+package org.eclipse.ui.navigator;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.ui.navigator.internal.NavigatorPlugin;
+import org.eclipse.ui.navigator.internal.extensions.NavigatorContentExtension;
+
+/**
+ * <p>
+ * Provides relevant content based on the associated
+ * {@link org.eclipse.wst.common.navigator.views.NavigatorContentService}&nbsp; for a TreeViewer .
+ * </p>
+ * <p>
+ * Except for the dependency on
+ * {@link org.eclipse.wst.common.navigator.views.NavigatorContentService}, this class has no
+ * dependencies on the rest of the Common Navigator framework. Tree viewers that would like to use
+ * the extensions defined by the Common Navigator, without using the actual view part or other
+ * pieces of functionality (filters, sorting, etc) may choose to use this class, in effect using an
+ * extensible, aggregating, delegate content provider.
+ * </p>
+ * 
+ * @see org.eclipse.ui.navigator.NavigatorContentService
+ * @see org.eclipse.ui.navigator.NavigatorContentServiceLabelProvider
+ *  
+ */
+public class NavigatorContentServiceContentProvider implements ITreeContentProvider {
+
+
+	private static final Object[] NO_CHILDREN = new Object[0];
+	private final NavigatorContentService contentService;
+	private final boolean isContentServiceSelfManaged;
+
+	/**
+	 * <p>
+	 * Creates a cached {@link NavigatorContentService}&nbsp;from the given viewer Id.
+	 * </p>
+	 * 
+	 * @param aViewerId
+	 *            The associated viewer id that this NavigatorContentServiceContentProvider will
+	 *            provide content for
+	 */
+	public NavigatorContentServiceContentProvider(String aViewerId) {
+		super();
+		contentService = new NavigatorContentService(aViewerId);
+		isContentServiceSelfManaged = true;
+	}
+
+	/**
+	 * <p>
+	 * Uses the supplied content service to acquire the available extensions.
+	 * </p>
+	 * 
+	 * @param aContentService
+	 *            The associated NavigatorContentService that should be used to acquire information.
+	 */
+	public NavigatorContentServiceContentProvider(NavigatorContentService aContentService) {
+		super();
+		contentService = aContentService;
+		isContentServiceSelfManaged = false;
+	}
+
+	/**
+	 * 
+	 * <p>
+	 * Return the root objects for the supplied anInputElement. anInputElement is the root thing
+	 * that the viewer visualizes.
+	 * </p>
+	 * <p>
+	 * This method will call out to its {@link NavigatorContentService}&nbsp;for extensions that are
+	 * enabled on the supplied anInputElement or enabled on the viewerId supplied when the
+	 * {@link NavigatorContentService}&nbsp; was created (either by this class or its client). The
+	 * extensions will then be queried for relevant content. The children returned from each
+	 * extension will be aggregated and returned as is -- there is no additional sorting or
+	 * filtering at this level.
+	 * </p>
+	 * <p>
+	 * The results of this method will be displayed in the root of the TreeViewer.
+	 * </p>
+	 * {@inheritDoc}
+	 * 
+	 * @param anInputElement
+	 *            The relevant element that a client would like children for - the input element of
+	 *            the TreeViewer
+	 * @return A non-null array of objects that are logical children of anInputElement
+	 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
+	 */
+	public synchronized Object[] getElements(Object anInputElement) {
+		ITreeContentProvider[] delegateProviders = contentService.findRootContentProviders(anInputElement);
+		if (delegateProviders.length == 0)
+			return NO_CHILDREN;
+		List resultElements = new ArrayList();
+		Object[] delegateChildren = null;
+		for (int i = 0; i < delegateProviders.length; i++) {
+			try {
+				delegateChildren = delegateProviders[i].getElements(anInputElement);
+				if (delegateChildren != null && delegateChildren.length > 0)
+					resultElements.addAll(Arrays.asList(delegateChildren));
+			} catch (RuntimeException re) {
+				String msg = "Could not acquire children from extension: " + delegateProviders[i].getClass();
+				NavigatorPlugin.log(msg, new Status(IStatus.ERROR, NavigatorPlugin.PLUGIN_ID, 0, msg, re));
+			}
+		}
+		return resultElements.toArray();
+	}
+
+	/**
+	 * <p>
+	 * Return the children of the supplied aParentElement
+	 * </p>
+	 * 
+	 * <p>
+	 * This method will call out to its {@link NavigatorContentService}&nbsp;for extensions that are
+	 * enabled on the supplied aParentElement. The extensions will then be queried for children for
+	 * aParentElement. The children returned from each extension will be aggregated and returned as
+	 * is -- there is no additional sorting or filtering at this level.
+	 * </p>
+	 * <p>
+	 * The results of this method will be displayed as children of the supplied element in the
+	 * TreeViewer.
+	 * </p>
+	 * {@inheritDoc}
+	 * 
+	 * @param aParentElement
+	 *            An element that requires children content in the viewer (e.g. an end-user expanded
+	 *            a node)
+	 * @return A non-null array of objects that are logical children of aParentElement
+	 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
+	 */
+	public synchronized Object[] getChildren(Object aParentElement) {
+		ITreeContentProvider[] delegateProviders = contentService.findRelevantContentProviders(aParentElement);
+		if (delegateProviders.length == 0)
+			return NO_CHILDREN;
+		List resultChildren = new ArrayList();
+		Object[] delegateChildren = null;
+		for (int i = 0; i < delegateProviders.length; i++) {
+			try {
+				delegateChildren = delegateProviders[i].getChildren(aParentElement);
+				if (delegateChildren != null && delegateChildren.length > 0)
+					resultChildren.addAll(Arrays.asList(delegateChildren));
+			} catch (RuntimeException re) {
+				String msg = "Could not acquire children from extension: " + delegateProviders[i].getClass();
+				NavigatorPlugin.log(msg, new Status(IStatus.ERROR, NavigatorPlugin.PLUGIN_ID, 0, msg, re));
+			} catch (Error e) {
+				String msg = "Could not acquire children from extension: " + delegateProviders[i].getClass();
+				NavigatorPlugin.log(msg, new Status(IStatus.ERROR, NavigatorPlugin.PLUGIN_ID, 0, msg, e));
+
+			}
+		}
+		return resultChildren.toArray();
+	}
+
+	/**
+	 * <p>
+	 * Returns the logical parent of anElement.
+	 * </p>
+	 * <p>
+	 * This method requires that any extension that would like an opportunity to supply a parent for
+	 * anElement expressly indicate that in the action expression &lt;enables&gt; statement of the
+	 * <b>org.eclipse.wst.common.navigator.views.navigatorContent </b> extension point.
+	 * </p>
+	 * {@inheritDoc}
+	 * 
+	 * @param anElement
+	 *            An element that requires its logical parent - generally as a result of
+	 *            setSelection(expand=true) on the viewer
+	 * @return The logical parent if available or null if the parent cannot be determined
+	 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
+	 */
+	public synchronized Object getParent(Object anElement) {
+		ITreeContentProvider[] delegateProviders = contentService.findParentContentProviders(anElement);
+
+		Object parent = null;
+		for (int i = 0; i < delegateProviders.length; i++) {
+			try {
+				if ((parent = delegateProviders[i].getParent(anElement)) != null)
+					return parent;
+			} catch (RuntimeException re) {
+				String msg = "Could not acquire parent from extension: " + delegateProviders[i].getClass();
+				NavigatorPlugin.log(msg, new Status(IStatus.ERROR, NavigatorPlugin.PLUGIN_ID, 0, msg, re));
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * <p>
+	 * Used to determine of anElement should be displayed with a '+' or not.
+	 * </p>
+	 * {@inheritDoc}
+	 * 
+	 * @param anElement
+	 *            The element in question
+	 * @return True if anElement has logical children as returned by this content provider.
+	 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
+	 */
+	public synchronized boolean hasChildren(Object anElement) {
+		NavigatorContentExtension[] resultInstances = contentService.findRelevantContentExtensions(anElement);
+
+		for (int i = 0; i < resultInstances.length; i++) {
+			if (!resultInstances[i].isLoaded())
+				return true;
+			else if (resultInstances[i].getContentProvider().hasChildren(anElement))
+				return true;
+		}
+
+		return false;
+	}
+
+	/**
+	 * <p>
+	 * Handles any necessary clean up of the {@link NavigatorContentService}
+	 * </p>
+	 * 
+	 * <p>
+	 * <b>If a client uses this class outside of the framework of {@link CommonViewer}, the client must ensure that this method
+	 * is called when finished. </b>
+	 * </p>
+	 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
+	 */
+	public synchronized void dispose() {
+		if (isContentServiceSelfManaged)
+			contentService.dispose();
+	}
+
+	/**
+	 * <p>
+	 * Indicates that the current content provider is now representing a different input element.
+	 * The input element is the root thing that the viewer displays.
+	 * </p>
+	 * <p>
+	 * This method should handle any cleanup associated with the old input element and any
+	 * initiailization associated with the new input element.
+	 * </p>
+	 * {@inheritDoc}
+	 * 
+	 * @param aViewer
+	 *            The viewer that the current content provider is associated with
+	 * @param anOldInput
+	 *            The original input element that the viewer was visualizing
+	 * @param aNewInput
+	 *            The new input element that the viewer will visualize.
+	 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
+	 *      java.lang.Object, java.lang.Object)
+	 *  
+	 */
+	public synchronized void inputChanged(Viewer aViewer, Object anOldInput, Object aNewInput) {
+		contentService.updateService(aViewer, anOldInput, aNewInput);
+	}
+
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/NavigatorContentServiceDescriptionProvider.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/NavigatorContentServiceDescriptionProvider.java
new file mode 100644
index 0000000..5129fdd
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/NavigatorContentServiceDescriptionProvider.java
@@ -0,0 +1,78 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/ 
+package org.eclipse.ui.navigator;
+
+import java.util.List;
+
+import org.eclipse.jface.util.Assert;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.navigator.internal.NavigatorMessages;
+import org.eclipse.ui.navigator.internal.extensions.NavigatorContentDescriptor;
+import org.eclipse.ui.navigator.internal.extensions.NavigatorContentDescriptorRegistry;
+import org.eclipse.ui.navigator.internal.extensions.NavigatorContentExtension;
+
+public class NavigatorContentServiceDescriptionProvider implements
+		IDescriptionProvider {
+	
+
+	private static final NavigatorContentDescriptorRegistry CONTENT_DESCRIPTOR_REGISTRY = NavigatorContentDescriptorRegistry.getInstance();
+ 
+	private final NavigatorContentService contentService;
+
+	public NavigatorContentServiceDescriptionProvider(NavigatorContentService aContentService) { 
+		Assert.isNotNull(aContentService); 
+		contentService = aContentService;		
+	}	
+	
+	public String getDescription(Object anElement) { 
+		
+		Object target;
+		
+		if(anElement instanceof IStructuredSelection) {
+
+			IStructuredSelection structuredSelection = (IStructuredSelection) anElement;
+			if (structuredSelection.size() > 1) {
+				return getDefaultStatusBarMessage(structuredSelection.size()); 
+			} else {
+				target = structuredSelection.getFirstElement();
+			}
+		} else {
+			target = anElement;
+		}
+			
+
+		List contentDescriptors = CONTENT_DESCRIPTOR_REGISTRY.getEnabledContentDescriptors(target);
+		if (contentDescriptors.size() == 0)
+			return getDefaultStatusBarMessage(0);
+		else {
+			/* Use the first Navigator Content Descriptor for now */
+			NavigatorContentDescriptor contentDescriptor = (NavigatorContentDescriptor) contentDescriptors.get(0);
+			NavigatorContentExtension contentDescriptorInstance = contentService.getExtension(contentDescriptor);
+
+			ICommonLabelProvider labelProvider = contentDescriptorInstance.getLabelProvider();
+
+			String message = labelProvider.getDescription(target);
+			message = (message != null) ? message : getDefaultStatusBarMessage(1);
+			return message;
+		} 
+	}
+	
+	/**
+	 * @param aStructuredSelection The current selection from the {@link CommonViewer}
+	 * @return A string of the form "# items selected"
+	 */
+	protected final String getDefaultStatusBarMessage(int aSize) {
+		return NavigatorMessages.format("Navigator.statusLineMultiSelect", //$NON-NLS-1$
+					new Object[]{new Integer(aSize)});
+
+	}
+
+}
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/NavigatorContentServiceLabelProvider.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/NavigatorContentServiceLabelProvider.java
new file mode 100644
index 0000000..7653c28
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/NavigatorContentServiceLabelProvider.java
@@ -0,0 +1,207 @@
+/***************************************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others. All rights reserved. This program and the
+ * accompanying materials are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors: IBM Corporation - initial API and implementation
+ **************************************************************************************************/
+package org.eclipse.ui.navigator;
+
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.jface.util.ListenerList;
+import org.eclipse.jface.util.SafeRunnable;
+import org.eclipse.jface.viewers.ILabelDecorator;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.LabelProviderChangedEvent;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.PlatformUI;
+
+/**
+ * <p>
+ * Provides relevant labels based on the associated
+ * {@link org.eclipse.wst.common.navigator.views.NavigatorContentService}for the contents of a
+ * TreeViewer .
+ * <p>
+ * 
+ * <p>
+ * Except for the dependency on
+ * {@link org.eclipse.wst.common.navigator.views.NavigatorContentService}, this class has no
+ * dependencies on the rest of the Common Navigator framework. Tree viewers that would like to use
+ * the extensions defined by the Common Navigator, without using the actual view part or other
+ * pieces of functionality (filters, sorting, etc) may choose to use this class, in effect using an
+ * extensible label provider.
+ * </p>
+ * 
+ * @see org.eclipse.ui.navigator.NavigatorContentService
+ * @see org.eclipse.ui.navigator.NavigatorContentServiceContentProvider
+ */
+public class NavigatorContentServiceLabelProvider implements ILabelProvider {
+
+	private final ILabelDecorator decorator;
+	private final NavigatorContentService contentService;
+	private final boolean isContentServiceSelfManaged;
+	private ListenerList listeners = new ListenerList(1);
+
+	/**
+	 * <p>
+	 * Creates a cached {@link NavigatorContentService}&nbsp;from the given viewer Id.
+	 * </p>
+	 * 
+	 * @param aViewerId
+	 *            The associated viewer id that this NavigatorContentServiceLabelProvider will
+	 *            provide labels for
+	 */
+	public NavigatorContentServiceLabelProvider(String aViewerId) {
+		super();
+		contentService = new NavigatorContentService(aViewerId);
+		decorator = PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator();
+		isContentServiceSelfManaged = true;
+	}
+
+	/**
+	 * <p>
+	 * Uses the supplied content service to acquire the available extensions.
+	 * </p>
+	 * 
+	 * @param aContentService
+	 *            The associated NavigatorContentService that should be used to acquire information.
+	 */
+	public NavigatorContentServiceLabelProvider(NavigatorContentService aContentService) {
+		contentService = aContentService;
+		decorator = PlatformUI.getWorkbench().getDecoratorManager().getLabelDecorator();
+		isContentServiceSelfManaged = false;
+	}
+
+	/**
+	 * <p>
+	 * Return the appropriate image for anElement. The image will be used as the icon for anElement
+	 * when displayed in the tree viewer. This method uses information from its contentService to
+	 * know what extensions to use to supply the correct label.
+	 * </p>
+	 * {@inheritDoc}
+	 * 
+	 * @param anElement 
+	 *            An element from the Tree Viewer 
+	 * @return The Image that will be used as the icon when anElement is displayed in the viewer.
+	 * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
+	 */
+	public Image getImage(Object anElement) {
+		ILabelProvider[] labelProviders = contentService.findRelevantLabelProviders(anElement);
+		Image image = null;
+		for (int i = 0; i < labelProviders.length && image == null; i++)
+			image = labelProviders[i].getImage(anElement);
+		return image == null ? null : decorator.decorateImage(image, anElement); //$NON-NLS-1$
+	}
+
+	/**
+	 * <p>
+	 * Return a String representation of anElement to be used as the display name in the tree
+	 * viewer.
+	 * </p>
+	 * {@inheritDoc}
+	 * 
+	 * @param anElement
+	 *            An element from the Tree Viewer 
+	 * @return The String label to display for the object when represented in the viewer.
+	 * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
+	 */
+	public String getText(Object anElement) {
+		ILabelProvider[] labelProviders = contentService.findRelevantLabelProviders(anElement);
+		String text = null;
+		for (int i = 0; i < labelProviders.length && text == null; i++)
+			text = labelProviders[i].getText(anElement);
+		// decorate the element
+		return text == null ? "" : decorator.decorateText(text, anElement); //$NON-NLS-1$
+	}
+
+	/**
+	 * <p>
+	 * Indicates whether anElelement has aProperty that affects the display of the label.
+	 * </p>
+	 * {@inheritDoc}
+	 * 
+	 * @param anElement
+	 *            An element from the Tree Viewer
+	 * @param aProperty
+	 *            A property of the given element that could be a label provider
+	 * @return True if any of the extensions enabled on anElement consider aProperty a
+	 *         label-changing property.
+	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object,
+	 *      java.lang.String)
+	 */
+	public boolean isLabelProperty(Object anElement, String aProperty) {
+		boolean result = false;
+		ILabelProvider[] labelProviders = contentService.findRelevantLabelProviders(anElement);
+		for (int i = 0; i < labelProviders.length && !result; i++)
+			result = labelProviders[i].isLabelProperty(anElement, aProperty);
+		return result;
+	}
+
+
+	/**
+	 * <p>
+	 * Label provider listeners are currently unsupported.
+	 * </p>
+	 * 
+	 * {@inheritDoc}
+	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
+	 */
+	public void addListener(ILabelProviderListener aListener) {
+		listeners.add(aListener);
+	}
+
+	/**
+	 * <p>
+	 * Label provider listeners are currently unsupported.
+	 * </p>
+	 * 
+	 * {@inheritDoc}
+	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
+	 */
+	public void removeListener(ILabelProviderListener aListener) {
+		listeners.remove(aListener);
+	}
+
+	/**
+	 * <p>
+	 * Dispose of the content service, if it was created and not supplied.
+	 * </p>
+	 * <p>
+	 * <b>If a client uses this class outside of the framework of {@link CommonViewer}, this method
+	 * must be called when finished. </b>
+	 * </p>
+	 * 
+	 * {@inheritDoc}
+	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
+	 */
+	public void dispose() {
+		if (isContentServiceSelfManaged)
+			contentService.dispose();
+
+	}
+	
+	/**
+     * Fires a label provider changed event to all registered listeners
+     * Only listeners registered at the time this method is called are notified.
+     *
+     * @param event a label provider changed event
+     *
+     * @see ILabelProviderListener#labelProviderChanged
+     */
+    protected void fireLabelProviderChanged(
+            final LabelProviderChangedEvent event) {
+        Object[] theListeners = this.listeners.getListeners();
+        for (int i = 0; i < theListeners.length; ++i) {
+            final ILabelProviderListener l = (ILabelProviderListener) theListeners[i];
+            Platform.run(new SafeRunnable() {
+                public void run() {
+                    l.labelProviderChanged(event);
+                }
+            });
+
+        }
+    }
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/Priority.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/Priority.java
new file mode 100644
index 0000000..965609e
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/Priority.java
@@ -0,0 +1,110 @@
+/***************************************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others. All rights reserved. This program and the
+ * accompanying materials are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors: IBM Corporation - initial API and implementation
+ **************************************************************************************************/
+package org.eclipse.ui.navigator;
+
+/**
+ * <p>Enumeration of the Priority values supported by the Common Navigator.
+ */
+public class Priority {
+
+	public static final int HIGHEST_PRIORITY_VALUE = 7;
+	public static final int HIGHER_PRIORITY_VALUE = 6;
+	public static final int HIGH_PRIORITY_VALUE = 5;
+	public static final int NORMAL_PRIORITY_VALUE = 4;
+	public static final int LOW_PRIORITY_VALUE = 3;
+	public static final int LOWER_PRIORITY_VALUE = 2;
+	public static final int LOWEST_PRIORITY_VALUE = 1;
+
+	public static final String HIGHEST_PRIORITY_LITERAL = "highest"; //$NON-NLS-1$
+	public static final String HIGHER_PRIORITY_LITERAL = "higher"; //$NON-NLS-1$
+	public static final String HIGH_PRIORITY_LITERAL = "high"; //$NON-NLS-1$
+	public static final String NORMAL_PRIORITY_LITERAL = "normal"; //$NON-NLS-1$
+	public static final String LOW_PRIORITY_LITERAL = "low"; //$NON-NLS-1$
+	public static final String LOWER_PRIORITY_LITERAL = "lower"; //$NON-NLS-1$
+	public static final String LOWEST_PRIORITY_LITERAL = "lowest"; //$NON-NLS-1$
+
+
+
+	public static final Priority HIGHEST = new Priority(HIGHEST_PRIORITY_VALUE, HIGHEST_PRIORITY_LITERAL);
+	public static final Priority HIGHER = new Priority(HIGHER_PRIORITY_VALUE, HIGHER_PRIORITY_LITERAL);
+	public static final Priority HIGH = new Priority(HIGH_PRIORITY_VALUE, HIGH_PRIORITY_LITERAL);
+	public static final Priority NORMAL = new Priority(NORMAL_PRIORITY_VALUE, NORMAL_PRIORITY_LITERAL);
+	public static final Priority LOW = new Priority(LOW_PRIORITY_VALUE, LOW_PRIORITY_LITERAL);
+	public static final Priority LOWER = new Priority(LOWER_PRIORITY_VALUE, LOWER_PRIORITY_LITERAL);
+	public static final Priority LOWEST = new Priority(LOWEST_PRIORITY_VALUE, LOWEST_PRIORITY_LITERAL);
+
+	public static final Priority[] ENUM_ARRAY = new Priority[]{HIGHEST, HIGHER, HIGH, NORMAL, LOW, LOWER, LOWEST};
+
+	/**
+	 * <p>
+	 * Returns the correct instance of the Priority ENUM for aLiteral.
+	 * </p>
+	 * <p>
+	 *  This method will return NORMAL if the supplied value of aLiteral is invalid.
+	 * </p>
+	 * 
+	 * @param aLiteral
+	 *            One of the defined *_LITERAL constants of this class
+	 * @return The corresponding Priority Enum or NORMAL if aLiteral is invalid
+	 */
+	public static Priority get(String aLiteral) {
+		for (int i = 0; i < ENUM_ARRAY.length; i++) {
+			if (ENUM_ARRAY[i].getLiteral().equals(aLiteral))
+				return ENUM_ARRAY[i];
+		}
+		return NORMAL;
+	}
+
+	/**
+	 * <p>
+	 * Returns the correct instance of the Priority ENUM for aValue.
+	 * </p> 
+	 * <p>
+	 *  This method will return NORMAL if the supplied value of aValue is invalid.
+	 * </p> 
+	 * 
+	 * @param aValue
+	 *            One of the defined *_VALUE constants of this class
+	 * @return The corresponding Priority Enum or NORMAL if aValue is invalid
+	 */
+	public static Priority get(int aValue) {
+
+		switch (aValue) {
+			case HIGHEST_PRIORITY_VALUE :
+				return HIGHEST;
+			case HIGHER_PRIORITY_VALUE :
+				return HIGHER;
+			case HIGH_PRIORITY_VALUE :
+				return HIGH;
+			case LOWER_PRIORITY_VALUE :
+				return LOWER;
+			case LOWEST_PRIORITY_VALUE :
+				return LOWEST;
+			case NORMAL_PRIORITY_VALUE :
+			default :
+				return NORMAL;
+		}
+	}
+
+	private final int value;
+	private final String literal;
+
+	protected Priority(int aValue, String aLiteral) {
+		value = aValue;
+		literal = aLiteral;
+	}
+
+	public String getLiteral() {
+		return literal;
+	}
+
+	public int getValue() {
+		return value;
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/CommonElementAdapter.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/CommonElementAdapter.java
new file mode 100644
index 0000000..7e80406
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/CommonElementAdapter.java
@@ -0,0 +1,113 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/*
+ * Created on Jan 31, 2004
+ *
+ * To change the template for this generated file go to
+ * Window - Preferences - Java - Code Generation - Code and Comments
+ */
+package org.eclipse.ui.navigator.internal;
+
+import org.eclipse.core.runtime.jobs.ISchedulingRule;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.navigator.internal.deferred.IDeferredElementAdapter;
+import org.eclipse.ui.navigator.internal.extensions.NavigatorContentExtension;
+
+/**
+ * @author mdelder
+ */
+public class CommonElementAdapter implements IDeferredElementAdapter, ISchedulingRule {
+
+	private NavigatorContentExtension extension = null;
+
+	public CommonElementAdapter(NavigatorContentExtension extension) {
+		this.extension = extension;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.views.IDeferredElementAdapter#getChildren(java.lang.Object)
+	 */
+	public Object[] getChildren(Object element) {
+		Object[] children = null;
+		try {
+			children = extension.getContentProvider().getChildren(element);
+		} catch (RuntimeException re) {
+			re.printStackTrace();
+		}
+		return children;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.model.IWorkbenchAdapter#getImageDescriptor(java.lang.Object)
+	 */
+	public ImageDescriptor getImageDescriptor(Object object) {
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.model.IWorkbenchAdapter#getLabel(java.lang.Object)
+	 */
+	public String getLabel(Object o) {
+		return NavigatorMessages.getString("CommonElementAdapter.0"); //$NON-NLS-1$
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.model.IWorkbenchAdapter#getParent(java.lang.Object)
+	 */
+	public Object getParent(Object element) {
+		return extension.getContentProvider().getParent(element);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.views.IDeferredElementAdapter#isContainer()
+	 */
+	public boolean isContainer() {
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.views.IDeferredElementAdapter#getRule(java.lang.Object)
+	 */
+	public ISchedulingRule getRule(Object object) {
+		return this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.runtime.jobs.ISchedulingRule#contains(org.eclipse.core.runtime.jobs.ISchedulingRule)
+	 */
+	public boolean contains(ISchedulingRule rule) {
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.runtime.jobs.ISchedulingRule#isConflicting(org.eclipse.core.runtime.jobs.ISchedulingRule)
+	 */
+	public boolean isConflicting(ISchedulingRule rule) {
+		return false;
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/CommonNavigatorActionGroup.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/CommonNavigatorActionGroup.java
new file mode 100644
index 0000000..5d3666a
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/CommonNavigatorActionGroup.java
@@ -0,0 +1,104 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IWorkbenchActionConstants;
+import org.eclipse.ui.actions.ActionGroup;
+import org.eclipse.ui.navigator.CommonNavigator;
+import org.eclipse.ui.navigator.CommonViewer;
+import org.eclipse.ui.navigator.internal.actions.CollapseAllAction;
+import org.eclipse.ui.navigator.internal.actions.LinkEditorAction;
+import org.eclipse.ui.navigator.internal.filters.SelectFiltersAction;
+
+/**
+ * <p>
+ * The following class is experimental until fully documented.
+ * </p>
+ */
+public class CommonNavigatorActionGroup extends ActionGroup {
+
+	private LinkEditorAction toggleLinkingAction;
+	private CollapseAllAction collapseAllAction;
+	private SelectFiltersAction selectFiltersAction;
+	private final CommonViewer commonViewer;
+	private CommonNavigator commonNavigator;
+
+	/**
+	 *  
+	 */
+	public CommonNavigatorActionGroup(CommonNavigator aNavigator, CommonViewer aViewer) {
+		super();
+		commonNavigator = aNavigator;
+		commonViewer = aViewer;
+		makeActions();
+	}
+
+	/**
+	 * Returns the image descriptor with the given relative path.
+	 */
+	protected final ImageDescriptor getImageDescriptor(String relativePath) {
+		String iconPath = "icons/full/"; //$NON-NLS-1$
+		try {
+			NavigatorPlugin plugin = NavigatorPlugin.getDefault();
+			URL installURL = plugin.getDescriptor().getInstallURL();
+			URL url = new URL(installURL, iconPath + relativePath);
+			return ImageDescriptor.createFromURL(url);
+		} catch (MalformedURLException e) {
+			// should not happen
+			return ImageDescriptor.getMissingImageDescriptor();
+		}
+	}
+
+	/**
+	 *  
+	 */
+	private void makeActions() {
+
+		toggleLinkingAction = new LinkEditorAction(commonNavigator, commonViewer);
+		ImageDescriptor syncIcon = getImageDescriptor("elcl16/synced.gif"); //$NON-NLS-1$
+		toggleLinkingAction.setImageDescriptor(syncIcon);
+		toggleLinkingAction.setHoverImageDescriptor(syncIcon);
+
+		collapseAllAction = new CollapseAllAction(commonViewer);
+		ImageDescriptor collapseAllIcon = getImageDescriptor("elcl16/collapseall.gif"); //$NON-NLS-1$
+		collapseAllAction.setImageDescriptor(collapseAllIcon);
+		collapseAllAction.setHoverImageDescriptor(collapseAllIcon);
+
+		selectFiltersAction = new SelectFiltersAction(commonNavigator);
+		ImageDescriptor selectFiltersIcon = getImageDescriptor("elcl16/filter_ps.gif"); //$NON-NLS-1$
+		selectFiltersAction.setImageDescriptor(selectFiltersIcon);
+		selectFiltersAction.setHoverImageDescriptor(selectFiltersIcon);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.actions.ActionGroup#fillActionBars(org.eclipse.ui.IActionBars)
+	 */
+	public void fillActionBars(IActionBars theActionBars) {
+		IMenuManager menu = theActionBars.getMenuManager();
+
+		menu.insertAfter(IWorkbenchActionConstants.MB_ADDITIONS, selectFiltersAction);
+		menu.insertAfter(IWorkbenchActionConstants.MB_ADDITIONS+"-end", toggleLinkingAction); //$NON-NLS-1$
+
+		theActionBars.getToolBarManager().add(collapseAllAction);
+		theActionBars.getToolBarManager().add(toggleLinkingAction);
+
+		theActionBars.updateActionBars();
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/InstanceSchedulingRule.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/InstanceSchedulingRule.java
new file mode 100644
index 0000000..e97a2e5
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/InstanceSchedulingRule.java
@@ -0,0 +1,60 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal;
+
+import org.eclipse.core.runtime.jobs.ISchedulingRule;
+
+
+/**
+ * @author Administrator
+ * 
+ *  
+ */
+public class InstanceSchedulingRule implements ISchedulingRule {
+
+	private Object instanceTarget = null;
+
+	/**
+	 *  
+	 */
+	public InstanceSchedulingRule(Object target) {
+		this.instanceTarget = target;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.runtime.jobs.ISchedulingRule#contains(org.eclipse.core.runtime.jobs.ISchedulingRule)
+	 */
+	public boolean contains(ISchedulingRule rule) {
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.runtime.jobs.ISchedulingRule#isConflicting(org.eclipse.core.runtime.jobs.ISchedulingRule)
+	 */
+	public boolean isConflicting(ISchedulingRule otherRule) {
+		if (otherRule instanceof InstanceSchedulingRule) {
+			return getInstanceTarget() == ((InstanceSchedulingRule) otherRule).getInstanceTarget();
+		}
+		return false;
+	}
+
+	/**
+	 * @return Returns the instanceTarget.
+	 */
+	protected Object getInstanceTarget() {
+		return instanceTarget;
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/ListenerList.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/ListenerList.java
new file mode 100644
index 0000000..f867b52
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/ListenerList.java
@@ -0,0 +1,80 @@
+/***************************************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others. All rights reserved. This program and the
+ * accompanying materials are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors: IBM Corporation - initial API and implementation
+ **************************************************************************************************/
+package org.eclipse.ui.navigator.internal;
+
+
+
+import java.awt.event.ActionListener;
+
+public class ListenerList {
+	private final static ActionListener[] NULL_ARRAY = new ActionListener[0];
+	protected transient ActionListener[] listenerList = NULL_ARRAY;
+
+	/**
+	 * Add the listener as a listener of the specified type.
+	 * 
+	 * @param t
+	 *            the type of the listener to be added
+	 * @param l
+	 *            the listener to be added
+	 */
+	public synchronized void add(ActionListener l) {
+		if (l == null)
+			return;
+		if (listenerList == NULL_ARRAY) {
+			// if this is the first listener added,
+			// initialize the lists
+			listenerList = new ActionListener[]{l};
+		} else {
+			// Otherwise copy the array and add the new listener
+			int i = listenerList.length;
+			ActionListener[] tmp = new ActionListener[i + 1];
+			System.arraycopy(listenerList, 0, tmp, 0, i);
+
+			tmp[i + 1] = l;
+
+			listenerList = tmp;
+		}
+	}
+
+	/**
+	 * Return the total number of listeners for this listenerlist
+	 */
+	public int getListenerCount() {
+		return listenerList.length;
+	}
+
+	public ActionListener[] getListenerList() {
+		return listenerList;
+	}
+
+	public synchronized void remove(ActionListener l) {
+		if (l == null)
+			return;
+		int index = -1;
+		for (int i = listenerList.length - 1; i >= 0; i -= 1) {
+			if (listenerList[i].equals(l)) {
+				index = i;
+				break;
+			}
+		}
+		if (index != -1) {
+			ActionListener[] tmp = new ActionListener[listenerList.length - 1];
+			// Copy the list up to index
+			System.arraycopy(listenerList, 0, tmp, 0, index);
+			// Copy from two past the index, up to
+			// the end of tmp (which is two elements
+			// shorter than the old list)
+			if (index < tmp.length)
+				System.arraycopy(listenerList, index + 1, tmp, index, tmp.length - index);
+			// set the listener array to the new array or null
+			listenerList = (tmp.length == 0) ? NULL_ARRAY : tmp;
+		}
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/NavigatorImages.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/NavigatorImages.java
new file mode 100644
index 0000000..e923531
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/NavigatorImages.java
@@ -0,0 +1,82 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.resource.ImageRegistry;
+import org.eclipse.swt.graphics.Image;
+
+
+/** 
+ */
+public class NavigatorImages {
+
+	//Create image registry
+	private final static ImageRegistry NAVIGATOR_PLUGIN_REGISTRY = NavigatorPlugin.getDefault().getImageRegistry();
+
+	private static URL ICON_LOCATION;
+	static {
+		try {
+			ICON_LOCATION = new URL(NavigatorPlugin.getDefault().getDescriptor().getInstallURL(), "icons/full/"); //$NON-NLS-1$ 
+		} catch (MalformedURLException ex) {
+			ex.printStackTrace();
+		}
+	}
+
+
+	/**
+	 * Gets the current image.
+	 * 
+	 * @param String
+	 *            key - Name of the icon.
+	 * @return Image
+	 */
+	public static Image get(String key) {
+		return NAVIGATOR_PLUGIN_REGISTRY.get(key);
+	}
+
+	/**
+	 * Create and returns a image descriptor and adds the image to the registery.
+	 * 
+	 * @param String
+	 *            prefix - Icon dir structure.
+	 * @param String
+	 *            name - The name of the icon.
+	 * @return ImageDescriptor
+	 */
+	public static ImageDescriptor createManaged(String prefix, String name) {
+		ImageDescriptor result = ImageDescriptor.createFromURL(makeIconFileURL(prefix, name));
+		NAVIGATOR_PLUGIN_REGISTRY.put(name, result);
+		return result;
+	}
+
+	/**
+	 * Creates the icon url
+	 * 
+	 * @param String
+	 *            prefix - Icon dir structure.
+	 * @param String
+	 *            name - The name of the icon.
+	 * @return URL
+	 */
+	private static URL makeIconFileURL(String prefix, String name) {
+		StringBuffer buffer = new StringBuffer(prefix);
+		buffer.append(name);
+		try {
+			return new URL(ICON_LOCATION, buffer.toString());
+		} catch (MalformedURLException ex) {
+			return null;
+		}
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/NavigatorMessages.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/NavigatorMessages.java
new file mode 100644
index 0000000..b962ef9
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/NavigatorMessages.java
@@ -0,0 +1,81 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal;
+
+import java.text.MessageFormat;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+/**
+ * Utility class which helps managing messages
+ */
+public class NavigatorMessages {
+
+	private static ResourceBundle resourceBundle;
+
+	/**
+	 * Returns the resource bundle used by all classes in this Project
+	 */
+	public static ResourceBundle getResourceBundle() {
+		try {
+			return ResourceBundle.getBundle("messages");//$NON-NLS-1$
+		} catch (MissingResourceException e) {
+			// does nothing - this method will return null and
+			// getString(String) will return the key
+			// it was called with
+		}
+		return null;
+	}
+
+	/**
+	 * Returns the formatted message for the given key in the resource bundle.
+	 * 
+	 * @param key
+	 *            the resource name
+	 * @param args
+	 *            the message arguments
+	 * @return the string
+	 */
+	public static String format(String key, Object[] args) {
+		return MessageFormat.format(getString(key), args);
+	}
+
+	public static String getString(String key) {
+		if (resourceBundle == null) {
+			resourceBundle = getResourceBundle();
+		}
+
+		if (resourceBundle != null) {
+			try {
+				return resourceBundle.getString(key);
+			} catch (MissingResourceException e) {
+				return "!" + key + "!";//$NON-NLS-2$//$NON-NLS-1$
+			}
+		}
+		return "!" + key + "!";//$NON-NLS-2$//$NON-NLS-1$ 
+	}
+
+	public static String getString(String key, Object[] args) {
+
+		try {
+			return MessageFormat.format(getString(key), args);
+		} catch (IllegalArgumentException e) {
+			return getString(key);
+		}
+
+	}
+
+	public static String getString(String key, Object[] args, int x) {
+
+		return getString(key);
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/NavigatorPlugin.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/NavigatorPlugin.java
new file mode 100644
index 0000000..29dadcf
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/NavigatorPlugin.java
@@ -0,0 +1,104 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * The main plugin class for the Navigator.
+ */
+public class NavigatorPlugin extends AbstractUIPlugin {
+	//The shared instance.
+	private static NavigatorPlugin plugin; 
+	public static String PLUGIN_ID = "org.eclipse.ui.navigator"; //$NON-NLS-1$
+
+	/**
+	 * Creates a new instance of the receiver
+	 */
+	public NavigatorPlugin() {
+		super();
+		plugin = this;
+	}
+
+	/**
+	 * Returns the shared instance.
+	 */
+	public static NavigatorPlugin getDefault() {
+		return plugin;
+	}
+ 
+
+	/**
+	 * Log the given status to the ISV log.
+	 * 
+	 * When to use this:
+	 * 
+	 * This should be used when a PluginException or a ExtensionException occur but for which an
+	 * error dialog cannot be safely shown.
+	 * 
+	 * If you can show an ErrorDialog then do so, and do not call this method.
+	 * 
+	 * If you have a plugin exception or core exception in hand call log(String, IStatus)
+	 * 
+	 * This convenience method is for internal use by the Workbench only and must not be called
+	 * outside the workbench.
+	 * 
+	 * This method is supported in the event the log allows plugin related information to be logged
+	 * (1FTTJKV). This would be done by this method.
+	 * 
+	 * This method is internal to the workbench and must not be called by any plugins, or examples.
+	 * 
+	 * @param message
+	 *            A high level UI message describing when the problem happened.
+	 *  
+	 */
+
+	public static void log(String message) {
+		getDefault().getLog().log(new Status(IStatus.ERROR, PLUGIN_ID, 0, message, null));
+		System.err.println(message);
+		//1FTTJKV: ITPCORE:ALL - log(status) does not allow plugin information to be recorded
+	}
+
+	/**
+	 * Logs errors.
+	 */
+	public static void log(String message, IStatus status) {
+		if (message != null) {
+			getDefault().getLog().log(new Status(IStatus.ERROR, PLUGIN_ID, 0, message, null));
+			System.err.println(message + "\nReason:"); //$NON-NLS-1$
+		}
+		getDefault().getLog().log(status);
+		System.err.println(status.getMessage());
+	} 
+	
+
+	public static void logError(int aCode, String aMessage, Throwable anException) { 
+		getDefault().getLog().log(createErrorStatus(aCode, aMessage, anException)); 
+	}
+
+	public static void log(int severity, int aCode, String aMessage, Throwable exception) {
+		log(createStatus(severity, aCode, aMessage, exception));
+	}
+
+	public static void log(IStatus aStatus) { 
+		getDefault().getLog().log(aStatus); 
+	} 
+	 
+	public static IStatus createStatus(int severity, int aCode, String aMessage, Throwable exception) {
+		return new Status(severity, PLUGIN_ID, aCode, aMessage, exception);
+	}
+ 
+	public static IStatus createErrorStatus(int aCode, String aMessage, Throwable exception) {
+		return createStatus(IStatus.ERROR, aCode, aMessage, exception);
+	} 
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/NavigatorSiteEditor.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/NavigatorSiteEditor.java
new file mode 100644
index 0000000..830472c
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/NavigatorSiteEditor.java
@@ -0,0 +1,238 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal;
+
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.custom.TreeEditor;
+import org.eclipse.swt.events.FocusAdapter;
+import org.eclipse.swt.events.FocusEvent;
+import org.eclipse.swt.graphics.Point;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.swt.widgets.Tree;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.ui.actions.TextActionHandler;
+import org.eclipse.ui.navigator.CommonViewer;
+import org.eclipse.ui.navigator.internal.extensions.INavigatorSiteEditor;
+
+
+/**
+ * A NavigatorSiteEditor is used to edit (i.e., rename) elements in a Navigator view. It displays a
+ * text editor box overlay on the Navigator tree widget.
+ */
+public class NavigatorSiteEditor implements INavigatorSiteEditor {
+
+	private Tree navigatorTree;
+	private TreeEditor treeEditor;
+	private Text textEditor;
+	private Composite textEditorParent;
+	private TextActionHandler textActionHandler;
+	private String text; // the text being edited
+	private CommonViewer commonViewer;
+
+
+	/**
+	 * Creates an instance of a NavigatorSiteEditor.
+	 * 
+	 * @param site
+	 *            the navigator site this editor applies to
+	 * @param navigatorTree
+	 *            the tree that is being edited
+	 */
+	public NavigatorSiteEditor(CommonViewer aCommonViewer, Tree navigatorTree) {
+		commonViewer = aCommonViewer;
+		this.navigatorTree = navigatorTree;
+		treeEditor = new TreeEditor(navigatorTree);
+	}
+
+	/**
+	 * Creates the parent composite for the editor overlay.
+	 * 
+	 * @return the parent composite for the editor overlay
+	 */
+	Composite createParent() {
+		Composite result = new Composite(navigatorTree, SWT.NONE);
+		TreeItem[] selectedItems = navigatorTree.getSelection();
+		treeEditor.horizontalAlignment = SWT.LEFT;
+		treeEditor.grabHorizontal = true;
+		treeEditor.setEditor(result, selectedItems[0]);
+		return result;
+	}
+
+	/**
+	 * Creates the text editor widget.
+	 * 
+	 * @param runnable
+	 *            the Runnable to execute when editing ends by the user pressing enter or clicking
+	 *            outside the text editor box.
+	 */
+	void createTextEditor(final Runnable runnable) {
+		// Create text editor parent. This draws a nice bounding rect.
+		textEditorParent = createParent();
+		textEditorParent.setVisible(false);
+		textEditorParent.addListener(SWT.Paint, new Listener() {
+			public void handleEvent(Event e) {
+				Point textSize = textEditor.getSize();
+				Point parentSize = textEditorParent.getSize();
+				e.gc.drawRectangle(0, 0, Math.min(textSize.x + 4, parentSize.x - 1), parentSize.y - 1);
+			}
+		});
+
+		// Create inner text editor.
+		textEditor = new Text(textEditorParent, SWT.NONE);
+		textEditorParent.setBackground(textEditor.getBackground());
+		textEditor.addListener(SWT.Modify, new Listener() {
+			public void handleEvent(Event e) {
+				Point textSize = textEditor.computeSize(SWT.DEFAULT, SWT.DEFAULT);
+				textSize.x += textSize.y; // Add extra space for new characters.
+				Point parentSize = textEditorParent.getSize();
+				textEditor.setBounds(2, 1, Math.min(textSize.x, parentSize.x - 4), parentSize.y - 2);
+				textEditorParent.redraw();
+			}
+		});
+		textEditor.addListener(SWT.Traverse, new Listener() {
+			public void handleEvent(Event event) {
+				//Workaround for Bug 20214 due to extra
+				//traverse events
+				switch (event.detail) {
+					case SWT.TRAVERSE_ESCAPE :
+						//Do nothing in this case
+						disposeTextWidget();
+						event.doit = true;
+						event.detail = SWT.TRAVERSE_NONE;
+						break;
+					case SWT.TRAVERSE_RETURN :
+						saveChangesAndDispose(runnable);
+						event.doit = true;
+						event.detail = SWT.TRAVERSE_NONE;
+						break;
+				}
+			}
+		});
+		textEditor.addFocusListener(new FocusAdapter() {
+			public void focusLost(FocusEvent fe) {
+				saveChangesAndDispose(runnable);
+			}
+		});
+
+		if (textActionHandler != null) {
+			textActionHandler.addText(textEditor);
+		}
+	}
+
+	/**
+	 * Closes the text editor widget.
+	 */
+	void disposeTextWidget() {
+		if (textActionHandler != null) {
+			textActionHandler.removeText(textEditor);
+		}
+		if (textEditorParent != null) {
+			textEditorParent.dispose();
+			textEditorParent = null;
+			textEditor = null;
+			treeEditor.setEditor(null, null);
+		}
+	}
+
+	/**
+	 * Displays a text editor overlay on the tree widget.
+	 * 
+	 * @param runnable
+	 *            Runnable to execute when editing ends either by the user pressing enter or
+	 *            clicking outside the editor box.
+	 */
+	public void edit(Runnable runnable) {
+		IStructuredSelection selection = (IStructuredSelection) commonViewer.getSelection();
+
+		if (selection.size() != 1) {
+			return;
+		}
+		text = getLabel(selection.getFirstElement());
+		if (text == null) {
+			return;
+		}
+		// Make sure text editor is created only once. Simply reset text
+		// editor when action is executed more than once. Fixes bug 22269.
+		if (textEditorParent == null) {
+			createTextEditor(runnable);
+		}
+		textEditor.setText(text);
+		// Open text editor with initial size.
+		textEditorParent.setVisible(true);
+		Point textSize = textEditor.computeSize(SWT.DEFAULT, SWT.DEFAULT);
+		textSize.x += textSize.y; // Add extra space for new characters.
+		Point parentSize = textEditorParent.getSize();
+		textEditor.setBounds(2, 1, Math.min(textSize.x, parentSize.x - 4), parentSize.y - 2);
+		textEditorParent.redraw();
+		textEditor.selectAll();
+		textEditor.setFocus();
+	}
+
+	/**
+	 * Returns the displayed label of the given element.
+	 * 
+	 * @param element
+	 *            the element that is displayed in the navigator
+	 * @return the displayed label of the given element.
+	 */
+	String getLabel(Object element) {
+		return ((ILabelProvider) commonViewer.getLabelProvider()).getText(element);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.navigator.INavigatorSiteEditor#getText()
+	 */
+	public String getText() {
+		return text;
+	}
+
+	/**
+	 * Saves the changes and disposes of the text widget.
+	 * 
+	 * @param runnable
+	 *            Runnable to execute
+	 */
+	void saveChangesAndDispose(final Runnable runnable) {
+		final String newText = textEditor.getText();
+		// Run this in an async to make sure that the operation that triggered
+		// this action is completed. Otherwise this leads to problems when the
+		// icon of the item being renamed is clicked (i.e., which causes the rename
+		// text widget to lose focus and trigger this method).
+		Runnable editRunnable = new Runnable() {
+			public void run() {
+				disposeTextWidget();
+				if (newText.length() > 0 && newText.equals(text) == false) {
+					text = newText;
+					runnable.run();
+				}
+				text = null;
+			}
+		};
+		navigatorTree.getShell().getDisplay().asyncExec(editRunnable);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.navigator.INavigatorSiteEditor#setTextActionHandler(org.eclipse.ui.actions.TextActionHandler)
+	 */
+	public void setTextActionHandler(TextActionHandler actionHandler) {
+		textActionHandler = actionHandler;
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/ResourceToItemsMapper.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/ResourceToItemsMapper.java
new file mode 100644
index 0000000..64e3e90
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/ResourceToItemsMapper.java
@@ -0,0 +1,222 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/*
+ * Created on Aug 12, 2004
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package org.eclipse.ui.navigator.internal;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Stack;
+
+import org.eclipse.core.resources.IResource;
+import org.eclipse.jface.viewers.ContentViewer;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.IViewerLabelProvider;
+import org.eclipse.jface.viewers.ViewerLabel;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Item;
+import org.eclipse.ui.navigator.AdaptabilityUtility;
+
+/**
+ * Helper class for updating error markers and other decorators that work on resources. Items are
+ * mapped to their element's underlying resource. Method <code>resourceChanged</code> updates all
+ * items that are affected from the changed elements.
+ */
+public class ResourceToItemsMapper {
+
+	private static final int NUMBER_LIST_REUSE = 10;
+
+	// map from resource to item
+	private HashMap fResourceToItem;
+	private Stack fReuseLists;
+
+	private ContentViewer fContentViewer;
+	private static final Class IRESOURCE_CLASS = IResource.class;
+
+
+	public ResourceToItemsMapper(ContentViewer viewer) {
+		fResourceToItem = new HashMap();
+		fReuseLists = new Stack();
+
+		fContentViewer = viewer;
+	}
+
+	/**
+	 * Must be called from the UI thread.
+	 */
+	public void resourceChanged(IResource changedResource) {
+		Object obj = fResourceToItem.get(changedResource);
+		if (obj == null) {
+			// not mapped
+		} else if (obj instanceof Item) {
+			Item item = (Item) obj;
+			/*if (item.isDisposed()) 
+				fResourceToItem.remove(changedResource);
+			else*/
+				updateItem(item);
+		} else { // List of Items
+			List list = (List) obj;
+			for (int k = 0; k < list.size(); k++) {
+				updateItem((Item) list.get(k));
+			}
+			/*for (int k=list.size(); k>0;k--) {
+				Item item = (Item) list.get(k-1);
+				if (item.isDisposed() ) 
+					list.remove(item);
+				else
+					updateItem(item);
+			}*/
+		}
+	}
+
+	private void updateItem(Item item) {
+		Object data = null;
+		try {
+			if (!item.isDisposed()) { // defensive code
+				ILabelProvider lprovider = (ILabelProvider) fContentViewer.getLabelProvider();
+
+				data = item.getData();
+				if (data==null)
+					return;
+				
+				// If it is an IItemLabelProvider than short circuit: patch Tod (bug 55012)
+				if (lprovider instanceof IViewerLabelProvider) {
+					IViewerLabelProvider provider = (IViewerLabelProvider) lprovider;
+
+					ViewerLabel updateLabel = new ViewerLabel(item.getText(), item.getImage());
+					provider.updateLabel(updateLabel, data);
+
+					if (updateLabel.hasNewImage()) {
+						item.setImage(updateLabel.getImage());
+					}
+					if (updateLabel.hasNewText()) {
+						item.setText(updateLabel.getText());
+					}
+				} else {
+					Image oldImage = item.getImage();
+					Image image = lprovider.getImage(data);
+					if (image != null && !image.equals(oldImage)) {
+						item.setImage(image);
+					}
+					String oldText = item.getText();
+					String text = lprovider.getText(data);
+					if (text != null && !text.equals(oldText)) {
+						item.setText(text);
+					}
+				}
+			}
+		} catch (Throwable ex) {
+			System.out.println("An error occurred in " + getClass().getName() + ".doUpdateItem(Item, Object):"); //$NON-NLS-1$ //$NON-NLS-2$
+			System.out.println("\titem = \"" + (item.isDisposed() ? " Is Disposed. " : item.toString()) + "\""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+			if (data != null)
+				System.out.println("\tmodel element = \"" + data + "\""); //$NON-NLS-1$ //$NON-NLS-2$
+			ex.printStackTrace();
+		}
+	}
+
+	/**
+	 * Adds a new item to the map.
+	 * 
+	 * @param element
+	 *            Element to map
+	 * @param item
+	 *            The item used for the element
+	 */
+	public void addToMap(Object element, Item item) {
+		IResource resource = getCorrespondingResource(element);
+		if (resource != null) {
+			Object existingMapping = fResourceToItem.get(resource);
+			if (existingMapping == null) {
+				fResourceToItem.put(resource, item);
+			} else if (existingMapping instanceof Item) {
+				if (existingMapping != item) {
+					List list = getNewList();
+					list.add(existingMapping);
+					list.add(item);
+					fResourceToItem.put(resource, list);
+				}
+			} else { // List
+				List list = (List) existingMapping;
+				if (!list.contains(item)) {
+					list.add(item);
+				}
+			}
+		}
+	}
+
+	/**
+	 * Removes an element from the map.
+	 */
+	public void removeFromMap(Object element, Item item) {
+		IResource resource = getCorrespondingResource(element);
+		if (resource != null) {
+			Object existingMapping = fResourceToItem.get(resource);
+			if (existingMapping == null) {
+				return;
+			} else if (existingMapping instanceof Item) {
+				fResourceToItem.remove(resource);
+			} else { // List
+				List list = (List) existingMapping;
+				list.remove(item);
+				if (list.isEmpty()) {
+					fResourceToItem.remove(list);
+					releaseList(list);
+				}
+			}
+		}
+	}
+
+	private List getNewList() {
+		if (!fReuseLists.isEmpty()) {
+			return (List) fReuseLists.pop();
+		}
+		return new ArrayList(2);
+	}
+
+	private void releaseList(List list) {
+		if (fReuseLists.size() < NUMBER_LIST_REUSE) {
+			fReuseLists.push(list);
+		}
+	}
+
+	/**
+	 * Clears the map.
+	 */
+	public void clearMap() {
+		fResourceToItem.clear();
+	}
+
+	/**
+	 * Tests if the map is empty
+	 */
+	public boolean isEmpty() {
+		return fResourceToItem.isEmpty();
+	}
+
+	/**
+	 * Method that decides which elements can have error markers Returns null if an element can not
+	 * have error markers.
+	 */
+	private static IResource getCorrespondingResource(Object element) {
+		if (element != null) {
+			if (element instanceof IResource)
+				return (IResource) element;
+			return (IResource) AdaptabilityUtility.getAdapter(element, IRESOURCE_CLASS);
+		}
+		return null;
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/Timer.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/Timer.java
new file mode 100644
index 0000000..453b5b0
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/Timer.java
@@ -0,0 +1,260 @@
+/***************************************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others. All rights reserved. This program and the
+ * accompanying materials are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors: IBM Corporation - initial API and implementation
+ **************************************************************************************************/
+package org.eclipse.ui.navigator.internal;
+
+
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
+import javax.swing.event.EventListenerList;
+
+
+
+public class Timer {
+
+	/**
+	 * DoPostEvent is a runnable class that fires actionEvents to the listeners on the
+	 * EventDispatchThread, via invokeLater.
+	 * 
+	 * @see #post
+	 */
+	class DoPostEvent implements Runnable {
+		public void run() {
+			if (eventQueued) {
+				fireActionPerformed(new ActionEvent(getSource(), 0, null));
+				cancelEvent();
+			}
+		}
+
+		Timer getTimer() {
+			return Timer.this;
+		}
+	}
+
+	protected ListenerList listenerList = new ListenerList();
+	boolean eventQueued = false;
+	int initialDelay, delay;
+	boolean repeats = true, coalesce = true;
+	private Runnable doPostEvent;
+	// These fields are maintained by TimerQueue.
+	// eventQueued can also be reset by the TimerQueue, but will only ever
+	// happen in applet case when TimerQueues thread is destroyed.
+	long expirationTime;
+	Timer nextTimer;
+	boolean running;
+
+	/**
+	 * Creates a Timer that will notify its listeners every <i>delay </i> milliseconds.
+	 * 
+	 * @param delay
+	 *            The number of milliseconds between listener notification
+	 * @param listener
+	 *            An initial listener
+	 * @see #setInitialDelay
+	 * @see #setRepeats
+	 */
+	public Timer(int delay, ActionListener listener) {
+		super();
+		this.delay = delay;
+		this.initialDelay = delay;
+
+		doPostEvent = new DoPostEvent();
+
+		if (listener != null) {
+			addActionListener(listener);
+		}
+	}
+
+	/**
+	 * Adds an actionListener to the Timer
+	 */
+	public void addActionListener(ActionListener listener) {
+		listenerList.add(listener);
+	}
+
+	synchronized void cancelEvent() {
+		eventQueued = false;
+	}
+
+	/**
+	 * Notify all listeners that have registered interest for notification on this event type. The
+	 * event instance is lazily created using the parameters passed into the fire method.
+	 * 
+	 * @see EventListenerList
+	 */
+	protected void fireActionPerformed(ActionEvent e) {
+		// Guaranteed to return a non-null array
+		ActionListener[] listeners = listenerList.getListenerList();
+
+		// Process the listeners last to first, notifying
+		// those that are interested in this event
+		for (int i = listeners.length - 1; i >= 0; i -= 1) {
+			listeners[i].actionPerformed(e);
+		}
+	}
+
+	/**
+	 * Returns the Timer's delay.
+	 * 
+	 * @see #setDelay
+	 */
+	public int getDelay() {
+		return delay;
+	}
+
+	/**
+	 * Returns the Timer's initial delay.
+	 * 
+	 * @see #setDelay
+	 */
+	public int getInitialDelay() {
+		return initialDelay;
+	}
+
+	/**
+	 * Returns <b>true </b> if the Timer coalesces multiple pending <b>performCommand() </b>
+	 * messages.
+	 * 
+	 * @see #setCoalesce
+	 */
+	public boolean isCoalesce() {
+		return coalesce;
+	}
+
+	/**
+	 * Returns <b>true </b> if the Timer will send a <b>actionPerformed() </b> message to its
+	 * listeners multiple times.
+	 * 
+	 * @see #setRepeats
+	 */
+	public boolean isRepeats() {
+		return repeats;
+	}
+
+	/**
+	 * Returns <b>true </b> if the Timer is running.
+	 * 
+	 * @see #start
+	 */
+	public boolean isRunning() {
+		return timerQueue().containsTimer(this);
+	}
+
+	synchronized void post() {
+		if (!eventQueued) {
+			eventQueued = true;
+			org.eclipse.swt.widgets.Display.getDefault().asyncExec(doPostEvent);
+		}
+	}
+
+	/**
+	 * Removes an ActionListener from the Timer.
+	 */
+	public void removeActionListener(ActionListener listener) {
+		listenerList.remove(listener);
+	}
+
+	/**
+	 * Restarts a Timer, canceling any pending firings, and causing it to fire with its initial
+	 * dely.
+	 */
+	public void restart() {
+		stop();
+		start();
+	}
+
+	/**
+	 * Sets whether the Timer coalesces multiple pending ActionEvent firings. A busy application may
+	 * not be able to keep up with a Timer's message generation, causing multiple
+	 * <b>actionPerformed() </b> message sends to be queued. When processed, the application sends
+	 * these messages one after the other, causing the Timer's listeners to receive a sequence of
+	 * <b>actionPerformed() </b> messages with no delay between them. Coalescing avoids this
+	 * situation by reducing multiple pending messages to a single message send. Timers coalesce
+	 * their message sends by default.
+	 */
+	public void setCoalesce(boolean flag) {
+		coalesce = flag;
+	}
+
+	/**
+	 * Sets the Timer's delay, the number of milliseconds between successive <b>actionPerfomed()
+	 * </b> messages to its listeners
+	 * 
+	 * @see #setInitialDelay
+	 */
+	public void setDelay(int delay) {
+		if (delay < 0) {
+			/*
+			 * String msg = WTPCommonUIResourceHandler.getString("Timer_UI_0", new Object[]
+			 * {Integer.toString(delay)}); //$NON-NLS-1$
+			 */throw new IllegalArgumentException(/* msg */"delay < 0"); //$NON-NLS-1$
+		}
+		this.delay = delay;
+	}
+
+	/**
+	 * Sets the Timer's initial delay. This will be used for the first "ringing" of the Timer only.
+	 * Subsequent ringings will be spaced using the delay property.
+	 * 
+	 * @see #setDelay
+	 */
+	public void setInitialDelay(int initialDelay) {
+		if (initialDelay < 0) {
+			/*
+			 * String msg = WTPCommonUIResourceHandler.getString("Timer_UI_1", new Object[]
+			 * {Integer.toString(initialDelay)}); //$NON-NLS-1$
+			 */throw new IllegalArgumentException(/* msg */"initialDelay < 0"); //$NON-NLS-1$
+		}
+		this.initialDelay = initialDelay;
+	}
+
+	/**
+	 * If <b>flag </b> is <b>false </b>, instructs the Timer to send <b>actionPerformed() </b> to
+	 * its listeners only once, and then stop.
+	 */
+	public void setRepeats(boolean flag) {
+		repeats = flag;
+	}
+
+	/**
+	 * Starts the Timer, causing it to send <b>actionPerformed() </b> messages to its listeners.
+	 * 
+	 * @see #stop
+	 */
+	public void start() {
+		timerQueue().addTimer(this, System.currentTimeMillis() + getInitialDelay());
+	}
+
+	/**
+	 * Stops a Timer, causing it to stop sending <b>actionPerformed() </b> messages to its Target.
+	 * 
+	 * @see #start
+	 */
+	public void stop() {
+		timerQueue().removeTimer(this);
+		cancelEvent();
+	}
+
+	/**
+	 * Returns the timer queue.
+	 */
+	TimerQueue timerQueue() {
+		return TimerQueue.singleton();
+	}
+
+	/**
+	 * Return the source for the ActionEvent that is fired.
+	 * 
+	 * @return
+	 */
+	protected Object getSource() {
+		return this;
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/TimerQueue.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/TimerQueue.java
new file mode 100644
index 0000000..2d6635e
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/TimerQueue.java
@@ -0,0 +1,229 @@
+/***************************************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others. All rights reserved. This program and the
+ * accompanying materials are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors: IBM Corporation - initial API and implementation
+ **************************************************************************************************/
+package org.eclipse.ui.navigator.internal;
+
+
+
+class TimerQueue implements Runnable {
+	private static TimerQueue singleton;
+	Timer firstTimer;
+	boolean running;
+	private static final Object classLock = new Object();
+
+	/**
+	 * Constructor for TimerQueue.
+	 */
+	public TimerQueue() {
+		super();
+
+		// Now start the TimerQueue thread.
+		start();
+	}
+
+	synchronized void addTimer(Timer timer, long expirationTime) {
+		Timer previousTimer;
+		Timer nextTimer;
+
+		// If the Timer is already in the queue, then ignore the add.
+		if (timer.running) {
+			return;
+		}
+
+		previousTimer = null;
+		nextTimer = firstTimer;
+
+		// Insert the Timer into the linked list in the order they will
+		// expire. If two timers expire at the same time, put the newer entry
+		// later so they expire in the order they came in.
+
+		while (nextTimer != null) {
+			if (nextTimer.expirationTime > expirationTime)
+				break;
+
+			previousTimer = nextTimer;
+			nextTimer = nextTimer.nextTimer;
+		}
+
+		if (previousTimer == null) {
+			firstTimer = timer;
+		} else {
+			previousTimer.nextTimer = timer;
+		}
+
+		timer.expirationTime = expirationTime;
+		timer.nextTimer = nextTimer;
+		timer.running = true;
+		notify();
+	}
+
+	synchronized boolean containsTimer(Timer timer) {
+		return timer.running;
+	}
+
+	/**
+	 * If there are a ton of timers, this method may never return. It loops checking to see if the
+	 * head of the Timer list has expired. If it has, it posts the Timer and reschedules it if
+	 * necessary.
+	 */
+	synchronized long postExpiredTimers() {
+		Timer timer;
+		long currentTime;
+		long timeToWait;
+
+		// The timeToWait we return should never be negative and only be zero
+		// when we have no Timers to wait for.
+
+		do {
+			timer = firstTimer;
+			if (timer == null)
+				return 0;
+
+			currentTime = System.currentTimeMillis();
+			timeToWait = timer.expirationTime - currentTime;
+
+			if (timeToWait <= 0) {
+				try {
+					timer.post(); // have timer post an event
+				} catch (SecurityException e) {
+				}
+
+				// Remove the timer from the queue
+				removeTimer(timer);
+
+				// This tries to keep the interval uniform at
+				// the cost of drift.
+				if (timer.isRepeats()) {
+					addTimer(timer, currentTime + timer.getDelay());
+				}
+			}
+
+			// Allow other threads to call addTimer() and removeTimer()
+			// even when we are posting Timers like mad. Since the wait()
+			// releases the lock, be sure not to maintain any state
+			// between iterations of the loop.
+
+			try {
+				wait(1);
+			} catch (InterruptedException e) {
+			}
+		} while (timeToWait <= 0);
+
+		return timeToWait;
+	}
+
+	synchronized void removeTimer(Timer timer) {
+		Timer previousTimer;
+		Timer nextTimer;
+		boolean found;
+
+		if (!timer.running)
+			return;
+
+		previousTimer = null;
+		nextTimer = firstTimer;
+		found = false;
+
+		while (nextTimer != null) {
+			if (nextTimer == timer) {
+				found = true;
+				break;
+			}
+
+			previousTimer = nextTimer;
+			nextTimer = nextTimer.nextTimer;
+		}
+
+		if (!found)
+			return;
+
+		if (previousTimer == null) {
+			firstTimer = timer.nextTimer;
+		} else {
+			previousTimer.nextTimer = timer.nextTimer;
+		}
+
+		timer.expirationTime = 0;
+		timer.nextTimer = null;
+		timer.running = false;
+	}
+
+	public synchronized void run() {
+		long timeToWait;
+
+		try {
+			while (running) {
+				timeToWait = postExpiredTimers();
+				try {
+					wait(timeToWait);
+				} catch (InterruptedException e) {
+				}
+			}
+		} catch (ThreadDeath td) {
+			running = false;
+			// Mark all the timers we contain as not being queued.
+			Timer timer = firstTimer;
+			while (timer != null) {
+				timer.eventQueued = false;
+				timer = timer.nextTimer;
+			}
+			synchronized (this) {
+				if (!this.running)
+					start();
+			}
+			throw td;
+		}
+	}
+
+	public static TimerQueue singleton() {
+		if (singleton == null)
+			synchronized (classLock) {
+				singleton = new TimerQueue();
+			}
+		return singleton;
+	}
+
+	synchronized void start() {
+		if (running) {
+			// TODO HANDLE STRING
+			throw new RuntimeException(/* WTPCommonUIResourceHandler.getString("TimerQueue_ERROR_0") */"Ack!"); //$NON-NLS-1$
+		}
+		Thread timerThread = new Thread(this, "TimerQueue");//$NON-NLS-1$
+		try {
+			timerThread.setDaemon(true);
+		} catch (SecurityException e) {
+		}
+		timerThread.start();
+		running = true;
+	}
+
+	synchronized void stop() {
+		running = false;
+		notify();
+	}
+
+	public synchronized String toString() {
+		StringBuffer buf;
+		Timer nextTimer;
+
+		buf = new StringBuffer();
+		buf.append("TimerQueue (");//$NON-NLS-1$
+
+		nextTimer = firstTimer;
+		while (nextTimer != null) {
+			buf.append(nextTimer.toString());
+
+			nextTimer = nextTimer.nextTimer;
+			if (nextTimer != null)
+				buf.append(", ");//$NON-NLS-1$
+		}
+
+		buf.append(")");//$NON-NLS-1$
+		return buf.toString();
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/actions/CollapseAllAction.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/actions/CollapseAllAction.java
new file mode 100644
index 0000000..f42f909
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/actions/CollapseAllAction.java
@@ -0,0 +1,39 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.actions;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.ui.navigator.CommonViewer;
+import org.eclipse.ui.navigator.internal.NavigatorMessages;
+
+/**
+ * This action delegate collapses all expanded elements in a Navigator view.
+ * 
+ * <p>
+ * The following class is experimental until fully documented.
+ * </p>
+ */
+public class CollapseAllAction extends Action implements IAction {
+
+	private final CommonViewer commonViewer;
+
+	public CollapseAllAction(CommonViewer aViewer) {
+		super(NavigatorMessages.getString("CollapseAllActionDelegate.0")); //$NON-NLS-1$
+		setToolTipText(NavigatorMessages.getString("CollapseAllActionDelegate.1")); //$NON-NLS-1$ 
+		commonViewer = aViewer;
+	}
+
+	public void run() {
+		if (commonViewer != null)
+			commonViewer.collapseAll();
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/actions/CommonActionProvider.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/actions/CommonActionProvider.java
new file mode 100644
index 0000000..7c749ab
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/actions/CommonActionProvider.java
@@ -0,0 +1,93 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.actions;
+
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.viewers.StructuredViewer;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IMemento;
+import org.eclipse.ui.IViewPart;
+import org.eclipse.ui.actions.ActionContext;
+import org.eclipse.ui.navigator.ICommonActionProvider;
+import org.eclipse.ui.navigator.NavigatorContentService;
+
+/**
+ * <p>
+ * The following class is experimental until fully documented.
+ * </p>
+ */
+public class CommonActionProvider implements ICommonActionProvider {
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.actions.ICommonActionProvider#init(org.eclipse.ui.IViewPart,
+	 *      org.eclipse.wst.common.navigator.internal.views.extensions.NavigatorContentService)
+	 */
+	public void init(String anExtensionId, IViewPart aViewPart, NavigatorContentService aContentService, StructuredViewer aStructuredViewer) {
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.actions.ICommonActionProvider#dispose()
+	 */
+	public void dispose() {
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.actions.ICommonActionProvider#setActionContext(org.eclipse.ui.actions.ActionContext)
+	 */
+	public void setActionContext(ActionContext aContext) {
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.actions.ICommonActionProvider#fillContextMenu(org.eclipse.jface.action.IMenuManager)
+	 */
+	public boolean fillContextMenu(IMenuManager aMenu) {
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.actions.ICommonActionProvider#fillActionBars(org.eclipse.ui.IActionBars)
+	 */
+	public boolean fillActionBars(IActionBars theActionBars) {
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.actions.ICommonActionProvider#restoreState(org.eclipse.ui.IMemento)
+	 */
+	public void restoreState(IMemento aMemento) {
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.actions.ICommonActionProvider#saveState(org.eclipse.ui.IMemento)
+	 */
+	public void saveState(IMemento aMemento) {
+
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/actions/CommonActionProviderDescriptor.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/actions/CommonActionProviderDescriptor.java
new file mode 100644
index 0000000..be6200f
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/actions/CommonActionProviderDescriptor.java
@@ -0,0 +1,92 @@
+/***************************************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others. All rights reserved. This program and the
+ * accompanying materials are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors: IBM Corporation - initial API and implementation
+ **************************************************************************************************/
+package org.eclipse.ui.navigator.internal.actions;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.internal.ActionExpression;
+import org.eclipse.ui.navigator.ICommonActionProvider;
+import org.eclipse.ui.navigator.internal.NavigatorPlugin;
+import org.eclipse.ui.navigator.internal.extensions.SkeletonActionProvider;
+
+/**
+ * <p>
+ * The following class is experimental until fully documented.
+ * </p>
+ */
+public class CommonActionProviderDescriptor {
+
+	private final IConfigurationElement configurationElement;
+	private ActionExpression enablement;
+	private static final String ENABLEMENT= "enablement"; //$NON-NLS-1$
+	private boolean hasLoadingFailed;
+	private static final String ATT_CLASS= "class"; //$NON-NLS-1$
+
+	/**
+	 *  
+	 */
+	public CommonActionProviderDescriptor(IConfigurationElement aConfigElement) {
+		super();
+		configurationElement= aConfigElement;
+		init();
+	}
+
+	/**
+	 *  
+	 */
+	private void init() {
+
+		IConfigurationElement[] children= configurationElement.getChildren(ENABLEMENT);
+		if (children.length == 1) {
+			enablement= new ActionExpression(children[0]);
+		} else if (children.length > 1) {
+			System.err.println("More than one element: " + //$NON-NLS-1$
+						ENABLEMENT + " in navigator extension: " + //$NON-NLS-1$
+						configurationElement.getDeclaringExtension().getUniqueIdentifier());
+		}
+	}
+
+	public ICommonActionProvider createActionProvider() {
+		if (hasLoadingFailed)
+			return SkeletonActionProvider.INSTANCE;
+		ICommonActionProvider provider= null;
+		try {
+			provider= (ICommonActionProvider) configurationElement.createExecutableExtension(ATT_CLASS);
+		} catch (CoreException exception) {
+			NavigatorPlugin.log("Unable to create navigator extension: " + //$NON-NLS-1$
+						getClassName(), exception.getStatus());
+			hasLoadingFailed= true;
+		} catch (Exception e) {
+			NavigatorPlugin.log("Unable to create navigator extension: " + //$NON-NLS-1$
+						getClassName(), new Status(IStatus.ERROR, NavigatorPlugin.PLUGIN_ID, 0, e.getMessage(), e));
+			e.printStackTrace();
+			hasLoadingFailed= true;
+		}
+		return provider;
+	}
+
+	/**
+	 * @return
+	 */
+	private String getClassName() {
+		return configurationElement.getAttribute(ATT_CLASS);
+	}
+
+	public boolean isEnabledFor(IStructuredSelection aStructuredSelection) {
+		return (enablement != null && enablement.isEnabledFor(aStructuredSelection));
+	}
+
+	public boolean isEnabledFor(Object anElement) {
+		return (enablement != null && enablement.isEnabledFor(anElement));
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/actions/CommonActionProviderRegistry.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/actions/CommonActionProviderRegistry.java
new file mode 100644
index 0000000..2a37a90
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/actions/CommonActionProviderRegistry.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.actions;
+
+/**
+ * <p>
+ * The following class is experimental until fully documented.
+ * </p>
+ */
+public class CommonActionProviderRegistry {
+
+	/**
+	 *  
+	 */
+	public CommonActionProviderRegistry() {
+		super();
+		// TODO Auto-generated constructor stub
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/actions/LinkEditorAction.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/actions/LinkEditorAction.java
new file mode 100644
index 0000000..5f85b1e
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/actions/LinkEditorAction.java
@@ -0,0 +1,216 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.actions;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IPartListener;
+import org.eclipse.ui.IPropertyListener;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.navigator.CommonNavigator;
+import org.eclipse.ui.navigator.CommonViewer;
+import org.eclipse.ui.navigator.ILinkHelper;
+import org.eclipse.ui.navigator.internal.NavigatorMessages;
+import org.eclipse.ui.navigator.internal.extensions.LinkHelperRegistry;
+import org.eclipse.ui.progress.UIJob;
+
+/**
+ * This action links the activate editor with the Navigator selection.
+ * <p>
+ * This class is experimental and is subject to change.
+ * </p>
+ */
+public class LinkEditorAction extends Action implements ISelectionChangedListener, IAction, IPropertyListener {
+
+	private IPartListener partListener;
+	private final CommonViewer commonViewer;
+	private final CommonNavigator commonNavigator;
+
+	public LinkEditorAction(CommonNavigator aNavigator, CommonViewer aViewer) {
+		super(NavigatorMessages.getString("LinkEditorActionDelegate.0")); //$NON-NLS-1$
+		setToolTipText(NavigatorMessages.getString("LinkEditorActionDelegate.1")); //$NON-NLS-1$ 
+		commonNavigator = aNavigator;
+		commonViewer = aViewer;
+		init();
+	}
+
+	protected void activateEditor() {
+		ISelection selection = commonViewer.getSelection();
+		if (selection instanceof IStructuredSelection)
+			activateEditor((IStructuredSelection) selection);
+	}
+
+	/**
+	 * Update the active editor based on the current selection in the Navigator.
+	 */
+	protected void activateEditor(final IStructuredSelection aSelection) {
+		if (aSelection == null || aSelection.size() != 1)
+			return;
+
+		final Runnable activateEditor = new Runnable() {
+
+			/*
+			 * (non-Javadoc)
+			 * 
+			 * @see java.lang.Runnable#run()
+			 */
+			public void run() {
+				ILinkHelper[] helpers = LinkHelperRegistry.getInstance().getLinkHelpersFor(aSelection);
+				if (helpers.length > 0)
+					helpers[0].activateEditor(commonNavigator.getSite().getPage(), aSelection);
+			}
+		};
+
+		if (Display.getCurrent() != null) {
+			activateEditor.run();
+		} else {
+			/* Create and schedule a UI Job to activate the editor in a valid Display thread */
+			new UIJob("Link With Editor Job") {
+				public IStatus runInUIThread(IProgressMonitor monitor) {
+					activateEditor.run();
+					return Status.OK_STATUS;
+				}
+			}.schedule();
+		}
+	}
+
+	/**
+	 * @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart)
+	 */
+	protected void init() {
+		partListener = new IPartListener() {
+
+			public void partActivated(IWorkbenchPart part) {
+				if (part instanceof IEditorPart)
+					linkToEditor((IEditorPart) part);
+			}
+
+			public void partBroughtToTop(IWorkbenchPart part) {
+				if (part instanceof IEditorPart)
+					linkToEditor((IEditorPart) part);
+			}
+
+			public void partClosed(IWorkbenchPart part) {
+			}
+
+			public void partDeactivated(IWorkbenchPart part) {
+			}
+
+			public void partOpened(IWorkbenchPart part) {
+			}
+		};
+
+		updateLinkingEnabled(commonNavigator.isLinkingEnabled());
+
+		commonNavigator.addPropertyListener(this);
+	}
+
+	/**
+	 * Link the Navigator to the current open editor. Do this by updating the Navigator's selection.
+	 */
+	private void linkToEditor(IEditorPart anEditor) {
+		if (anEditor != null) {
+
+			IEditorInput input = anEditor.getEditorInput();
+			ILinkHelper[] helpers = LinkHelperRegistry.getInstance().getLinkHelpersFor(input);
+
+			IStructuredSelection selection = StructuredSelection.EMPTY;
+			IStructuredSelection newSelection = StructuredSelection.EMPTY;
+
+			for (int i = 0; i < helpers.length; i++) {
+				selection = helpers[i].findSelection(input);
+				if (selection != null && !selection.isEmpty())
+					newSelection = mergeSelection(newSelection, selection);
+			}
+
+			commonNavigator.selectReveal(newSelection);
+		}
+	}
+
+	/**
+	 * @param selection
+	 * @return
+	 */
+	private IStructuredSelection mergeSelection(IStructuredSelection aBase, IStructuredSelection aSelectionToAppend) {
+		if (aBase == null || aBase.isEmpty())
+			return (aSelectionToAppend != null) ? aSelectionToAppend : StructuredSelection.EMPTY;
+		else if (aSelectionToAppend == null || aSelectionToAppend.isEmpty())
+			return aBase;
+		else {
+			List newItems = new ArrayList(aBase.toList());
+			newItems.addAll(aSelectionToAppend.toList());
+			return new StructuredSelection(newItems);
+		}
+	}
+
+	/**
+	 * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
+	 */
+	public void run() {
+		commonNavigator.setLinkingEnabled(!commonNavigator.isLinkingEnabled());
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
+	 */
+	public void selectionChanged(SelectionChangedEvent event) {
+		if (commonNavigator.isLinkingEnabled())
+			activateEditor((IStructuredSelection) event.getSelection());
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.IPropertyListener#propertyChanged(java.lang.Object, int)
+	 */
+	public void propertyChanged(Object aSource, int aPropertyId) {
+		switch (aPropertyId) {
+			case CommonNavigator.IS_LINKING_ENABLED_PROPERTY :
+				updateLinkingEnabled(((CommonNavigator) aSource).isLinkingEnabled());
+		}
+	}
+
+	/**
+	 * @param toEnableLinking
+	 */
+	private void updateLinkingEnabled(boolean toEnableLinking) {
+		setChecked(toEnableLinking);
+
+		if (toEnableLinking) {
+			IEditorPart editor = commonNavigator.getSite().getPage().getActiveEditor();
+			linkToEditor(editor);
+
+			commonViewer.addSelectionChangedListener(this);
+			commonNavigator.getSite().getPage().addPartListener(partListener);
+		} else {
+			commonViewer.removeSelectionChangedListener(this);
+			commonNavigator.getSite().getPage().removePartListener(partListener);
+		}
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/deferred/DeferredAdapterProvider.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/deferred/DeferredAdapterProvider.java
new file mode 100644
index 0000000..eb89526
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/deferred/DeferredAdapterProvider.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/*
+ * Created on Jan 31, 2004
+ *
+ * To change the template for this generated file go to
+ * Window - Preferences - Java - Code Generation - Code and Comments
+ */
+package org.eclipse.ui.navigator.internal.deferred;
+
+import org.eclipse.jface.viewers.ITreeContentProvider;
+
+/**
+ * @author mdelder
+ */
+public interface DeferredAdapterProvider extends ITreeContentProvider {
+
+	public IDeferredElementAdapter[] getDeferredAdapters(Object element);
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/deferred/DeferredContentProvider.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/deferred/DeferredContentProvider.java
new file mode 100644
index 0000000..b2accef
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/deferred/DeferredContentProvider.java
@@ -0,0 +1,199 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.deferred;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.jobs.IJobChangeEvent;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.core.runtime.jobs.JobChangeAdapter;
+import org.eclipse.jface.viewers.AbstractTreeViewer;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.ui.internal.progress.PendingUpdateAdapter;
+
+
+/**
+ * DeferredContentProvider is largely adapted from (@see
+ * org.eclipse.wst.common.navigator.views.DeferredTreeContentManager)
+ * 
+ * @author Michael D. Elder <mdelder@us.ibm.com>
+ */
+public class DeferredContentProvider implements ITreeContentProvider {
+
+	private IPendingElementCollector collector = null;
+
+	private DeferredAdapterProvider provider = null;
+
+	private AbstractTreeViewer viewer;
+
+	/**
+	 *  
+	 */
+	public DeferredContentProvider(IPendingElementCollector collector, DeferredAdapterProvider provider) {
+		super();
+		this.collector = collector;
+		this.provider = provider;
+	}
+
+	/**
+	 * Returns the child elements of the given element, or in the case of a deferred element,
+	 * returns a placeholder. If a deferred element used a job is created to fetch the children in
+	 * the background.
+	 * 
+	 * @param parent
+	 *            The parent object.
+	 * @return Object[] or <code>null</code> if parent is not an instance of
+	 *         IDeferredWorkbenchAdapter.
+	 */
+	public Object[] getChildren(Object element) {
+
+		// TODO MDE Change made due to the changes in the Job Scheduler.
+		return this.provider.getChildren(element);
+		/*
+		 * if (this.viewer != null) { if (this.viewer.getExpandedState(element)) return
+		 * this.provider.getChildren(element); } IDeferredElementAdapter[] adapters =
+		 * this.provider.getDeferredAdapters(element); if (adapters != null && adapters.length > 0) {
+		 * PendingUpdateAdapter pendingElement = new PendingUpdateAdapter();
+		 * startFetchingDeferredChildren(adapters, element, pendingElement); return new Object[] {
+		 * pendingElement }; } return new Object[0];
+		 */
+	}
+
+	public Object[] getChildren(Object element, boolean isDeferred) {
+		// Change due to Job scheduler
+		if (isDeferred && false)
+			return getChildren(element);
+		return this.provider.getChildren(element);
+	}
+
+	/**
+	 * Starts a job and creates a collector for fetching the children of this deferred adapter. If
+	 * children are waiting to be retrieve for this parent already, that job is cancelled and
+	 * another is started.
+	 * 
+	 * @param parent.
+	 *            The parent object being filled in,
+	 * @param adapter
+	 *            The adapter being used to fetch the children.
+	 * @param placeholder
+	 *            The adapter that will be used to indicate that results are pending.
+	 */
+	protected void startFetchingDeferredChildren(IDeferredElementAdapter[] adapters, Object element, final PendingUpdateAdapter pendingElement) {
+
+		// Cancel any jobs currently fetching children for the same parent
+		// instance.
+		//Platform.getJobManager().cancel(adapter.getRule(element));
+		if (adapters.length > 0) {
+			Job fetchElementsJob = new FetchElementsJob(element, collector, adapters);
+			fetchElementsJob.addJobChangeListener(new JobChangeAdapter() {
+
+				/*
+				 * (non-Javadoc)
+				 * 
+				 * @see org.eclipse.core.runtime.jobs.JobChangeAdapter#done(org.eclipse.core.runtime.jobs.IJobChangeEvent)
+				 */
+				public void done(IJobChangeEvent event) {
+					collector.done(pendingElement);
+				}
+
+			});
+
+			fetchElementsJob.schedule();
+		}
+	}
+
+	/**
+	 * Return the IDeferredWorkbenchAdapter for element or the element if it is an instance of
+	 * IDeferredWorkbenchAdapter. If it does not exist return null.
+	 * 
+	 * @param element
+	 * @return IDeferredWorkbenchAdapter or <code>null</code>
+	 */
+	protected IDeferredElementAdapter getAdapter(Object element) {
+
+		if (element instanceof IDeferredElementAdapter)
+			return (IDeferredElementAdapter) element;
+
+		if (!(element instanceof IAdaptable))
+			return null;
+
+		Object adapter = ((IAdaptable) element).getAdapter(IDeferredElementAdapter.class);
+		if (adapter == null)
+			return null;
+		return (IDeferredElementAdapter) adapter;
+
+	}
+
+	/**
+	 * Return whether or not the element is or adapts to an IDeferredWorkbenchAdapter.
+	 * 
+	 * @param element
+	 * @return boolean <code>true</code> if the element is an IDeferredWorkbenchAdapter
+	 */
+	public boolean isDeferredAdapter(Object element) {
+		return getAdapter(element) != null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
+	 *      java.lang.Object, java.lang.Object)
+	 */
+	public void inputChanged(Viewer viewerArg, Object oldInput, Object newInput) {
+		if (viewerArg instanceof AbstractTreeViewer)
+			this.viewer = (AbstractTreeViewer) viewerArg;
+		provider.inputChanged(viewerArg, oldInput, newInput);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
+	 */
+	public void dispose() {
+		provider.dispose();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
+	 */
+	public Object[] getElements(Object element) {
+		return provider.getElements(element);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
+	 */
+	public Object getParent(Object element) {
+		return provider.getParent(element);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
+	 */
+	public boolean hasChildren(Object element) {
+		return provider.hasChildren(element);
+	}
+
+	/**
+	 * @return Returns the viewer.
+	 */
+	protected AbstractTreeViewer getViewer() {
+		return viewer;
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/deferred/FetchElementsJob.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/deferred/FetchElementsJob.java
new file mode 100644
index 0000000..5d5dfc0
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/deferred/FetchElementsJob.java
@@ -0,0 +1,113 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.deferred;
+
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.ui.model.IWorkbenchAdapter;
+import org.eclipse.ui.navigator.internal.NavigatorMessages;
+
+
+/**
+ * @author Administrator
+ * 
+ *  
+ */
+public class FetchElementsJob extends Job {
+
+	private Object element = null;
+
+	private IPendingElementCollector elementCollector = null;
+
+	private IDeferredElementAdapter[] deferredAdapters = null;
+
+	/**
+	 *  
+	 */
+	public FetchElementsJob(Object element, IPendingElementCollector elementCollector, IDeferredElementAdapter[] deferredAdapters) {
+		this("Fetching children of {0}", element, elementCollector, deferredAdapters); //$NON-NLS-1$
+	}
+
+	public FetchElementsJob(String name, Object element, IPendingElementCollector elementCollector, IDeferredElementAdapter[] deferredAdapters) {
+		super(name);
+
+		this.element = element;
+		this.elementCollector = elementCollector;
+		this.deferredAdapters = deferredAdapters;
+	}
+
+	public IStatus run(IProgressMonitor monitor) {
+		monitor.beginTask(NavigatorMessages.getString("FetchElementsJob.0"), deferredAdapters.length); //$NON-NLS-1$
+
+		Object[] children = null;
+		for (int i = 0; i < this.deferredAdapters.length; i++) {
+			children = this.deferredAdapters[i].getChildren(element);
+			if (children != null && children.length != 0)
+				this.elementCollector.collectChildren(element, children);
+			monitor.worked(1);
+		}
+		return Status.OK_STATUS;
+	}
+
+	/**
+	 * Check if the object is equal to parent or one of parents children so that the job can be
+	 * cancelled if the parent is refreshed.
+	 * 
+	 * @param ancestor
+	 *            the potential ancestor of the current parent
+	 * @return boolean
+	 */
+	public boolean belongsTo(Object ancestor) {
+		return isParent(ancestor, element);
+	}
+
+	/**
+	 * Check if the parent of element is equal to the parent used in this job.
+	 * 
+	 * @param ancestor.
+	 *            The potential ancestor of the current parent
+	 * @param child.
+	 *            The object to check against.
+	 * @return boolean
+	 */
+	private boolean isParent(Object family, Object child) {
+		if (family.equals(child))
+			return true;
+		IWorkbenchAdapter workbenchAdapter = getWorkbenchAdapter(child);
+		if (workbenchAdapter == null)
+			return false;
+		Object elementParent = workbenchAdapter.getParent(child);
+		if (elementParent == null)
+			return false;
+		return isParent(family, elementParent);
+	}
+
+	/**
+	 * Get the workbench adapter for the element.
+	 * 
+	 * @param elementArg.
+	 *            The object we are adapting to.
+	 */
+	private IWorkbenchAdapter getWorkbenchAdapter(Object elementArg) {
+		if (elementArg instanceof IWorkbenchAdapter)
+			return (IWorkbenchAdapter) elementArg;
+		if (!(elementArg instanceof IAdaptable))
+			return null;
+		Object workbenchAdapter = ((IAdaptable) elementArg).getAdapter(IWorkbenchAdapter.class);
+		if (workbenchAdapter == null)
+			return null;
+		return (IWorkbenchAdapter) workbenchAdapter;
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/deferred/IDeferredElementAdapter.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/deferred/IDeferredElementAdapter.java
new file mode 100644
index 0000000..ac5862b
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/deferred/IDeferredElementAdapter.java
@@ -0,0 +1,67 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.deferred;
+
+import org.eclipse.core.runtime.jobs.ISchedulingRule;
+import org.eclipse.ui.model.IWorkbenchAdapter;
+
+/**
+ * This adapter interface provides support for lazy initialization of UI workbench elements that are
+ * displayed visually. This adapter is used with an associated deferred content provider.
+ * 
+ * @see DeferredAdapterProvider
+ * @since 3.0
+ * 
+ * <b>NOTE: </b> This API is experimental and subject to change.
+ */
+public interface IDeferredElementAdapter extends IWorkbenchAdapter {
+
+	/**
+	 * Called by a job run in a separate thread to fetch the children of this adapter. The adapter
+	 * should return notify of new children via the collector.
+	 * <p>
+	 * It is good practice to check the passed in monitor for cancellation. This will provide good
+	 * responsiveness for cancellation requests made by the user.
+	 * </p>
+	 * 
+	 * @param object
+	 *            the object to fetch the children for
+	 * @param collector
+	 *            the collector to notify about new children
+	 * @param monitor
+	 *            a progress monitor that will never be <code>null<code> to
+	 *                   support reporting and cancellation.
+	 */
+	public Object[] getChildren(Object element);
+
+	/**
+	 * Returns whether this adapter may have children. This is an optimized method used by content
+	 * providers to allow showing the [+] expand icon without having yet fetched the children for
+	 * the element.
+	 * <p>
+	 * If <code>false</code> is returned, then the content provider may assume that this adapter
+	 * has no children. If <code>true</code> is returned, then the job manager may assume that
+	 * this adapter may have children.
+	 * <p>
+	 * 
+	 * @return <code>true</code> if the rule is conflicting, and <code>false</code> otherwise.
+	 */
+	public boolean isContainer();
+
+	/**
+	 * Returns the rule used to schedule the deferred fetching of children for this adapter.
+	 * 
+	 * @param object
+	 *            the object whose children are being fetched
+	 * @return ISchedulingRule the scheduling rule
+	 */
+	public ISchedulingRule getRule(Object object);
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/deferred/IPendingElementCollector.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/deferred/IPendingElementCollector.java
new file mode 100644
index 0000000..7b8d0f5
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/deferred/IPendingElementCollector.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.deferred;
+
+import org.eclipse.ui.internal.progress.PendingUpdateAdapter;
+
+
+/**
+ * @author Michael D. Elder <mdelder@us.ibm.com>
+ */
+public interface IPendingElementCollector {
+
+	public void collectChildren(Object parent, Object[] children);
+
+	public void done(PendingUpdateAdapter placeHolder);
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/deferred/ProxyPendingAdapter.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/deferred/ProxyPendingAdapter.java
new file mode 100644
index 0000000..847af23
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/deferred/ProxyPendingAdapter.java
@@ -0,0 +1,43 @@
+/***************************************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others. All rights reserved. This program and the
+ * accompanying materials are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors: IBM Corporation - initial API and implementation
+ **************************************************************************************************/
+/*
+ * Created on Sep 16, 2004
+ * 
+ * TODO To change the template for this generated file go to Window - Preferences - Java - Code
+ * Style - Code Templates
+ */
+package org.eclipse.ui.navigator.internal.deferred;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.internal.progress.PendingUpdateAdapter;
+import org.eclipse.ui.navigator.internal.NavigatorImages;
+
+
+class ProxyPendingAdapter extends PendingUpdateAdapter {
+
+
+	private static final ImageDescriptor PENDING_IMAGE = NavigatorImages.createManaged("clcl16/", "elipses.gif"); //$NON-NLS-1$ //$NON-NLS-2$
+	private Image image;
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.internal.progress.PendingUpdateAdapter#getImageDescriptor(java.lang.Object)
+	 */
+	public ImageDescriptor getImageDescriptor(Object object) {
+		return PENDING_IMAGE;
+	}
+
+	public Image getIcon() {
+		if (image == null)
+			image = PENDING_IMAGE.createImage();
+		return image;
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/deferred/ProxyRoot.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/deferred/ProxyRoot.java
new file mode 100644
index 0000000..070696b
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/deferred/ProxyRoot.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/*
+ * Created on Sep 15, 2004
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package org.eclipse.ui.navigator.internal.deferred;
+
+
+/**
+ * @author mdelder
+ * 
+ * TODO To change the template for this generated type comment go to Window - Preferences - Java -
+ * Code Style - Code Templates
+ */
+public class ProxyRoot {
+
+	public final String name;
+	public final String id;
+	private Object inputElement;
+
+	public ProxyRoot(String name, String id) {
+		this.name = name;
+		this.id = id;
+	}
+
+	public Object getInputElement() {
+		return inputElement;
+	}
+
+	public void setInputElement(Object inputElement) {
+		this.inputElement = inputElement;
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/deferred/TreeViewerElementCollector.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/deferred/TreeViewerElementCollector.java
new file mode 100644
index 0000000..4ca4fdf
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/deferred/TreeViewerElementCollector.java
@@ -0,0 +1,166 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.deferred;
+
+import java.util.Map;
+import java.util.WeakHashMap;
+
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.core.runtime.jobs.ISchedulingRule;
+import org.eclipse.jface.viewers.AbstractTreeViewer;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.internal.progress.PendingUpdateAdapter;
+import org.eclipse.ui.navigator.internal.InstanceSchedulingRule;
+import org.eclipse.ui.progress.UIJob;
+
+
+/**
+ * Elements of the following class were adapted from (@see
+ * org.eclipse.wst.common.navigator.views.DeferredTreeContentManager)
+ * 
+ * @author Michael D. Elder <mdelder@us.ibm.com>
+ */
+public class TreeViewerElementCollector implements IPendingElementCollector {
+
+	private Map instanceRuleCache = null;
+
+	private AbstractTreeViewer treeViewer = null;
+
+	public TreeViewerElementCollector(AbstractTreeViewer treeViewer) {
+		this.treeViewer = treeViewer;
+	}
+
+	public synchronized void collectChildren(Object parent, Object[] children) {
+		getDefaultUIUpdateJob(parent, children).schedule();
+	}
+
+	public void done(PendingUpdateAdapter placeHolder) {
+
+		//Only schedule if there is a workbench
+		if (!placeHolder.isRemoved() && PlatformUI.isWorkbenchRunning()) {
+			getDefaultUIComplete(placeHolder).schedule();
+		}
+	}
+
+	protected UIJob getDefaultUIUpdateJob(Object parent, Object[] children) {
+		return new TreeViewerUIUpdateJob(parent, children);
+	}
+
+	/**
+	 * @param placeHolder
+	 *            the placeHolder which needs to be removed from the TreeViewer
+	 * @param monitor
+	 * @return the default instance of the UI completion job for immediate scheduling
+	 */
+	protected UIJob getDefaultUIComplete(PendingUpdateAdapter placeHolder) {
+		return new ClearPlaceHolderJob(placeHolder);
+	}
+
+	/**
+	 * @return Returns the treeViewer.
+	 */
+	protected AbstractTreeViewer getTreeViewer() {
+		return treeViewer;
+	}
+
+	protected Map getWrappedRuleCache() {
+		if (instanceRuleCache == null)
+			instanceRuleCache = new WeakHashMap();
+		return instanceRuleCache;
+	}
+
+	protected ISchedulingRule getCachedRule(Object ruleObject) {
+		ISchedulingRule rule = (ISchedulingRule) getWrappedRuleCache().get(ruleObject);
+		if (rule == null) {
+			rule = new InstanceSchedulingRule(ruleObject);
+			getWrappedRuleCache().put(ruleObject, rule);
+		}
+		return rule;
+	}
+
+	public class TreeViewerUIUpdateJob extends UIJob {
+
+		protected Object parent = null;
+
+		protected Object[] children = null;
+
+		public TreeViewerUIUpdateJob(Object parent, Object[] children) {
+			super("Updating tree"); 
+
+			this.parent = parent;
+			this.children = children;
+
+			//this.setRule(TreeViewerElementCollector.this.getCachedRule(this.parent));
+			this.setRule(new InstanceSchedulingRule(treeViewer));
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.wst.common.navigator.views.UIJob#runInUIThread(org.eclipse.core.runtime.IProgressMonitor)
+		 */
+		public IStatus runInUIThread(IProgressMonitor updateMonitor) {
+			if (children == null || children.length == 0)
+				return Status.OK_STATUS;
+
+			synchronized (treeViewer) {
+				//Cancel the job if the tree viewer got closed
+				if (treeViewer.getControl().isDisposed())
+					return Status.CANCEL_STATUS;
+
+				//Prevent extra redraws on deletion and addition
+				treeViewer.getControl().setRedraw(false);
+				treeViewer.add(parent, children);
+				treeViewer.getControl().setRedraw(true);
+			}
+
+			return Status.OK_STATUS;
+		}
+	}
+
+	public class ClearPlaceHolderJob extends UIJob {
+
+		private PendingUpdateAdapter placeHolder = null;
+
+		public ClearPlaceHolderJob(PendingUpdateAdapter placeHolder) {
+			super("Remove placeholder"); 
+			setSystem(true);
+			this.placeHolder = placeHolder;
+
+			//this.setRule(TreeViewerElementCollector.this.getCachedRule(this.parent));
+			this.setRule(new InstanceSchedulingRule(treeViewer));
+
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.wst.common.navigator.views.UIJob#runInUIThread(org.eclipse.core.runtime.IProgressMonitor)
+		 */
+		public IStatus runInUIThread(IProgressMonitor monitor) {
+			synchronized (treeViewer) {
+				if (!placeHolder.isRemoved()) {
+					Control control = treeViewer.getControl();
+
+					if (control.isDisposed())
+						return Status.CANCEL_STATUS;
+
+					getTreeViewer().remove(placeHolder);
+					placeHolder.setRemoved(true);
+				}
+				return Status.OK_STATUS;
+			}
+		}
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/CommonDropHandlerService.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/CommonDropHandlerService.java
new file mode 100644
index 0000000..0bde00f
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/CommonDropHandlerService.java
@@ -0,0 +1,219 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.dnd;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.jface.util.Assert;
+import org.eclipse.ui.navigator.CommonViewer;
+import org.eclipse.ui.navigator.ICommonDropActionDelegate;
+import org.eclipse.ui.navigator.internal.NavigatorMessages;
+import org.eclipse.ui.navigator.internal.NavigatorPlugin;
+import org.eclipse.ui.navigator.internal.extensions.RegistryReader;
+
+/**
+ * @author mdelder
+ *  
+ */
+public class CommonDropHandlerService extends RegistryReader {
+
+	private static final DropHandlerDescriptor[] NO_DROP_HANDLER_DESCRIPTORS = new DropHandlerDescriptor[0];
+
+	private Map descriptors;
+
+	private Map actions;
+
+	private static Map registries;
+
+	private String viewerId;
+
+	protected CommonDropHandlerService(String viewerId) {
+		super(NavigatorPlugin.PLUGIN_ID, DropHandlerDescriptor.ExtensionPointElements.DROP_HANDLER);
+		this.viewerId = viewerId;
+	}
+
+	public DropHandlerDescriptor[] getDropHandlersEnabledFor(Object source, Object target) {
+		try {
+			List results = new ArrayList();
+			DropHandlerDescriptor descr = null;
+			for (Iterator descriptorIterator = getDescriptors().values().iterator(); descriptorIterator.hasNext();) {
+				descr = (DropHandlerDescriptor) descriptorIterator.next();
+				if (descr.isDropEnabledFor(target) && (source == null || descr.isDragEnabledFor(source)))
+					results.add(descr);
+			}
+			if (results.size() > 0)
+				return (DropHandlerDescriptor[]) results.toArray(new DropHandlerDescriptor[results.size()]);
+			return NO_DROP_HANDLER_DESCRIPTORS;
+		} catch (Throwable t) {
+			NavigatorPlugin.log(NavigatorMessages.getString("CommonDropHandlerService.0") + t); //$NON-NLS-1$
+			return NO_DROP_HANDLER_DESCRIPTORS;
+		}
+	}
+
+	public DropHandlerDescriptor[] getDropHandlersBySerializerId(String id) {
+		try {
+			List results = new ArrayList();
+			DropHandlerDescriptor descr = null;
+			SerializerCollectionDescriptor serializerCollectionDescriptor = null;
+			for (Iterator descriptorIterator = getDescriptors().values().iterator(); descriptorIterator.hasNext();) {
+				descr = (DropHandlerDescriptor) descriptorIterator.next();
+				serializerCollectionDescriptor = descr.getSerializersDescriptor();
+				if (serializerCollectionDescriptor != null && serializerCollectionDescriptor.getSerializerById(id) != null)
+					results.add(descr);
+			}
+			if (results.size() > 0)
+				return (DropHandlerDescriptor[]) results.toArray(new DropHandlerDescriptor[results.size()]);
+			return NO_DROP_HANDLER_DESCRIPTORS;
+		} catch (Throwable t) {
+			NavigatorPlugin.log(NavigatorMessages.getString("CommonDropHandlerService.0") + t); //$NON-NLS-1$
+			return NO_DROP_HANDLER_DESCRIPTORS;
+		}
+	}
+
+
+	public SerializerDescriptor getSerializerById(String id) {
+		DropHandlerDescriptor descr = null;
+		SerializerDescriptor result = null;
+		SerializerCollectionDescriptor serializerCollectionDescriptor = null;
+		for (Iterator descriptorIterator = getDescriptors().values().iterator(); descriptorIterator.hasNext();) {
+			descr = (DropHandlerDescriptor) descriptorIterator.next();
+			serializerCollectionDescriptor = descr.getSerializersDescriptor();
+			if (serializerCollectionDescriptor != null && (result = serializerCollectionDescriptor.getSerializerById(id)) != null)
+				break;
+		}
+		return result;
+	}
+
+	public ICommonDropActionDelegate getActionForSerializerId(String serializerId) {
+
+		DropHandlerDescriptor descr = null;
+		SerializerCollectionDescriptor serializerCollectionDescriptor = null;
+		ICommonDropActionDelegate action = null;
+		for (Iterator descriptorIterator = getDescriptors().values().iterator(); descriptorIterator.hasNext();) {
+			descr = (DropHandlerDescriptor) descriptorIterator.next();
+			serializerCollectionDescriptor = descr.getSerializersDescriptor();
+			if (serializerCollectionDescriptor != null && serializerCollectionDescriptor.getSerializerById(serializerId) != null) {
+				action = descr.createAction();
+				break;
+			}
+		}
+		return action;
+	}
+
+	public SerializerDescriptor[] getSerializersEnabledFor(Object source) {
+		SerializerDescriptor[] serializers = null;
+		try {
+			List results = new ArrayList();
+			Iterator descriptorIterator = getDescriptors().values().iterator();
+			DropHandlerDescriptor descr = null;
+			SerializerCollectionDescriptor serializerCollectionDescriptor = null;
+			while (descriptorIterator.hasNext()) {
+				descr = (DropHandlerDescriptor) descriptorIterator.next();
+				if (descr.isDragEnabledFor(source)) {
+					serializerCollectionDescriptor = descr.getSerializersDescriptor();
+					if (serializerCollectionDescriptor != null)
+						results.addAll(Arrays.asList(serializerCollectionDescriptor.getSerializersEnabledFor(source)));
+				}
+			}
+			if (results.size() > 0) {
+				results.toArray((serializers = new SerializerDescriptor[results.size()]));
+			} else
+				serializers = new SerializerDescriptor[0];
+
+		} catch (Throwable t) {
+			NavigatorPlugin.log(NavigatorMessages.getString("CommonDropHandlerService.0") + t); //$NON-NLS-1$
+			serializers = new SerializerDescriptor[0];
+		}
+		return serializers;
+	}
+
+	public IDropValidator getDropValidator(CommonViewer aViewer, DropHandlerDescriptor descriptor) {
+		if (descriptor == null)
+			return null;
+		ICommonDropActionDelegate action = null;
+		IDropValidator dropValidator = descriptor.getDropValidator();
+		if (dropValidator == null && (action = getDropActionDelegate(aViewer, descriptor)) instanceof IDropValidator)
+			dropValidator = (IDropValidator) action;
+		return dropValidator;
+	}
+
+	public ICommonDropActionDelegate getDropActionDelegate(CommonViewer aViewer, DropHandlerDescriptor descriptor) {
+		Assert.isTrue(this.viewerId.equals(aViewer.getNavigatorContentService().getViewerId()));
+		ICommonDropActionDelegate action = (ICommonDropActionDelegate) getActions().get(descriptor.getId());
+		if (action == null) {
+			if ((action = descriptor.createAction()) != null) {
+				action.init(aViewer);
+				getActions().put(descriptor.getId(), action);
+			}
+		}
+		return action;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.internal.registry.RegistryReader#readElement(org.eclipse.core.runtime.IConfigurationElement)
+	 */
+	public boolean readElement(IConfigurationElement element) {
+		if (DropHandlerDescriptor.ExtensionPointElements.DROP_HANDLER.equals(element.getName())) {
+			addDescriptor(new DropHandlerDescriptor(element));
+			return true;
+		}
+		return false;
+	}
+
+	protected void addDescriptor(DropHandlerDescriptor descriptor) {
+		getDescriptors().put(descriptor.getId(), descriptor);
+	}
+
+	/**
+	 * @return Returns the descriptors.
+	 */
+	protected Map getDescriptors() {
+		if (descriptors == null)
+			descriptors = new HashMap();
+		return descriptors;
+	}
+
+	/**
+	 * @return Returns the actions.
+	 */
+	protected Map getActions() {
+		if (actions == null)
+			actions = new HashMap();
+		return actions;
+	}
+
+	/**
+	 * @return Returns the registries.
+	 */
+	protected static Map getRegistries() {
+		if (registries == null)
+			registries = new HashMap();
+		return registries;
+	}
+
+	public static CommonDropHandlerService getInstance(String viewerId) {
+		CommonDropHandlerService instance = (CommonDropHandlerService) getRegistries().get(viewerId);
+		if (instance == null) {
+			getRegistries().put(viewerId, (instance = new CommonDropHandlerService(viewerId)));
+			instance.readRegistry();
+		}
+		return instance;
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/CommonNavigatorDragAdapter.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/CommonNavigatorDragAdapter.java
new file mode 100644
index 0000000..597bdde
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/CommonNavigatorDragAdapter.java
@@ -0,0 +1,114 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.dnd;
+
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.dnd.DragSourceAdapter;
+import org.eclipse.swt.dnd.DragSourceEvent;
+import org.eclipse.swt.dnd.FileTransfer;
+import org.eclipse.ui.navigator.CommonViewer;
+import org.eclipse.ui.navigator.internal.NavigatorPlugin;
+import org.eclipse.ui.part.PluginTransfer;
+import org.eclipse.ui.part.PluginTransferData;
+import org.eclipse.ui.part.ResourceTransfer;
+import org.eclipse.ui.views.navigator.LocalSelectionTransfer;
+
+/**
+ * @author mdelder
+ *  
+ */
+public class CommonNavigatorDragAdapter extends DragSourceAdapter {
+
+	private ResourceTransferDragAdapter delegateResourceDragAdapter;
+
+	private FileTransferDragAdapter delegateFileDragAdapter;
+
+	private ISerializer serializer;
+
+	private final CommonViewer commonViewer;
+
+	/**
+	 *  
+	 */
+	public CommonNavigatorDragAdapter(CommonViewer aViewer) {
+		super();
+		commonViewer = aViewer;
+		this.delegateResourceDragAdapter = new ResourceTransferDragAdapter(commonViewer);
+		this.delegateFileDragAdapter = new FileTransferDragAdapter(commonViewer);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.swt.dnd.DragSourceAdapter#dragStart(org.eclipse.swt.dnd.DragSourceEvent)
+	 */
+	public void dragStart(DragSourceEvent event) {
+		try {
+			ISelection selection = commonViewer.getSelection();
+			event.doit = !selection.isEmpty();
+			LocalSelectionTransfer.getInstance().setSelection(selection);
+
+		} catch (RuntimeException e) {
+			NavigatorPlugin.log("CommonNavigatorDragAdapter.dragStart():" + e.toString()); //$NON-NLS-1$
+		}
+		// System.out.println(getClass().getName()+".dragStart(DragSourceEvent event=\""+event+"\");
+		// widget = " + event.widget);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.swt.dnd.DragSourceAdapter#dragSetData(org.eclipse.swt.dnd.DragSourceEvent)
+	 */
+	public void dragSetData(DragSourceEvent event) {
+		if (LocalSelectionTransfer.getInstance().isSupportedType(event.dataType)) {
+			event.data = LocalSelectionTransfer.getInstance().getSelection();
+			// System.out.println(getClass().getName()+".dragSetData(DragSourceEvent
+			// event=\""+event+"\"): Setting LocalSelectionTransfer");
+		} else if (PluginTransfer.getInstance().isSupportedType(event.dataType)) {
+			IStructuredSelection selection = (IStructuredSelection) LocalSelectionTransfer.getInstance().getSelection();
+			byte data[] = getSerializer().toByteArray(selection);
+			event.data = new PluginTransferData("org.eclipse.wst.common.navigator.internal.views.navigator.dnd.PluginDropAction", data); //$NON-NLS-1$
+			// System.out.println(getClass().getName()+".dragSetData(DragSourceEvent
+			// event=\""+event+"\"): Setting PluginTransfer");
+		} else if (ResourceTransfer.getInstance().isSupportedType(event.dataType)) {
+			this.delegateResourceDragAdapter.dragSetData(event);
+			// System.out.println(getClass().getName()+".dragSetData(DragSourceEvent
+			// event=\""+event+"\"): Setting ResourceTransfer");
+		} else if (FileTransfer.getInstance().isSupportedType(event.dataType)) {
+			this.delegateFileDragAdapter.dragSetData(event);
+			// System.out.println(getClass().getName()+".dragSetData(DragSourceEvent
+			// event=\""+event+"\"): Setting FileTransfer");
+
+		}
+	}
+
+	/**
+	 * @return
+	 */
+	private ISerializer getSerializer() {
+		if (serializer == null)
+			serializer = new NavigatorSelectionSerializer(commonViewer.getNavigatorContentService().getViewerId());
+		return serializer;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.swt.dnd.DragSourceAdapter#dragFinished(org.eclipse.swt.dnd.DragSourceEvent)
+	 */
+	public void dragFinished(DragSourceEvent event) {
+		LocalSelectionTransfer.getInstance().setSelection(null);
+		/* this.delegateResourceDragAdapter.dragFinished(event); */
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/CommonNavigatorDropAdapter.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/CommonNavigatorDropAdapter.java
new file mode 100644
index 0000000..935f619
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/CommonNavigatorDropAdapter.java
@@ -0,0 +1,277 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.dnd;
+
+import java.util.ArrayList;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.DropTargetEvent;
+import org.eclipse.swt.dnd.FileTransfer;
+import org.eclipse.swt.dnd.TransferData;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.navigator.CommonViewer;
+import org.eclipse.ui.navigator.internal.NavigatorPlugin;
+import org.eclipse.ui.part.PluginDropAdapter;
+import org.eclipse.ui.part.PluginTransfer;
+import org.eclipse.ui.part.PluginTransferData;
+import org.eclipse.ui.views.navigator.LocalSelectionTransfer;
+
+/** 
+ *  
+ */
+public class CommonNavigatorDropAdapter extends PluginDropAdapter {
+
+	private ISerializer serializer;
+
+	private final CommonViewer commonViewer;
+
+	/**
+	 * @param viewer
+	 */
+	public CommonNavigatorDropAdapter(CommonViewer aViewer) {
+		super(aViewer);
+		commonViewer = aViewer;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.ViewerDropAdapter#performDrop(java.lang.Object)
+	 */
+	public boolean performDrop(Object data) {
+
+		boolean result = false;
+		if (PluginTransfer.getInstance().isSupportedType(getCurrentTransfer()))
+			result = super.performDrop(data);
+		else {
+			Object target = getCurrentTarget();
+			Object draggedObject = getSelectedObject(getCurrentTransfer(), data);
+			if (getCurrentTarget() == draggedObject)
+				return false;
+			IDropValidator dropValidator = null;
+			CommonDropHandlerService registry = CommonDropHandlerService.getInstance(commonViewer.getNavigatorContentService().getViewerId());
+			DropHandlerDescriptor[] descriptors = registry.getDropHandlersEnabledFor(draggedObject, target);
+			ArrayList validatedList = new ArrayList();
+			/* there may be multiple drop handler descriptors */
+			for (int i = 0; i < descriptors.length; i++) {
+				/*
+				 * if a drop validator is defined, allow it to perform further validations --
+				 * otherwise, run the action
+				 */
+				dropValidator = registry.getDropValidator(commonViewer, descriptors[i]);
+				if (dropValidator == null || dropValidator.validateDrop(this, getCurrentTarget(), getCurrentOperation(), getCurrentTransfer())) {
+					validatedList.add(descriptors[i]);
+				}
+			}
+
+			boolean skipOnSingle = NavigatorPlugin.getDefault().getDialogSettings().getBoolean(NavigatorDropSelectionDialog.SKIP_ON_SINGLE_SELECTION);
+
+			if (validatedList.size() > 0) {
+				DropHandlerDescriptor[] validatedDescriptors = new DropHandlerDescriptor[validatedList.size()];
+				validatedList.toArray(validatedDescriptors);
+				DropHandlerDescriptor descriptorToUse = validatedDescriptors[0];
+
+				if (validatedDescriptors.length != 1 || !skipOnSingle) {
+					Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
+					NavigatorDropSelectionDialog dialog = new NavigatorDropSelectionDialog(shell, validatedDescriptors);
+					if (Window.OK == dialog.open()) {
+						descriptorToUse = dialog.getSelectedDescriptor();
+					} else {
+						descriptorToUse = null;
+					}
+				}
+				if (null != descriptorToUse) {
+					/* when at least one action runs, we will return true */
+					result |= registry.getDropActionDelegate(commonViewer, descriptorToUse).run(this, data, target);
+				}
+			}
+
+		}
+		return result;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.ViewerDropAdapter#validateDrop(java.lang.Object, int,
+	 *      org.eclipse.swt.dnd.TransferData)
+	 */
+	public boolean validateDrop(Object target, int operation, TransferData transferType) {
+
+		/*
+		 * should be called first sense the currentTransfer field is set in the parent in this
+		 * method
+		 */
+		if (super.validateDrop(target, operation, transferType)) {
+			// System.out.println(getClass().getName()+".validateDrop(Object target=\""+target+"\",
+			// int operation=\""+operation+"\", TransferData transferType=\""+transferType+"\"):
+			// Validating for PluginTransfer");
+			return true;
+		}
+
+		// System.out.println(getClass().getName()+".validateDrop(Object target=\""+target+"\", int
+		// operation=\""+operation+"\", TransferData transferType=\""+transferType+"\"): Validating
+		// for ExtensibleTransfer");
+		Object source = getSelectedObject(transferType);
+		if (source == target)
+			return false;
+		IDropValidator dropValidator = null;
+		CommonDropHandlerService registry = CommonDropHandlerService.getInstance(commonViewer.getNavigatorContentService().getViewerId());
+		DropHandlerDescriptor[] descriptors = registry.getDropHandlersEnabledFor(source, target);
+		boolean result = false;
+		for (int i = 0; i < descriptors.length; i++) {
+			try {
+				dropValidator = registry.getDropValidator(commonViewer, descriptors[i]);
+				if (dropValidator == null || dropValidator.validateDrop(this, target, operation, transferType)) {
+					result = true;
+					break;
+				}
+			} catch (Throwable t) {
+				t.printStackTrace();
+			}
+		}
+		return result;
+	}
+
+	/**
+	 * @param transferType
+	 * @return the selected object only if the transferType is of the type
+	 *         LocalSelectionTransfer.getInstance()
+	 */
+	public Object getSelectedObject(TransferData transferType) {
+		IStructuredSelection selection = null;
+		if (LocalSelectionTransfer.getInstance().isSupportedType(transferType))
+			selection = (IStructuredSelection) LocalSelectionTransfer.getInstance().nativeToJava(transferType);
+
+		if (selection != null)
+			return selection.getFirstElement();
+		return null;
+	}
+
+	/**
+	 * @param transferType
+	 * @return the selected object only if the transferType is of the type
+	 *         LocalSelectionTransfer.getInstance()
+	 */
+	public Object getSelectedObject(TransferData transferType, Object data) {
+		IStructuredSelection selection = null;
+		if (LocalSelectionTransfer.getInstance().isSupportedType(transferType))
+			selection = (IStructuredSelection) LocalSelectionTransfer.getInstance().nativeToJava(transferType);
+
+		if (selection != null)
+			return selection.getFirstElement();
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.ViewerDropAdapter#dragEnter(org.eclipse.swt.dnd.DropTargetEvent)
+	 */
+	public void dragEnter(DropTargetEvent event) {
+		super.dragEnter(event);
+		for (int i = 0; i < event.dataTypes.length; i++) {
+			if (LocalSelectionTransfer.getInstance().isSupportedType(event.dataTypes[i])) {
+				event.data = LocalSelectionTransfer.getInstance().getSelection();
+				//System.out.println(getClass().getName()+".dragEnter(DropTargetEvent
+				// event=\""+event+"\"): Setting LocalSelectionTransfer");
+				break;
+			} else if (PluginTransfer.getInstance().isSupportedType(event.dataTypes[i])) {
+				IStructuredSelection selection = (IStructuredSelection) LocalSelectionTransfer.getInstance().getSelection();
+				byte data[] = getSerializer().toByteArray(selection);
+				event.data = new PluginTransferData("org.eclipse.wst.common.navigator.internal.views.navigator.dnd.PluginDropAction", data); //$NON-NLS-1$
+				//System.out.println(getClass().getName()+".dragEnter(DropTargetEvent
+				// event=\""+event+"\"): Setting PluginTransfer");
+				break;
+			} else if (FileTransfer.getInstance().isSupportedType(event.dataTypes[i])) {
+				event.data = FileTransfer.getInstance().nativeToJava(event.dataTypes[i]);
+				// FileTransfer from outside the workbench only allows a Copy action
+				event.detail = DND.DROP_COPY;
+				//System.out.println(getClass().getName()+".dragEnter(DropTargetEvent
+				// event=\""+event+"\"): Setting FileTransfer");
+				//System.out.println("Data: " + ((String[])event.data)[0]);
+				break;
+			}
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.swt.dnd.DropTargetAdapter#dragLeave(org.eclipse.swt.dnd.DropTargetEvent)
+	 */
+	public void dragLeave(DropTargetEvent event) {
+		super.dragLeave(event);
+		if (LocalSelectionTransfer.getInstance().isSupportedType(event.currentDataType)) {
+			IStructuredSelection selection = (IStructuredSelection) LocalSelectionTransfer.getInstance().getSelection();
+			byte data[] = getSerializer().toByteArray(selection);
+			event.data = new PluginTransferData("org.eclipse.wst.common.navigator.internal.views.navigator.dnd.GenericDropAction", data); //$NON-NLS-1$
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.ViewerDropAdapter#getCurrentLocation()
+	 */
+	public int getCurrentLocation() {
+		return super.getCurrentLocation();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.ViewerDropAdapter#getCurrentOperation()
+	 */
+	public int getCurrentOperation() {
+		return super.getCurrentOperation();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.ViewerDropAdapter#getCurrentTarget()
+	 */
+	public Object getCurrentTarget() {
+		return super.getCurrentTarget();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.part.PluginDropAdapter#getCurrentTransfer()
+	 */
+	public TransferData getCurrentTransfer() {
+		return super.getCurrentTransfer();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.ViewerDropAdapter#getSelectedObject()
+	 */
+	public Object getSelectedObject() {
+		return super.getSelectedObject();
+	}
+
+	/**
+	 * @return
+	 */
+	protected ISerializer getSerializer() {
+		if (serializer == null)
+			serializer = new NavigatorSelectionSerializer(commonViewer.getNavigatorContentService().getViewerId());
+		return serializer;
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/DropHandlerDescriptor.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/DropHandlerDescriptor.java
new file mode 100644
index 0000000..54b2290
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/DropHandlerDescriptor.java
@@ -0,0 +1,156 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.dnd;
+ 
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.jface.util.Assert;
+import org.eclipse.ui.internal.ActionExpression;
+import org.eclipse.ui.navigator.ICommonDropActionDelegate;
+import org.eclipse.ui.navigator.internal.NavigatorMessages;
+import org.eclipse.ui.navigator.internal.NavigatorPlugin;
+
+/**
+ * @author mdelder
+ *  
+ */
+public class DropHandlerDescriptor {
+
+	public interface ExtensionPointElements {
+
+		public static final String DROP_HANDLER = "dropHandler"; //$NON-NLS-1$
+
+		public static final String ATT_ID = "id"; //$NON-NLS-1$
+
+		public static final String ATT_CLASS = "class"; //$NON-NLS-1$
+
+		public static final String ATT_VALIDATOR_CLASS = "validatorClass"; //$NON-NLS-1$
+
+		public static final String DRAG_ENABLEMENT = "dragEnablement"; //$NON-NLS-1$
+
+		public static final String DROP_ENABLEMENT = "dropEnablement"; //$NON-NLS-1$
+
+		public static final String SERIALIZERS = "serializers"; //$NON-NLS-1$
+
+		public static final String SERIALIZER = "serializer"; //$NON-NLS-1$
+
+		public static final String NAME = "name"; //$NON-NLS-1$
+
+		public static final String DESCRIPTION = "description"; //$NON-NLS-1$
+	}
+
+	private String name;
+
+	private String description;
+
+	private String id = null;
+
+	private IConfigurationElement configurationElement;
+
+	private ActionExpression dragEnablement;
+
+	private ActionExpression dropEnablement;
+
+	private SerializerCollectionDescriptor serializers;
+
+	private IConfigurationElement dropEnablementConfigElement;
+
+	private IDropValidator dropValidator;
+
+	/**
+	 *  
+	 */
+	public DropHandlerDescriptor(IConfigurationElement aConfigurationElement) {
+		super();
+		Assert.isLegal(ExtensionPointElements.DROP_HANDLER.equals(aConfigurationElement.getName()));
+		configurationElement = aConfigurationElement;
+		init();
+	}
+
+	/**
+	 *  
+	 */
+	private void init() {
+		id = configurationElement.getAttribute(ExtensionPointElements.ATT_ID);
+		name = configurationElement.getAttribute(ExtensionPointElements.NAME);
+		description = configurationElement.getAttribute(ExtensionPointElements.DESCRIPTION);
+
+		IConfigurationElement[] dragEnablementChildren = configurationElement.getChildren(ExtensionPointElements.DRAG_ENABLEMENT);
+		if (dragEnablementChildren.length > 0 && dragEnablementChildren[0] != null)
+			this.dragEnablement = new ActionExpression(dragEnablementChildren[0]);
+
+		IConfigurationElement[] dropEnablementChildren = configurationElement.getChildren(ExtensionPointElements.DROP_ENABLEMENT);
+		if (dropEnablementChildren.length > 0 && dropEnablementChildren[0] != null) {
+			this.dropEnablementConfigElement = dropEnablementChildren[0];
+			this.dropEnablement = new ActionExpression(dropEnablementChildren[0]);
+		}
+
+		IConfigurationElement[] serializersChild = configurationElement.getChildren(ExtensionPointElements.SERIALIZERS);
+		if (serializersChild.length > 0 && serializersChild[0] != null)
+			this.serializers = new SerializerCollectionDescriptor(this.id, serializersChild[0], dragEnablement);
+	}
+
+	public boolean isDragEnabledFor(Object element) {
+		if (this.dragEnablement != null)
+			return this.dragEnablement.isEnabledFor(element);
+		return true;
+	}
+
+	public boolean isDropEnabledFor(Object element) {
+		if (this.dropEnablement != null)
+			return this.dropEnablement.isEnabledFor(element);
+		return false;
+	}
+
+	/**
+	 * @return
+	 */
+	protected IDropValidator getDropValidator() {
+		if (dropValidator == null) {
+			try {
+				String classValue = this.dropEnablementConfigElement.getAttribute(ExtensionPointElements.ATT_VALIDATOR_CLASS);
+				if (classValue != null && classValue.length() > 0)
+					dropValidator = (IDropValidator) this.dropEnablementConfigElement.createExecutableExtension(ExtensionPointElements.ATT_VALIDATOR_CLASS);
+			} catch (CoreException e) {
+			}
+		}
+		return dropValidator;
+	}
+
+	public SerializerCollectionDescriptor getSerializersDescriptor() {
+		return this.serializers;
+	}
+
+	/**
+	 * @return Returns the id.
+	 */
+	public String getId() {
+		return id;
+	}
+
+	protected ICommonDropActionDelegate createAction() {
+		try {
+			return (ICommonDropActionDelegate) this.configurationElement.createExecutableExtension(ExtensionPointElements.ATT_CLASS);
+		} catch (CoreException e) {
+			String msg = NavigatorMessages.format("DropHandlerDescriptor.10", new Object[]{getId()}); //$NON-NLS-1$
+			NavigatorPlugin.log(msg, e.getStatus());
+		}
+		return null;
+	}
+
+	public String getDescription() {
+		return description != null ? description : ""; //$NON-NLS-1$
+	}
+
+	public String getName() {
+		return name != null ? name : id;
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/FileTransferDragAdapter.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/FileTransferDragAdapter.java
new file mode 100644
index 0000000..7fbb914
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/FileTransferDragAdapter.java
@@ -0,0 +1,250 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.dnd;
+
+import java.lang.reflect.InvocationTargetException;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.MultiStatus;
+import org.eclipse.core.runtime.SubProgressMonitor;
+import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+import org.eclipse.jface.operation.IRunnableWithProgress;
+import org.eclipse.jface.util.Assert;
+import org.eclipse.jface.util.TransferDragSourceListener;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.DragSourceAdapter;
+import org.eclipse.swt.dnd.DragSourceEvent;
+import org.eclipse.swt.dnd.FileTransfer;
+import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.actions.WorkspaceModifyOperation;
+import org.eclipse.ui.navigator.internal.NavigatorPlugin;
+
+
+
+/**
+ * Drag support class to allow dragging of files and folder from the packages view to another
+ * application.
+ * 
+ * Derived from the version of the same name in the JDT internals.
+ */
+public class FileTransferDragAdapter extends DragSourceAdapter implements TransferDragSourceListener {
+
+	private ISelectionProvider fProvider;
+
+	public FileTransferDragAdapter(ISelectionProvider provider) {
+		fProvider = provider;
+		Assert.isNotNull(fProvider);
+	}
+
+	public Transfer getTransfer() {
+		return FileTransfer.getInstance();
+	}
+
+	public void dragStart(DragSourceEvent event) {
+		event.doit = isDragable(fProvider.getSelection());
+	}
+
+	private boolean isDragable(ISelection s) {
+		if (!(s instanceof IStructuredSelection))
+			return false;
+		IStructuredSelection selection = (IStructuredSelection) s;
+		/*
+		 * for (Iterator iter= selection.iterator(); iter.hasNext();) { Object element= iter.next();
+		 * if (element instanceof IJavaElement) { IJavaElement jElement= (IJavaElement)element; int
+		 * type= jElement.getElementType(); // valid elements are: projects, roots, units and types.
+		 * if (type != IJavaElement.JAVA_PROJECT && type != IJavaElement. PACKAGE_FRAGMENT_ROOT &&
+		 * type != IJavaElement.COMPILATION_UNIT && type != IJavaElement.TYPE) return false;
+		 * IPackageFragmentRoot root=
+		 * (IPackageFragmentRoot)jElement.getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT); if (root !=
+		 * null && root.isArchive()) return false; } }
+		 */
+		List resources = convertIntoResources(selection);
+		return resources.size() == selection.size();
+	}
+
+	public void dragSetData(DragSourceEvent event) {
+		List elements = getResources();
+		if (elements == null || elements.size() == 0) {
+			event.data = null;
+			return;
+		}
+
+		event.data = getResourceLocations(elements);
+	}
+
+	private static String[] getResourceLocations(List resources) {
+		return getLocationOSStrings((IResource[]) resources.toArray(new IResource[resources.size()]));
+	}
+
+	public void dragFinished(DragSourceEvent event) {
+		if (!event.doit)
+			return;
+
+		if (event.detail == DND.DROP_MOVE) {
+			// http://bugs.eclipse.org/bugs/show_bug.cgi?id=30543
+			// handleDropMove(event);
+		} else if (event.detail == DND.DROP_NONE || event.detail == DND.DROP_TARGET_MOVE) {
+			handleRefresh(event);
+		}
+	}
+
+	/* package */void handleDropMove(DragSourceEvent event) {
+		final List elements = getResources();
+		if (elements == null || elements.size() == 0)
+			return;
+
+		WorkspaceModifyOperation op = new WorkspaceModifyOperation() {
+			public void execute(IProgressMonitor monitor) throws CoreException {
+				try {
+					//TODO Handle String here
+					monitor.beginTask(/* PackagesMessages.getString( */"DragAdapter.deleting"/* ) */, elements.size()); //$NON-NLS-1$
+					MultiStatus status = createMultiStatus();
+					Iterator iter = elements.iterator();
+					while (iter.hasNext()) {
+						IResource resource = (IResource) iter.next();
+						try {
+							monitor.subTask(resource.getFullPath().toOSString());
+							resource.delete(true, null);
+
+						} catch (CoreException e) {
+							status.add(e.getStatus());
+						} finally {
+							monitor.worked(1);
+						}
+					}
+					if (!status.isOK()) {
+						throw new CoreException(status);
+					}
+				} finally {
+					monitor.done();
+				}
+			}
+		};
+		runOperation(op, true, false);
+	}
+
+	private void handleRefresh(DragSourceEvent event) {
+		final Set roots = collectRoots(getResources());
+
+		WorkspaceModifyOperation op = new WorkspaceModifyOperation() {
+			public void execute(IProgressMonitor monitor) throws CoreException {
+				try {
+					// TODO MDE Externalize String
+					monitor.beginTask(/* PackagesMessages.getString( */"DragAdapter.refreshing"/* ) */, roots.size()); //$NON-NLS-1$
+					MultiStatus status = createMultiStatus();
+					Iterator iter = roots.iterator();
+					while (iter.hasNext()) {
+						IResource r = (IResource) iter.next();
+						try {
+							r.refreshLocal(IResource.DEPTH_ONE, new SubProgressMonitor(monitor, 1));
+						} catch (CoreException e) {
+							status.add(e.getStatus());
+						}
+					}
+					if (!status.isOK()) {
+						throw new CoreException(status);
+					}
+				} finally {
+					monitor.done();
+				}
+			}
+		};
+
+		runOperation(op, true, false);
+	}
+
+	protected Set collectRoots(final List elements) {
+		final Set roots = new HashSet(10);
+
+		Iterator iter = elements.iterator();
+		while (iter.hasNext()) {
+			IResource resource = (IResource) iter.next();
+			IResource parent = resource.getParent();
+			if (parent == null) {
+				roots.add(resource);
+			} else {
+				roots.add(parent);
+			}
+		}
+		return roots;
+	}
+
+	private List getResources() {
+		ISelection s = fProvider.getSelection();
+		if (!(s instanceof IStructuredSelection))
+			return null;
+
+		return convertIntoResources((IStructuredSelection) s);
+	}
+
+	private List convertIntoResources(IStructuredSelection selection) {
+		List result = new ArrayList(selection.size());
+		for (Iterator iter = selection.iterator(); iter.hasNext();) {
+			Object o = iter.next();
+			IResource r = null;
+			if (o instanceof IResource) {
+				r = (IResource) o;
+			} else if (o instanceof IAdaptable) {
+				r = (IResource) ((IAdaptable) o).getAdapter(IResource.class);
+			}
+			if (r != null)
+				result.add(r);
+		}
+		return result;
+	}
+
+	private MultiStatus createMultiStatus() {
+		// TODO MDE Handle string
+		return new MultiStatus(NavigatorPlugin.PLUGIN_ID, IStatus.OK, /* PackagesMessages.getString( */"DragAdapter.problem"/* ) */, null); //$NON-NLS-1$
+	}
+
+	private void runOperation(IRunnableWithProgress op, boolean fork, boolean cancelable) {
+		try {
+			Shell parent = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
+			new ProgressMonitorDialog(parent).run(fork, cancelable, op);
+		} catch (InvocationTargetException e) {
+			// TODO MDE Handle exception
+			/*
+			 * String message= PackagesMessages.getString("DragAdapter.problem"); //$NON-NLS-1$
+			 * String title= PackagesMessages.getString("DragAdapter.problemTitle"); //$NON-NLS-1$
+			 * ExceptionHandler.handle(e, title, message);
+			 */
+		} catch (InterruptedException e) {
+			// Do nothing. Operation has been canceled by user.
+		}
+	}
+
+
+	private static String[] getLocationOSStrings(IResource[] resources) {
+		List result = new ArrayList(resources.length);
+		for (int i = 0; i < resources.length; i++) {
+			IPath location = resources[i].getLocation();
+			if (location != null)
+				result.add(location.toOSString());
+		}
+		return (String[]) result.toArray(new String[result.size()]);
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/IDropValidator.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/IDropValidator.java
new file mode 100644
index 0000000..bbe92f7
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/IDropValidator.java
@@ -0,0 +1,24 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.dnd;
+
+import org.eclipse.swt.dnd.TransferData;
+
+
+/**
+ * @author mdelder
+ *  
+ */
+public interface IDropValidator {
+
+	boolean validateDrop(CommonNavigatorDropAdapter dropAdapter, Object target, int operation, TransferData transferType);
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/ISerializer.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/ISerializer.java
new file mode 100644
index 0000000..3e82166
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/ISerializer.java
@@ -0,0 +1,23 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.dnd;
+
+
+/**
+ * @author mdelder
+ *  
+ */
+public interface ISerializer {
+
+	Object fromByteArray(byte[] data);
+
+	byte[] toByteArray(Object data);
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/NavigatorDropActionDelegate.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/NavigatorDropActionDelegate.java
new file mode 100644
index 0000000..df42cdd
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/NavigatorDropActionDelegate.java
@@ -0,0 +1,78 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.dnd;
+
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.navigator.CommonViewer;
+import org.eclipse.ui.navigator.ICommonDropActionDelegate;
+
+/**
+ * @author mdelder
+ *  
+ */
+public abstract class NavigatorDropActionDelegate implements ICommonDropActionDelegate {
+
+	private CommonViewer commonViewer;
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.navigator.dnd.ICommonDropActionDelegate#init(org.eclipse.wst.common.navigator.internal.views.navigator.INavigatorExtensionSite)
+	 */
+	public final void init(CommonViewer aViewer) {
+		commonViewer = aViewer;
+		doInit();
+	}
+
+	/**
+	 * Implement any additional initialization. The extensionSite is accessible by
+	 * getExtensionSite().
+	 */
+	protected void doInit() {
+	}
+
+	/**
+	 * Carry out the DND operation
+	 * 
+	 * @param operation
+	 *            one of DND.DROP_MOVE|DND.DROP_COPY|DND.DROP_LINK
+	 * @param location
+	 *            one of ViewerDropAdapter.LOCATION_* to indicate where in the tree an item is
+	 *            dropped
+	 * @param source
+	 *            The object being dragged
+	 * @param target
+	 *            The object being dragged onto
+	 * @return
+	 */
+	public abstract boolean run(CommonNavigatorDropAdapter dropAdapter, Object source, Object target);
+
+	protected Display getDisplay() {
+		return getShell().getDisplay();
+	}
+
+	protected Shell getShell() {
+		if (commonViewer != null)
+			return commonViewer.getControl().getShell();
+		return PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.part.IDropActionDelegate#run(java.lang.Object, java.lang.Object)
+	 */
+	public boolean run(Object source, Object target) {
+		return false;
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/NavigatorDropSelectionDialog.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/NavigatorDropSelectionDialog.java
new file mode 100644
index 0000000..f3a9643
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/NavigatorDropSelectionDialog.java
@@ -0,0 +1,140 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/*
+ * Created on May 7, 2004
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Generation - Code and Comments
+ */
+package org.eclipse.ui.navigator.internal.dnd;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Group;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.navigator.internal.NavigatorMessages;
+import org.eclipse.ui.navigator.internal.NavigatorPlugin;
+
+
+/**
+ * @author jsholl
+ * 
+ * TODO To change the template for this generated type comment go to Window - Preferences - Java -
+ * Code Generation - Code and Comments
+ */
+public class NavigatorDropSelectionDialog extends Dialog {
+
+	public static final String SKIP_ON_SINGLE_SELECTION = NavigatorMessages.getString("NavigatorDropSelectionDialog.0"); //$NON-NLS-1$
+
+	private DropHandlerDescriptor[] descriptors;
+	private Button[] radios;
+	private Button skipDialogOnSingleSelection;
+	private Text descriptionText;
+	private DropHandlerDescriptor selectedDescriptor;
+	private boolean checkedDefault = false;
+
+	public NavigatorDropSelectionDialog(Shell parentShell, DropHandlerDescriptor[] descriptors) {
+		super(parentShell);
+		this.descriptors = descriptors;
+	}
+
+	protected Control createDialogArea(Composite parent) {
+		getShell().setText(NavigatorMessages.getString("NavigatorDropSelectionDialog.1")); //$NON-NLS-1$
+		Composite superComposite = (Composite) super.createDialogArea(parent);
+
+		Composite composite = new Composite(superComposite, SWT.NONE);
+
+		GridLayout layout = new GridLayout();
+		layout.marginHeight = 0;
+		layout.marginWidth = 0;
+		layout.verticalSpacing = 5;
+		layout.horizontalSpacing = 0;
+		layout.numColumns = 1;
+		composite.setLayout(layout);
+		composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+
+		radios = new Button[descriptors.length];
+
+		Group radioGroup = new Group(composite, SWT.SHADOW_NONE);
+		radioGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+		GridLayout groupLayout = new GridLayout();
+		groupLayout.marginHeight = 0;
+		groupLayout.marginWidth = 0;
+		groupLayout.verticalSpacing = 0;
+		groupLayout.horizontalSpacing = 0;
+		groupLayout.numColumns = 1;
+		radioGroup.setLayout(groupLayout);
+
+		final int arrayLength = descriptors.length; // = radios.length
+		for (int i = 0; i < arrayLength; i++) {
+			radios[i] = new Button(radioGroup, SWT.RADIO);
+			radios[i].setText(descriptors[i].getName());
+
+			radios[i].addSelectionListener(new SelectionAdapter() {
+				public void widgetSelected(SelectionEvent e) {
+					Object source = e.getSource();
+					for (int j = 0; j < arrayLength; j++) {
+						if (source == radios[j]) {
+							selectedDescriptor = descriptors[j];
+							descriptionText.setText(selectedDescriptor.getDescription());
+							return;
+						}
+					}
+					selectedDescriptor = null;
+					descriptionText.setText(""); //$NON-NLS-1$
+				}
+			});
+		}
+
+		descriptionText = new Text(composite, SWT.BORDER | SWT.WRAP);
+		GridData descriptionTextGridData = new GridData(GridData.FILL_HORIZONTAL);
+		descriptionTextGridData.heightHint = convertHeightInCharsToPixels(3);
+		descriptionText.setLayoutData(descriptionTextGridData);
+		descriptionText.setBackground(superComposite.getBackground());
+
+		skipDialogOnSingleSelection = new Button(composite, SWT.CHECK);
+		skipDialogOnSingleSelection.setText(NavigatorMessages.getString("NavigatorDropSelectionDialog.3")); //$NON-NLS-1$
+		skipDialogOnSingleSelection.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+		checkedDefault = NavigatorPlugin.getDefault().getDialogSettings().getBoolean(NavigatorDropSelectionDialog.SKIP_ON_SINGLE_SELECTION);
+		skipDialogOnSingleSelection.setSelection(checkedDefault);
+
+		setDefaultSelection();
+		return composite;
+	}
+
+	protected void okPressed() {
+		if (checkedDefault != skipDialogOnSingleSelection.getSelection()) {
+			NavigatorPlugin.getDefault().getDialogSettings().put(NavigatorDropSelectionDialog.SKIP_ON_SINGLE_SELECTION, skipDialogOnSingleSelection.getSelection());
+		}
+		super.okPressed();
+	}
+
+	private void setDefaultSelection() {
+		radios[0].setSelection(true);
+		selectedDescriptor = descriptors[0];
+		descriptionText.setText(selectedDescriptor.getDescription());
+	}
+
+	/**
+	 * @return Returns the selectedDescriptor.
+	 */
+	public DropHandlerDescriptor getSelectedDescriptor() {
+		return selectedDescriptor;
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/NavigatorSelectionSerializer.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/NavigatorSelectionSerializer.java
new file mode 100644
index 0000000..27a9529
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/NavigatorSelectionSerializer.java
@@ -0,0 +1,158 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.dnd;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.DataInputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.navigator.internal.NavigatorMessages;
+import org.eclipse.ui.navigator.internal.NavigatorPlugin;
+
+/**
+ * @author mdelder
+ *  
+ */
+public class NavigatorSelectionSerializer implements ISerializer {
+
+	private String viewerId;
+
+	public class NavigatorSerializedSelection {
+
+		public final String viewerId;
+
+		public final Map selectionMap;
+
+		public NavigatorSerializedSelection(String viewerId, Map selectionMap) {
+			this.viewerId = viewerId;
+			this.selectionMap = selectionMap;
+		}
+	}
+
+	public NavigatorSelectionSerializer() {
+	}
+
+	/**
+	 *  
+	 */
+	public NavigatorSelectionSerializer(String aViewerId) {
+		this.viewerId = aViewerId;
+	}
+
+	public byte[] toByteArray(Object object) {
+		if (viewerId == null)
+			return null;
+		if (!(object instanceof IStructuredSelection))
+			return new byte[0];
+
+		IStructuredSelection selection = (IStructuredSelection) object;
+		//	  TODO MDE Serialize muliple elements -- getFirstElement() is just to
+		// test the idea
+		byte[] result = null;
+
+		ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+		DataOutputStream dataOutputStream = new DataOutputStream(byteArrayOutputStream);
+
+		try {
+			dataOutputStream.writeUTF(viewerId);
+
+			byte[] data = null;
+			Object element = null;
+			SerializerDescriptor[] serializerDescriptors = null;
+			/* write the number of objects to be serialized */
+			dataOutputStream.writeInt(selection.size());
+			for (Iterator selectionIterator = selection.iterator(); selectionIterator.hasNext();) {
+				element = selectionIterator.next();
+				serializerDescriptors = CommonDropHandlerService.getInstance(viewerId).getSerializersEnabledFor(element);
+
+				/* write the number of different representations to be stored */
+				ByteArrayOutputStream localRepresentationOutputStream = null;
+				int differentRepresentations = 0;
+				DataOutputStream serializedDataOutputStream = new DataOutputStream((localRepresentationOutputStream = new ByteArrayOutputStream()));
+				for (int i = 0; i < serializerDescriptors.length; i++) {
+					ISerializer serializer = serializerDescriptors[i].getSerializer();
+					data = serializer.toByteArray(element);
+					if (data != null) {
+						/*
+						 * write the id of the serializer that marshalled the data
+						 */
+						serializedDataOutputStream.writeUTF(serializerDescriptors[i].id);
+						/* write the amount of data */
+						serializedDataOutputStream.writeInt(data.length);
+						/* write the data */
+						serializedDataOutputStream.write(data);
+						++differentRepresentations;
+					}
+				}
+
+				dataOutputStream.writeInt(differentRepresentations);
+				dataOutputStream.write(localRepresentationOutputStream.toByteArray());
+			}
+			result = byteArrayOutputStream.toByteArray();
+		} catch (IOException e) {
+			NavigatorPlugin.log(NavigatorMessages.getString("NavigatorSelectionSerializer.1") + e.toString()); //$NON-NLS-1$
+			result = null;
+		}
+		return result;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.navigator.dnd.ISerializer#fromByteArray(byte[])
+	 */
+	public Object fromByteArray(byte[] data) {
+		Map results = new HashMap();
+
+		DataInputStream dataInputStream = new DataInputStream(new ByteArrayInputStream(data));
+		try {
+			int localDataLen = 0;
+			byte[] localData = null;
+			String serializerId = null;
+			Object dataObject = null;
+
+			String localViewerId = dataInputStream.readUTF();
+			int numberOfObjects = dataInputStream.readInt();
+			for (int i = 0; i < numberOfObjects; i++) {
+				int numberOfRepresentations = dataInputStream.readInt();
+				for (int j = 0; j < numberOfRepresentations; j++) {
+					serializerId = dataInputStream.readUTF();
+					SerializerDescriptor serializerDescriptor = CommonDropHandlerService.getInstance(localViewerId).getSerializerById(serializerId);
+					ISerializer serializer = serializerDescriptor.getSerializer();
+					localDataLen = dataInputStream.readInt();
+					localData = new byte[localDataLen];
+					dataInputStream.read(localData, 0, localData.length);
+					dataObject = serializer.fromByteArray(localData);
+					getDataList(results, serializerId).add(dataObject);
+				}
+			}
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+		return new NavigatorSerializedSelection(viewerId, results);
+	}
+
+	public List getDataList(Map serializerMap, String id) {
+		List result = (List) serializerMap.get(id);
+		if (result == null)
+			serializerMap.put(id, (result = new ArrayList()));
+		return result;
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/PluginDropAction.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/PluginDropAction.java
new file mode 100644
index 0000000..06c1c8a
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/PluginDropAction.java
@@ -0,0 +1,115 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.dnd;
+
+import java.util.ArrayList;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.jface.dialogs.IDialogSettings;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.jface.window.Window;
+import org.eclipse.swt.dnd.TransferData;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.navigator.ICommonDropActionDelegate;
+import org.eclipse.ui.navigator.internal.NavigatorPlugin;
+import org.eclipse.ui.part.IDropActionDelegate;
+import org.eclipse.ui.part.PluginTransfer;
+
+/**
+ * @author mdelder
+ *  
+ */
+public class PluginDropAction implements IDropActionDelegate {
+
+	private ISerializer serializer;
+
+	/**
+	 *  
+	 */
+	public PluginDropAction() {
+		super();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.ui.part.IDropActionDelegate#run(java.lang.Object, java.lang.Object)
+	 */
+	public boolean run(Object sourceData, Object target) {
+		NavigatorSelectionSerializer.NavigatorSerializedSelection navSelection = (NavigatorSelectionSerializer.NavigatorSerializedSelection) getSerializer().fromByteArray((byte[]) sourceData);
+		CommonDropHandlerService registry = CommonDropHandlerService.getInstance(navSelection.viewerId);
+
+		TransferData transferData = PluginTransfer.getInstance().getSupportedTypes()[0];
+		String serializerId = null;
+		ICommonDropActionDelegate action = null;
+		List validatedList = new ArrayList();
+		Hashtable descriptorToSerizliazerIDHash = new Hashtable();
+		for (Iterator keyItr = navSelection.selectionMap.keySet().iterator(); keyItr.hasNext();) {
+			serializerId = keyItr.next().toString();
+			DropHandlerDescriptor[] descriptors = registry.getDropHandlersBySerializerId(serializerId);
+			for (int i = 0; i < descriptors.length; i++) {
+				if (!validatedList.contains(descriptors[i])) {
+					IDropValidator validator = descriptors[i].getDropValidator();
+					if (null == validator || validator.validateDrop(null, target, -1, transferData)) {
+						validatedList.add(descriptors[i]);
+						descriptorToSerizliazerIDHash.put(descriptors[i], serializerId);
+					}
+				}
+			}
+		}
+		IDialogSettings settings = NavigatorPlugin.getDefault().getDialogSettings();
+		if (null == settings.get(NavigatorDropSelectionDialog.SKIP_ON_SINGLE_SELECTION)) {
+			settings.put(NavigatorDropSelectionDialog.SKIP_ON_SINGLE_SELECTION, true);
+		}
+
+		boolean skipOnSingle = settings.getBoolean(NavigatorDropSelectionDialog.SKIP_ON_SINGLE_SELECTION);
+
+		if (validatedList.size() > 0) {
+			DropHandlerDescriptor[] validatedDescriptors = new DropHandlerDescriptor[validatedList.size()];
+			validatedList.toArray(validatedDescriptors);
+			DropHandlerDescriptor descriptorToUse = validatedDescriptors[0];
+
+			if (validatedDescriptors.length != 1 || !skipOnSingle) {
+				Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
+				NavigatorDropSelectionDialog dialog = new NavigatorDropSelectionDialog(shell, validatedDescriptors);
+				if (Window.OK == dialog.open()) {
+					descriptorToUse = dialog.getSelectedDescriptor();
+				} else {
+					descriptorToUse = null;
+				}
+			}
+			if (null != descriptorToUse) {
+				serializerId = (String) descriptorToSerizliazerIDHash.get(descriptorToUse);
+				List objects = (List) navSelection.selectionMap.get(serializerId);
+				IStructuredSelection selection = new StructuredSelection(objects.toArray());
+				action = CommonDropHandlerService.getInstance(navSelection.viewerId).getActionForSerializerId(serializerId);
+				action.run(selection, target);
+				return true;
+			}
+		}
+
+		return false;
+	}
+
+	/**
+	 * @return
+	 */
+	protected ISerializer getSerializer() {
+		if (serializer == null)
+			serializer = new NavigatorSelectionSerializer();
+		return serializer;
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/ResourceTransferDragAdapter.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/ResourceTransferDragAdapter.java
new file mode 100644
index 0000000..50e7a55
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/ResourceTransferDragAdapter.java
@@ -0,0 +1,121 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.dnd;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IAdaptable;
+import org.eclipse.jface.util.Assert;
+import org.eclipse.jface.util.TransferDragSourceListener;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.dnd.DND;
+import org.eclipse.swt.dnd.DragSourceAdapter;
+import org.eclipse.swt.dnd.DragSourceEvent;
+import org.eclipse.swt.dnd.Transfer;
+import org.eclipse.ui.part.ResourceTransfer;
+
+
+/**
+ * A drag adapter that transfers the current selection as</code> IResource</code>. Only those
+ * elements in the selection are part of the transfer which can be converted into an <code>
+ * IResource</code>.
+ * 
+ * Derived from the version of the same name in the JDT internals.
+ */
+public class ResourceTransferDragAdapter extends DragSourceAdapter implements TransferDragSourceListener {
+
+	private ISelectionProvider fProvider;
+
+	private static final List EMPTY_LIST = new ArrayList(0);
+
+	/**
+	 * Creates a new ResourceTransferDragAdapter for the given selection provider.
+	 * 
+	 * @param provider
+	 *            the selection provider to access the viewer's selection
+	 */
+	public ResourceTransferDragAdapter(ISelectionProvider provider) {
+		fProvider = provider;
+		Assert.isNotNull(fProvider);
+	}
+
+	public Transfer getTransfer() {
+		return ResourceTransfer.getInstance();
+	}
+
+	public void dragStart(DragSourceEvent event) {
+		event.doit = convertSelection().size() > 0;
+	}
+
+	public void dragSetData(DragSourceEvent event) {
+		List resources = convertSelection();
+		event.data = (IResource[]) resources.toArray(new IResource[resources.size()]);
+	}
+
+	public void dragFinished(DragSourceEvent event) {
+		if (!event.doit)
+			return;
+
+		if (event.detail == DND.DROP_MOVE) {
+			handleFinishedDropMove(event);
+		}
+	}
+
+	private List convertSelection() {
+		ISelection s = fProvider.getSelection();
+		if (!(s instanceof IStructuredSelection))
+			return EMPTY_LIST;
+		IStructuredSelection selection = (IStructuredSelection) s;
+		List result = new ArrayList(selection.size());
+		for (Iterator iter = selection.iterator(); iter.hasNext();) {
+			Object element = iter.next();
+			if (element instanceof IAdaptable) {
+				IAdaptable adaptable = (IAdaptable) element;
+				IResource resource = (IResource) adaptable.getAdapter(IResource.class);
+				if (resource != null)
+					result.add(resource);
+			}
+		}
+		return result;
+	}
+
+	// TODO MDE Handle status appropriately
+	private void handleFinishedDropMove(DragSourceEvent event) {
+		/*
+		 * MultiStatus status= new MultiStatus( JavaPlugin.getPluginId(),
+		 * IJavaStatusConstants.INTERNAL_ERROR,
+		 * JavaUIMessages.getString("ResourceTransferDragAdapter.cannot_delete_resource"),
+		 * //$NON-NLS-1$ null);
+		 */
+		List resources = convertSelection();
+		for (Iterator iter = resources.iterator(); iter.hasNext();) {
+			IResource resource = (IResource) iter.next();
+			try {
+				resource.delete(true, null);
+			} catch (CoreException e) {
+				/* status.add(e.getStatus()); */
+			}
+		}
+		/*
+		 * if (status.getChildren().length > 0) { Shell parent= SWTUtil.getShell(event.widget);
+		 * ErrorDialog error= new ErrorDialog(parent,
+		 * JavaUIMessages.getString("ResourceTransferDragAdapter.moving_resource"), //$NON-NLS-1$
+		 * JavaUIMessages.getString("ResourceTransferDragAdapter.cannot_delete_files"),
+		 * //$NON-NLS-1$ status, IStatus.ERROR); error.open(); }
+		 */
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/SerializerCollectionDescriptor.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/SerializerCollectionDescriptor.java
new file mode 100644
index 0000000..7109111
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/SerializerCollectionDescriptor.java
@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.dnd;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.jface.util.Assert;
+import org.eclipse.ui.internal.ActionExpression;
+
+/**
+ * @author mdelder
+ *  
+ */
+public class SerializerCollectionDescriptor {
+
+	public interface ExtensionPointElements {
+
+		public static final String ATT_ID = "id"; //$NON-NLS-1$
+
+		public static final String ATT_CLASS = "class"; //$NON-NLS-1$
+
+		public static final String SERIALIZERS = "serializers"; //$NON-NLS-1$
+
+		public static final String SERIALIZER = "serializer"; //$NON-NLS-1$
+
+		public static final String ENABLEMENT = "enablement"; //$NON-NLS-1$
+	}
+
+	private IConfigurationElement configurationElement;
+
+	private SerializerDescriptor[] serializerElements;
+
+	private final String dropHandlerId;
+
+	private Map serializerIndex;
+
+	public SerializerCollectionDescriptor(String dropHandlerId, IConfigurationElement configurationElement, ActionExpression defaultEnablement) {
+		super();
+		this.dropHandlerId = dropHandlerId;
+		Assert.isNotNull(configurationElement);
+		this.configurationElement = configurationElement;
+		init(defaultEnablement);
+	}
+
+	/**
+	 *  
+	 */
+	private void init(ActionExpression defaultEnablement) {
+		IConfigurationElement[] elements = this.configurationElement.getChildren(ExtensionPointElements.SERIALIZER);
+		serializerElements = new SerializerDescriptor[elements.length];
+		if (elements != null && elements.length > 0) {
+			for (int i = 0; i < elements.length; i++)
+				serializerElements[i] = new SerializerDescriptor(this.dropHandlerId, elements[i], defaultEnablement);
+		}
+	}
+
+	public SerializerDescriptor[] getSerializersEnabledFor(Object element) {
+
+		List results = new ArrayList();
+		SerializerDescriptor[] serializerArray = null;
+		for (int i = 0; i < serializerElements.length; i++) {
+			if (serializerElements[i].enablement.isEnabledFor(element))
+				results.add(serializerElements[i]);
+		}
+		if (results.size() > 0)
+			results.toArray((serializerArray = new SerializerDescriptor[results.size()]));
+		else
+			serializerArray = new SerializerDescriptor[0];
+		return serializerArray;
+	}
+
+	public SerializerDescriptor getSerializerById(String id) {
+		return (SerializerDescriptor) getSerializerIndex().get(id);
+	}
+
+	/**
+	 * @return
+	 */
+	protected Map getSerializerIndex() {
+		if (serializerIndex == null) {
+			serializerIndex = new HashMap();
+			for (int i = 0; i < serializerElements.length; i++)
+				serializerIndex.put(serializerElements[i].id, serializerElements[i]);
+		}
+		return serializerIndex;
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/SerializerDescriptor.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/SerializerDescriptor.java
new file mode 100644
index 0000000..9625adf
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/dnd/SerializerDescriptor.java
@@ -0,0 +1,62 @@
+/***************************************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others. All rights reserved. This program and the
+ * accompanying materials are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors: IBM Corporation - initial API and implementation
+ **************************************************************************************************/
+package org.eclipse.ui.navigator.internal.dnd;
+ 
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.jface.util.Assert;
+import org.eclipse.ui.internal.ActionExpression;
+import org.eclipse.ui.navigator.internal.NavigatorMessages;
+import org.eclipse.ui.navigator.internal.NavigatorPlugin;
+import org.eclipse.ui.navigator.internal.dnd.SerializerCollectionDescriptor.ExtensionPointElements;
+
+public class SerializerDescriptor {
+
+	public final String id;
+
+	protected final IConfigurationElement serializerElement;
+
+	public final ActionExpression enablement;
+
+	private ISerializer serializer;
+
+	public SerializerDescriptor(String dropHandlerId, IConfigurationElement serializer, ActionExpression dragEnablement) {
+
+		Assert.isNotNull(serializer, NavigatorMessages.getString("SerializerDescriptor.0")); //$NON-NLS-1$
+
+		String localId = serializer.getAttribute(ExtensionPointElements.ATT_ID);
+		Assert.isNotNull(localId, NavigatorMessages.getString("SerializerDescriptor.1")); //$NON-NLS-1$
+
+		this.id = dropHandlerId + ":" + localId; //$NON-NLS-1$
+		this.serializerElement = serializer;
+
+		IConfigurationElement[] enablementConfigElement = this.serializerElement.getChildren(ExtensionPointElements.ENABLEMENT);
+
+		if (enablementConfigElement.length == 0)
+			this.enablement = dragEnablement;
+		else if (enablementConfigElement.length == 1)
+			this.enablement = new ActionExpression(enablementConfigElement[0]);
+		else {
+			NavigatorPlugin.log(NavigatorMessages.format("SerializerDescriptor.3", new Object[]{this.id})); //$NON-NLS-1$ 
+			this.enablement = dragEnablement;
+		}
+	}
+
+	public ISerializer getSerializer() {
+		if (serializer == null)
+			try {
+				serializer = (ISerializer) serializerElement.createExecutableExtension(ExtensionPointElements.ATT_CLASS);
+			} catch (CoreException e) {
+				NavigatorPlugin.log(NavigatorMessages.format("SerializerDescriptor.5", new Object[]{id, e.toString()})); //$NON-NLS-1$ //$NON-NLS-2$
+				serializer = null;
+			}
+		return serializer;
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/DelegateCommonLabelProvider.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/DelegateCommonLabelProvider.java
new file mode 100644
index 0000000..46c15a2
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/DelegateCommonLabelProvider.java
@@ -0,0 +1,148 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.extensions;
+
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.IMemento;
+import org.eclipse.ui.navigator.ICommonLabelProvider;
+import org.eclipse.ui.navigator.IExtensionStateModel;
+
+/**
+ * <p>
+ * The following class is experimental until fully documented.
+ * </p>
+ */
+public class DelegateCommonLabelProvider implements ICommonLabelProvider {
+
+	private final ILabelProvider delegateLabelProvider;
+
+	/**
+	 * <p>
+	 * Requires a non-null label provider as the parameter.
+	 * </p>
+	 */
+	public DelegateCommonLabelProvider(ILabelProvider aLabelProvider) {
+		super();
+		delegateLabelProvider = aLabelProvider;
+	} 
+
+	/**
+	 * <p>
+	 * No-op.
+	 * </p>
+	 * 
+	 * @see org.eclipse.ui.navigator.ICommonLabelProvider#initialize(java.lang.String)
+	 */
+	public void init(IExtensionStateModel aStateModel, ITreeContentProvider aContentProvider) {
+	}
+
+	/**
+	 * <p>
+	 * Returns <b>null </b>, forcing the CommonNavigator to provide the default message.
+	 * </p>
+	 * 
+	 * @see org.eclipse.ui.navigator.ICommonLabelProvider#getDescription(java.lang.Object)
+	 */
+	public String getDescription(Object element) {
+		return null;
+	}
+
+	/**
+	 * @param listener
+	 */
+	public void addListener(ILabelProviderListener listener) {
+		delegateLabelProvider.addListener(listener);
+	}
+
+	/**
+	 *  
+	 */
+	public void dispose() {
+		delegateLabelProvider.dispose();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.lang.Object#equals(java.lang.Object)
+	 */
+	public boolean equals(Object obj) {
+		return delegateLabelProvider.equals(obj);
+	}
+
+	/**
+	 * @param element
+	 * @return
+	 */
+	public Image getImage(Object element) {
+		return delegateLabelProvider.getImage(element);
+	}
+
+	/**
+	 * @param element
+	 * @return
+	 */
+	public String getText(Object element) {
+		return delegateLabelProvider.getText(element);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.lang.Object#hashCode()
+	 */
+	public int hashCode() {
+		return delegateLabelProvider.hashCode();
+	}
+
+	/**
+	 * @param element
+	 * @param property
+	 * @return
+	 */
+	public boolean isLabelProperty(Object element, String property) {
+		return delegateLabelProvider.isLabelProperty(element, property);
+	}
+
+	/**
+	 * @param listener
+	 */
+	public void removeListener(ILabelProviderListener listener) {
+		delegateLabelProvider.removeListener(listener);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.lang.Object#toString()
+	 */
+	public String toString() {
+		return delegateLabelProvider.toString();
+	}
+
+	public void initialize(String aViewerId, ITreeContentProvider aContentProvider) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	public void restoreState(IMemento aMemento) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	public void saveState(IMemento aMemento) {
+		// TODO Auto-generated method stub
+		
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/DelegateCommonOpenListener.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/DelegateCommonOpenListener.java
new file mode 100644
index 0000000..7fd96c7
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/DelegateCommonOpenListener.java
@@ -0,0 +1,74 @@
+/*
+ * Created on Feb 4, 2005
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package org.eclipse.ui.navigator.internal.extensions;
+
+import org.eclipse.jface.viewers.IOpenListener;
+import org.eclipse.jface.viewers.OpenEvent;
+import org.eclipse.ui.navigator.CommonNavigator;
+import org.eclipse.ui.navigator.ICommonOpenListener;
+import org.eclipse.ui.navigator.NavigatorContentService;
+
+/**
+ * @author Admin
+ *
+ * TODO To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+public class DelegateCommonOpenListener implements ICommonOpenListener{
+
+	private IOpenListener openListener;
+	
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.wst.common.navigator.internal.views.extensions.ICommonOpenListener#initialize(org.eclipse.ui.part.ViewPart)
+	 */
+	public DelegateCommonOpenListener(IOpenListener anOpenListener) {
+		super();
+		openListener = anOpenListener;
+	}
+	
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.IOpenListener#open(org.eclipse.jface.viewers.OpenEvent)
+	 */
+	public void open(OpenEvent event) {
+		openListener.open(event);
+	}
+	/* (non-Javadoc)
+	 * @see java.lang.Object#equals(java.lang.Object)
+	 */
+	public boolean equals(Object obj) {
+		
+		return openListener.equals(obj);
+	}
+	
+	/* (non-Javadoc)
+	 * @see java.lang.Object#hashCode()
+	 */
+	public int hashCode() {
+		
+		return openListener.hashCode();
+	}
+	
+	/* (non-Javadoc)
+	 * @see java.lang.Object#toString()
+	 */
+	public String toString() {
+		
+		return openListener.toString();
+	}
+
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.wst.common.navigator.internal.views.extensions.ICommonOpenListener#initialize(org.eclipse.wst.common.navigator.views.CommonNavigator, org.eclipse.wst.common.navigator.internal.views.extensions.NavigatorContentService)
+	 */
+	public void initialize(CommonNavigator aCommonNavigator, NavigatorContentService aContentService) {
+			
+	}
+	
+	
+}
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/ExtensionStateModel.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/ExtensionStateModel.java
new file mode 100644
index 0000000..0fc0065
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/ExtensionStateModel.java
@@ -0,0 +1,131 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.extensions;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.jface.util.IPropertyChangeListener;
+import org.eclipse.jface.util.ListenerList;
+import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.ui.navigator.IExtensionStateModel;
+
+public class ExtensionStateModel implements IExtensionStateModel {
+
+	private final String id;
+
+	private final String viewerId;
+
+	private final Map values = new HashMap();
+
+	private final ListenerList propertyListeners = new ListenerList(3);
+
+	public ExtensionStateModel(String anId, String aViewerId) {
+		id = anId;
+		viewerId = aViewerId;
+	}
+
+	public String getId() {
+		return id;
+	}
+
+	public String getViewerId() {
+		return viewerId;
+	}
+
+	public String getStringProperty(String aPropertyName) {
+		return (String) values.get(aPropertyName);
+	}
+
+	public boolean getBooleanProperty(String aPropertyName) {
+
+		Boolean b = (Boolean) values.get(aPropertyName);
+		return b != null ? b.booleanValue() : false;
+	}
+
+	public int getIntProperty(String aPropertyName) {
+		Integer i = (Integer) values.get(aPropertyName);
+		return i != null ? i.intValue() : -1;
+	}
+
+	public void setStringProperty(String aPropertyName, String aPropertyValue) {
+		String oldValue = (String) values.get(aPropertyName);
+		String newValue = aPropertyValue;
+		if(hasPropertyChanged(oldValue, newValue)) {
+			values.put(aPropertyName, newValue);
+			firePropertyChangeEvent(new PropertyChangeEvent(this, aPropertyName, oldValue, newValue));
+		}
+	}
+
+	public void setBooleanProperty(String aPropertyName, boolean aPropertyValue) {
+		Boolean oldValue = (Boolean) values.get(aPropertyName);
+		Boolean newValue = aPropertyValue ? Boolean.TRUE : Boolean.FALSE;
+		if(hasPropertyChanged(oldValue, newValue)) {
+
+			values
+					.put(aPropertyName, aPropertyValue ? Boolean.TRUE
+							: Boolean.FALSE);
+			values.put(aPropertyName, newValue);
+			firePropertyChangeEvent(new PropertyChangeEvent(this, aPropertyName, oldValue, newValue));
+		}		
+	}
+
+	public void setIntProperty(String aPropertyName, int aPropertyValue) {
+		Integer oldValue = (Integer) values.get(aPropertyName);
+		Integer newValue = new Integer(aPropertyValue);
+		if(hasPropertyChanged(oldValue, newValue)) {
+			values.put(aPropertyName, newValue);
+			firePropertyChangeEvent(new PropertyChangeEvent(this, aPropertyName, oldValue, newValue));
+		}
+	}
+
+	public void addPropertyChangeListener(IPropertyChangeListener aListener) {
+		synchronized (propertyListeners) {
+			propertyListeners.add(aListener);
+		}
+	}
+
+	public void removePropertyChangeListener(IPropertyChangeListener aListener) {
+		synchronized (propertyListeners) {
+			propertyListeners.remove(aListener);
+		}
+	}
+
+	public Object getProperty(String aPropertyName) {
+		return values.get(aPropertyName);
+	}
+
+	public void setProperty(String aPropertyName, Object aPropertyValue) {
+
+		Object oldValue = (Object) values.get(aPropertyName);
+		Object newValue = aPropertyValue;
+		if(hasPropertyChanged(oldValue, newValue)) {
+			values.put(aPropertyName, newValue);
+			firePropertyChangeEvent(new PropertyChangeEvent(this, aPropertyName, oldValue, newValue));
+		}
+	}
+
+	/**
+	 * @param oldValue
+	 * @param newValue
+	 * @return
+	 */
+	private boolean hasPropertyChanged(Object oldValue, Object newValue) {
+		return oldValue == null || !oldValue.equals(newValue);
+	}
+
+	protected void firePropertyChangeEvent(PropertyChangeEvent anEvent) {
+		Object[] listeners = propertyListeners.getListeners();
+		for (int i = 0; i < listeners.length; ++i)
+			((IPropertyChangeListener) listeners[i]).propertyChange(anEvent);
+	}
+
+}
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/ICommonContentProvider.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/ICommonContentProvider.java
new file mode 100644
index 0000000..82d25b6
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/ICommonContentProvider.java
@@ -0,0 +1,22 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/ 
+package org.eclipse.ui.navigator.internal.extensions;
+
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.ui.IMemento;
+import org.eclipse.ui.navigator.IExtensionStateModel;
+import org.eclipse.ui.navigator.IMementoAware;
+
+public interface ICommonContentProvider extends ITreeContentProvider, IMementoAware {
+
+	void init(IExtensionStateModel aStateModel, IMemento aMemento);
+
+}
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/IExtensionActivationListener.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/IExtensionActivationListener.java
new file mode 100644
index 0000000..1dec745
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/IExtensionActivationListener.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.extensions;
+
+/**
+ * <p>
+ * The following class is experimental until fully documented.
+ * </p>
+ */
+public interface IExtensionActivationListener {
+	/**
+	 * @param viewerId
+	 * @param navigatorExtensionId
+	 * @param toEnable
+	 */
+	void onExtensionActivation(String viewerId, String navigatorExtensionId, boolean toEnable);
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/INavigatorContentServiceListener.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/INavigatorContentServiceListener.java
new file mode 100644
index 0000000..fa62db1
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/INavigatorContentServiceListener.java
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.extensions;
+
+
+/**
+ * <p>
+ * Used by clients who need to would like to listen for the load event of a
+ * NavigatorContentDescriptorInstance.
+ * <p>
+ * The following class is experimental until fully documented.
+ * </p>
+ */
+public interface INavigatorContentServiceListener {
+
+	void onLoad(NavigatorContentExtension anExtension);
+}
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/INavigatorSiteEditor.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/INavigatorSiteEditor.java
new file mode 100644
index 0000000..51faf6f
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/INavigatorSiteEditor.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.extensions;
+
+import org.eclipse.ui.actions.TextActionHandler;
+
+
+/**
+ * An INavigatorSiteEditor is used to edit (i.e., rename) elements in a NavigatorViewer.
+ * <p>
+ * This interface is not intended to be implemented by clients.
+ * </p>
+ * <p>
+ * This interface is experimental and is subject to change.
+ * </p>
+ */
+public interface INavigatorSiteEditor {
+	/**
+	 * Starts the editing. An editor box will be overlaid on the selected element in the Navigator
+	 * tree.
+	 * 
+	 * @param runnable
+	 *            Runnable to execute when editing ends successfully
+	 */
+	public void edit(Runnable runnable);
+
+	/**
+	 * Returns the new text. Returns <code>null</code> if editing was cancelled. Editing is
+	 * cancelled when the user pressed the Escape key.
+	 * 
+	 * @return the new text or <code>null</code> if editing was cancelled
+	 */
+	public String getText();
+
+	/**
+	 * Set the text handler that handles cut, copy, paste, delete and select all operations within
+	 * the editor box.
+	 * 
+	 * @param actionHandler
+	 *            the text action handler
+	 */
+	public void setTextActionHandler(TextActionHandler actionHandler);
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/IdentityComparator.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/IdentityComparator.java
new file mode 100644
index 0000000..109903b
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/IdentityComparator.java
@@ -0,0 +1,27 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/ 
+package org.eclipse.ui.navigator.internal.extensions;
+
+import java.util.Comparator;
+
+public class IdentityComparator implements Comparator {
+
+	public static final IdentityComparator INSTANCE = new IdentityComparator();
+	
+	public int compare(Object lvalue, Object rvalue) {
+		return 0;
+	}
+	
+	public boolean equals(Object anObject) {
+		return this == anObject; 
+	}
+}
+
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/LinkHelperRegistry.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/LinkHelperRegistry.java
new file mode 100644
index 0000000..dbad052
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/LinkHelperRegistry.java
@@ -0,0 +1,211 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/*
+ * Created on Apr 27, 2004
+ * 
+ * TODO To change the template for this generated file go to Window -
+ * Preferences - Java - Code Generation - Code and Comments
+ */
+package org.eclipse.ui.navigator.internal.extensions;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.jface.util.Assert;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IEditorInput;
+import org.eclipse.ui.internal.ActionExpression;
+import org.eclipse.ui.navigator.ILinkHelper;
+import org.eclipse.ui.navigator.internal.NavigatorMessages;
+import org.eclipse.ui.navigator.internal.NavigatorPlugin;
+
+/**
+ * @author mdelder
+ *  
+ */
+public class LinkHelperRegistry extends RegistryReader {
+
+	private static final NavigatorContentDescriptorRegistry CONTENT_DESCRIPTOR_REGISTRY = NavigatorContentDescriptorRegistry.getInstance();
+
+	private static final LinkHelperRegistry INSTANCE = new LinkHelperRegistry();
+	private static final ILinkHelper[] NO_LINK_HELPERS = new ILinkHelper[0];
+
+	private static boolean isInitialized = false;
+
+	private List descriptors;
+
+	protected LinkHelperRegistry() {
+		super(NavigatorPlugin.PLUGIN_ID, Descriptor.LINK_HELPER);
+	}
+
+	public static LinkHelperRegistry getInstance() {
+		if (isInitialized)
+			return INSTANCE;
+		synchronized (INSTANCE) {
+			if (!isInitialized) {
+				INSTANCE.readRegistry();
+				isInitialized = true;
+			}
+		}
+		return INSTANCE;
+	}
+
+	public class Descriptor {
+
+		private final IConfigurationElement configElement;
+
+		private String id;
+
+		/* May be null */
+		private String navigatorContentExtensionId;
+
+		private ILinkHelper linkHelper;
+
+		public static final String LINK_HELPER = "linkHelper"; //$NON-NLS-1$
+
+		public static final String ATT_ID = "id"; //$NON-NLS-1$
+
+		private static final String ATT_CLASS = "class"; //$NON-NLS-1$
+
+		private static final String ATT_NAVIGATOR_CONTENT_EXTENSION_ID = "navigatorContentExtensionId"; //$NON-NLS-1$
+
+		private ActionExpression editorInputEnablement;
+
+		/* The following field may be null */
+		private ActionExpression selectionEnablement;
+
+		private static final String EDITOR_INPUT_ENABLEMENT = "editorInputEnablement"; //$NON-NLS-1$
+
+		private static final String SELECTION_ENABLEMENT = "selectionEnablement"; //$NON-NLS-1$
+
+		public Descriptor(IConfigurationElement element) {
+			Assert.isNotNull(element, NavigatorMessages.getString("LinkHelperRegistry.4")); //$NON-NLS-1$
+			Assert.isLegal(LINK_HELPER.equals(element.getName()), NavigatorMessages.getString("LinkHelperRegistry.5")); //$NON-NLS-1$
+			this.configElement = element;
+			init();
+		}
+
+		private void init() {
+			id = this.configElement.getAttribute(ATT_ID);
+			IConfigurationElement[] expressions = this.configElement.getChildren(EDITOR_INPUT_ENABLEMENT);
+			Assert.isNotNull(expressions, NavigatorMessages.getString("LinkHelperRegistry.6")); //$NON-NLS-1$
+			Assert.isLegal(expressions.length == 1, NavigatorMessages.getString("LinkHelperRegistry.7")); //$NON-NLS-1$
+			editorInputEnablement = new ActionExpression(expressions[0]);
+
+			expressions = this.configElement.getChildren(SELECTION_ENABLEMENT);
+			if (expressions.length > 0) {
+				/* The following attribute is optional */
+				navigatorContentExtensionId = expressions[0].getAttribute(ATT_NAVIGATOR_CONTENT_EXTENSION_ID);
+				if (expressions[0].getChildren() != null && expressions[0].getChildren().length > 0)
+					selectionEnablement = new ActionExpression(expressions[0]);
+			}
+		}
+
+		/**
+		 * @return Returns the id.
+		 */
+		public String getId() {
+			return id;
+		}
+
+		public ILinkHelper getLinkHelper() {
+			if (linkHelper == null) {
+				try {
+					linkHelper = (ILinkHelper) this.configElement.createExecutableExtension(ATT_CLASS);
+				} catch (CoreException e) {
+					e.printStackTrace();
+				}
+			}
+			return linkHelper;
+		}
+
+		public boolean isEnabledFor(IEditorInput anInput) {
+			return (editorInputEnablement != null) ? editorInputEnablement.isEnabledFor(anInput) : false;
+		}
+
+		public boolean isEnabledFor(String aNavigatorContentExtensionId) {
+			return (navigatorContentExtensionId != null) ? navigatorContentExtensionId.equals(aNavigatorContentExtensionId) : false;
+		}
+
+		public boolean isEnabledFor(IStructuredSelection aSelection) {
+			return (selectionEnablement != null) ? selectionEnablement.isEnabledFor(aSelection) : false;
+		}
+	}
+
+	// TODO Define more explicitly the expected order that LinkHelpers will be returned
+	public ILinkHelper[] getLinkHelpersFor(IStructuredSelection aSelection) {
+
+		if (aSelection.isEmpty())
+			return NO_LINK_HELPERS;
+
+		List contentDescriptors = CONTENT_DESCRIPTOR_REGISTRY.getEnabledContentDescriptors(aSelection.getFirstElement());
+		if (contentDescriptors.size() == 0)
+			return NO_LINK_HELPERS;
+
+		/* Use the first Navigator Content Descriptor for now */
+		NavigatorContentDescriptor contentDescriptor = (NavigatorContentDescriptor) contentDescriptors.get(0);
+
+		List helpersList = new ArrayList();
+		ILinkHelper[] helpers = NO_LINK_HELPERS;
+		Descriptor descriptor = null;
+		for (Iterator itr = getDescriptors().iterator(); itr.hasNext();) {
+			descriptor = (Descriptor) itr.next();
+			if (descriptor.isEnabledFor(contentDescriptor.getId()))
+				helpersList.add(descriptor.getLinkHelper());
+			else if (descriptor.isEnabledFor(aSelection))
+				helpersList.add(descriptor.getLinkHelper());
+		}
+		if (helpersList.size() > 0)
+			helpersList.toArray((helpers = new ILinkHelper[helpersList.size()]));
+
+		return helpers;
+	}
+
+	public ILinkHelper[] getLinkHelpersFor(IEditorInput input) {
+		List helpersList = new ArrayList();
+		ILinkHelper[] helpers = new ILinkHelper[0];
+		Descriptor descriptor = null;
+		for (Iterator itr = getDescriptors().iterator(); itr.hasNext();) {
+			descriptor = (Descriptor) itr.next();
+			if (descriptor.isEnabledFor(input))
+				helpersList.add(descriptor.getLinkHelper());
+		}
+		if (helpersList.size() > 0)
+			helpersList.toArray((helpers = new ILinkHelper[helpersList.size()]));
+
+		return helpers;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.RegistryReader#readElement(org.eclipse.core.runtime.IConfigurationElement)
+	 */
+	public boolean readElement(IConfigurationElement element) {
+		if (Descriptor.LINK_HELPER.equals(element.getName())) {
+			getDescriptors().add(new Descriptor(element));
+			return true;
+		}
+		return false;
+	}
+
+	/**
+	 * @return
+	 */
+	protected List getDescriptors() {
+		if (descriptors == null)
+			descriptors = new ArrayList();
+		return descriptors;
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/NavigatorActivationService.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/NavigatorActivationService.java
new file mode 100644
index 0000000..a50b825
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/NavigatorActivationService.java
@@ -0,0 +1,207 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.extensions;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Set;
+import java.util.StringTokenizer;
+
+import org.eclipse.core.runtime.Preferences;
+import org.eclipse.ui.navigator.NavigatorContentService;
+import org.eclipse.ui.navigator.internal.NavigatorPlugin;
+
+/**
+ * <p>
+ * The following class is experimental until fully documented.
+ * </p>
+ */
+public class NavigatorActivationService {
+
+	private static final NavigatorActivationService INSTANCE = new NavigatorActivationService();
+	private static final NavigatorContentDescriptorRegistry CONTENT_DESCRIPTOR_REGISTRY = NavigatorContentDescriptorRegistry.getInstance();
+	private static final String ACTIVATED_EXTENSIONS = "activatedExtensions"; //$NON-NLS-1$
+
+	/*
+	 * Map of activated extensions stored by the Viewer ID as a Set. That is, (ViewerID, Set of
+	 * Extension Activations)-pairs.
+	 */
+	private final Map activatedExtensionsMap;
+	private final Map contentServiceListenersMap;
+
+	/**
+	 *  
+	 */
+	private NavigatorActivationService() {
+		super();
+		activatedExtensionsMap = new HashMap();
+		contentServiceListenersMap = new HashMap();
+	}
+
+	/**
+	 *  
+	 */
+	public static NavigatorActivationService getInstance() {
+		return INSTANCE;
+	}
+
+	/*
+	 * 
+	 * (non-Javadoc) @param navigatorExtensionId The Unique identifier associated with a given
+	 * NavigatorContentDescriptor
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.navigator.INavigatorExtensionSite#isNavigatorExtensionEnabled(org.eclipse.wst.common.navigator.internal.views.navigator.INavigatorContentExtension)
+	 */
+	public boolean isNavigatorExtensionActive(String aViewerId, String aNavigatorExtensionId) {
+		return getActiveExtensions(aViewerId, true).contains(getExtensionActivationPreferenceKey(aNavigatorExtensionId));
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.navigator.INavigatorExtensionSite#enableNavigatorExtension(java.lang.String,
+	 *      boolean)
+	 */
+	public void activateNavigatorExtension(String aViewerId, String aNavigatorExtensionId, boolean toEnable) {
+
+		boolean currentlyActive = isNavigatorExtensionActive(aViewerId, aNavigatorExtensionId);
+		if (currentlyActive == toEnable)
+			return;
+
+		Set activatedExtensions = getActiveExtensions(aViewerId, true);
+		if (toEnable)
+			activatedExtensions.add(getExtensionActivationPreferenceKey(aNavigatorExtensionId));
+		else
+			activatedExtensions.remove(getExtensionActivationPreferenceKey(aNavigatorExtensionId));
+		notifyListeners(aViewerId, aNavigatorExtensionId, toEnable);
+
+	}
+
+
+	public void persistExtensionActivations(String aViewerId) {
+
+		Set activatedExtensions = getActiveExtensions(aViewerId, false);
+		if (activatedExtensions == null)
+			return;
+
+		Preferences preferences = NavigatorPlugin.getDefault().getPluginPreferences();
+
+		synchronized (activatedExtensions) {
+			Iterator activatedExtensionsIterator = activatedExtensions.iterator();
+			/* ensure that the preference will be non-empty */
+			StringBuffer activatedExtensionsStringBuffer = new StringBuffer(";"); //$NON-NLS-1$
+			while (activatedExtensionsIterator.hasNext()) {
+				activatedExtensionsStringBuffer.append(activatedExtensionsIterator.next()).append(";"); //$NON-NLS-1$
+			}
+
+			preferences.setValue(getPreferenceKey(aViewerId), activatedExtensionsStringBuffer.toString()); //$NON-NLS-1$
+		}
+		NavigatorPlugin.getDefault().savePluginPreferences();
+	}
+
+	public void addExtensionActivationListener(String aViewerId, IExtensionActivationListener aListener) {
+		synchronized (contentServiceListenersMap) {
+			Set listeners = getExtensionActivationListeners(aViewerId, true);
+			listeners.add(aListener);
+		}
+	}
+
+	public void removeExtensionActivationListener(String aViewerId, IExtensionActivationListener aListener) {
+		synchronized (contentServiceListenersMap) {
+			Set listeners = getExtensionActivationListeners(aViewerId, true);
+			listeners.remove(aListener);
+		}
+	}
+
+	/**
+	 * @param viewerId
+	 * @param navigatorExtensionId
+	 * @param toEnable
+	 */
+	private void notifyListeners(String aViewerId, String aNavigatorExtensionId, boolean toEnable) {
+		synchronized (contentServiceListenersMap) {
+			Set listeners = (Set) contentServiceListenersMap.get(aViewerId);
+			for (Iterator iter = listeners.iterator(); iter.hasNext();) {
+				NavigatorContentService element = (NavigatorContentService) iter.next();
+				element.onExtensionActivation(aViewerId, aNavigatorExtensionId, toEnable);
+			}
+		}
+	}
+
+	private Set getExtensionActivationListeners(String aViewerId, boolean initializeIfNecessary) {
+		Set listeners = (Set) contentServiceListenersMap.get(aViewerId);
+		if (listeners != null || !initializeIfNecessary)
+			return listeners;
+
+		synchronized (contentServiceListenersMap) {
+			listeners = (Set) contentServiceListenersMap.get(aViewerId);
+			if (listeners == null)
+				contentServiceListenersMap.put(aViewerId, (listeners = new HashSet()));
+		}
+		return listeners;
+	}
+
+
+	private Set getActiveExtensions(String aViewerId, boolean initializeIfNecessary) {
+		/* enabled by default if no setting is present ... */
+		Set activatedExtensions = (Set) activatedExtensionsMap.get(aViewerId);
+		if (activatedExtensions != null || !initializeIfNecessary)
+			return activatedExtensions;
+
+		synchronized (activatedExtensionsMap) {
+			activatedExtensions = (Set) activatedExtensionsMap.get(aViewerId);
+			if (activatedExtensions == null) {
+				activatedExtensions = revertExtensionActivations(aViewerId);
+				activatedExtensionsMap.put(aViewerId, activatedExtensions);
+			}
+		}
+		return activatedExtensions;
+	}
+
+	private Set revertExtensionActivations(String aViewerId) {
+
+		Preferences preferences = NavigatorPlugin.getDefault().getPluginPreferences();
+
+		Set activatedExtensions = new HashSet();
+		String activatedExtensionsString = preferences.getString(getPreferenceKey(aViewerId)); //$NON-NLS-1$
+
+		if (activatedExtensionsString != null && activatedExtensionsString.length() > 0) {
+			String activatedExtensionKey = null;
+			StringTokenizer tokenizer = new StringTokenizer(activatedExtensionsString, ";"); //$NON-NLS-1$
+			while (tokenizer.hasMoreTokens()) {
+				activatedExtensionKey = tokenizer.nextToken();
+				if (activatedExtensionKey.length() > 0)
+					activatedExtensions.add(activatedExtensionKey);
+			}
+		} else {
+			NavigatorContentDescriptor[] contentDescriptors = CONTENT_DESCRIPTOR_REGISTRY.getAllContentDescriptors();
+			for (int i = 0; i < contentDescriptors.length; i++)
+				if (contentDescriptors[i].isEnabledByDefault())
+					activatedExtensions.add(getExtensionActivationPreferenceKey(contentDescriptors[i].getId()));
+		}
+		return activatedExtensions;
+	}
+
+	private String getPreferenceKey(String aViewerId) {
+		return aViewerId + "." + ACTIVATED_EXTENSIONS; //$NON-NLS-1$
+	}
+
+	/**
+	 * @param string
+	 * @return
+	 */
+	private String getExtensionActivationPreferenceKey(String aNavigatorExtensionId) {
+		return aNavigatorExtensionId + ".extensionActivated"; //$NON-NLS-1$  
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/NavigatorActivityHelper.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/NavigatorActivityHelper.java
new file mode 100644
index 0000000..c868104
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/NavigatorActivityHelper.java
@@ -0,0 +1,67 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/*
+ * Created on Apr 12, 2004
+ *
+ * To change the template for this generated file go to
+ * Window - Preferences - Java - Code Generation - Code and Comments
+ */
+package org.eclipse.ui.navigator.internal.extensions;
+
+import org.eclipse.ui.IPluginContribution;
+
+/**
+ * @author jsholl
+ * 
+ * To change the template for this generated type comment go to Window - Preferences - Java - Code
+ * Generation - Code and Comments
+ */
+public class NavigatorActivityHelper {
+
+	public static boolean isActivityEnabled(NavigatorContentExtension extension) {
+		// TODO FIXUP MDE
+		return true;
+		//		final String localID = extension.getNavigatorExtensionId();
+		//		IConfigurationElement element = extension.getDescriptor().getConfigurationElement();
+		//		String tempPluginID = null;
+		//		try {
+		//			tempPluginID = ((ConfigurationElement)
+		// element).getParentExtension().getDeclaringPluginDescriptor().getUniqueIdentifier();
+		//		} catch (Exception e) {
+		//			e.printStackTrace();
+		//		}
+		//		boolean enabled = true;
+		//		if (null != tempPluginID) {
+		//			final String pluginID = tempPluginID;
+		//			IPluginContribution contribution = new IPluginContribution() {
+		//				public String getLocalId() {
+		//					return localID;
+		//				}
+		//
+		//				public String getPluginId() {
+		//					return pluginID;
+		//				}
+		//			};
+		//			IWorkbenchActivitySupport workbenchActivitySupport =
+		// PlatformUI.getWorkbench().getActivitySupport();
+		//			IIdentifier identifier =
+		// workbenchActivitySupport.getActivityManager().getIdentifier(createUnifiedId(contribution));
+		//			enabled = identifier.isEnabled();
+		//		}
+		//		return enabled;
+	}
+
+	public static final String createUnifiedId(IPluginContribution contribution) {
+		if (contribution.getPluginId() != null)
+			return contribution.getPluginId() + '/' + contribution.getLocalId();
+		return contribution.getLocalId();
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/NavigatorContentDescriptor.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/NavigatorContentDescriptor.java
new file mode 100644
index 0000000..0e2ecf9
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/NavigatorContentDescriptor.java
@@ -0,0 +1,285 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.extensions;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.ui.IPluginContribution;
+import org.eclipse.ui.WorkbenchException;
+import org.eclipse.ui.internal.ActionExpression;
+import org.eclipse.ui.navigator.Priority;
+
+/**
+ * Encapsulates the
+ * <code>org.eclipse.wst.common.navigator.internal.views.navigator.navigatorContent</code>
+ * extension point.
+ */
+public class NavigatorContentDescriptor {
+	public static final String ATT_ID = "id"; //$NON-NLS-1$
+	public static final String ATT_NAME = "name"; //$NON-NLS-1$	
+	public static final String ATT_CLASS = "class"; //$NON-NLS-1$	
+	private static final String ATT_ROOT_LABEL = "rootLabel"; //$NON-NLS-1$	 
+
+	private String id;
+	private String name;
+	private String className;
+	private IConfigurationElement configElement;
+
+	private String rootLabel;
+
+	private static final String CHILD_ENABLEMENT = "enablement"; //$NON-NLS-1$ 
+	private static final String CONTRIBUTION_ENABLEMENT = "contributes"; //$NON-NLS-1$
+	private static final String ATT_PRIORITY = "priority"; //$NON-NLS-1$
+	private static final String ATT_ICON = "icon"; //$NON-NLS-1$
+	private static final String ENABLED_BY_DEFAULT = "enabledByDefault"; //$NON-NLS-1$
+	public static final String ATT_CONTENT_PROVIDER = "contentProvider"; //$NON-NLS-1$
+	public static final String ATT_LABEL_PROVIDER = "labelProvider"; //$NON-NLS-1$
+	public static final String ATT_ACTION_PROVIDER = "actionProvider"; //$NON-NLS-1$
+	public static final String ATT_OPEN_LISTENER = "openListener"; //$NON-NLS-1$
+	public static final String ATT_SORTER = "sorter"; //$NON-NLS-1$
+
+
+	private int priority = Integer.MAX_VALUE;
+	private ActionExpression enablement;
+	private ActionExpression contributionEnablement;
+	private boolean root;
+	private String icon;
+	private String declaringPluginId;
+	private boolean enabledByDefault;
+	private IPluginContribution contribution;
+	private boolean hasLoadingFailed; 
+	
+
+
+	/**
+	 * Creates a new content descriptor from a configuration element.
+	 * 
+	 * @param configElement
+	 *            configuration element to create a descriptor from
+	 */
+	public NavigatorContentDescriptor(IConfigurationElement configElement) throws WorkbenchException {
+		super();
+		this.configElement = configElement;
+		readConfigElement();
+	}
+
+	public boolean isEnabledFor(IStructuredSelection aStructuredSelection) {
+		return (enablement != null && enablement.isEnabledFor(aStructuredSelection));
+	}
+
+	public boolean isEnabledFor(Object anElement) {
+		return (enablement != null && enablement.isEnabledFor(anElement));
+	}
+
+	/**
+	 * Returns the name of the navigator content extension class. This class must implement
+	 * <code>INavigatorContentExtension</code>.
+	 * 
+	 * @return the name of the navigator content extension class
+	 */
+	public String getClassName() {
+		return className;
+	}
+
+	/**
+	 * Returns the configuration element parsed by the receiver.
+	 * 
+	 * @return the configuration element parsed by the receiver
+	 */
+	public IConfigurationElement getConfigurationElement() {
+		return configElement;
+	}
+
+	/**
+	 * Returns the contribution expression that is used to determine if this navigator content
+	 * extension contributed a given element.
+	 * 
+	 * @return the contribution expression
+	 */
+	public ActionExpression getContributionEnablement() {
+		return contributionEnablement;
+	}
+
+	/**
+	 * Returns the enablement expression that is used to determine if this navigator content
+	 * extension provides children for a given element.
+	 * 
+	 * @return the enablement expression
+	 */
+	public ActionExpression getEnablementExpression() {
+		return enablement;
+	}
+
+	/**
+	 * Returns the navgiator content extension id
+	 * 
+	 * @return the navgiator content extension id
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * Returns the name of this navigator extension
+	 * 
+	 * @return the name of this navigator extension
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * Returns the priority of the navigator content extension.
+	 * 
+	 * @return the priority of the navigator content extension. Returns 0 (zero) if no priority was
+	 *         specified.
+	 */
+	public int getPriority() {
+		return priority;
+	}
+
+	/**
+	 * Returns whether the receiver is a root navigator content extension. Navigator content
+	 * extensions are root extensions if they are referenced in a navigator view extension.
+	 * 
+	 * @return true if the receiver is a root navigator extension false if the receiver is not a
+	 *         root navigator extension
+	 */
+	public boolean isRoot() {
+		return root;
+	}
+
+	/**
+	 * @return a label to be used to delay the loading -- used for a content extension that
+	 *         contributes a single root element
+	 *  
+	 */
+	protected String getRootLabel() {
+		return rootLabel;
+	}
+
+	/**
+	 * Parses the configuration element.
+	 * 
+	 * @throws WorkbenchException
+	 *             if the configuration element could not be parsed. Reasons include:
+	 *             <ul>
+	 *             <li>A required attribute is missing.</li>
+	 *             <li>More elements are define than is allowed.</li>
+	 *             </ul>
+	 */
+	void readConfigElement() throws WorkbenchException {
+		id = configElement.getAttribute(ATT_ID);
+		name = configElement.getAttribute(ATT_NAME);
+		className = configElement.getAttribute(ATT_CLASS);
+		String priorityString = configElement.getAttribute(ATT_PRIORITY);
+		icon = configElement.getAttribute(ATT_ICON);
+		rootLabel = configElement.getAttribute(ATT_ROOT_LABEL);
+		
+		declaringPluginId = configElement.getDeclaringExtension().getDeclaringPluginDescriptor().getUniqueIdentifier();
+		String enabledByDefaultString = configElement.getAttribute(ENABLED_BY_DEFAULT);
+		enabledByDefault = (enabledByDefaultString != null && enabledByDefaultString.length() > 0) ? Boolean.valueOf(configElement.getAttribute(ENABLED_BY_DEFAULT)).booleanValue() : true;
+
+
+		if (className == null && (configElement.getAttribute(ATT_CONTENT_PROVIDER) == null || configElement.getAttribute(ATT_LABEL_PROVIDER) == null))
+			throw new WorkbenchException("Missing attribute: " + //$NON-NLS-1$
+						ATT_CLASS + " or one or both of " + //$NON-NLS-1$
+						ATT_CONTENT_PROVIDER + " and " + //$NON-NLS-1$
+						ATT_LABEL_PROVIDER + " in navigator extension: " + //$NON-NLS-1$
+						configElement.getDeclaringExtension().getUniqueIdentifier());
+
+		if (priorityString != null) {
+			try {
+				Priority p = Priority.get(priorityString);
+				priority = p != null ? p.getValue() : -1; 
+			} catch (NumberFormatException exception) {
+			}
+		}
+		if (id == null) {
+			throw new WorkbenchException("Missing attribute: " + //$NON-NLS-1$
+						ATT_ID + " in navigator extension: " + //$NON-NLS-1$
+						configElement.getDeclaringExtension().getUniqueIdentifier());
+		}
+
+		IConfigurationElement[] children = configElement.getChildren(CHILD_ENABLEMENT);
+		if (children.length == 1) {
+			enablement = new ActionExpression(children[0]);
+		} else if (children.length > 1) {
+			throw new WorkbenchException("More than one element: " + //$NON-NLS-1$
+						CHILD_ENABLEMENT + " in content provider: " + //$NON-NLS-1$
+						configElement.getDeclaringExtension().getUniqueIdentifier());
+		}
+
+		children = configElement.getChildren(CONTRIBUTION_ENABLEMENT);
+		if (children.length == 1) {
+			contributionEnablement = new ActionExpression(children[0]);
+		} else if (children.length > 1) {
+			throw new WorkbenchException("More than one element: " + //$NON-NLS-1$
+						CONTRIBUTION_ENABLEMENT + " in navigator extension: " + //$NON-NLS-1$
+						configElement.getDeclaringExtension().getUniqueIdentifier());
+		}
+
+		contribution = new IPluginContribution() {
+
+			public String getLocalId() {
+				return configElement.getDeclaringExtension().getSimpleIdentifier();
+			}
+
+			public String getPluginId() {
+				return configElement.getDeclaringExtension().getDeclaringPluginDescriptor().getUniqueIdentifier();
+			}
+
+		};
+	}
+
+	/**
+	 * Set whether or not the receiver is a root navigator extension
+	 * 
+	 * @param root
+	 *            true if the receiver is a root navigator extension. false if the receiver is not a
+	 *            root navigator extension.
+	 */
+	void setRoot(boolean root) {
+		this.root = root;
+	}
+
+	/**
+	 * @return Returns the icon.
+	 */
+	public String getIcon() {
+		return icon;
+	}
+
+	/**
+	 * @return Returns the declaringPluginId.
+	 */
+	public String getDeclaringPluginId() {
+		return declaringPluginId;
+	}
+
+	/**
+	 * @return
+	 */
+	public boolean isEnabledByDefault() {
+		return enabledByDefault;
+	}
+
+	/**
+	 * @return Returns the contribution.
+	 */
+	public IPluginContribution getContribution() {
+		return contribution;
+	}
+
+	public boolean hasLoadingFailed() {
+		return hasLoadingFailed;
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/NavigatorContentDescriptorRegistry.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/NavigatorContentDescriptorRegistry.java
new file mode 100644
index 0000000..4d2491a
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/NavigatorContentDescriptorRegistry.java
@@ -0,0 +1,254 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.extensions;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.jface.resource.ImageRegistry;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.WorkbenchException;
+import org.eclipse.ui.navigator.internal.NavigatorPlugin;
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+
+/**
+ * <p>
+ * The following class is experimental until fully documented.
+ * </p>
+ */
+public class NavigatorContentDescriptorRegistry extends RegistryReader {
+
+	private static final NavigatorContentDescriptorRegistry INSTANCE = new NavigatorContentDescriptorRegistry();
+	private static final NavigatorActivationService NAVIGATOR_ACTIVATION_SERVICE = NavigatorActivationService.getInstance();
+
+	protected static final String NAVIGATOR_CONTENT = "navigatorContent"; //$NON-NLS-1$
+	private static boolean isInitialized = false;
+
+	private final Map contentDescriptors = new HashMap();
+
+	private static final Comparator EXTENSION_COMPARATOR = new Comparator() {
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
+		 */
+		public int compare(Object lvalue, Object rvalue) {
+			return ((NavigatorContentDescriptor) lvalue).getPriority() - ((NavigatorContentDescriptor) rvalue).getPriority();
+		}
+	};
+
+	private ImageRegistry imageRegistry;
+
+	/**
+	 *  
+	 */
+	public static NavigatorContentDescriptorRegistry getInstance() {
+		if (isInitialized)
+			return INSTANCE;
+		synchronized (INSTANCE) {
+			if (!isInitialized) {
+				INSTANCE.readRegistry();
+				isInitialized = true;
+			}
+		}
+		return INSTANCE;
+	}
+
+
+	/**
+	 * @param aPluginId
+	 * @param anExtensionPoint
+	 */
+	public NavigatorContentDescriptorRegistry() {
+		super(NavigatorPlugin.PLUGIN_ID, NAVIGATOR_CONTENT);
+	}
+
+	/**
+	 * Added method.
+	 * 
+	 * Returns all content descriptor(s) which enable for the given element.
+	 * 
+	 * @param element
+	 *            the element to return the best content descriptor for
+	 * @return the best content descriptor for the given element.
+	 */
+	public NavigatorContentDescriptor[] getAllContentDescriptors() {
+		NavigatorContentDescriptor[] finalDescriptors = new NavigatorContentDescriptor[contentDescriptors.size()];
+		contentDescriptors.values().toArray(finalDescriptors);
+		Arrays.sort(finalDescriptors, EXTENSION_COMPARATOR);
+		return finalDescriptors;
+	}
+
+	/**
+	 * 
+	 * Returns all content descriptor(s) which enable for the given element.
+	 * 
+	 * @param anElement
+	 *            the element to return the best content descriptor for
+	 * @return the best content descriptor for the given element.
+	 */
+	public List getEnabledContentDescriptors(Object anElement) {
+		List descriptors = new ArrayList();
+
+		/* Find other ContentProviders which enable for this object */
+		for (Iterator contentDescriptorsItr = contentDescriptors.values().iterator(); contentDescriptorsItr.hasNext();) {
+			NavigatorContentDescriptor descriptor = (NavigatorContentDescriptor) contentDescriptorsItr.next();
+
+			if (descriptor.isEnabledFor(anElement))
+				descriptors.add(descriptor);
+		}
+		Collections.sort(descriptors, EXTENSION_COMPARATOR);
+
+		return Collections.unmodifiableList(descriptors);
+	}
+
+	/**
+	 * 
+	 * Returns all content descriptor(s) which enable for the given element.
+	 * 
+	 * @param aStructuredSelection
+	 *            the element to return the best content descriptor for
+	 * @return the best content descriptor for the given element.
+	 */
+	public List getEnabledContentDescriptors(IStructuredSelection aStructuredSelection) {
+		List descriptors = new ArrayList();
+
+		/* Find other ContentProviders which enable for this object */
+		for (Iterator contentDescriptorsItr = contentDescriptors.values().iterator(); contentDescriptorsItr.hasNext();) {
+			NavigatorContentDescriptor descriptor = (NavigatorContentDescriptor) contentDescriptorsItr.next();
+
+			if (descriptor.isEnabledFor(aStructuredSelection))
+				descriptors.add(descriptor);
+		}
+		Collections.sort(descriptors, EXTENSION_COMPARATOR);
+
+		return Collections.unmodifiableList(descriptors);
+	}
+
+	/**
+	 * 
+	 * Returns all content descriptor(s) which enable for the given element.
+	 * 
+	 * @param anElement
+	 *            the element to return the best content descriptor for
+	 * @return the best content descriptor for the given element.
+	 */
+	public List getEnabledContentDescriptors(Object anElement, NavigatorViewerDescriptor aViewerDescriptor) {
+		List descriptors = new ArrayList();
+
+		/* Find other ContentProviders which enable for this object */
+		for (Iterator contentDescriptorsItr = contentDescriptors.values().iterator(); contentDescriptorsItr.hasNext();) {
+			NavigatorContentDescriptor descriptor = (NavigatorContentDescriptor) contentDescriptorsItr.next();
+
+			if (NAVIGATOR_ACTIVATION_SERVICE.isNavigatorExtensionActive(aViewerDescriptor.getViewerId(), descriptor.getId()) && !aViewerDescriptor.filtersContentDescriptor(descriptor)) {
+				if (descriptor.isEnabledFor(anElement))
+					descriptors.add(descriptor);
+			}
+		}
+		Collections.sort(descriptors, EXTENSION_COMPARATOR);
+
+		return Collections.unmodifiableList(descriptors);
+	}
+
+	/**
+	 * Returns the navigator content descriptor with the given id.
+	 * 
+	 * @param id
+	 *            the id of the content descriptor that should be returned
+	 */
+	public NavigatorContentDescriptor getContentDescriptor(String id) {
+		return (NavigatorContentDescriptor) contentDescriptors.get(id);
+	}
+
+	public void removeContentDescriptor(String id) {
+		contentDescriptors.remove(id);
+	}
+
+	public String getText(String descriptorId) {
+		NavigatorContentDescriptor descriptor = getContentDescriptor(descriptorId);
+		if (descriptor != null)
+			return descriptor.getName();
+		return descriptorId;
+	}
+
+	public Image getImage(String descriptorId) {
+		return retrieveAndStoreImage(descriptorId);
+	}
+
+	protected Image retrieveAndStoreImage(String descriptorId) {
+		NavigatorContentDescriptor contentDescriptor = getContentDescriptor(descriptorId);
+
+		Image image = null;
+		if (contentDescriptor != null) {
+			String icon = contentDescriptor.getIcon();
+			if (icon != null) {
+				image = getImageRegistry().get(icon);
+				if (image == null || image.isDisposed()) {
+					ImageDescriptor imageDescriptor = AbstractUIPlugin.imageDescriptorFromPlugin(contentDescriptor.getDeclaringPluginId(), icon);
+					if (imageDescriptor != null) {
+						image = imageDescriptor.createImage();
+						if (image != null)
+							getImageRegistry().put(icon, image);
+					}
+				}
+			}
+		}
+		return image;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.extensions.RegistryReader#readElement(org.eclipse.core.runtime.IConfigurationElement)
+	 */
+	protected boolean readElement(IConfigurationElement element) {
+		if (NAVIGATOR_CONTENT.equals(element.getName())) {
+			try {
+				NavigatorContentDescriptor desc = new NavigatorContentDescriptor(element);
+				addNavigatorContentDescriptor(desc);
+				return true;
+			} catch (WorkbenchException e) {
+				// log an error since its not safe to open a dialog here
+				NavigatorPlugin.log("Unable to create navigator descriptor.", e.getStatus());//$NON-NLS-1$
+			}
+		}
+		return false;
+	}
+
+	/**
+	 * @param desc
+	 */
+	private void addNavigatorContentDescriptor(NavigatorContentDescriptor desc) {
+		if (desc == null)
+			return;
+		synchronized (contentDescriptors) {
+			contentDescriptors.put(desc.getId(), desc);
+		}
+	}
+
+	// TODO MDE Should be moved or optimized in someway to minimize the amount of time that image
+	// resources are held onto
+	private ImageRegistry getImageRegistry() {
+		if (imageRegistry == null)
+			imageRegistry = new ImageRegistry();
+		return imageRegistry;
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/NavigatorContentExtension.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/NavigatorContentExtension.java
new file mode 100644
index 0000000..88f9f05
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/NavigatorContentExtension.java
@@ -0,0 +1,292 @@
+/***************************************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others. All rights reserved. This program and the
+ * accompanying materials are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors: IBM Corporation - initial API and implementation
+ **************************************************************************************************/
+package org.eclipse.ui.navigator.internal.extensions;
+
+import java.util.Comparator;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.ui.IMemento;
+import org.eclipse.ui.navigator.ICommonActionProvider;
+import org.eclipse.ui.navigator.ICommonLabelProvider;
+import org.eclipse.ui.navigator.IExtensionStateModel;
+import org.eclipse.ui.navigator.IMementoAware;
+import org.eclipse.ui.navigator.NavigatorActionService;
+import org.eclipse.ui.navigator.NavigatorContentService;
+
+/**
+ * <p>
+ * The following class is experimental until fully documented.
+ * </p>
+ */
+public class NavigatorContentExtension implements IMementoAware {
+
+
+	private NavigatorContentService contentService; 
+	private NavigatorContentDescriptor descriptor;
+	private final String viewerId;
+	
+	private ICommonContentProvider contentProvider;
+	private ICommonLabelProvider labelProvider;
+	private ICommonActionProvider actionProvider;
+	private IExtensionStateModel stateModel;
+	private Comparator comparator;
+	
+	private boolean labelProviderInitializationFailed = false;
+	private boolean contentProviderInitializationFailed = false;
+	private boolean actionProviderInitializationFailed = false; 
+	private boolean comparatorInitializationFailed = false;
+	private boolean isDisposed = false;
+	private IMemento appliedMemento;
+	private StructuredViewerManager viewerManager;
+
+
+	public NavigatorContentExtension(
+			NavigatorContentDescriptor aDescriptor,
+			NavigatorContentService aContentService, 
+			StructuredViewerManager aViewerManager) {
+		super();
+
+		if (aDescriptor == null)
+			throw new IllegalArgumentException(
+					"The parameter aDescriptor (of type "
+							+ NavigatorContentDescriptor.class.getName()
+							+ ") cannot be null!");
+
+		descriptor = aDescriptor;
+		contentService = aContentService;
+		viewerId = contentService.getViewerId();
+		viewerManager = aViewerManager;
+	}
+	
+	public String getId() {
+		return descriptor.getId();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.views.INavigatorContentExtension#getContentProvider()
+	 */
+	public ITreeContentProvider getContentProvider() {
+		if (contentProvider != null || contentProviderInitializationFailed)
+			return contentProvider;
+		synchronized (this) {
+			try {
+				if (contentProvider == null) {
+					ITreeContentProvider treeContentProvider = (ITreeContentProvider) descriptor.getConfigurationElement().createExecutableExtension(NavigatorContentDescriptor.ATT_CONTENT_PROVIDER);
+					if (treeContentProvider != null) {
+						contentProvider = new NavigatorContentProvider(treeContentProvider);
+						contentProvider.init(getStateModel(), appliedMemento); 
+						viewerManager.initialize(contentProvider);
+					}
+					else
+						contentProvider = SkeletonTreeContentProvider.INSTANCE; 
+				}
+			} catch (CoreException e) {
+				contentProviderInitializationFailed = true;
+				e.printStackTrace();
+			} catch (RuntimeException e) {
+				contentProviderInitializationFailed = true;
+				e.printStackTrace();
+			}
+			if (contentProviderInitializationFailed)
+				contentProvider = SkeletonTreeContentProvider.INSTANCE;
+		}
+		return contentProvider;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.views.INavigatorContentExtension#getLabelProvider()
+	 */
+	public ICommonLabelProvider getLabelProvider() {
+		if (labelProvider != null || labelProviderInitializationFailed)
+			return labelProvider;
+		synchronized (this) {
+			try {
+
+				if (labelProvider == null) {
+					ILabelProvider tempLabelProvider = (ILabelProvider) descriptor.getConfigurationElement().createExecutableExtension(NavigatorContentDescriptor.ATT_LABEL_PROVIDER);
+
+					if (tempLabelProvider instanceof ICommonLabelProvider) {
+						labelProvider = (ICommonLabelProvider) tempLabelProvider;
+						NavigatorContentProvider navigatorContentProvider = (NavigatorContentProvider) getContentProvider();
+						labelProvider.init(getStateModel(), navigatorContentProvider.getDelegateContentProvider());
+					} else {
+						labelProvider = new DelegateCommonLabelProvider(tempLabelProvider);
+					}
+				}
+			} catch (CoreException e) {
+				labelProviderInitializationFailed = true;
+				e.printStackTrace();
+			} catch (RuntimeException e) {
+				labelProviderInitializationFailed = true;
+				e.printStackTrace();
+			}
+
+			if (labelProviderInitializationFailed)
+				labelProvider = SkeletonLabelProvider.INSTANCE;
+		}
+		return labelProvider;
+	}
+
+	/**
+	 * @return
+	 */
+	public ICommonActionProvider getActionProvider(NavigatorActionService theActionService) {
+		if (actionProvider != null || actionProviderInitializationFailed)
+			return actionProvider;
+		if (descriptor.getConfigurationElement().getAttribute(NavigatorContentDescriptor.ATT_ACTION_PROVIDER) == null) {
+			actionProvider = SkeletonActionProvider.INSTANCE;
+			return actionProvider;
+		}
+		synchronized (this) {
+			try {
+				if (actionProvider == null) {
+					actionProvider = (ICommonActionProvider) descriptor.getConfigurationElement().createExecutableExtension(NavigatorContentDescriptor.ATT_ACTION_PROVIDER);
+					if(actionProvider == null) 
+						actionProvider = SkeletonActionProvider.INSTANCE;
+					else if(theActionService != null)
+						theActionService.initialize(descriptor.getId(), actionProvider);
+				}
+			} catch (CoreException e) {
+				actionProviderInitializationFailed = true;
+				e.printStackTrace();
+			} catch (RuntimeException e) {
+				actionProviderInitializationFailed = true;
+				e.printStackTrace();
+			}
+			if (actionProviderInitializationFailed)
+				actionProvider = SkeletonActionProvider.INSTANCE;
+		}
+		return actionProvider;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.views.INavigatorContentExtension#dispose()
+	 */
+	public void dispose() {
+		try {
+			synchronized (this) {
+
+				if (contentProvider != null)
+					contentProvider.dispose();
+				if (labelProvider != null)
+					labelProvider.dispose();
+				if (actionProvider != null)
+					actionProvider.dispose();
+			}
+		} finally {
+			isDisposed = true;
+		}
+	}
+
+
+	// M4 Revisit the sorting strategy [CommonNavigator:SORTING]
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.views.INavigatorContentExtension#getComparator()
+	 */
+	public Comparator getComparator() {
+		if (comparator != null || comparatorInitializationFailed)
+			return comparator;
+		synchronized (this) {
+			try {
+				if (comparator == null) {
+					String sorterClassName = descriptor.getConfigurationElement().getAttribute(NavigatorContentDescriptor.ATT_SORTER);
+					if (sorterClassName != null && sorterClassName.length() > 0)
+						comparator = (Comparator) descriptor.getConfigurationElement().createExecutableExtension(NavigatorContentDescriptor.ATT_SORTER);
+				}
+
+			} catch (CoreException e) {
+				comparatorInitializationFailed = true;
+				e.printStackTrace();
+			} catch (RuntimeException e) {
+				comparatorInitializationFailed = true;
+				e.printStackTrace();
+			}
+			if (comparatorInitializationFailed || comparator == null)
+				comparator = IdentityComparator.INSTANCE;
+		}
+		return comparator;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
+	 */
+	public Object getAdapter(Class adapter) {
+		return null;
+	}
+
+	/**
+	 * @return Returns the contentProviderInitializationFailed.
+	 */
+	public boolean hasContentProviderInitializationFailed() {
+		return contentProviderInitializationFailed;
+	}
+
+	/**
+	 * @return Returns the labelProviderInitializationFailed.
+	 */
+	public boolean hasLabelProviderInitializationFailed() {
+		return labelProviderInitializationFailed;
+	}
+
+	public boolean hasLoadingFailed() { 
+		return contentProviderInitializationFailed;
+	}
+
+	public boolean isLoaded() {
+		return contentProvider != null;
+	}
+
+	public void restoreState(IMemento aMemento) {
+		synchronized (this) {
+			appliedMemento = aMemento;
+			applyMemento(contentProvider);
+			applyMemento(labelProvider);
+			applyMemento(actionProvider); 
+
+		}
+	}
+	
+	public void saveState(IMemento aMemento) { 
+		synchronized (this) {  
+		}
+	}
+ 
+
+	private void applyMemento(IMementoAware target) { 
+		if(target != null)
+			target.restoreState(appliedMemento);
+		
+	}
+
+
+	protected final void complainDisposedIfNecessary() {
+		if (isDisposed)
+			throw new IllegalStateException(
+					"NavigatorContentDescriptorInstance \""
+							+ descriptor.getId() + "\" is disposed!");
+	}
+
+	public IExtensionStateModel getStateModel() {
+		if(stateModel == null)
+			stateModel = new ExtensionStateModel(descriptor.getId(), viewerId);
+		return stateModel;
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/NavigatorContentProvider.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/NavigatorContentProvider.java
new file mode 100644
index 0000000..2e68238
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/NavigatorContentProvider.java
@@ -0,0 +1,132 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.extensions;
+
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.ui.IMemento;
+import org.eclipse.ui.navigator.IExtensionStateModel;
+import org.eclipse.ui.navigator.IMementoAware;
+
+/**
+ * <p>
+ * The following class is experimental until fully documented.
+ * </p>
+ */
+public class NavigatorContentProvider implements ICommonContentProvider {
+
+	private final ITreeContentProvider contentProvider; 
+
+	/**
+	 *  
+	 */
+	public NavigatorContentProvider(ITreeContentProvider aContentProvider) {
+		super();
+		contentProvider = aContentProvider; 
+	}
+
+	/**
+	 *  
+	 */
+	public void dispose() {
+		contentProvider.dispose();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.lang.Object#equals(java.lang.Object)
+	 */
+	public boolean equals(Object anObject) {
+		return contentProvider.equals(anObject);
+	}
+
+	/**
+	 * @param aParentElement
+	 * @return
+	 */
+	public Object[] getChildren(Object aParentElement) {
+		return contentProvider.getChildren(aParentElement);
+	}
+
+	/**
+	 * @param anInputElement
+	 * @return
+	 */
+	public Object[] getElements(Object anInputElement) {
+		return contentProvider.getElements(anInputElement);
+	}
+
+	/**
+	 * @param anElement
+	 * @return
+	 */
+	public Object getParent(Object anElement) {
+		return contentProvider.getParent(anElement);
+	}
+
+	/**
+	 * @param anElement
+	 * @return
+	 */
+	public boolean hasChildren(Object anElement) {
+		return contentProvider.hasChildren(anElement);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.lang.Object#hashCode()
+	 */
+	public int hashCode() {
+		return contentProvider.hashCode();
+	}
+
+	/**
+	 * @param aViewer
+	 * @param anOldInput
+	 * @param aNewInput
+	 */
+	public void inputChanged(Viewer aViewer, Object anOldInput, Object aNewInput) {
+		contentProvider.inputChanged(aViewer, anOldInput, aNewInput);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.lang.Object#toString()
+	 */
+	public String toString() {
+		return contentProvider.toString();
+	}
+	
+	public ITreeContentProvider getDelegateContentProvider() {
+		return contentProvider;
+	}
+
+	public void restoreState(IMemento aMemento) {
+		if(contentProvider != null && contentProvider instanceof IMementoAware)
+			((IMementoAware)contentProvider).restoreState(aMemento);
+		
+	}
+
+	public void saveState(IMemento aMemento) { 
+		if(contentProvider != null && contentProvider instanceof IMementoAware)
+			((IMementoAware)contentProvider).saveState(aMemento);
+		
+	}
+
+	public void init(IExtensionStateModel aStateModel, IMemento aMemento) {
+		if(contentProvider instanceof ICommonContentProvider) {
+			((ICommonContentProvider)contentProvider).init(aStateModel, aMemento);
+		}
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/NavigatorViewerDescriptor.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/NavigatorViewerDescriptor.java
new file mode 100644
index 0000000..e31a026
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/NavigatorViewerDescriptor.java
@@ -0,0 +1,162 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.extensions;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.ui.WorkbenchException;
+import org.eclipse.ui.navigator.internal.NavigatorPlugin;
+
+/**
+ * Encapsulates the
+ * <code>org.eclipse.wst.common.navigator.internal.views.navigator.navigatorViewer</code>
+ * extension.
+ */
+public class NavigatorViewerDescriptor {
+	public static final String DEFAULT_POPUP_MENU_ID = "#CommonNavigatorPopupMenu"; //$NON-NLS-1$
+
+	protected static final String ROOT_CONTENT_EXTENSION = "rootContentExtension"; //$NON-NLS-1$
+
+	protected static final String ATT_VIEWER_ID = "viewerId"; //$NON-NLS-1$	
+	protected static final String ATT_CONTENT_EXTENSION_ID = "rootContentExtensionId"; //$NON-NLS-1$
+	protected static final String ATT_ROOTID = "rootContentExtensionId"; //$NON-NLS-1$
+	private static final String ATT_POPUP_MENU_ID = "popupMenuId"; //$NON-NLS-1$	
+
+	private final String viewerId;
+	private final Set rootExtensionIds = new HashSet();
+	private String popupMenuId = null;
+
+
+
+	/**
+	 * Creates a new content descriptor from a configuration element.
+	 * 
+	 * @param configElement
+	 *            configuration element to create a descriptor from
+	 */
+	public NavigatorViewerDescriptor(String aViewerId) {
+		super();
+		this.viewerId = aViewerId;
+	}
+
+	/**
+	 * Creates a new content descriptor from a configuration element.
+	 * 
+	 * @param configElement
+	 *            configuration element to create a descriptor from
+	 */
+	public NavigatorViewerDescriptor(IConfigurationElement configElement) throws WorkbenchException {
+		super();
+		viewerId = configElement.getAttribute(ATT_VIEWER_ID);
+		if (viewerId == null) {
+			throw new WorkbenchException("Missing attribute: " + //$NON-NLS-1$
+						ATT_VIEWER_ID + " in navigator view extension: " + //$NON-NLS-1$
+						configElement.getDeclaringExtension().getUniqueIdentifier());
+		}
+		consume(configElement);
+	}
+
+	public void consume(IConfigurationElement element) throws WorkbenchException {
+
+		String rootExtensionId = element.getAttribute(ATT_ROOTID);
+		String thePopupMenuId = element.getAttribute(ATT_POPUP_MENU_ID);
+		if (thePopupMenuId != null) {
+			if (popupMenuId != null)
+				NavigatorPlugin.log("Warning: popupMenuId of \""+getViewerId()+
+								"\" was overridden: old value = \"" + popupMenuId + 
+								"\", new value = \"" + thePopupMenuId + "\".");
+
+			popupMenuId = thePopupMenuId;
+		}
+
+		if (rootExtensionId != null) {
+			addRootContentExtensionId(rootExtensionId);
+		} else {
+			IConfigurationElement[] rootContentExtensions = element.getChildren(ROOT_CONTENT_EXTENSION);
+			for (int i = 0; i < rootContentExtensions.length; i++)
+				addRootContentExtensionId(rootContentExtensions[i]);
+		}
+		if (rootExtensionId == null) {
+			throw new WorkbenchException("Missing attribute: " + //$NON-NLS-1$
+						ATT_ROOTID + " in navigator view extension: " + //$NON-NLS-1$
+						element.getDeclaringExtension().getUniqueIdentifier());
+		}
+	}
+
+
+	/**
+	 * Returns the id of the viewer targeted by this extension.
+	 * 
+	 * @return the id of the viewer targeted by this extension.
+	 */
+	public String getViewerId() {
+		return viewerId;
+	}
+
+	/**
+	 * Returns the id of the
+	 * <code>org.eclipse.wst.common.navigator.views.navigator.navigatorContent</code> extension
+	 * that supplies root elements.
+	 * 
+	 * @return the id of the <code>navigatorContent</code> extension that supplies root elements.
+	 */
+	public String getRootExtensionId() {
+		if (rootExtensionIds.size() == 0)
+			return viewerId;
+		return (String) rootExtensionIds.toArray(new String[rootExtensionIds.size()])[0];
+	}
+
+	/**
+	 * Returns the id of the
+	 * <code>org.eclipse.wst.common.navigator.views.navigator.navigatorContent</code> extension
+	 * that supplies root elements.
+	 * 
+	 * @return the id of the <code>navigatorContent</code> extension that supplies root elements.
+	 */
+	public String[] getRootContentExtensionIds() {
+		if (rootExtensionIds.size() == 0)
+			return new String[] {viewerId};
+		return (String[]) rootExtensionIds.toArray(new String[rootExtensionIds.size()]);
+	}
+
+	public String getPopupMenuId() {
+		return popupMenuId != null ? popupMenuId : DEFAULT_POPUP_MENU_ID;
+	}
+
+	/**
+	 * @param descriptor
+	 * @return
+	 */
+	public boolean filtersContentDescriptor(NavigatorContentDescriptor descriptor) {
+		// TODO Implment a filter logic component to handle viewers that wish to isolate or exclude
+		// specific content extensions
+
+		return false;
+	}
+
+	protected boolean addRootContentExtensionId(String rootContentExtensionId) {
+		if (rootContentExtensionId != null) {
+			rootExtensionIds.add(rootContentExtensionId);
+			return true;
+		}
+		return false;
+	}
+
+	protected void addRootContentExtensionId(IConfigurationElement rootContentExtension) {
+		String rootContentExtensionId = rootContentExtension.getAttribute(ATT_ROOTID);
+		if (!addRootContentExtensionId(rootContentExtensionId)) {
+			// TODO Log Warning
+		}
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/NavigatorViewerDescriptorRegistry.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/NavigatorViewerDescriptorRegistry.java
new file mode 100644
index 0000000..49b822e
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/NavigatorViewerDescriptorRegistry.java
@@ -0,0 +1,102 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.extensions;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.ui.WorkbenchException;
+import org.eclipse.ui.navigator.internal.NavigatorPlugin;
+
+/**
+ * <p>
+ * The following class is experimental until fully documented.
+ * </p>
+ */
+public class NavigatorViewerDescriptorRegistry extends RegistryReader {
+
+	private static final NavigatorViewerDescriptorRegistry INSTANCE = new NavigatorViewerDescriptorRegistry();
+
+	protected static final String NAVIGATOR_VIEWER = "navigatorViewer"; //$NON-NLS-1$
+	protected static final String ATT_VIEWER_ID = "viewerId"; //$NON-NLS-1$
+	private static boolean isInitialized = false;
+
+	private final Map viewerDescriptors = new HashMap();
+
+
+	/**
+	 *  
+	 */
+	public static NavigatorViewerDescriptorRegistry getInstance() {
+		if (isInitialized)
+			return INSTANCE;
+		synchronized (INSTANCE) {
+			if (!isInitialized) {
+				INSTANCE.readRegistry();
+				isInitialized = true;
+			}
+		}
+		return INSTANCE;
+	}
+
+	/**
+	 * @param aPluginId
+	 * @param anExtensionPoint
+	 */
+	protected NavigatorViewerDescriptorRegistry() {
+		super(NavigatorPlugin.PLUGIN_ID, NAVIGATOR_VIEWER);
+	}
+
+	public NavigatorViewerDescriptor getNavigatorViewerDescriptor(String viewerId) {
+		return getOrCreateNavigatorViewerDescriptor(viewerId);
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.extensions.RegistryReader#readElement(org.eclipse.core.runtime.IConfigurationElement)
+	 */
+	protected boolean readElement(IConfigurationElement element) {
+		if (NAVIGATOR_VIEWER.equals(element.getName())) {
+			try {
+				String viewerId = element.getAttribute(ATT_VIEWER_ID);
+				NavigatorViewerDescriptor descriptor = getOrCreateNavigatorViewerDescriptor(viewerId);
+				descriptor.consume(element);
+				return true;
+			} catch (WorkbenchException e) {
+				// log an error since its not safe to open a dialog here
+				NavigatorPlugin.log("Unable to create navigator view descriptor.", e.getStatus());//$NON-NLS-1$
+			}
+		}
+		return false;
+	}
+
+
+	/**
+	 * @param aViewerId
+	 * @return
+	 */
+	private NavigatorViewerDescriptor getOrCreateNavigatorViewerDescriptor(String aViewerId) {
+		NavigatorViewerDescriptor viewerDescriptor = null;
+		synchronized (viewerDescriptors) {
+			viewerDescriptor = (NavigatorViewerDescriptor) viewerDescriptors.get(aViewerId);
+			if (viewerDescriptor != null)
+				return viewerDescriptor;
+			viewerDescriptor = new NavigatorViewerDescriptor(aViewerId);
+			viewerDescriptors.put(viewerDescriptor.getViewerId(), viewerDescriptor);
+		}
+		return viewerDescriptor;
+	}
+
+
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/RegistryReader.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/RegistryReader.java
new file mode 100644
index 0000000..079f131
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/RegistryReader.java
@@ -0,0 +1,179 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials 
+ * are made available under the terms of the Common Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/cpl-v10.html
+ * 
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.extensions;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.core.runtime.IExtension;
+import org.eclipse.core.runtime.IExtensionPoint;
+import org.eclipse.core.runtime.IExtensionRegistry;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.ui.navigator.internal.NavigatorPlugin;
+
+/**
+ * Template implementation of a registry reader that creates objects representing registry contents.
+ * Typically, an extension contains one element, but this reader handles multiple elements per
+ * extension.
+ * 
+ * To start reading the extensions from the registry for an extension point, call the method
+ * <code>readRegistry</code>.
+ * 
+ * To read children of an IConfigurationElement, call the method <code>readElementChildren</code>
+ * from your implementation of the method <code>readElement</code>, as it will not be done by
+ * default.
+ */
+public abstract class RegistryReader {
+
+	protected static final String TAG_DESCRIPTION = "description"; //$NON-NLS-1$
+
+	private boolean isInitialized;
+	private final String extensionPointId;
+	private final String pluginId;
+	private final IExtensionRegistry registry;
+
+	/**
+	 * The constructor.
+	 */
+	protected RegistryReader(String aPluginId, String anExtensionPoint) {
+		this.registry = Platform.getExtensionRegistry();
+		this.pluginId = aPluginId;
+		this.extensionPointId = anExtensionPoint;
+	}
+
+	/**
+	 * This method extracts description as a subelement of the given element.
+	 * 
+	 * @return description string if defined, or empty string if not.
+	 */
+	protected String getDescription(IConfigurationElement config) {
+		IConfigurationElement[] children = config.getChildren(TAG_DESCRIPTION);
+		if (children.length >= 1) {
+			return children[0].getValue();
+		}
+		return "";//$NON-NLS-1$
+	}
+
+	/**
+	 * Logs the error in the workbench log using the provided text and the information in the
+	 * configuration element.
+	 */
+	protected static void logError(IConfigurationElement element, String text) {
+		IExtension extension = element.getDeclaringExtension();
+		StringBuffer buf = new StringBuffer();
+		buf.append("Plugin " + extension.getNamespace() + ", extension " + extension.getExtensionPointUniqueIdentifier());//$NON-NLS-2$//$NON-NLS-1$
+		buf.append("\n" + text);//$NON-NLS-1$
+		NavigatorPlugin.log(buf.toString());
+	}
+
+	/**
+	 * Logs a very common registry error when a required attribute is missing.
+	 */
+	protected static void logMissingAttribute(IConfigurationElement element, String attributeName) {
+		logError(element, "Required attribute '" + attributeName + "' not defined");//$NON-NLS-2$//$NON-NLS-1$
+	}
+
+	/**
+	 * Logs a very common registry error when a required child is missing.
+	 */
+	protected static void logMissingElement(IConfigurationElement element, String elementName) {
+		logError(element, "Required sub element '" + elementName + "' not defined");//$NON-NLS-2$//$NON-NLS-1$
+	}
+
+	/**
+	 * Logs a registry error when the configuration element is unknown.
+	 */
+	protected static void logUnknownElement(IConfigurationElement element) {
+		logError(element, "Unknown extension tag found: " + element.getName());//$NON-NLS-1$
+	}
+
+	/**
+	 * Apply a reproducable order to the list of extensions provided, such that the order will not
+	 * change as extensions are added or removed.
+	 */
+	protected IExtension[] orderExtensions(IExtension[] extensions) {
+		// By default, the order is based on plugin id sorted
+		// in ascending order. The order for a plugin providing
+		// more than one extension for an extension point is
+		// dependent in the order listed in the XML file.
+		IExtension[] sortedExtension = new IExtension[extensions.length];
+		System.arraycopy(extensions, 0, sortedExtension, 0, extensions.length);
+		Comparator comparer = new Comparator() {
+			public int compare(Object arg0, Object arg1) {
+				String s1 = ((IExtension) arg0).getNamespace();
+				String s2 = ((IExtension) arg1).getNamespace();
+				return s1.compareToIgnoreCase(s2);
+			}
+		};
+		Collections.sort(Arrays.asList(sortedExtension), comparer);
+		return sortedExtension;
+	}
+
+	/**
+	 * Implement this method to read element's attributes. If children should also be read, then
+	 * implementor is responsible for calling <code>readElementChildren</code>. Implementor is
+	 * also responsible for logging missing attributes.
+	 * 
+	 * @return true if element was recognized, false if not.
+	 */
+	protected abstract boolean readElement(IConfigurationElement element);
+
+	/**
+	 * Read the element's children. This is called by the subclass' readElement method when it wants
+	 * to read the children of the element.
+	 */
+	protected void readElementChildren(IConfigurationElement element) {
+		readElements(element.getChildren());
+	}
+
+	/**
+	 * Read each element one at a time by calling the subclass implementation of
+	 * <code>readElement</code>.
+	 * 
+	 * Logs an error if the element was not recognized.
+	 */
+	protected void readElements(IConfigurationElement[] elements) {
+		for (int i = 0; i < elements.length; i++) {
+			if (!readElement(elements[i]))
+				logUnknownElement(elements[i]);
+		}
+	}
+
+	/**
+	 * Read one extension by looping through its configuration elements.
+	 */
+	protected void readExtension(IExtension extension) {
+		readElements(extension.getConfigurationElements());
+	}
+
+	/**
+	 * Start the registry reading process using the supplied plugin ID and extension point.
+	 */
+	public void readRegistry() {
+		if (isInitialized)
+			return;
+		synchronized (this) {
+			if (!isInitialized) {
+				IExtensionPoint point = registry.getExtensionPoint(pluginId, extensionPointId);
+				if (point == null)
+					return;
+				IExtension[] extensions = point.getExtensions();
+				extensions = orderExtensions(extensions);
+				for (int i = 0; i < extensions.length; i++)
+					readExtension(extensions[i]);
+				isInitialized = true;
+			}
+
+		}
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/SkeletonActionProvider.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/SkeletonActionProvider.java
new file mode 100644
index 0000000..56ab2b6
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/SkeletonActionProvider.java
@@ -0,0 +1,42 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.extensions;
+
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.navigator.ICommonActionProvider;
+import org.eclipse.ui.navigator.internal.actions.CommonActionProvider;
+
+/**
+ * <p>
+ * The following class is experimental until fully documented.
+ * </p>
+ */
+public class SkeletonActionProvider extends CommonActionProvider implements ICommonActionProvider {
+
+	public static final ICommonActionProvider INSTANCE = new SkeletonActionProvider();
+
+	/**
+	 *  
+	 */
+	private SkeletonActionProvider() {
+		super();
+	}
+
+	public boolean fillContextMenu(IMenuManager menu) {
+		return false;
+	}
+
+	public boolean fillActionBars(IActionBars actionBars) {
+		return false;
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/SkeletonLabelProvider.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/SkeletonLabelProvider.java
new file mode 100644
index 0000000..7fb627b
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/SkeletonLabelProvider.java
@@ -0,0 +1,117 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.extensions;
+
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.IMemento;
+import org.eclipse.ui.navigator.ICommonLabelProvider;
+import org.eclipse.ui.navigator.IExtensionStateModel;
+
+/**
+ * <p>
+ * The following class is experimental until fully documented.
+ * </p>
+ */
+public class SkeletonLabelProvider implements ICommonLabelProvider {
+
+	public static final SkeletonLabelProvider INSTANCE = new SkeletonLabelProvider();
+
+	/**
+	 *  
+	 */
+	public SkeletonLabelProvider() {
+		super();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
+	 */
+	public Image getImage(Object element) {
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
+	 */
+	public String getText(Object element) {
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
+	 */
+	public void addListener(ILabelProviderListener listener) {
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
+	 */
+	public void dispose() {
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object,
+	 *      java.lang.String)
+	 */
+	public boolean isLabelProperty(Object element, String property) {
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
+	 */
+	public void removeListener(ILabelProviderListener listener) {
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.extensions.ICommonLabelProvider#initialize(java.lang.String)
+	 */
+	public void init(IExtensionStateModel aStateModel, ITreeContentProvider aContentProvider) {
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.extensions.ICommonLabelProvider#getDescription(java.lang.Object)
+	 */
+	public String getDescription(Object anElement) {
+		return null;
+	}
+
+	public void restoreState(IMemento aMemento) { 
+		
+	}
+
+	public void saveState(IMemento aMemento) { 
+		
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/SkeletonOpenListener.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/SkeletonOpenListener.java
new file mode 100644
index 0000000..d42e038
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/SkeletonOpenListener.java
@@ -0,0 +1,49 @@
+/*
+ * Created on Feb 4, 2005
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package org.eclipse.ui.navigator.internal.extensions;
+
+import org.eclipse.jface.viewers.OpenEvent;
+import org.eclipse.ui.navigator.CommonNavigator;
+import org.eclipse.ui.navigator.ICommonOpenListener;
+import org.eclipse.ui.navigator.NavigatorContentService;
+
+
+/**
+ * @author Admin
+ *
+ * TODO To change the template for this generated type comment go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+public class SkeletonOpenListener implements ICommonOpenListener {
+
+	public static final SkeletonOpenListener INSTANCE = new SkeletonOpenListener();
+
+	/* (non-Javadoc)
+	 * @see org.eclipse.jface.viewers.IOpenListener#open(org.eclipse.jface.viewers.OpenEvent)
+	 */
+	public void open(OpenEvent event) {
+		// TODO Auto-generated method stub
+		
+	}
+
+	/**
+	 * 
+	 */
+	public SkeletonOpenListener() {
+		super();
+		// TODO Auto-generated constructor stub
+	}
+
+	
+	/* (non-Javadoc)
+	 * @see org.eclipse.wst.common.navigator.internal.views.extensions.ICommonOpenListener#initialize(org.eclipse.wst.common.navigator.views.CommonNavigator, org.eclipse.wst.common.navigator.internal.views.extensions.NavigatorContentService)
+	 */
+	public void initialize(CommonNavigator aCommonNavigator, NavigatorContentService aContentService) {
+		// TODO Auto-generated method stub
+		
+	}
+}
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/SkeletonTreeContentProvider.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/SkeletonTreeContentProvider.java
new file mode 100644
index 0000000..c7b19cb
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/SkeletonTreeContentProvider.java
@@ -0,0 +1,103 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.extensions;
+
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.ui.IMemento;
+import org.eclipse.ui.navigator.IExtensionStateModel;
+
+/**
+ * <p>
+ * The following class is experimental until fully documented.
+ * </p>
+ */
+public class SkeletonTreeContentProvider implements ICommonContentProvider {
+
+	public static final SkeletonTreeContentProvider INSTANCE = new SkeletonTreeContentProvider();
+
+	private static final Object[] NO_CHILDREN = new Object[0];
+
+	/**
+	 *  
+	 */
+	private SkeletonTreeContentProvider() {
+		super();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
+	 */
+	public Object[] getChildren(Object parentElement) {
+
+		return NO_CHILDREN;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
+	 */
+	public Object getParent(Object element) {
+
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
+	 */
+	public boolean hasChildren(Object element) {
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
+	 */
+	public Object[] getElements(Object inputElement) {
+
+		return NO_CHILDREN;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
+	 */
+	public void dispose() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
+	 *      java.lang.Object, java.lang.Object)
+	 */
+	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+	}
+
+	public void restoreState(IMemento aMemento) { 
+		
+	}
+
+	public void saveState(IMemento aMemento) { 
+		
+	}
+
+	public void init(IExtensionStateModel aStateModel, IMemento aMemento) { 
+		
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/StructuredViewerManager.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/StructuredViewerManager.java
new file mode 100644
index 0000000..d2b50c8
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/extensions/StructuredViewerManager.java
@@ -0,0 +1,104 @@
+/***************************************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others. All rights reserved. This program and the
+ * accompanying materials are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors: IBM Corporation - initial API and implementation
+ **************************************************************************************************/
+package org.eclipse.ui.navigator.internal.extensions;
+
+import org.eclipse.core.runtime.IStatus;
+import org.eclipse.core.runtime.Status;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.ui.navigator.internal.NavigatorPlugin;
+import org.eclipse.ui.progress.UIJob;
+
+/**
+ * <p>
+ * Provides a consistent mechanism to interact with StructuredViewers over time. The Common
+ * Navigator framework attempts to defer the loading of extensions, which also means defering the
+ * loading of Content Providers. To follow the contracts already in place by
+ * {@link org.eclipse.jface.viewers.ITreeContentProvider}, the Viewer, Old Input, and New Input
+ * parameters for
+ * {@link org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)}
+ * are cached for content providers that have not been loaded yet.
+ * </p>
+ * <p>
+ * <b>WARNING: </b> The following class is not inherently thread-safe. Appropriate measures should
+ * be taken to ensure that {@link #inputChanged(Object, Object)}and
+ * {@link #inputChanged(Viewer, Object, Object)}are not called concurrently with
+ * {@link #initialize(IStructuredContentProvider)}.
+ * <p>
+ * The following class is experimental until fully documented.
+ * </p>
+ */
+public class StructuredViewerManager {
+
+	private Viewer viewer;
+	private Object cachedOldInput;
+	private Object cachedNewInput;
+
+	/**
+	 * 
+	 */
+	public StructuredViewerManager(Viewer aViewer) {
+		super();
+		viewer= aViewer;
+	}
+
+	public Viewer getViewer() {
+		return viewer;
+	}
+
+
+	public void inputChanged(Object anOldInput, Object aNewInput) {
+		cachedOldInput= anOldInput;
+		cachedNewInput= aNewInput;
+	}
+
+	public void inputChanged(Viewer aViewer, Object anOldInput, Object aNewInput) {
+		viewer= aViewer;
+		cachedOldInput= anOldInput;
+		cachedNewInput= aNewInput;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.extensions.IInitializationManager#initialize(org.eclipse.jface.viewers.IStructuredContentProvider)
+	 */
+	public boolean initialize(IStructuredContentProvider aContentProvider) {
+		boolean result= true;
+		try {
+			if (aContentProvider != null)
+				aContentProvider.inputChanged(viewer, cachedOldInput, cachedNewInput);
+		} catch (RuntimeException e) {
+			NavigatorPlugin.log(e.toString(), new Status(IStatus.ERROR, NavigatorPlugin.PLUGIN_ID, 0, e.toString(), e));
+			result= false;
+		}
+		return result;
+	}
+
+	/**
+	 * 
+	 */
+	public void safeRefresh() {
+		UIJob refreshJob= new UIJob("Refresh Common Viewer Tree") {
+			public IStatus runInUIThread(org.eclipse.core.runtime.IProgressMonitor monitor) {
+				try {
+					if (viewer != null)
+						viewer.refresh();
+				} catch (RuntimeException e) {
+					NavigatorPlugin.log(e.toString(), new Status(IStatus.ERROR, NavigatorPlugin.PLUGIN_ID, 0, e.toString(), e));
+				}
+				return Status.OK_STATUS;
+			}
+		};
+		refreshJob.schedule();
+
+
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/CommonFilterContentProvider.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/CommonFilterContentProvider.java
new file mode 100644
index 0000000..8e6c3e1
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/CommonFilterContentProvider.java
@@ -0,0 +1,67 @@
+/***************************************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others. All rights reserved. This program and the
+ * accompanying materials are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors: IBM Corporation - initial API and implementation
+ **************************************************************************************************/
+
+package org.eclipse.ui.navigator.internal.filters;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.ui.navigator.NavigatorContentService;
+import org.eclipse.ui.navigator.internal.extensions.NavigatorContentDescriptor;
+import org.eclipse.ui.navigator.internal.extensions.NavigatorContentDescriptorRegistry;
+
+public class CommonFilterContentProvider implements IStructuredContentProvider {
+
+	private static final NavigatorContentDescriptorRegistry CONTENT_DESCRIPTOR_REGISTRY = NavigatorContentDescriptorRegistry.getInstance();
+	private NavigatorContentService contentService;
+
+	public CommonFilterContentProvider() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.navigator.INavigatorContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
+	 *      java.lang.Object, java.lang.Object)
+	 */
+	public void inputChanged(Viewer viewer, Object oldInput, Object newInput) {
+		if (newInput instanceof NavigatorContentService)
+			contentService = (NavigatorContentService) newInput;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
+	 */
+	public Object[] getElements(Object inputElement) {
+
+		ExtensionFilterViewerRegistry filterRegistry = ExtensionFilterRegistryManager.getInstance().getViewerRegistry(contentService.getViewerId());
+
+		List results = new ArrayList();
+		NavigatorContentDescriptor[] descriptors = CONTENT_DESCRIPTOR_REGISTRY.getAllContentDescriptors();
+		for (int i = 0; i < descriptors.length; i++)
+			results.addAll(Arrays.asList(filterRegistry.getAllDescriptors(descriptors[i].getId())));
+
+		return results.toArray();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
+	 */
+	public void dispose() {
+
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/CommonFilterLabelProvider.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/CommonFilterLabelProvider.java
new file mode 100644
index 0000000..d53825b
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/CommonFilterLabelProvider.java
@@ -0,0 +1,119 @@
+/***************************************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others. All rights reserved. This program and the
+ * accompanying materials are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors: IBM Corporation - initial API and implementation
+ **************************************************************************************************/
+
+package org.eclipse.ui.navigator.internal.filters;
+
+import org.eclipse.jface.viewers.ILabelProvider;
+import org.eclipse.jface.viewers.ILabelProviderListener;
+import org.eclipse.jface.viewers.ITableLabelProvider;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.ui.navigator.internal.extensions.NavigatorContentDescriptor;
+import org.eclipse.ui.navigator.internal.extensions.NavigatorContentDescriptorRegistry;
+
+public class CommonFilterLabelProvider implements ITableLabelProvider, ILabelProvider {
+
+	private static final NavigatorContentDescriptorRegistry CONTENT_DESCRIPTOR_REGISTRY = NavigatorContentDescriptorRegistry.getInstance();
+
+	public CommonFilterLabelProvider() {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object)
+	 */
+	public Image getImage(Object element) {
+		if (element instanceof NavigatorContentDescriptor)
+			return CONTENT_DESCRIPTOR_REGISTRY.getImage(((NavigatorContentDescriptor) element).getId());
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object)
+	 */
+	public String getText(Object element) {
+		if (element instanceof NavigatorContentDescriptor)
+			return ((NavigatorContentDescriptor) element).getName();
+		else if (element instanceof ExtensionFilterDescriptor)
+			return ((ExtensionFilterDescriptor) element).getName();
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#addListener(org.eclipse.jface.viewers.ILabelProviderListener)
+	 */
+	public void addListener(ILabelProviderListener listener) {
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#dispose()
+	 */
+	public void dispose() {
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#isLabelProperty(java.lang.Object,
+	 *      java.lang.String)
+	 */
+	public boolean isLabelProperty(Object element, String property) {
+		return false;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.IBaseLabelProvider#removeListener(org.eclipse.jface.viewers.ILabelProviderListener)
+	 */
+	public void removeListener(ILabelProviderListener listener) {
+
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
+	 */
+	public Image getColumnImage(Object element, int columnIndex) {
+		switch (columnIndex) {
+			case 0 :
+				return getImage(element);
+
+		}
+		return null;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int)
+	 */
+	public String getColumnText(Object element, int columnIndex) {
+		switch (columnIndex) {
+			case 0 :
+				return getText(element);
+			case 1 : {
+				if (element instanceof ExtensionFilterDescriptor) {
+					String d = ((ExtensionFilterDescriptor) element).getDescription();
+					return d == null ? "" : d; //$NON-NLS-1$
+				}
+			}
+		}
+		return ""; //$NON-NLS-1$
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/CommonFilterSelectionDialog.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/CommonFilterSelectionDialog.java
new file mode 100644
index 0000000..000b555
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/CommonFilterSelectionDialog.java
@@ -0,0 +1,447 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/*
+ * Created on Feb 9, 2004
+ *  
+ */
+package org.eclipse.ui.navigator.internal.filters;
+
+import org.eclipse.jface.dialogs.Dialog;
+import org.eclipse.jface.dialogs.IDialogConstants;
+import org.eclipse.jface.viewers.CheckboxTableViewer;
+import org.eclipse.jface.viewers.ISelectionChangedListener;
+import org.eclipse.jface.viewers.IStructuredContentProvider;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.ITreeContentProvider;
+import org.eclipse.jface.viewers.SelectionChangedEvent;
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
+import org.eclipse.swt.widgets.TabFolder;
+import org.eclipse.swt.widgets.TabItem;
+import org.eclipse.swt.widgets.Table;
+import org.eclipse.swt.widgets.TableItem;
+import org.eclipse.swt.widgets.Text;
+import org.eclipse.ui.navigator.CommonActivitiesUtilities;
+import org.eclipse.ui.navigator.CommonNavigator;
+import org.eclipse.ui.navigator.CommonViewer;
+import org.eclipse.ui.navigator.NavigatorActionService;
+import org.eclipse.ui.navigator.NavigatorContentService;
+import org.eclipse.ui.navigator.internal.NavigatorMessages;
+import org.eclipse.ui.navigator.internal.extensions.NavigatorActivationService;
+import org.eclipse.ui.navigator.internal.extensions.NavigatorContentDescriptor;
+import org.eclipse.ui.navigator.internal.extensions.NavigatorContentDescriptorRegistry;
+
+/**
+ * @author mdelder
+ *  
+ */
+public class CommonFilterSelectionDialog extends Dialog {
+
+	private static final NavigatorActivationService NAVIGATOR_ACTIVATION_SERVICE = NavigatorActivationService.getInstance();
+	private static final NavigatorContentDescriptorRegistry CONTENT_DESCRIPTOR_REGISTRY = NavigatorContentDescriptorRegistry.getInstance();
+	private static final Object[] NO_CHILDREN = new Object[0];
+	private CheckboxTableViewer extensionsCheckboxTableViewer;
+	private Text descriptionText;
+	private ISelectionChangedListener updateDescriptionSelectionListener;
+	private TabFolder filtersTabFolder;
+	private CheckboxTableViewer filtersCheckboxTableViewer;
+	
+	private CommonNavigator commonNavigator;
+	private final CommonViewer commonViewer;
+	private final NavigatorContentService contentService;
+
+	/**
+	 * @param arg0
+	 */
+	public CommonFilterSelectionDialog(CommonNavigator aCommonNavigator) {
+		super(aCommonNavigator.getSite().getShell());
+		setShellStyle(SWT.RESIZE | getShellStyle());
+		
+		commonNavigator = aCommonNavigator;
+		commonViewer = commonNavigator.getCommonViewer();
+		contentService = commonViewer.getNavigatorContentService();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite)
+	 */
+	protected Control createDialogArea(Composite parent) {
+		getShell().setText(NavigatorMessages.getString("CommonFilterSelectionDialog.0")); //$NON-NLS-1$		
+		Composite superComposite = (Composite) super.createDialogArea(parent);
+
+		createFiltersTabFolder(superComposite);
+
+		Composite extensionsComposite = createContainerComposite(filtersTabFolder);
+		/* createTitleLabel(extensionsComposite); */
+		createExtensionsTableViewer(extensionsComposite);
+
+		Composite filtersComposite = createContainerComposite(filtersTabFolder);
+		createFiltersTableViewer(filtersComposite);
+
+		createDescriptionText(superComposite);
+
+		createTabItem(filtersTabFolder, NavigatorMessages.getString("CommonFilterSelectionDialog.0"), filtersComposite); //$NON-NLS-1$
+		createTabItem(filtersTabFolder, NavigatorMessages.getString("CommonFilterSelectionDialog.1"), extensionsComposite); //$NON-NLS-1$
+
+		descriptionText.setBackground(superComposite.getBackground());
+
+		updateCheckedItems();
+
+		return extensionsComposite;
+	}
+
+	/**
+	 * @param superComposite
+	 */
+	private void createFiltersTabFolder(Composite superComposite) {
+		filtersTabFolder = new TabFolder(superComposite, SWT.RESIZE);
+		createStandardLayout(filtersTabFolder);
+		filtersTabFolder.addSelectionListener(new SelectionListener() {
+
+			public void widgetSelected(SelectionEvent e) {
+				descriptionText.setText(""); //$NON-NLS-1$
+			}
+
+			public void widgetDefaultSelected(SelectionEvent e) {
+
+			}
+
+		});
+	}
+
+	/**
+	 * @param filtersTabFolderArg
+	 * @param composite
+	 */
+	private void createTabItem(TabFolder filtersTabFolderArg, String label, Composite composite) {
+		TabItem extensionsTabItem = new TabItem(filtersTabFolderArg, SWT.NONE);
+		extensionsTabItem.setText(label);
+		extensionsTabItem.setControl(composite);
+	}
+
+	/**
+	 * @param composite
+	 */
+	private void createStandardLayout(Composite composite) {
+		GridLayout layout = new GridLayout();
+		layout.marginHeight = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
+		layout.marginWidth = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
+		layout.verticalSpacing = convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
+		layout.horizontalSpacing = convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
+		layout.numColumns = 1;
+		composite.setLayout(layout);
+		composite.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
+	}
+
+	/**
+	 * @param superComposite
+	 * @return
+	 */
+	private Composite createContainerComposite(Composite superComposite) {
+		Composite composite = new Composite(superComposite, SWT.RESIZE);
+
+		createStandardLayout(composite);
+		return composite;
+	}
+
+
+
+	/**
+	 * @param composite
+	 */
+	private void createExtensionsInstructionsLabel(Composite composite) {
+		Label extensionsInstructionLabel = new Label(composite, SWT.BOLD | SWT.V_SCROLL);
+		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
+		gridData.heightHint = convertHeightInCharsToPixels(1) + 3;
+		gridData.horizontalIndent = convertHorizontalDLUsToPixels(2);
+		/* gridData.verticalSpan = convertVerticalDLUsToPixels(2); */
+		gridData.verticalAlignment = GridData.VERTICAL_ALIGN_FILL;
+		gridData.horizontalAlignment = GridData.HORIZONTAL_ALIGN_FILL;
+
+		extensionsInstructionLabel.setLayoutData(gridData);
+		extensionsInstructionLabel.setText(NavigatorMessages.getString("CommonFilterSelectionDialog.3")); //$NON-NLS-1$
+	}
+
+	/**
+	 * @param composite
+	 */
+	private void createFiltersInstructionsLabel(Composite composite) {
+		Label filtersInstructionLabel = new Label(composite, SWT.BOLD | SWT.V_SCROLL);
+		GridData gridData = new GridData(GridData.FILL_HORIZONTAL);
+		gridData.heightHint = convertHeightInCharsToPixels(1) + 3;
+		gridData.horizontalIndent = convertHorizontalDLUsToPixels(2);
+		/* gridData.verticalSpan = convertVerticalDLUsToPixels(2); */
+		gridData.verticalAlignment = GridData.VERTICAL_ALIGN_FILL;
+		gridData.horizontalAlignment = GridData.HORIZONTAL_ALIGN_FILL;
+
+		filtersInstructionLabel.setLayoutData(gridData);
+		filtersInstructionLabel.setText(NavigatorMessages.getString("CommonFilterSelectionDialog.4")); //$NON-NLS-1$
+	}
+
+	/**
+	 * @param composite
+	 */
+	private void createDescriptionText(Composite composite) {
+		descriptionText = new Text(composite, SWT.WRAP | SWT.V_SCROLL | SWT.BORDER);
+		GridData descriptionTextGridData = new GridData(GridData.FILL_HORIZONTAL);
+		descriptionTextGridData.heightHint = convertHeightInCharsToPixels(3);
+		descriptionText.setLayoutData(descriptionTextGridData);
+	}
+
+
+	/**
+	 * @param composite
+	 */
+	private void createFiltersTableViewer(Composite composite) {
+		filtersCheckboxTableViewer = CheckboxTableViewer.newCheckList(composite, SWT.BORDER | SWT.RESIZE | SWT.FULL_SELECTION);
+
+		filtersCheckboxTableViewer.setContentProvider(new CommonFilterContentProvider());
+		filtersCheckboxTableViewer.setLabelProvider(new CommonFilterLabelProvider());
+		filtersCheckboxTableViewer.setInput(contentService);
+
+		createFiltersInstructionsLabel(composite);
+
+		createCheckboxTable(filtersCheckboxTableViewer);
+	}
+
+	/**
+	 * @param composite
+	 */
+	private void createExtensionsTableViewer(Composite composite) {
+		extensionsCheckboxTableViewer = CheckboxTableViewer.newCheckList(composite, SWT.BORDER | SWT.RESIZE);
+
+		extensionsCheckboxTableViewer.setContentProvider(new ExtensionContentProvider());
+		extensionsCheckboxTableViewer.setLabelProvider(new CommonFilterLabelProvider());
+		extensionsCheckboxTableViewer.setInput(contentService);
+
+		createExtensionsInstructionsLabel(composite);
+
+		createCheckboxTable(extensionsCheckboxTableViewer);
+	}
+
+
+	/**
+	 *  
+	 */
+	private void createCheckboxTable(CheckboxTableViewer tableViewer) {
+		Table table = tableViewer.getTable();
+		GridLayout tableLayout = new GridLayout();
+		tableLayout.marginHeight = 0; //convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_MARGIN);
+		tableLayout.marginWidth = 0; //convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_MARGIN);
+		tableLayout.verticalSpacing = 0; //convertVerticalDLUsToPixels(IDialogConstants.VERTICAL_SPACING);
+		tableLayout.horizontalSpacing = 0; //convertHorizontalDLUsToPixels(IDialogConstants.HORIZONTAL_SPACING);
+		tableLayout.numColumns = 2;
+		GridData tableGridData = new GridData(GridData.FILL_BOTH);
+		tableGridData.widthHint = convertHorizontalDLUsToPixels(100);
+		tableGridData.heightHint = convertVerticalDLUsToPixels(50);
+		table.setLayout(tableLayout);
+		table.setLayoutData(tableGridData);
+	}
+
+	public class UpdateDescriptionListener implements ISelectionChangedListener {
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
+		 */
+		public void selectionChanged(SelectionChangedEvent event) {
+
+			IStructuredSelection structuredSelection = (IStructuredSelection) event.getSelection();
+			Object element = structuredSelection.getFirstElement();
+			if (element instanceof NavigatorContentDescriptor) {
+				NavigatorContentDescriptor ncd = (NavigatorContentDescriptor) element;
+				String desc = NavigatorMessages.format("CommonFilterSelectionDialog.2", new Object[]{ncd.getName()}); //$NON-NLS-1$ 
+				descriptionText.setText(desc);
+			} else if (element instanceof ExtensionFilterDescriptor) {
+				ExtensionFilterDescriptor efd = (ExtensionFilterDescriptor) element;
+				descriptionText.setText(efd.getDescription());
+			}
+
+		}
+
+	}
+
+	/**
+	 *  
+	 */
+	protected void updateCheckedItems() {
+
+		extensionsCheckboxTableViewer.addSelectionChangedListener(getSelectionListener());
+		filtersCheckboxTableViewer.addSelectionChangedListener(getSelectionListener());
+
+		updateExtensionsCheckState();
+		updateFiltersCheckState();
+	}
+
+	/**
+	 *  
+	 */
+	private void updateExtensionsCheckState() {
+		NavigatorContentDescriptor descriptor;
+		boolean enabled;
+
+		TableItem[] descriptorTableItems = extensionsCheckboxTableViewer.getTable().getItems();
+		for (int i = 0; i < descriptorTableItems.length; i++) {
+			if (descriptorTableItems[i].getData() instanceof NavigatorContentDescriptor) {
+				descriptor = (NavigatorContentDescriptor) descriptorTableItems[i].getData();
+				enabled = NAVIGATOR_ACTIVATION_SERVICE.isNavigatorExtensionActive(contentService.getViewerId(), descriptor.getId());
+				extensionsCheckboxTableViewer.setChecked(descriptor, enabled);
+			}
+		}
+	}
+
+	/**
+	 *  
+	 */
+	private void updateFiltersCheckState() {
+		IStructuredContentProvider contentProvider = (IStructuredContentProvider) filtersCheckboxTableViewer.getContentProvider();
+		Object[] children = contentProvider.getElements(contentService);
+		ExtensionFilterViewerRegistry filterRegistry = ExtensionFilterRegistryManager.getInstance().getViewerRegistry(contentService.getViewerId());
+		ExtensionFilterDescriptor filterDescriptor = null;
+		for (int i = 0; i < children.length; i++) {
+			filterDescriptor = (ExtensionFilterDescriptor) children[i];
+			filtersCheckboxTableViewer.setChecked(children[i], filterRegistry.getActivationManager().isFilterActive(filterDescriptor));
+		}
+	}
+
+	/**
+	 * @return
+	 */
+	private ISelectionChangedListener getSelectionListener() {
+		if (updateDescriptionSelectionListener == null)
+			updateDescriptionSelectionListener = new UpdateDescriptionListener();
+		return updateDescriptionSelectionListener;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.dialogs.Dialog#okPressed()
+	 */
+	protected void okPressed() {
+
+		boolean updateExtensionActivation = false;
+		boolean updateFilterActivation = false;
+		boolean enabled = false;
+		NavigatorContentDescriptor descriptor = null;
+		ExtensionFilterDescriptor filterDescriptor = null;
+
+		ExtensionFilterViewerRegistry filterRegistry = ExtensionFilterRegistryManager.getInstance().getViewerRegistry(contentService.getViewerId());
+		TableItem[] extensionTableItems = extensionsCheckboxTableViewer.getTable().getItems();
+		for (int descriptorIndex = 0; descriptorIndex < extensionTableItems.length; descriptorIndex++) {
+
+			if (extensionTableItems[descriptorIndex].getData() instanceof NavigatorContentDescriptor) {
+				descriptor = (NavigatorContentDescriptor) extensionTableItems[descriptorIndex].getData();
+
+				enabled = extensionsCheckboxTableViewer.getChecked(descriptor);
+				if (enabled != NAVIGATOR_ACTIVATION_SERVICE.isNavigatorExtensionActive(contentService.getViewerId(), descriptor.getId())) {
+					updateExtensionActivation = true;
+					NAVIGATOR_ACTIVATION_SERVICE.activateNavigatorExtension(contentService.getViewerId(), descriptor.getId(), enabled);
+				}
+			}
+		}
+
+		TableItem[] filterTableItems = filtersCheckboxTableViewer.getTable().getItems();
+		for (int descriptorIndex = 0; descriptorIndex < filterTableItems.length; descriptorIndex++) {
+
+			if (filterTableItems[descriptorIndex].getData() instanceof ExtensionFilterDescriptor) {
+				filterDescriptor = (ExtensionFilterDescriptor) filterTableItems[descriptorIndex].getData();
+				enabled = filtersCheckboxTableViewer.getChecked(filterDescriptor);
+				if (filterRegistry.getActivationManager().isFilterActive(filterDescriptor) != enabled) {
+					updateFilterActivation = true;
+					filterRegistry.getActivationManager().activateFilter(filterDescriptor, enabled);
+				}
+			}
+		}
+		if (updateExtensionActivation)
+			NAVIGATOR_ACTIVATION_SERVICE.persistExtensionActivations(contentService.getViewerId());
+		if (updateFilterActivation)
+			filterRegistry.getActivationManager().persistFilterActivations();
+		if (updateExtensionActivation || updateFilterActivation) {
+			contentService.update();
+			
+			NavigatorActionService actionService = commonNavigator.getNavigatorActionService();
+			actionService.refresh();
+		}
+
+		super.okPressed();
+	}
+
+	class ExtensionContentProvider implements ITreeContentProvider {
+
+
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.wst.common.navigator.internal.views.navigator.INavigatorContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer,
+		 *      java.lang.Object, java.lang.Object)
+		 */
+		public void inputChanged(Viewer aViewer, Object anOldInput, Object aNewInput) {
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object)
+		 */
+		public Object[] getChildren(Object aParentElement) {
+			return NO_CHILDREN;
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object)
+		 */
+		public Object getParent(Object anElement) {
+			return null;
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object)
+		 */
+		public boolean hasChildren(Object anElement) {
+			return getChildren(anElement).length != 0;
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object)
+		 */
+		public Object[] getElements(Object anInputElement) {
+			return CommonActivitiesUtilities.filterByActivity(CONTENT_DESCRIPTOR_REGISTRY.getAllContentDescriptors());
+		}
+
+		/*
+		 * (non-Javadoc)
+		 * 
+		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
+		 */
+		public void dispose() {
+
+		}
+
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/CommonViewerFilter.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/CommonViewerFilter.java
new file mode 100644
index 0000000..4f34a0f
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/CommonViewerFilter.java
@@ -0,0 +1,78 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.filters;
+
+import java.util.List;
+
+import org.eclipse.jface.viewers.Viewer;
+import org.eclipse.jface.viewers.ViewerFilter;
+import org.eclipse.ui.navigator.CommonViewer;
+import org.eclipse.ui.navigator.INavigatorExtensionFilter;
+import org.eclipse.ui.navigator.NavigatorContentService;
+import org.eclipse.ui.navigator.internal.extensions.NavigatorActivationService;
+import org.eclipse.ui.navigator.internal.extensions.NavigatorContentDescriptor;
+import org.eclipse.ui.navigator.internal.extensions.NavigatorContentDescriptorRegistry;
+
+/**
+ * <p>
+ * The following class is experimental until fully documented.
+ * </p>
+ */
+public class CommonViewerFilter extends ViewerFilter {
+
+	private static final NavigatorActivationService NAVIGATOR_ACTIVATION_SERVICE = NavigatorActivationService.getInstance();
+	private static final NavigatorContentDescriptorRegistry CONTENT_DESCRIPTOR_REGISTRY = NavigatorContentDescriptorRegistry.getInstance();
+	private final CommonViewer commonViewer;
+	private final NavigatorContentService contentService;
+
+	/**
+	 *  
+	 */
+	public CommonViewerFilter(CommonViewer aViewer) {
+		super();
+		commonViewer = aViewer;
+		contentService = aViewer.getNavigatorContentService();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.jface.viewers.ViewerFilter#select(org.eclipse.jface.viewers.Viewer,
+	 *      java.lang.Object, java.lang.Object)
+	 */
+	public boolean select(Viewer viewer, Object parentElement, Object element) {
+		boolean select = true;
+		List contentDescriptors = CONTENT_DESCRIPTOR_REGISTRY.getEnabledContentDescriptors(element);
+
+		for (int extindex = 0; extindex < contentDescriptors.size() && select; extindex++) {
+			NavigatorContentDescriptor descriptor = (NavigatorContentDescriptor) contentDescriptors.get(extindex);
+			if (NAVIGATOR_ACTIVATION_SERVICE.isNavigatorExtensionActive(contentService.getViewerId(), descriptor.getId())) {
+
+				ExtensionFilterDescriptor[] enabledFilters = ExtensionFilterRegistryManager.getInstance().getViewerRegistry(contentService.getViewerId()).getActiveDescriptors(descriptor.getId());
+
+				for (int filterindx = 0; filterindx < enabledFilters.length; filterindx++) {
+					INavigatorExtensionFilter filter = enabledFilters[filterindx].getInstance();
+					/*
+					 * System.out.println("Element: " + element + " isFiltered: " +
+					 * !filter.select(getExtensionSite(), parentElement, element));
+					 */
+					if (!filter.select(commonViewer, parentElement, element)) {
+						select = false;
+						break;
+					}
+				}
+			}
+		}
+
+		return select;
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/ExtensionFilterActivationManager.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/ExtensionFilterActivationManager.java
new file mode 100644
index 0000000..3fff08a
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/ExtensionFilterActivationManager.java
@@ -0,0 +1,152 @@
+/*
+ * Created on Nov 21, 2004
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package org.eclipse.ui.navigator.internal.filters;
+
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+import java.util.StringTokenizer;
+
+import org.eclipse.core.runtime.Preferences;
+import org.eclipse.ui.navigator.internal.NavigatorPlugin;
+
+/**
+ */
+public class ExtensionFilterActivationManager {
+
+	public static final String ACTIVATED_FILTERS = "activatedFilters"; //$NON-NLS-1$
+
+	/* Associates this ExtensionFilterRegistry with a specific Common Navigator instance */
+	private final String viewerId;
+
+	/* Maintains a list of the active filters for the viewer with the viewerid */
+	private final Set activatedFilters = new HashSet();
+
+	private final ExtensionFilterViewerRegistry parentRegistry;
+
+	public ExtensionFilterActivationManager(String theViewerId, ExtensionFilterViewerRegistry theParentRegistry) {
+		this.viewerId = theViewerId;
+		this.parentRegistry = theParentRegistry;
+	}
+
+	public void activateFilter(ExtensionFilterDescriptor descriptor, boolean enabled) {
+		if (enabled)
+			getActivatedFilters().add(getFilterActivationPreferenceKey(descriptor));
+		else
+			getActivatedFilters().remove(getFilterActivationPreferenceKey(descriptor));
+	}
+
+	public boolean isFilterActive(ExtensionFilterDescriptor descriptor) {
+		return getActivatedFilters().contains(getFilterActivationPreferenceKey(descriptor));
+	}
+
+	public void revertFilterActivations(String navigatorExtensionIdKey) {
+
+		try {
+			Preferences preferences = NavigatorPlugin.getDefault().getPluginPreferences();
+
+			String activatedFiltersString = preferences.getString(getExtensionPreferenceKeyForFilterActivations(navigatorExtensionIdKey));
+			synchronized (activatedFilters) {
+				if (activatedFiltersString != null && activatedFiltersString.length() > 0) {
+					String activatedExtensionKey = null;
+					StringTokenizer tokenizer = new StringTokenizer(activatedFiltersString, ";"); //$NON-NLS-1$
+					while (tokenizer.hasMoreTokens()) {
+						activatedExtensionKey = tokenizer.nextToken();
+						if (activatedExtensionKey.length() > 0)
+							activatedFilters.add(activatedExtensionKey);
+					}
+				} else { // leave the filters off by default
+					List availableFilters = getParentRegistry().getExtensionFilterDescriptors(navigatorExtensionIdKey);
+					for (int i = 0; i < availableFilters.size(); i++) {
+						ExtensionFilterDescriptor filterDescriptor = (ExtensionFilterDescriptor) availableFilters.get(i);
+						if (filterDescriptor.isEnabledByDefault())
+							activatedFilters.add(getFilterActivationPreferenceKey(filterDescriptor));
+					}
+				}
+			}
+		} catch (RuntimeException e) {
+			e.printStackTrace();
+		}
+	}
+
+	public void persistFilterActivations() {
+
+		Preferences preferences = NavigatorPlugin.getDefault().getPluginPreferences();
+
+		synchronized (activatedFilters) {
+			/* ensure that the preference will be non-empty */
+			StringBuffer activatedFiltersStringBuffer = null;
+
+			Iterator navigatorExtensionIdIterator = getParentRegistry().getNavigatorFilters().keySet().iterator();
+			String navigatorExtensionId = null;
+			while (navigatorExtensionIdIterator.hasNext()) {
+
+				navigatorExtensionId = (String) navigatorExtensionIdIterator.next();
+				activatedFiltersStringBuffer = new StringBuffer(";"); //$NON-NLS-1$
+
+				List availableFilters = getParentRegistry().getExtensionFilterDescriptors(navigatorExtensionId);
+				for (int i = 0; i < availableFilters.size(); i++) {
+					ExtensionFilterDescriptor filterDescriptor = (ExtensionFilterDescriptor) availableFilters.get(i);
+					if (isFilterActive(filterDescriptor))
+						activatedFiltersStringBuffer.append(getFilterActivationPreferenceKey(filterDescriptor)).append(";"); //$NON-NLS-1$
+				}
+
+				preferences.setValue(getExtensionPreferenceKeyForFilterActivations(navigatorExtensionId), activatedFiltersStringBuffer.toString());
+			}
+
+
+		}
+		NavigatorPlugin.getDefault().savePluginPreferences();
+	}
+
+	/**
+	 * 
+	 * @param navigatorExtensionIdKey
+	 * @return
+	 */
+	protected String getExtensionPreferenceKeyForFilterActivations(String navigatorExtensionIdKey) {
+		return getViewerId() + "." + navigatorExtensionIdKey + "." + ACTIVATED_FILTERS; //$NON-NLS-1$ //$NON-NLS-2$
+	}
+
+	/**
+	 * @param string
+	 * @return
+	 */
+	private Object getFilterActivationPreferenceKey(ExtensionFilterDescriptor filterDescriptor) {
+		return getFilterActivationPreferenceKey(filterDescriptor.getNavigatorExtensionId(), filterDescriptor.getId());
+	}
+
+	/**
+	 * @param string
+	 * @return
+	 */
+	private Object getFilterActivationPreferenceKey(String navigatorExtensionId, String filterId) {
+		return getViewerId() + "." + navigatorExtensionId + "." + filterId + ".filterActivated"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+	}
+
+	/**
+	 * @return Returns the viewerId.
+	 */
+	protected String getViewerId() {
+		return viewerId;
+	}
+
+	/**
+	 * @return Returns the activatedFilters.
+	 */
+	protected Set getActivatedFilters() {
+		return activatedFilters;
+	}
+
+	/**
+	 * @return Returns the parentRegistry.
+	 */
+	protected ExtensionFilterViewerRegistry getParentRegistry() {
+		return parentRegistry;
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/ExtensionFilterDescriptor.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/ExtensionFilterDescriptor.java
new file mode 100644
index 0000000..e1a73c7
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/ExtensionFilterDescriptor.java
@@ -0,0 +1,202 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/*
+ * Created on Jan 12, 2004
+ * 
+ * To change the template for this generated file go to Window - Preferences - Java - Code
+ * Generation - Code and Comments
+ */
+package org.eclipse.ui.navigator.internal.filters;
+
+import java.util.Properties;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.jface.util.Assert;
+import org.eclipse.jface.viewers.ViewerFilter;
+import org.eclipse.ui.navigator.INavigatorExtensionFilter;
+import org.eclipse.ui.navigator.internal.NavigatorMessages;
+import org.eclipse.ui.navigator.internal.NavigatorPlugin;
+
+/**
+ * @author mdelder
+ * 
+ * To change the template for this generated type comment go to Window - Preferences - Java - Code
+ * Generation - Code and Comments
+ */
+public class ExtensionFilterDescriptor {
+
+	public static final String ID = "id"; //$NON-NLS-1$
+
+	public static final String NAVIGATOR_EXTENSION_ID = "navigatorExtensionId"; //$NON-NLS-1$
+
+	public static final String NAME = "name"; //$NON-NLS-1$
+
+	public static final String DESCRIPTION = "description"; //$NON-NLS-1$
+
+	public static final String CLASS_NAME = "className"; //$NON-NLS-1$
+
+	public static final String VIEW_ID = "viewId"; //$NON-NLS-1$
+
+	public static final String ENABLED_BY_DEFAULT = "enabledByDefault"; //$NON-NLS-1$
+
+	public static final String PROPERTY = "property"; //$NON-NLS-1$
+
+	public static final String PROPERTY_NAME = "name"; //$NON-NLS-1$
+
+	public static final String PROPERTY_VALUE = "value"; //$NON-NLS-1$
+
+	private IConfigurationElement element = null;
+
+	private String id = null;
+
+	private String navigatorExtensionId = null;
+
+	private String name = null;
+
+	private String description = null;
+
+	private String viewId = null;
+
+	private boolean enabledByDefault = false;
+
+	private Properties properties = null;
+
+	private INavigatorExtensionFilter instance = null;
+
+	private ViewerFilter viewerFilter;
+
+	private String tostring;
+
+	public ExtensionFilterDescriptor(IConfigurationElement element) {
+		this.element = element;
+		init();
+	}
+
+	public ExtensionFilterDescriptor(String filterId, String navigatorExtensionId, String name, String description, String viewerId, boolean enabledByDefault, ViewerFilter viewerFilter) {
+		Assert.isNotNull(filterId, NavigatorMessages.getString("ExtensionFilterDescriptor.10")); //$NON-NLS-1$
+		Assert.isNotNull(navigatorExtensionId, NavigatorMessages.getString("ExtensionFilterDescriptor.11")); //$NON-NLS-1$
+		this.id = filterId;
+		this.navigatorExtensionId = navigatorExtensionId;
+		this.name = name;
+		this.description = description;
+		this.viewId = viewerId;
+		this.enabledByDefault = enabledByDefault;
+		this.viewerFilter = viewerFilter;
+
+	}
+
+	private void init() {
+		if (this.element != null) {
+			this.id = this.element.getAttribute(ID);
+			this.navigatorExtensionId = this.element.getAttribute(NAVIGATOR_EXTENSION_ID);
+			this.name = this.element.getAttribute(NAME);
+			this.description = this.element.getAttribute(DESCRIPTION);
+			this.viewId = this.element.getAttribute(VIEW_ID);
+			this.enabledByDefault = Boolean.valueOf(this.element.getAttribute(ENABLED_BY_DEFAULT)).booleanValue();
+		}
+	}
+
+	public Properties getProperties() {
+		if (this.properties == null) {
+
+			this.properties = new Properties();
+			if (this.element != null) {
+				IConfigurationElement[] children = this.element.getChildren(PROPERTY);
+				String localName = null;
+				String value = null;
+				for (int i = 0; i < children.length; i++) {
+					localName = children[i].getAttribute(PROPERTY_NAME);
+					value = children[i].getAttribute(PROPERTY_VALUE);
+					this.properties.put(localName, value);
+				}
+			}
+		}
+		return this.properties;
+	}
+
+	/**
+	 * @return Returns the description.
+	 */
+	public String getDescription() {
+		return description;
+	}
+
+	/**
+	 * @return Returns the enabledByDefault.
+	 */
+	public boolean isEnabledByDefault() {
+		return enabledByDefault;
+	}
+
+	/**
+	 * @return Returns the id.
+	 */
+	public String getId() {
+		return id;
+	}
+
+	/**
+	 * @return Returns the name.
+	 */
+	public String getName() {
+		return name;
+	}
+
+	/**
+	 * @return Returns the viewId.
+	 */
+	public String getViewId() {
+		return viewId;
+	}
+
+	/**
+	 * @return Returns the navigatorExtensionId.
+	 */
+	public String getNavigatorExtensionId() {
+		return navigatorExtensionId;
+	}
+
+	public INavigatorExtensionFilter getInstance() {
+		if (instance == null) {
+			if (this.element != null) {
+				try {
+					instance = (INavigatorExtensionFilter) this.element.createExecutableExtension(CLASS_NAME);
+				} catch (CoreException e) {
+					NavigatorPlugin.log(e.toString());
+				}
+			} else if (viewerFilter != null)
+				instance = new NavigatorViewerFilter(viewerFilter);
+
+		}
+		return instance;
+	}
+
+	public String toString() {
+		if (tostring == null)
+			tostring = getClass().getName() + "[id=\"" + getId() + "\", name=\"" + getName() + "\", enabledByDefault=\"" + isEnabledByDefault() + "\"]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+		return tostring;
+	}
+
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see java.lang.Object#equals(java.lang.Object)
+	 */
+	public boolean equals(Object obj) {
+		if (obj instanceof ExtensionFilterDescriptor)
+			return id.equals(((ExtensionFilterDescriptor) obj).id);
+		return false;
+
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/ExtensionFilterProvider.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/ExtensionFilterProvider.java
new file mode 100644
index 0000000..47e0b33
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/ExtensionFilterProvider.java
@@ -0,0 +1,28 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.filters;
+
+import java.util.List;
+
+
+/**
+ * @author mdelder
+ *  
+ */
+public interface ExtensionFilterProvider {
+
+	/**
+	 * 
+	 * @param viewerId
+	 * @return a List of ExtensionFilterDescriptor
+	 */
+	List getExtensionFilterDescriptors(String extensionId, String viewerId);
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/ExtensionFilterRegistryManager.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/ExtensionFilterRegistryManager.java
new file mode 100644
index 0000000..b97910c
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/ExtensionFilterRegistryManager.java
@@ -0,0 +1,83 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/*
+ * Created on Jan 14, 2004
+ * 
+ * To change the template for this generated file go to Window - Preferences - Java - Code Generation - Code and
+ * Comments
+ */
+package org.eclipse.ui.navigator.internal.filters;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author mdelder
+ */
+public class ExtensionFilterRegistryManager {
+
+	private static final ExtensionFilterRegistryManager INSTANCE = new ExtensionFilterRegistryManager();
+
+	private final Map extensionFilterRegistries = new HashMap();
+
+
+	private ExtensionFilterRegistryManager() {
+	}
+
+	public static ExtensionFilterRegistryManager getInstance() {
+		return INSTANCE;
+	}
+
+	public ExtensionFilterViewerRegistry getViewerRegistry(String viewerId) {
+
+		/* The simple case is that the registry has been loaded and is ready to go */
+		ExtensionFilterViewerRegistry registry = (ExtensionFilterViewerRegistry) getExtensionFilterRegistries().get(viewerId);
+		if (registry != null)
+			return registry;
+		/* Otherwise the registry hasn't been loaded yet, so acquire a lock */
+		synchronized (getExtensionFilterRegistries()) {
+			/*
+			 * Ensure that another thread wasn't in the process of initializing the registry for the
+			 * given viewerid
+			 */
+			registry = (ExtensionFilterViewerRegistry) getExtensionFilterRegistries().get(viewerId);
+			/* If the registry is still null, then we create, read, and add to the registry map */
+			if (registry == null) {
+				try {
+					registry = new ExtensionFilterViewerRegistry(viewerId);
+					getExtensionFilterRegistries().put(viewerId, registry);
+				} catch (RuntimeException e) {
+					e.printStackTrace();
+				} catch (NoClassDefFoundError ncdfe) {
+					ncdfe.printStackTrace();
+				}
+			}
+
+		}
+		return registry;
+	}
+
+	public void disposeViewerRegistry(String viewerId) {
+		synchronized (getExtensionFilterRegistries()) {
+			getExtensionFilterRegistries().remove(viewerId);
+		}
+	}
+
+	/**
+	 * @return Returns the extensionFilterRegistries.
+	 */
+	protected Map getExtensionFilterRegistries() {
+		return extensionFilterRegistries;
+	}
+
+
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/ExtensionFilterViewerRegistry.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/ExtensionFilterViewerRegistry.java
new file mode 100644
index 0000000..2331581
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/ExtensionFilterViewerRegistry.java
@@ -0,0 +1,191 @@
+/*
+ * Created on Nov 21, 2004
+ *
+ * TODO To change the template for this generated file go to
+ * Window - Preferences - Java - Code Style - Code Templates
+ */
+package org.eclipse.ui.navigator.internal.filters;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.ui.navigator.internal.NavigatorPlugin;
+import org.eclipse.ui.navigator.internal.extensions.RegistryReader;
+
+/**
+ */
+public class ExtensionFilterViewerRegistry extends RegistryReader {
+
+	public static final String NAVIGATOR_FILTER = "commonFilter"; //$NON-NLS-1$
+
+	/* Associates this ExtensionFilterRegistry with a specific Common Navigator instance */
+	private final String viewerId;
+
+	/*
+	 * Stores the available navigator filters for the viewer with the viewerid below
+	 * navigatorExtensionId (String) to FilterDescriptor pairs
+	 */
+	private final Map navigatorFilters = new HashMap();
+
+	private final ExtensionFilterActivationManager activationManager;
+
+	/*
+	 * Provides a coherent view of all filters provided by third party viewers. The registry allows
+	 * the Common Navigator instance to absorb the complete set of existing filters from other
+	 * viewers.
+	 */
+	private final ThirdPartyFilterProviderRegistry thirdPartyFilterProviderRegistry = new ThirdPartyFilterProviderRegistry();
+
+	public ExtensionFilterViewerRegistry(String viewerId) {
+		super(NavigatorPlugin.PLUGIN_ID, NAVIGATOR_FILTER); //$NON-NLS-1$ 
+		this.viewerId = viewerId;
+		activationManager = new ExtensionFilterActivationManager(this.viewerId, this);
+		readRegistry();
+		initializeActivations();
+	}
+
+	/**
+	 *  
+	 */
+	private void initializeActivations() {
+		String navigatorExtensionId = null;
+		for (Iterator keysItr = navigatorFilters.keySet().iterator(); keysItr.hasNext();) {
+			navigatorExtensionId = (String) keysItr.next();
+			getActivationManager().revertFilterActivations(navigatorExtensionId);
+		}
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.navigator.filters.RegistryReader#readElement(org.eclipse.core.runtime.IConfigurationElement)
+	 */
+	public boolean readElement(IConfigurationElement element) {
+		if (element.getName().equals(NAVIGATOR_FILTER)) {
+			ExtensionFilterDescriptor descriptor = new ExtensionFilterDescriptor(element);
+			getExtensionFilterDescriptors(descriptor.getNavigatorExtensionId()).add(descriptor);
+			return true;
+		}
+		return false;
+	}
+
+	public final ExtensionFilterDescriptor[] getActiveDescriptors(String navigatorExtensionId) {
+
+		List availableDescriptors = getExtensionFilterDescriptors(navigatorExtensionId);
+		List activeDescriptors = new ArrayList();
+		for (int i = 0; i < availableDescriptors.size(); i++) {
+			if (getActivationManager().isFilterActive((ExtensionFilterDescriptor) availableDescriptors.get(i)))
+				activeDescriptors.add(availableDescriptors.get(i));
+		}
+		ExtensionFilterDescriptor[] descriptorsArray = new ExtensionFilterDescriptor[activeDescriptors.size()];
+		activeDescriptors.toArray(descriptorsArray);
+		return descriptorsArray;
+	}
+
+	public final ExtensionFilterDescriptor[] getAllDescriptors(String navigatorExtensionId) {
+
+		List descriptors = getExtensionFilterDescriptors(navigatorExtensionId);
+		ExtensionFilterDescriptor[] descriptorsArray = new ExtensionFilterDescriptor[descriptors.size()];
+		descriptors.toArray(descriptorsArray);
+		return descriptorsArray;
+	}
+
+	protected final List getExtensionFilterDescriptors(String navigatorExtensionId) {
+		List descriptors = (List) getNavigatorFilters().get(navigatorExtensionId);
+
+		if (descriptors != null)
+			return descriptors;
+		synchronized (getNavigatorFilters()) {
+			descriptors = (List) getNavigatorFilters().get(navigatorExtensionId);
+			if (descriptors == null) {
+				descriptors = new ArrayList();
+				initializeThirdPartyFilterProviders(navigatorExtensionId, descriptors);
+				getNavigatorFilters().put(navigatorExtensionId, descriptors);
+			}
+		}
+		return descriptors;
+	}
+
+	public void clearCachedNavigatorFilters() {
+
+		printFilters();
+		navigatorFilters.clear();
+		readRegistry();
+		printFilters();
+	}
+
+	/**
+	 * @return Returns the viewerId.
+	 */
+	protected String getViewerId() {
+		return viewerId;
+	}
+
+	/**
+	 * @return Returns the navigatorFilters.
+	 */
+	protected Map getNavigatorFilters() {
+		return navigatorFilters;
+	}
+
+
+	/**
+	 * @return Returns the thirdPartyFilterProviderRegistry.
+	 */
+	protected ThirdPartyFilterProviderRegistry getThirdPartyFilterProviderRegistry() {
+		return thirdPartyFilterProviderRegistry;
+	}
+
+	/**
+	 * @return Returns the activationManager.
+	 */
+	public ExtensionFilterActivationManager getActivationManager() {
+		return activationManager;
+	}
+
+	/**
+	 * @param navigatorExtensionId
+	 * @param descriptors
+	 */
+	private void initializeThirdPartyFilterProviders(String navigatorExtensionId, List descriptors) {
+
+		List thirdPartyExtensionFilterProviders = getThirdPartyFilterProviderRegistry().getThirdPartyFilterProviders(navigatorExtensionId);
+		ExtensionFilterProvider provider = null;
+		for (int i = 0; i < thirdPartyExtensionFilterProviders.size(); i++) {
+			try {
+				provider = ((ThirdPartyFilterProviderRegistry.ThirdPartyFilterProviderDescriptor) thirdPartyExtensionFilterProviders.get(i)).createProvider();
+				if (provider != null)
+					descriptors.addAll(provider.getExtensionFilterDescriptors(navigatorExtensionId, this.viewerId));
+			} catch (RuntimeException e) {
+				// TODO Log this more appropriately
+				System.err.println("Problem loading a Third Party Filter Extension. Continuing anyway.");
+				e.printStackTrace();
+			} catch (NoClassDefFoundError ncdfe) {
+				System.err.println("Problem loading a Third Party Filter Extension. Continuing anyway.");
+				ncdfe.printStackTrace();
+			}
+		}
+
+	}
+
+	/**
+	 *  
+	 */
+	private void printFilters() {
+
+		//		System.out.println(getClass().getName());
+		//		Object key = null;
+		//		Iterator keys = getNavigatorFilters().keySet().iterator();
+		//		while (keys.hasNext()) {
+		//			key = keys.next();
+		//			System.out.println("Key: " + key);
+		//			ExtensionFilterDescriptor[] filters = getAllDescriptors(key.toString());
+		//			for (int i = 0; i < filters.length; i++)
+		//				System.out.println("\t" + filters[i]);
+		//		}
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/NavigatorExtensionFilter.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/NavigatorExtensionFilter.java
new file mode 100644
index 0000000..17fdd9f
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/NavigatorExtensionFilter.java
@@ -0,0 +1,48 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.filters;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.eclipse.ui.navigator.CommonViewer;
+import org.eclipse.ui.navigator.INavigatorExtensionFilter;
+
+
+
+/**
+ * @author mdelder
+ *  
+ */
+public abstract class NavigatorExtensionFilter implements INavigatorExtensionFilter {
+
+	/**
+	 *  
+	 */
+	public NavigatorExtensionFilter() {
+		super();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.navigator.filters.INavigatorExtensionFilter#select(org.eclipse.wst.common.navigator.internal.views.navigator.INavigatorExtensionSite,
+	 *      java.lang.Object, java.lang.Object[])
+	 */
+	public Object[] select(CommonViewer aViewer, Object aParentElement, Object[] theElements) {
+		List results = new ArrayList();
+		for (int i = 0; i < theElements.length; i++)
+			if (select(aViewer, aParentElement, theElements[i]))
+				results.add(theElements[i]);
+		return results.toArray();
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/NavigatorViewerFilter.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/NavigatorViewerFilter.java
new file mode 100644
index 0000000..7a43af8
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/NavigatorViewerFilter.java
@@ -0,0 +1,49 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.navigator.internal.filters;
+
+import org.eclipse.jface.viewers.ViewerFilter;
+import org.eclipse.ui.navigator.CommonViewer;
+import org.eclipse.ui.navigator.INavigatorExtensionFilter;
+
+
+/**
+ * @author mdelder
+ *  
+ */
+public class NavigatorViewerFilter extends NavigatorExtensionFilter implements INavigatorExtensionFilter {
+
+	private final ViewerFilter viewerFilter;
+
+	/**
+	 *  
+	 */
+	public NavigatorViewerFilter(ViewerFilter aViewerFilter) {
+		super();
+		viewerFilter = aViewerFilter;
+	}
+
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.navigator.filters.INavigatorExtensionFilter#select(org.eclipse.wst.common.navigator.internal.views.navigator.INavigatorExtensionSite,
+	 *      java.lang.Object, java.lang.Object)
+	 */
+	public boolean select(CommonViewer aViewer, Object aParentElement, Object anElement) {
+		if (viewerFilter != null)
+			return viewerFilter.select(aViewer, aParentElement, anElement);
+		return true;
+	}
+
+
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/SelectFiltersAction.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/SelectFiltersAction.java
new file mode 100644
index 0000000..239eb77
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/SelectFiltersAction.java
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+/*
+ * Created on Feb 9, 2004
+ *
+ */
+package org.eclipse.ui.navigator.internal.filters;
+
+import org.eclipse.jface.action.Action;
+import org.eclipse.jface.action.IAction;
+import org.eclipse.ui.navigator.CommonNavigator;
+import org.eclipse.ui.navigator.internal.NavigatorMessages;
+
+/**
+ * 
+ * <p>
+ * The following class is experimental until fully documented.
+ * </p>
+ *  
+ */
+public class SelectFiltersAction extends Action implements IAction {
+
+	private final CommonNavigator commonNavigator;
+
+	public SelectFiltersAction(CommonNavigator aCommonNavigator) {
+		super(NavigatorMessages.getString("SelectFiltersActionDelegate.0")); //$NON-NLS-1$
+		setToolTipText(NavigatorMessages.getString("SelectFiltersActionDelegate.1")); //$NON-NLS-1$
+		commonNavigator = aCommonNavigator;
+	}
+
+	public void run() {
+		CommonFilterSelectionDialog filterSelectionDialog = new CommonFilterSelectionDialog(commonNavigator);
+		filterSelectionDialog.open();
+	}
+
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/ThirdPartyFilterProviderRegistry.java b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/ThirdPartyFilterProviderRegistry.java
new file mode 100644
index 0000000..f84e733
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/internal/filters/ThirdPartyFilterProviderRegistry.java
@@ -0,0 +1,107 @@
+/*
+ * Created on Nov 21, 2004
+ * 
+ * TODO To change the template for this generated file go to Window - Preferences - Java - Code
+ * Style - Code Templates
+ */
+package org.eclipse.ui.navigator.internal.filters;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
+import org.eclipse.ui.navigator.internal.NavigatorMessages;
+import org.eclipse.ui.navigator.internal.NavigatorPlugin;
+import org.eclipse.ui.navigator.internal.extensions.RegistryReader;
+
+
+class ThirdPartyFilterProviderRegistry extends RegistryReader {
+
+	protected static final String THIRD_PARTY_FILTER_PROVIDER = "thirdPartyFilterProvider"; //$NON-NLS-1$
+
+	protected static final String ATT_NAVIGATOR_EXTENSION_ID = "navigatorExtensionId"; //$NON-NLS-1$
+
+	protected static final String ATT_CLASS = "class"; //$NON-NLS-1$
+
+	protected static final String ATT_VIEWER_ID = "viewerId"; //$NON-NLS-1$
+
+	class ThirdPartyFilterProviderDescriptor {
+
+		public final String navigatorExtensionId;
+
+		public final String viewerId;
+
+		public final IConfigurationElement element;
+
+		protected ExtensionFilterProvider provider;
+
+		public ThirdPartyFilterProviderDescriptor(String navigatorExtensionId, IConfigurationElement element) {
+			this.navigatorExtensionId = navigatorExtensionId;
+			this.element = element;
+			this.viewerId = this.element.getAttribute(ATT_VIEWER_ID);
+		}
+
+		public ExtensionFilterProvider createProvider() {
+			try {
+				if (provider == null && element != null)
+					provider = (ExtensionFilterProvider) element.createExecutableExtension(ATT_CLASS);
+
+			} catch (CoreException e) {
+				e.printStackTrace();
+			}
+			return provider;
+		}
+	}
+
+	private final Map thirdPartyFilterProviders = new HashMap();
+
+	public ThirdPartyFilterProviderRegistry() {
+		super(NavigatorPlugin.PLUGIN_ID, THIRD_PARTY_FILTER_PROVIDER);
+		readRegistry();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.eclipse.wst.common.navigator.internal.views.RegistryReader#readElement(org.eclipse.core.runtime.IConfigurationElement)
+	 */
+	public boolean readElement(IConfigurationElement element) {
+		if (THIRD_PARTY_FILTER_PROVIDER.equals(element.getName())) {
+			String navigatorExtensionId = element.getAttribute(ATT_NAVIGATOR_EXTENSION_ID);
+
+			if (navigatorExtensionId != null) {
+				addThirdPartyFilterProviders(new ThirdPartyFilterProviderDescriptor(navigatorExtensionId, element));
+				return true;
+			}
+			NavigatorPlugin.log(NavigatorMessages.getString("ExtensionFilterRegistry.16")); //$NON-NLS-1$
+
+		}
+		return false;
+	}
+
+	protected void addThirdPartyFilterProviders(ThirdPartyFilterProviderDescriptor descriptor) {
+		getThirdPartyFilterProviders(descriptor.navigatorExtensionId).add(descriptor);
+	}
+
+	public List getThirdPartyFilterProviders(String navigatorExtensionId) {
+		List result = (List) getThirdPartyFilterProviders().get(navigatorExtensionId);
+		if (result != null)
+			return result;
+		synchronized (getThirdPartyFilterProviders()) {
+			result = (List) getThirdPartyFilterProviders().get(navigatorExtensionId);
+			if (result == null)
+				getThirdPartyFilterProviders().put(navigatorExtensionId, (result = new ArrayList()));
+		}
+		return result;
+	}
+
+	/**
+	 * @return Returns the thirdPartyFilterProviders.
+	 */
+	protected Map getThirdPartyFilterProviders() {
+		return thirdPartyFilterProviders;
+	}
+}
\ No newline at end of file
diff --git a/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/package.xml b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/package.xml
new file mode 100644
index 0000000..a43be03
--- /dev/null
+++ b/bundles/org.eclipse.ui.navigator/src-navigator/org/eclipse/ui/navigator/package.xml
@@ -0,0 +1,71 @@
+o<?xml version="1.0" encoding="UTF-8"?>
+<html> 
+	<head>
+		<!--  Escape to the root of your source folder  -->
+		<meta
+			name="root"
+			content="../../../../../" />
+		<title>wtp common navigator api</title>
+	</head>
+
+	<body>
+		<abstract>Provides the foundation of the Common Navigator. The Common Navigator 
+				is a framework for multiple providers to intermingle heterogeneous content.
+		</abstract>
+		<p>The Common Navigator allows various types of content to be
+			added to the same viewer in an extensible and transparent
+			manner.
+		</p>
+		<img src="../../../../../overview/framework-overview.jpg" caption="The Core API available to consumers." />
+		<p>
+			Clients that wish to add content to an existing Common
+			Navigator require the components described by Figure 2. The
+			<b>Logical Enablement Clause</b>
+			describes when the extension should be invoked using a
+			generic Action Expression.
+		</p>
+		<img src="../../../../../overview/navigator_logical_extension.jpg" 
+			 caption="A logical content extension for the Common Navigator." />
+
+		<p>
+			When the Common Navigator finds an object for which the
+			extension is interested in supplying children, the extension
+			is loaded and the
+			<code>org.eclipse.jface.viewers.ITreeContentProvider</code>
+			is requested to supply children for the object. Then, the
+			<code>org.eclipse.jface.viewers.ILabelProvider</code>
+			is invoked to supply image and text to display when rendering
+			the object in the viewer. Some clients may choose to
+			implement
+			<code>
+				org.eclipse.wst.common.navigator.views.ICommonLabelProvider
+			</code>
+			for the extra information that will be supplied to
+			implementors of that interface. However, clients are only
+			required to implement
+			<code>ILabelProvider</code>
+			.
+		</p>
+		<p>
+			The
+			<code>org.eclipse.jface.viewers.IOpenListener</code>
+			will be invoked to handle user request to open objects that
+			the extension is interested in (as specified in the
+			<b>Logical Enablement Expression</b>
+			). Like
+			<code>ICommonLabelProvider</code>
+			, clients may choose to implement
+			<code>
+				org.eclipse.wst.common.navigator.views.ICommonOpenListener
+			</code>
+			for tighter integration with the Common Navigator.
+		</p>
+		<p>
+			The
+			<code>org.eclipse.jface.viewers.ICommonActionProvider</code>
+			will have opportunities at appropriate times to contribute to
+			the popup context menu and the IActionBars (used for
+			retargetable actions).
+		</p>
+	</body>
+</html>
diff --git a/examples/org.eclipse.ui.examples.navigator/.project b/examples/org.eclipse.ui.examples.navigator/.project
index 959d32c..ea44265 100644
--- a/examples/org.eclipse.ui.examples.navigator/.project
+++ b/examples/org.eclipse.ui.examples.navigator/.project
@@ -5,7 +5,18 @@
 	<projects>
 	</projects>
 	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
 	</buildSpec>
 	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
 	</natures>
 </projectDescription>
diff --git a/examples/org.eclipse.ui.examples.navigator/META-INF/MANIFEST.MF b/examples/org.eclipse.ui.examples.navigator/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..1f32db4
--- /dev/null
+++ b/examples/org.eclipse.ui.examples.navigator/META-INF/MANIFEST.MF
@@ -0,0 +1,13 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Navigator
+Bundle-SymbolicName: org.eclipse.ui.examples.navigator; singleton:=true
+Bundle-Version: 1.0.0
+Bundle-Localization: plugin
+Require-Bundle: org.eclipse.core.resources,
+ org.eclipse.core.runtime,
+ org.eclipse.ui.navigator,
+ org.eclipse.ui.views,
+ org.eclipse.ui,
+ org.eclipse.ui.ide,
+ org.eclipse.ui.workbench
diff --git a/examples/org.eclipse.ui.examples.navigator/build.properties b/examples/org.eclipse.ui.examples.navigator/build.properties
new file mode 100644
index 0000000..8ad51cb
--- /dev/null
+++ b/examples/org.eclipse.ui.examples.navigator/build.properties
@@ -0,0 +1,2 @@
+bin.includes = META-INF/,\
+               plugin.xml
diff --git a/examples/org.eclipse.ui.examples.navigator/plugin.xml b/examples/org.eclipse.ui.examples.navigator/plugin.xml
new file mode 100644
index 0000000..cf1d540
--- /dev/null
+++ b/examples/org.eclipse.ui.examples.navigator/plugin.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<plugin>
+ 
+   <extension
+         point="org.eclipse.ui.views">
+      <view
+            class="org.eclipse.ui.navigator.CommonNavigator"
+            id="org.eclipse.ui.examples.navigator.example1"
+            name="Common Navigator Example"/>
+   </extension>
+   <extension
+         point="org.eclipse.ui.navigator.navigatorContent">
+      <navigatorContent
+            contentProvider="org.eclipse.ui.model.WorkbenchContentProvider"
+            enabledByDefault="true"
+            id="org.eclipse.ui.examples.navigator.example1"
+            labelProvider="org.eclipse.ui.model.WorkbenchLabelProvider"
+            name="Example Content Extension"
+            priority="normal">
+         <enablement>
+            <objectClass
+                  adaptable="true"
+                  name="org.eclipse.core.resources.IResource"/>
+         </enablement>
+      </navigatorContent>
+   </extension> 
+</plugin>
diff --git a/tests/org.eclipse.ui.tests.navigator/.classpath b/tests/org.eclipse.ui.tests.navigator/.classpath
new file mode 100644
index 0000000..11f385e
--- /dev/null
+++ b/tests/org.eclipse.ui.tests.navigator/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="navigator-test-src"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/tests/org.eclipse.ui.tests.navigator/.project b/tests/org.eclipse.ui.tests.navigator/.project
new file mode 100644
index 0000000..89770ed
--- /dev/null
+++ b/tests/org.eclipse.ui.tests.navigator/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.ui.tests.navigator</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/tests/org.eclipse.ui.tests.navigator/META-INF/MANIFEST.MF b/tests/org.eclipse.ui.tests.navigator/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..74ce878
--- /dev/null
+++ b/tests/org.eclipse.ui.tests.navigator/META-INF/MANIFEST.MF
@@ -0,0 +1,14 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Common Navigator Tests
+Bundle-SymbolicName: org.eclipse.ui.tests.navigator; singleton:=true
+Bundle-Version: 1.0.0
+Bundle-Localization: plugin
+Require-Bundle: org.eclipse.core.resources,
+ org.eclipse.core.runtime,
+ org.eclipse.ui.navigator,
+ org.eclipse.ui.views,
+ org.eclipse.ui,
+ org.eclipse.ui.ide,
+ org.eclipse.ui.workbench,
+ org.junit
diff --git a/tests/org.eclipse.ui.tests.navigator/build.properties b/tests/org.eclipse.ui.tests.navigator/build.properties
new file mode 100644
index 0000000..8ad51cb
--- /dev/null
+++ b/tests/org.eclipse.ui.tests.navigator/build.properties
@@ -0,0 +1,2 @@
+bin.includes = META-INF/,\
+               plugin.xml
diff --git a/tests/org.eclipse.ui.tests.navigator/navigator-test-src/org/eclipse/ui/tests/navigator/DisplayHelper.java b/tests/org.eclipse.ui.tests.navigator/navigator-test-src/org/eclipse/ui/tests/navigator/DisplayHelper.java
new file mode 100644
index 0000000..fc9959b
--- /dev/null
+++ b/tests/org.eclipse.ui.tests.navigator/navigator-test-src/org/eclipse/ui/tests/navigator/DisplayHelper.java
@@ -0,0 +1,222 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.tests.navigator;
+
+import org.eclipse.swt.widgets.Display;
+
+/**
+ * Runs the event loop of the given display until {@link #condition()} becomes
+ * <code>true</code> or no events have occurred for the supplied timeout.
+ * Between running the event loop, {@link Display#sleep()} is called.
+ * <p>
+ * There is a caveat: the given timeouts must be long enough that the calling
+ * thread can enter <code>Display.sleep()</code> before the timeout elapses,
+ * otherwise, the waiter may time out before <code>sleep</code> is called and
+ * the sleeping thread may never be waken up.
+ * </p>
+ * 
+ * @since 3.1
+ */
+public abstract class DisplayHelper {
+	/**
+	 * Creates a new instance.
+	 */
+	protected DisplayHelper() {
+	}
+	
+	/**
+	 * Until {@link #condition()} becomes <code>true</code> or the timeout
+	 * elapses, call {@link Display#sleep()} and run the event loop.
+	 * <p>
+	 * If <code>timeout &lt; 0</code>, the event loop is never driven and
+	 * only the condition is checked. If <code>timeout == 0</code>, the event
+	 * loop is driven at most once, but <code>Display.sleep()</code> is never
+	 * invoked.
+	 * </p>
+	 * 
+	 * @param display the display to run the event loop of
+	 * @param timeout the timeout in milliseconds
+	 * @return <code>true</code> if the condition became <code>true</code>,
+	 *         <code>false</code> if the timeout elapsed
+	 */
+	public final boolean waitForCondition(Display display, long timeout) {
+		// if the condition already holds, succeed
+		if (condition())
+			return true;
+		
+		if (timeout < 0)
+			return false;
+		
+		// if driving the event loop once makes the condition hold, succeed
+		// without spawning a thread.
+		driveEventQueue(display);
+		if (condition())
+			return true;
+		
+		// if the timeout is negative or zero, fail
+		if (timeout == 0)
+			return false;
+
+		// repeatedly sleep until condition becomes true or timeout elapses
+		DisplayWaiter waiter= new DisplayWaiter(display);
+		DisplayWaiter.Timeout timeoutState= waiter.start(timeout);
+		boolean condition;
+		try {
+			do {
+				if (display.sleep())
+					driveEventQueue(display);
+				condition= condition();
+			} while (!condition && !timeoutState.hasTimedOut());
+		} finally {
+			waiter.stop();
+		}
+		return condition;
+	}
+	
+	/**
+	 * Call {@link Display#sleep()} and run the event loop until the given
+	 * timeout has elapsed.
+	 * <p>
+	 * If <code>timeout &lt; 0</code>, nothing happens. If
+	 * <code>timeout == 0</code>, the event loop is driven exactly once, but
+	 * <code>Display.sleep()</code> is never invoked.
+	 * </p>
+	 * 
+	 * @param display the display to run the event loop of
+	 * @param millis the timeout in milliseconds
+	 */
+	public static void sleep(Display display, long millis) {
+		new DisplayHelper() {
+			public boolean condition() {
+				return false;
+			}
+		}.waitForCondition(display, millis);
+	}
+	
+	/**
+	 * Call {@link Display#sleep()} and run the event loop once if
+	 * <code>sleep</code> returns before the timeout elapses. Returns
+	 * <code>true</code> if any events were processed, <code>false</code> if
+	 * not.
+	 * <p>
+	 * If <code>timeout &lt; 0</code>, nothing happens and false is returned.
+	 * If <code>timeout == 0</code>, the event loop is driven exactly once,
+	 * but <code>Display.sleep()</code> is never invoked.
+	 * </p>
+	 * 
+	 * @param display the display to run the event loop of
+	 * @param timeout the timeout in milliseconds
+	 * @return <code>true</code> if any event was taken off the event queue,
+	 *         <code>false</code> if not
+	 */
+	public static boolean runEventLoop(Display display, long timeout) {
+		if (timeout < 0)
+			return false;
+		
+		if (timeout == 0)
+			return driveEventQueue(display);
+		
+		// repeatedly sleep until condition becomes true or timeout elapses
+		DisplayWaiter waiter= new DisplayWaiter(display);
+		DisplayWaiter.Timeout timeoutState= waiter.start(timeout);
+		boolean events= false;
+		if (display.sleep() && !timeoutState.hasTimedOut()) {
+			driveEventQueue(display);
+			events= true;
+		}
+		waiter.stop();
+		return events;
+	}
+	
+	/**
+	 * The condition which has to be met in order for
+	 * {@link #waitForCondition(Display, int)} to return before the timeout
+	 * elapses.
+	 * 
+	 * @return <code>true</code> if the condition is met, <code>false</code>
+	 *         if the event loop should be driven some more
+	 */
+	protected abstract boolean condition();
+
+	/**
+	 * Runs the event loop on the given display.
+	 * 
+	 * @param display the display
+	 * @return if <code>display.readAndDispatch</code> returned
+	 *         <code>true</code> at least once
+	 */
+	private static boolean driveEventQueue(Display display) {
+		boolean events= false;
+		while (display.readAndDispatch()) {
+			events= true;
+		}
+		return events;
+	}
+
+	/**
+	 * Until {@link #condition()} becomes <code>true</code> or the timeout
+	 * elapses, call {@link Display#sleep()} and run the event loop.
+	 * <p>
+	 * If <code>timeout &lt; 0</code>, the event loop is never driven and
+	 * only the condition is checked. If <code>timeout == 0</code>, the event
+	 * loop is driven at most once, but <code>Display.sleep()</code> is never
+	 * invoked.
+	 * </p>
+	 * <p>
+	 * The condition gets rechecked every <code>interval</code> milliseconds, even
+	 * if no events were read from the queue.
+	 * </p>
+	 * 
+	 * @param display the display to run the event loop of
+	 * @param timeout the timeout in milliseconds
+	 * @param interval the interval to re-check the condition in milliseconds
+	 * @return <code>true</code> if the condition became <code>true</code>,
+	 *         <code>false</code> if the timeout elapsed
+	 */
+	public final boolean waitForCondition(Display display, long timeout, long interval) {
+		// if the condition already holds, succeed
+		if (condition())
+			return true;
+		
+		if (timeout < 0)
+			return false;
+		
+		// if driving the event loop once makes the condition hold, succeed
+		// without spawning a thread.
+		driveEventQueue(display);
+		if (condition())
+			return true;
+		
+		// if the timeout is negative or zero, fail
+		if (timeout == 0)
+			return false;
+	
+		// repeatedly sleep until condition becomes true or timeout elapses
+		DisplayWaiter waiter= new DisplayWaiter(display, true);
+		long currentTimeMillis= System.currentTimeMillis();
+		long finalTimeout= timeout + currentTimeMillis;
+		if (finalTimeout < currentTimeMillis)
+			finalTimeout= Long.MAX_VALUE;
+		boolean condition;
+		try {
+			do {
+				waiter.restart(interval);
+				if (display.sleep())
+					driveEventQueue(display);
+				condition= condition();
+			} while (!condition && finalTimeout > System.currentTimeMillis());
+		} finally {
+			waiter.stop();
+		}
+		return condition;
+	}
+
+}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.navigator/navigator-test-src/org/eclipse/ui/tests/navigator/DisplayWaiter.java b/tests/org.eclipse.ui.tests.navigator/navigator-test-src/org/eclipse/ui/tests/navigator/DisplayWaiter.java
new file mode 100644
index 0000000..d1a0f2d
--- /dev/null
+++ b/tests/org.eclipse.ui.tests.navigator/navigator-test-src/org/eclipse/ui/tests/navigator/DisplayWaiter.java
@@ -0,0 +1,400 @@
+package org.eclipse.ui.tests.navigator;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import junit.framework.Assert;
+
+import org.eclipse.swt.widgets.Display;
+
+/**
+ * Implements the thread that will wait for the timeout and wake up the display
+ * so it does not wait forever. The thread may be restarted after it was stopped
+ * or timed out.
+ * 
+ * @since 3.1
+ */
+final class DisplayWaiter {
+	/**
+	 * Timeout state of a display waiter thread.
+	 */
+	public final class Timeout {
+		boolean fTimeoutState= false;
+		/**
+		 * Returns <code>true</code> if the timeout has been reached,
+		 * <code>false</code> if not.
+		 * 
+		 * @return <code>true</code> if the timeout has been reached,
+		 *         <code>false</code> if not
+		 */
+		public boolean hasTimedOut() {
+			synchronized (fMutex) {
+				return fTimeoutState;
+			}
+		}
+		void setTimedOut(boolean timedOut) {
+			fTimeoutState= timedOut;
+		}
+		Timeout(boolean initialState) {
+			fTimeoutState= initialState;
+		}
+	}
+	
+	// configuration
+	private final Display fDisplay;
+	private final Object fMutex= new Object();
+	private final boolean fKeepRunningOnTimeout;
+	
+	/* State -- possible transitions:
+	 * 
+	 * STOPPED   -> RUNNING
+	 * RUNNING   -> STOPPED
+	 * RUNNING   -> IDLE
+	 * IDLE      -> RUNNING
+	 * IDLE      -> STOPPED
+	 */
+	private static final int RUNNING= 1 << 1;
+	private static final int STOPPED= 1 << 2;
+	private static final int IDLE= 1 << 3;
+	
+	/** The current state. */
+	private int fState;
+	/** The time in milliseconds (see Date) that the timeout will occur. */
+	private long fNextTimeout;
+	/** The thread. */
+	private Thread fCurrentThread;
+	/** The timeout state of the current thread. */
+	private Timeout fCurrentTimeoutState;
+
+	/**
+	 * Creates a new instance on the given display and timeout.
+	 * 
+	 * @param display the display to run the event loop of
+	 */
+	public DisplayWaiter(Display display) {
+		this(display, false);
+	}
+	
+	/**
+	 * Creates a new instance on the given display and timeout.
+	 * 
+	 * @param display the display to run the event loop of
+	 * @param keepRunning <code>true</code> if the thread should be kept
+	 *        running after timing out
+	 */
+	public DisplayWaiter(Display display, boolean keepRunning) {
+		Assert.assertNotNull(display);
+		fDisplay= display;
+		fState= STOPPED;
+		fKeepRunningOnTimeout= keepRunning;
+	}
+	
+	/**
+	 * Starts the timeout thread if it is not currently running. Nothing happens
+	 * if a thread is already running.
+	 * 
+	 * @param delay the delay from now in milliseconds
+	 * @return the timeout state which can be queried for its timed out status
+	 */
+	public Timeout start(long delay) {
+		Assert.assertTrue(delay > 0);
+		synchronized (fMutex) {
+			switch (fState) {
+				case STOPPED:
+					startThread();
+					setNextTimeout(delay);
+					break;
+				case IDLE:
+					unhold();
+					setNextTimeout(delay);
+					break;
+			}
+			
+			return fCurrentTimeoutState;
+		}
+	}
+
+	/**
+	 * Sets the next timeout to <em>current time</em> plus <code>delay</code>.
+	 * 
+	 * @param delay the delay until the next timeout occurs in milliseconds from
+	 *        now
+	 */
+	private void setNextTimeout(long delay) {
+		long currentTimeMillis= System.currentTimeMillis();
+		long next= currentTimeMillis + delay;
+		if (next > currentTimeMillis)
+			fNextTimeout= next;
+		else
+			fNextTimeout= Long.MAX_VALUE;
+	}
+	
+	/**
+	 * Starts the thread if it is not currently running; resets the timeout if
+	 * it is.
+	 * 
+	 * @param delay the delay from now in milliseconds
+	 * @return the timeout state which can be queried for its timed out status
+	 */
+	public Timeout restart(long delay) {
+		Assert.assertTrue(delay > 0);
+		synchronized (fMutex) {
+			switch (fState) {
+				case STOPPED:
+					startThread();
+					break;
+				case IDLE:
+					unhold();
+					break;
+			}
+			setNextTimeout(delay);
+
+			return fCurrentTimeoutState;
+		}
+	}
+
+	/**
+	 * Stops the thread if it is running. If not, nothing happens. Another
+	 * thread may be started by calling {@link #start(long)} or
+	 * {@link #restart(long)}.
+	 */
+	public void stop() {
+		synchronized (fMutex) {
+			if (tryTransition(RUNNING | IDLE, STOPPED))
+				fMutex.notifyAll();
+		}
+	}
+	
+	/**
+	 * Puts the reaper thread on hold but does not stop it. It may be restarted
+	 * by calling {@link #start(long)} or {@link #restart(long)}.
+	 */
+	public void hold() {
+		synchronized (fMutex) {
+			// nothing to do if there is no thread
+			if (tryTransition(RUNNING, IDLE))
+				fMutex.notifyAll();
+		}
+	}
+
+	/**
+	 * Transition to <code>RUNNING</code> and clear the timed out flag. Assume
+	 * current state is <code>IDLE</code>.
+	 */
+	private void unhold() {
+		checkedTransition(IDLE, RUNNING);
+		fCurrentTimeoutState= new Timeout(false);
+		fMutex.notifyAll();
+	}
+		
+	/**
+	 * Start the thread. Assume the current state is <code>STOPPED</code>.
+	 */
+	private void startThread() {
+		checkedTransition(STOPPED, RUNNING);
+		fCurrentTimeoutState= new Timeout(false);
+		fCurrentThread= new Thread() {
+			/**
+			 * Exception thrown when a thread notices that it has been stopped
+			 * and a new thread has been started.
+			 */
+			final class ThreadChangedException extends Exception {
+				private static final long serialVersionUID= 1L;
+			}
+
+			/*
+			 * @see java.lang.Runnable#run()
+			 */
+			public void run() {
+				try {
+					run2();
+				} catch (InterruptedException e) {
+					// ignore and end the thread - we never interrupt ourselves,
+					// so it must be an external entity that interrupted us
+					Logger.global.log(Level.FINE, "", e);
+				} catch (ThreadChangedException e) {
+					// the thread was stopped and restarted before we got out
+					// of a wait - we're no longer used
+					// we might have been notified instead of the current thread,
+					// so wake it up
+					Logger.global.log(Level.FINE, "", e);
+					synchronized (fMutex) {
+						fMutex.notifyAll();
+					}
+				}
+			}
+			
+			/**
+			 * Runs the thread.
+			 * 
+			 * @throws InterruptedException if the thread was interrupted
+			 * @throws ThreadChangedException if the thread changed
+			 */
+			private void run2() throws InterruptedException, ThreadChangedException {
+				synchronized (fMutex) {
+					checkThread();
+					tryHold(); // wait / potential state change
+					assertStates(STOPPED | RUNNING);
+					
+					while (isState(RUNNING)) {
+						waitForTimeout(); // wait / potential state change
+						
+						if (isState(RUNNING))
+							timedOut(); // state change
+						assertStates(STOPPED | IDLE);
+						
+						tryHold(); // wait / potential state change
+						assertStates(STOPPED | RUNNING);
+					}
+					assertStates(STOPPED);
+				}
+			}
+
+			/**
+			 * Check whether the current thread is this thread, throw an
+			 * exception otherwise.
+			 * 
+			 * @throws ThreadChangedException if the current thread changed
+			 */
+			private void checkThread() throws ThreadChangedException {
+				if (fCurrentThread != this)
+					throw new ThreadChangedException();
+			}
+
+			/**
+			 * Waits until the next timeout occurs.
+			 * 
+			 * @throws InterruptedException if the thread was interrupted
+			 * @throws ThreadChangedException if the thread changed
+			 */
+			private void waitForTimeout() throws InterruptedException, ThreadChangedException {
+				long delta;
+				while (isState(RUNNING) && (delta = fNextTimeout - System.currentTimeMillis()) > 0) {
+					delta= Math.max(delta, 50); // wait at least 50ms in order to avoid timing out before the display is going to sleep
+					Logger.global.finest("sleeping for " + delta + "ms");
+					fMutex.wait(delta);
+					checkThread();
+				}
+			}
+
+			/**
+			 * Sets the timed out flag and wakes up the display. Transitions to
+			 * <code>IDLE</code> (if in keep-running mode) or
+			 * <code>STOPPED</code>.
+			 */
+			private void timedOut() {
+				Logger.global.finer("timed out");
+				fCurrentTimeoutState.setTimedOut(true);
+				fDisplay.wake(); // wake up call!
+				if (fKeepRunningOnTimeout)
+					checkedTransition(RUNNING, IDLE);
+				else
+					checkedTransition(RUNNING, STOPPED);
+			}
+			
+			/**
+			 * Waits while the state is <code>IDLE</code>, then returns. The
+			 * state must not be <code>RUNNING</code> when calling this
+			 * method. The state is either <code>STOPPED</code> or
+			 * <code>RUNNING</code> when the method returns.
+			 * 
+			 * @throws InterruptedException if the thread was interrupted
+			 * @throws ThreadChangedException if the thread has changed while on
+			 *         hold
+			 */
+			private void tryHold() throws InterruptedException, ThreadChangedException {
+				while (isState(IDLE)) {
+					fMutex.wait(0);
+					checkThread();
+				}
+				assertStates(STOPPED | RUNNING);
+			}
+		};
+		
+		fCurrentThread.start();
+	}
+	
+	/**
+	 * Transitions to <code>nextState</code> if the current state is one of
+	 * <code>possibleStates</code>. Returns <code>true</code> if the
+	 * transition happened, <code>false</code> otherwise.
+	 * 
+	 * @param possibleStates the states which trigger a transition
+	 * @param nextState the state to transition to
+	 * @return <code>true</code> if the transition happened,
+	 *         <code>false</code> otherwise
+	 */
+	private boolean tryTransition(int possibleStates, int nextState) {
+		if (isState(possibleStates)) {
+			Logger.global.finer(name(fState) + " > " + name(nextState) + " (" + name(possibleStates) + ")");
+			fState= nextState;
+			return true;
+		}
+		Logger.global.finest("noTransition" + name(fState) + " !> " + name(nextState) + " (" + name(possibleStates) + ")");
+		return false;
+	}
+	
+	/**
+	 * Checks the <code>possibleStates</code> and throws an assertion if it is
+	 * not met, then transitions to <code>nextState</code>.
+	 * 
+	 * @param possibleStates the allowed states
+	 * @param nextState the state to transition to
+	 */
+	private void checkedTransition(int possibleStates, int nextState) {
+		assertStates(possibleStates);
+		Logger.global.finer(name(fState) + " > " + name(nextState));
+		fState= nextState;
+	}
+	
+	/**
+	 * Implements state consistency checking.
+	 * 
+	 * @param states the allowed states
+	 * @throws junit.framework.AssertionFailedError if the current state is not
+	 *         in <code>states</code>
+	 */
+	private void assertStates(int states) {
+		Assert.assertTrue("illegal state", isState(states));
+	}
+
+	/**
+	 * Answers <code>true</code> if the current state is in the given
+	 * <code>states</code>.
+	 * 
+	 * @param states the possible states
+	 * @return <code>true</code> if the current state is in the given states,
+	 *         <code>false</code> otherwise
+	 */
+	private boolean isState(int states) {
+		return (states & fState) == fState;
+	}
+	
+	/**
+	 * Pretty print the given states.
+	 * 
+	 * @param states the states
+	 * @return a string representation of the states
+	 */
+	private String name(int states) {
+		StringBuffer buf= new StringBuffer();
+		boolean comma= false;
+		if ((states & RUNNING) == RUNNING) {
+			buf.append("RUNNING");
+			comma= true;
+		}
+		if ((states & STOPPED) == STOPPED) {
+			if (comma)
+				buf.append(",");
+			buf.append("STOPPED");
+			comma= true;
+		}
+		if ((states & IDLE) == IDLE) {
+			if (comma)
+				buf.append(",");
+			buf.append("IDLE");
+		}
+		return buf.toString();
+	}
+
+}
\ No newline at end of file
diff --git a/tests/org.eclipse.ui.tests.navigator/navigator-test-src/org/eclipse/ui/tests/navigator/EditorTestHelper.java b/tests/org.eclipse.ui.tests.navigator/navigator-test-src/org/eclipse/ui/tests/navigator/EditorTestHelper.java
new file mode 100644
index 0000000..36c9fad
--- /dev/null
+++ b/tests/org.eclipse.ui.tests.navigator/navigator-test-src/org/eclipse/ui/tests/navigator/EditorTestHelper.java
@@ -0,0 +1,291 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.tests.navigator;
+
+
+import java.io.File;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.logging.Logger;
+
+import org.eclipse.core.resources.IContainer;
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.Platform;
+import org.eclipse.core.runtime.jobs.IJobManager;
+import org.eclipse.core.runtime.jobs.Job;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IEditorPart;
+import org.eclipse.ui.IEditorReference;
+import org.eclipse.ui.IViewReference;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchPart;
+import org.eclipse.ui.IWorkbenchPartSite;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.WorkbenchException;
+import org.eclipse.ui.dialogs.IOverwriteQuery;
+
+
+/**
+ * @since 3.1
+ */
+public class EditorTestHelper {
+	
+	private static class ImportOverwriteQuery implements IOverwriteQuery {
+		public String queryOverwrite(String file) {
+			return ALL;
+		}	
+	}	 
+	
+	public static final String TEXT_EDITOR_ID= "org.eclipse.ui.DefaultTextEditor";
+	
+	public static final String COMPILATION_UNIT_EDITOR_ID= "org.eclipse.jdt.ui.CompilationUnitEditor";
+	
+	public static final String RESOURCE_PERSPECTIVE_ID= "org.eclipse.ui.resourcePerspective";
+	
+	public static final String JAVA_PERSPECTIVE_ID= "org.eclipse.jdt.ui.JavaPerspective";
+	
+	public static final String OUTLINE_VIEW_ID= "org.eclipse.ui.views.ContentOutline";
+	
+	public static final String PACKAGE_EXPLORER_VIEW_ID= "org.eclipse.jdt.ui.PackageExplorer";
+	
+	public static final String NAVIGATOR_VIEW_ID= "org.eclipse.ui.views.ResourceNavigator";
+	
+	public static final String INTRO_VIEW_ID= "org.eclipse.ui.internal.introview";
+  
+	public static void closeEditor(IEditorPart editor) {
+		IWorkbenchPartSite site;
+		IWorkbenchPage page;
+		if (editor != null && (site= editor.getSite()) != null && (page= site.getPage()) != null)
+			page.closeEditor(editor, false);
+	}
+	
+	public static void closeAllEditors() {
+		IWorkbenchWindow[] windows= PlatformUI.getWorkbench().getWorkbenchWindows();
+		for (int i= 0; i < windows.length; i++) {
+			IWorkbenchPage[] pages= windows[i].getPages();
+			for (int j= 0; j < pages.length; j++) {
+				IEditorReference[] editorReferences= pages[j].getEditorReferences();
+				for (int k= 0; k < editorReferences.length; k++)
+					closeEditor(editorReferences[k].getEditor(false));
+			}
+		}
+	}
+	
+	/**
+	 * Runs the event queue on the current display until it is empty.
+	 */
+	public static void runEventQueue() {
+		IWorkbenchWindow window= getActiveWorkbenchWindow();
+		if (window != null)
+			runEventQueue(window.getShell());
+	}
+	
+	public static void runEventQueue(IWorkbenchPart part) {
+		runEventQueue(part.getSite().getShell());
+	}
+	
+	public static void runEventQueue(Shell shell) {
+		runEventQueue(shell.getDisplay());
+	}
+	
+	public static void runEventQueue(Display display) {
+		while (display.readAndDispatch()) {
+			// do nothing
+		}
+	}
+	
+	/**
+	 * Runs the event queue on the current display and lets it sleep until the
+	 * timeout elapses.
+	 * 
+	 * @param millis the timeout in milliseconds
+	 */
+	public static void runEventQueue(long millis) {
+		runEventQueue(getActiveDisplay(), millis);
+	}
+	
+	public static void runEventQueue(IWorkbenchPart part, long millis) {
+		runEventQueue(part.getSite().getShell(), millis);
+	}
+	
+	public static void runEventQueue(Shell shell, long millis) {
+		runEventQueue(shell.getDisplay(), millis);
+	}
+	
+	public static void runEventQueue(Display display, long minTime) {
+		if (display != null) {
+			DisplayHelper.sleep(display, minTime);
+		} else {
+			sleep((int) minTime);
+		}
+	}
+	
+	public static IWorkbenchWindow getActiveWorkbenchWindow() {
+		return PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+	}
+	
+	public static void forceFocus() {
+		IWorkbenchWindow window= getActiveWorkbenchWindow();
+		if (window == null) {
+			IWorkbenchWindow[] wbWindows= PlatformUI.getWorkbench().getWorkbenchWindows();
+			if (wbWindows.length == 0)
+				return;
+			window= wbWindows[0];
+		}
+		Shell shell= window.getShell();
+		if (shell != null && !shell.isDisposed()) {
+			shell.forceActive();
+			shell.forceFocus();
+		}
+	}
+	
+	public static IWorkbenchPage getActivePage() {
+		IWorkbenchWindow window= getActiveWorkbenchWindow();
+		return window != null ? window.getActivePage() : null;
+	}
+	
+	public static Display getActiveDisplay() {
+		IWorkbenchWindow window= getActiveWorkbenchWindow();
+		return window != null ? window.getShell().getDisplay() : null;
+	} 
+	
+	public static void joinBackgroundActivities() throws CoreException {
+		// Join Building
+		Logger.global.entering("EditorTestHelper", "joinBackgroundActivities");
+		Logger.global.finer("join builder");
+		boolean interrupted= true;
+		while (interrupted) {
+			try {
+				Platform.getJobManager().join(ResourcesPlugin.FAMILY_AUTO_BUILD, null);
+				interrupted= false;
+			} catch (InterruptedException e) {
+				interrupted= true;
+			}
+		} 
+		// Join jobs
+		joinJobs(0, 0, 500);
+		Logger.global.exiting("EditorTestHelper", "joinBackgroundActivities");
+	}
+	
+	public static boolean joinJobs(long minTime, long maxTime, long intervalTime) {
+		Logger.global.entering("EditorTestHelper", "joinJobs");
+		runEventQueue(minTime);
+		
+		DisplayHelper helper= new DisplayHelper() {
+			public boolean condition() {
+				return allJobsQuiet();
+			}
+		};
+		boolean quiet= helper.waitForCondition(getActiveDisplay(), maxTime > 0 ? maxTime : Long.MAX_VALUE, intervalTime);
+		Logger.global.exiting("EditorTestHelper", "joinJobs", new Boolean(quiet));
+		return quiet;
+	}
+	
+	public static void sleep(int intervalTime) {
+		try {
+			Thread.sleep(intervalTime);
+		} catch (InterruptedException e) {
+			e.printStackTrace();
+		}
+	}
+	
+	public static boolean allJobsQuiet() {
+		IJobManager jobManager= Platform.getJobManager();
+		Job[] jobs= jobManager.find(null);
+		for (int i= 0; i < jobs.length; i++) {
+			Job job= jobs[i];
+			int state= job.getState();
+			if (state == Job.RUNNING || state == Job.WAITING) {
+				Logger.global.finest(job.toString());
+				return false;
+			}
+		}
+		return true;
+	}
+	
+	public static boolean isViewShown(String viewId) {
+		return getActivePage().findViewReference(viewId) != null;
+	}
+	
+	public static boolean showView(String viewId, boolean show) throws PartInitException {
+		IWorkbenchPage activePage= getActivePage();
+		IViewReference view= activePage.findViewReference(viewId);
+		boolean shown= view != null;
+		if (shown != show)
+			if (show)
+				activePage.showView(viewId);
+			else
+				activePage.hideView(view);
+		return shown;
+	}
+	
+	public static void bringToTop() {
+		getActiveWorkbenchWindow().getShell().forceActive();
+	} 
+	
+	public static String showPerspective(String perspective) throws WorkbenchException {
+		String shownPerspective= getActivePage().getPerspective().getId();
+		if (!perspective.equals(shownPerspective)) {
+			IWorkbench workbench= PlatformUI.getWorkbench();
+			IWorkbenchWindow activeWindow= workbench.getActiveWorkbenchWindow();
+			workbench.showPerspective(perspective, activeWindow);
+		}
+		return shownPerspective;
+	}
+	
+ 
+	
+	public static IFile[] findFiles(IResource resource) throws CoreException {
+		List files= new ArrayList();
+		findFiles(resource, files);
+		return (IFile[]) files.toArray(new IFile[files.size()]);
+	}
+	
+	private static void findFiles(IResource resource, List files) throws CoreException {
+		if (resource instanceof IFile) {
+			files.add(resource);
+			return;
+		}
+		if (resource instanceof IContainer) {
+			IResource[] resources= ((IContainer) resource).members();
+			for (int i= 0; i < resources.length; i++)
+				findFiles(resources[i], files);
+		}
+	}
+	 
+  
+	
+	private static void addJavaFiles(File dir, List collection) throws IOException {
+		File[] files= dir.listFiles();
+		List subDirs= new ArrayList(2);
+		for (int i= 0; i < files.length; i++) {
+			if (files[i].isFile()) {
+				collection.add(files[i]);
+			} else if (files[i].isDirectory()) {
+				subDirs.add(files[i]);
+			}
+		}
+		Iterator iter= subDirs.iterator();
+		while (iter.hasNext()) {
+			File subDir= (File)iter.next();
+			addJavaFiles(subDir, collection);
+		}
+	}
+}
diff --git a/tests/org.eclipse.ui.tests.navigator/navigator-test-src/org/eclipse/ui/tests/navigator/KeyboardProbe.java b/tests/org.eclipse.ui.tests.navigator/navigator-test-src/org/eclipse/ui/tests/navigator/KeyboardProbe.java
new file mode 100644
index 0000000..4c50ef7
--- /dev/null
+++ b/tests/org.eclipse.ui.tests.navigator/navigator-test-src/org/eclipse/ui/tests/navigator/KeyboardProbe.java
@@ -0,0 +1,357 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.ui.tests.navigator;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.FillLayout;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.Listener;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.swt.widgets.Text;
+
+
+
+/**
+ * @since 3.1
+ */
+public class KeyboardProbe {
+	
+	private static final boolean TRACE= false;
+	private static final char FAKE_CHAR= '$';
+	
+	public static void main(String[] args) {
+		new KeyboardProbe().getKeycodes();
+	}
+	
+	private Display fDisplay;
+	private char[][] fCodes= null;
+	private int fKeyCode;
+	private static final int NONE= 0;
+	private static final int SHIFT= 1;
+	private boolean fKeyContinue;
+	private boolean fTextContinue;
+	private boolean fDisposeDisplay= false;
+	private Shell fShell;
+	
+	/**
+	 * Returns the characters being input into a text component by injecting key
+	 * events into the system event queue. For each character, the array holds
+	 * the resulting character when pressed alone and when pressed together with
+	 * shift.
+	 * 
+	 * @return the characters input by pressing the keys. The key code is the
+	 *         index into the array.
+	 */
+	public synchronized char[][] getKeycodes() {
+		initialize();
+		return fCodes;
+	}
+	
+	/**
+	 * Initializes this keyboard probe.
+	 */
+	public void initialize() {
+		if (fCodes == null) {
+			try {
+				probe();
+			} finally {
+				if (fDisposeDisplay && fDisplay != null) {
+					fDisplay.dispose();
+				}
+				fDisplay= null;
+				
+				if (fShell != null && !fShell.isDisposed()) {
+					fShell.dispose();
+				}
+				fShell= null;
+			}
+		}
+	}
+
+	/**
+	 * Returns the character resulting from pressing the character 'key' with
+	 * or without shift being pressed.
+	 * 
+	 * @param key the key to press
+	 * @param pressShift whether pressed together with shift
+	 * @return the char resulting from the given key combo, or 0 if there is no equivalent
+	 */
+	public char getCharForKeybinding(char key, boolean pressShift) {
+		char[][] keycodes= getKeycodes();
+		if (key < keycodes.length)
+			return keycodes[key][pressShift ? SHIFT : NONE];
+
+		return 0;
+	}
+	
+	/**
+	 * Returns a keybinding combo that will produce the wanted character. Note
+	 * that there may be more than one combo that can produce the wanted
+	 * binding, any one is returned. The last integer in the returned array is
+	 * a character that must be set to the Event.character field, any integers 
+	 * before are SWT constants describing modifier keys that must be pressed
+	 * to get the desired result.
+	 * 
+	 * @param expected the char to be input
+	 * @return the corresponding key combo, or an empty array if there is no combo
+	 */
+	public int[] getKeybindingForChar(char expected) {
+		char[][] keycodes= getKeycodes();
+		for (int i= 0; i < keycodes.length; i++) {
+			if (keycodes[i][NONE] == expected)
+				return new int[] {i};
+			else if (keycodes[i][SHIFT] == expected)
+				return new int[] { SWT.SHIFT, i };
+		}
+		return new int[0];
+	}
+	
+	/**
+	 * Presses a key combination such that the expected character is input by
+	 * simulating key events on the given display. Returns <code>true</code>
+	 * if a key combo could be found, <code>false</code> if not.
+	 * 
+	 * @param expected the expected character
+	 * @param display the display to simulate the events on
+	 * @return <code>true</code> if there was a key combo to press,
+	 *         <code>false</code> if <code>expected</code> has no combo on
+	 *         the current keyboard layout.
+	 */
+	public boolean pressChar(char expected, Display display) {
+		return pressChar(expected, new int[0], display);
+	}
+	
+	/**
+	 * Presses a key combination such that the expected character is input by
+	 * simulating key events on the given display. Returns <code>true</code>
+	 * if a key combo could be found, <code>false</code> if not.
+	 * 
+	 * @param expected the expected character
+	 * @param modifiers additional modifiers to press
+	 * @param display the display to simulate the events on
+	 * @return <code>true</code> if there was a key combo to press,
+	 *         <code>false</code> if <code>expected</code> has no combo on
+	 *         the current keyboard layout.
+	 */
+	public boolean pressChar(char expected, int[] modifiers, Display display) {
+		int[] charkeys= getKeybindingForChar(expected);
+		int[] combo= new int[charkeys.length + modifiers.length];
+		System.arraycopy(modifiers, 0, combo, 0, modifiers.length);
+		System.arraycopy(charkeys, 0, combo, modifiers.length, charkeys.length);
+		
+		for (int i= 0; i <= combo.length - 2; i++) {
+			Event event= new Event();
+			event.type= SWT.KeyDown;
+			event.keyCode= combo[i];
+			display.post(event);
+		}
+		
+		if (combo.length > 0) {
+			Event event= new Event();
+			event.type= SWT.KeyDown;
+			event.character= (char) combo[combo.length - 1];
+			display.post(event);
+			
+			event.type= SWT.KeyUp;
+			display.post(event);
+		}
+		
+		for (int i= combo.length - 2; i >= 0; i--) {
+			Event event= new Event();
+			event.type= SWT.KeyUp;
+			event.keyCode= combo[i];
+			display.post(event);
+		}
+		
+		return combo.length > 0;
+	}
+	
+	void probe() {
+		fCodes= new char[128][];
+		
+		fDisplay= createDisplay();
+		Text text= createControl(fDisplay);
+		
+		for (fKeyCode= 0; fKeyCode < 128; fKeyCode++) {
+			fCodes[fKeyCode]= new char[2];
+			
+			postNaturalKeyPress(fKeyCode);
+			char c= getContent(text);
+			if (TRACE) System.out.println("" + fKeyCode + "content[NONE]: " + c);
+			fCodes[fKeyCode][NONE]= c;
+			clearText(text);
+			
+			postShiftKeyPress(fKeyCode);
+			c= getContent(text);
+			if (TRACE) System.out.println("" + fKeyCode + "content[SHIFT]: " + c);
+			fCodes[fKeyCode][SHIFT]= c;
+			clearText(text);
+
+		}
+		
+	}
+	
+	private char getContent(Text text) {
+		String content= text.getText();
+		char c;
+		if (content.length() == 2) {
+			c= content.charAt(0);
+			if (TRACE && content.charAt(1) != FAKE_CHAR)
+				System.out.println("second char was '" + content.charAt(1) + "'");
+		} else if (content.length() > 2) {
+			c= content.charAt(0);
+			if (TRACE) System.out.println("rest content was '" + content.substring(1) + "'");			
+		} else if (content.length() == 1) {
+			c= '\0';
+			if (TRACE && content.charAt(0) != FAKE_CHAR)
+				System.out.println("second char was '" + content.charAt(0) + "'");
+		} else {
+			c= '\0';
+			if (TRACE) System.out.println("no content");
+		}
+		return c;
+	}
+
+	private void clearText(Text text) {
+		fTextContinue= false;
+		text.setText("");
+		do
+			driveEventQueue();
+		while (!fTextContinue && fDisplay.sleep());
+	}
+
+	private Display createDisplay() {
+		Display display= Display.getCurrent();
+		if (display == null) {
+			display= Display.getDefault();
+			fDisposeDisplay= true;
+		}
+		return display;
+	}
+	
+	private void addListeners(Text control) {
+		control.addListener(SWT.KeyDown, new Listener() {
+			public void handleEvent(Event event) {
+				onKeyDown(event);
+			}
+		});
+		control.addListener(SWT.KeyUp, new Listener() {
+			public void handleEvent(Event event) {
+				onKeyUp(event);
+			}
+		});
+		control.addListener(SWT.Modify, new Listener() {
+			
+			public void handleEvent(Event event) {
+				onModify(event);
+			}
+		});
+	}
+	
+	private Text createControl(Display display) {
+		fShell= new Shell(display);
+		fShell.setSize(300, 200);
+		fShell.setText("Keyboard Probe"); //$NON-NLS-1$
+		fShell.setLayout(new FillLayout());
+		Text text= new Text(fShell, SWT.MULTI | SWT.LEFT | SWT.WRAP);
+		text.setSize(300, 200);
+		fShell.setVisible(true);
+		fShell.forceActive();
+		fShell.forceFocus();
+		addListeners(text);
+		
+		text.setFocus();
+		return text;
+	}
+	
+	private void postNaturalKeyPress(int i) {
+		
+		fKeyContinue= false;
+		
+		Event event= new Event();
+		event.type= SWT.KeyDown;
+		event.keyCode= i;
+		event.character= (char) i;
+		fDisplay.post(event);
+		
+		event.type= SWT.KeyUp;
+		fDisplay.post(event);
+		
+		Event event2= new Event();
+		event2.type= SWT.KeyDown;
+//		event2.keyCode= i;
+		event2.character= FAKE_CHAR;
+		fDisplay.post(event2);
+		
+		event2.type= SWT.KeyUp;
+		fDisplay.post(event2);
+		
+		do
+			driveEventQueue();
+		while (!fKeyContinue && fDisplay.sleep());
+
+	}
+	
+	private void postShiftKeyPress(int i) {
+		fKeyContinue= false;
+		
+		Event shift= new Event();
+		shift.type= SWT.KeyDown;
+		shift.keyCode= SWT.SHIFT;
+		fDisplay.post(shift);
+		
+		Event event= new Event();
+		event.type= SWT.KeyDown;
+		event.character= (char) i;
+		fDisplay.post(event);
+		
+		event.type= SWT.KeyUp;
+		fDisplay.post(event);
+		
+		shift.type= SWT.KeyUp;
+		fDisplay.post(shift);
+		
+		Event event2= new Event();
+		event2.type= SWT.KeyDown;
+		event2.character= FAKE_CHAR;
+		fDisplay.post(event2);
+		
+		event2.type= SWT.KeyUp;
+		fDisplay.post(event2);
+		
+		do
+			driveEventQueue();
+		while (!fKeyContinue && fDisplay.sleep());
+	}
+	
+	private boolean fShiftPressed= false;
+	
+	private void onKeyDown(Event event) {
+		if (event.keyCode == SWT.SHIFT)
+			fShiftPressed= true;
+	}
+	
+	private void onKeyUp(Event event) {
+		if (!fShiftPressed || event.keyCode == SWT.SHIFT)
+			fKeyContinue= true;
+		fShiftPressed= false;
+	}
+	
+	private void onModify(Event event) {
+		fTextContinue= true;
+	}
+	
+	private void driveEventQueue() {
+		while (fDisplay.readAndDispatch()) {}
+	}
+	
+}
diff --git a/tests/org.eclipse.ui.tests.navigator/navigator-test-src/org/eclipse/ui/tests/navigator/OpenTest.java b/tests/org.eclipse.ui.tests.navigator/navigator-test-src/org/eclipse/ui/tests/navigator/OpenTest.java
new file mode 100644
index 0000000..16b8084
--- /dev/null
+++ b/tests/org.eclipse.ui.tests.navigator/navigator-test-src/org/eclipse/ui/tests/navigator/OpenTest.java
@@ -0,0 +1,106 @@
+/***************************************************************************************************
+ * Copyright (c) 2003, 2004 IBM Corporation and others. All rights reserved. This program and the
+ * accompanying materials are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * 
+ * Contributors: IBM Corporation - initial API and implementation
+ **************************************************************************************************/
+package org.eclipse.ui.tests.navigator;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.jface.viewers.StructuredSelection;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+import org.eclipse.swt.widgets.TreeItem;
+import org.eclipse.ui.IViewPart;
+import org.eclipse.ui.IWorkbenchPage;
+import org.eclipse.ui.IWorkbenchWindow;
+import org.eclipse.ui.PlatformUI;
+import org.eclipse.ui.navigator.CommonViewer;
+
+public class OpenTest extends TestCase {
+
+	public static final String COMMON_NAVIGATOR_INSTANCE_ID= "org.eclipse.ui.examples.navigator.example1";
+
+	public void testOpenNavigator() throws Exception {
+		EditorTestHelper.showView(COMMON_NAVIGATOR_INSTANCE_ID, true);
+
+		IWorkbenchWindow activeWindow= PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+		IWorkbenchPage activePage= activeWindow.getActivePage();
+		Display display= activeWindow.getShell().getDisplay();
+
+		IViewPart commonNavigator= activePage.findView(COMMON_NAVIGATOR_INSTANCE_ID);
+		commonNavigator.setFocus();
+		CommonViewer viewer= (CommonViewer) commonNavigator.getAdapter(CommonViewer.class);
+		TreeItem[] items= viewer.getTree().getItems();
+				
+		assertTrue("There should be some items.", items.length > 0);
+		
+		viewer.setSelection(new StructuredSelection(items[0].getData()));
+		
+//		Rectangle bounds= items[0].getBounds();
+//		Event mouseClick= new Event();
+//		mouseClick.type= SWT.MouseDown;
+//		mouseClick.button = SWT.BUTTON1;
+//		mouseClick.x= bounds.x + 2;
+//		mouseClick.y= bounds.y + 2;
+//
+//		Event mouseUnclick= new Event();
+//		mouseUnclick.type= SWT.MouseUp;
+//		mouseUnclick.button = SWT.BUTTON1;
+//		mouseUnclick.x= bounds.x + 2;
+//		mouseUnclick.y= bounds.y + 2;
+//		
+//				
+//		//display.post(doubleClick);
+//		postEvent(items[0].getDisplay(), mouseClick);
+//		postEvent(items[0].getDisplay(), mouseUnclick);
+//		postEvent(items[0].getDisplay(), mouseClick);
+//		postEvent(items[0].getDisplay(), mouseUnclick);
+		
+	//		Display localDisplay = items[0].getDisplay();
+	//		SWTEventHelper.keyCharEvent(localDisplay, 0, SWT.CR, true);
+	//		
+	//		DisplayHelper.runEventLoop(display, 1000);
+	//		
+	//		
+	//		assertTrue("The first item should be expanded.", items[0].getExpanded());
+ 
+	}
+	
+
+	public void testNavigatorRootContents() throws Exception {
+		EditorTestHelper.showView(COMMON_NAVIGATOR_INSTANCE_ID, true);
+
+		IWorkbenchWindow activeWindow= PlatformUI.getWorkbench().getActiveWorkbenchWindow();
+		IWorkbenchPage activePage= activeWindow.getActivePage();
+		Display display= activeWindow.getShell().getDisplay();
+
+		IViewPart commonNavigator= activePage.findView(COMMON_NAVIGATOR_INSTANCE_ID);
+		commonNavigator.setFocus();
+		CommonViewer viewer= (CommonViewer) commonNavigator.getAdapter(CommonViewer.class);
+		TreeItem[] items= viewer.getTree().getItems();
+				
+		assertTrue("There should be some items.", items.length > 0);
+		
+		viewer.setSelection(new StructuredSelection(items[0].getData()));
+		 
+		IProject test = ResourcesPlugin.getWorkspace().getRoot().getProject("Test");
+		assertEquals(test, items[0].getData());	 
+	}
+	
+
+	private static void postEvent(final Display display, final Event event) {
+		DisplayHelper helper= new DisplayHelper() {
+			public boolean condition() {
+				return display.post(event);
+			}
+		};
+		Assert.assertTrue(helper.waitForCondition(display, 1000));			
+	}
+}
diff --git a/tests/org.eclipse.ui.tests.navigator/navigator-test-src/org/eclipse/ui/tests/navigator/SWTEventHelper.java b/tests/org.eclipse.ui.tests.navigator/navigator-test-src/org/eclipse/ui/tests/navigator/SWTEventHelper.java
new file mode 100644
index 0000000..77ef6b0
--- /dev/null
+++ b/tests/org.eclipse.ui.tests.navigator/navigator-test-src/org/eclipse/ui/tests/navigator/SWTEventHelper.java
@@ -0,0 +1,139 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2005 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.ui.tests.navigator;
+
+import junit.framework.Assert;
+
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Event;
+
+
+/**
+ * @since 3.1
+ */
+public class SWTEventHelper {
+	
+	public static void pressKeyCode(Display display, int keyCode) {
+		pressKeyCode(display, keyCode, true);
+	}
+	
+	public static void pressKeyCode(Display display, int keyCode, boolean runEventQueue) {
+		keyCodeDown(display, keyCode, runEventQueue);
+		keyCodeUp(display, keyCode, runEventQueue);
+	}
+
+	public static void pressKeyCodeCombination(Display display, int[] keyCodes) {
+		pressKeyCodeCombination(display, keyCodes, true);
+	}
+	
+	public static void pressKeyCodeCombination(Display display, int[] keyCodes, boolean runEventQueue) {
+		for (int i= 0; i < keyCodes.length; i++)
+			keyCodeDown(display, keyCodes[i], runEventQueue);
+		for (int i= keyCodes.length - 1; i >= 0; i--)
+			keyCodeUp(display, keyCodes[i], runEventQueue);
+	}
+
+	public static void keyCodeDown(Display display, int keyCode) {
+		keyCodeEvent(display, SWT.KeyDown, keyCode, true);
+	}
+	
+	public static void keyCodeDown(Display display, int keyCode, boolean runEventQueue) {
+		keyCodeEvent(display, SWT.KeyDown, keyCode, runEventQueue);
+	}
+
+	public static void keyCodeUp(Display display, int keyCode) {
+		keyCodeEvent(display, SWT.KeyUp, keyCode, true);
+	}
+	
+	public static void keyCodeUp(Display display, int keyCode, boolean runEventQueue) {
+		keyCodeEvent(display, SWT.KeyUp, keyCode, runEventQueue);
+	}
+
+	private static Event fgKeyCodeEvent= new Event();
+	public static void keyCodeEvent(Display display, int type, int keyCode, boolean runEventQueue) {
+		fgKeyCodeEvent.type= type;
+		fgKeyCodeEvent.keyCode= keyCode;
+		postEvent(display, fgKeyCodeEvent, runEventQueue);
+	}
+	
+	public static void pressKeyChar(Display display, char keyChar) {
+		pressKeyChar(display, keyChar, true);
+	}
+	
+	public static void pressKeyChar(Display display, char keyChar, boolean runEventQueue) {
+		keyCharDown(display, keyChar, runEventQueue);
+		keyCharUp(display, keyChar, runEventQueue);
+	}
+
+	public static void pressKeyCharCombination(Display display, char[] keyChars) {
+		pressKeyCharCombination(display, keyChars, true);
+	}
+	
+	public static void pressKeyCharCombination(Display display, char[] keyChars, boolean runEventQueue) {
+		for (int i= 0; i < keyChars.length; i++)
+			keyCharDown(display, keyChars[i], runEventQueue);
+		for (int i= keyChars.length - 1; i >= 0; i--)
+			keyCharUp(display, keyChars[i], runEventQueue);
+	}
+
+	public static void keyCharDown(Display display, char keyChar, boolean runEventQueue) {
+		keyCharEvent(display, SWT.KeyDown, keyChar, runEventQueue);
+	}
+
+	public static void keyCharUp(Display display, char keyChar, boolean runEventQueue) {
+		keyCharEvent(display, SWT.KeyUp, keyChar, runEventQueue);
+	}
+
+	private static Event fgKeyCharEvent= new Event();
+	public static void keyCharEvent(Display display, int type, char keyChar, boolean runEventQueue) {
+		fgKeyCharEvent.type= type;
+		fgKeyCharEvent.character= keyChar;
+		postEvent(display, fgKeyCharEvent, runEventQueue);
+	}
+
+	private static void postEvent(final Display display, final Event event, boolean runEventQueue) {
+		DisplayHelper helper= new DisplayHelper() {
+			public boolean condition() {
+				return display.post(event);
+			}
+		};
+		Assert.assertTrue(helper.waitForCondition(display, 1000));
+
+		if (runEventQueue)
+			EditorTestHelper.runEventQueue();
+			
+	}
+	
+	private static Event fgMouseMoveEvent= new Event();
+	public static void mouseMoveEvent(Display display, int x, int y, boolean runEventQueue) {
+		fgMouseMoveEvent.type= SWT.MouseMove;
+		fgMouseMoveEvent.x= x;
+		fgMouseMoveEvent.y= y;
+		postEvent(display, fgMouseMoveEvent, runEventQueue);
+	}
+	
+	public static void mouseDownEvent(Display display, int button, boolean runEventQueue) {
+		mouseButtonEvent(display, SWT.MouseDown, button, runEventQueue);
+	}
+
+	public static void mouseUpEvent(Display display, int button, boolean runEventQueue) {
+		mouseButtonEvent(display, SWT.MouseUp, button, runEventQueue);
+	}
+
+	private static Event fgMouseButtonEvent= new Event();
+	public static void mouseButtonEvent(Display display, int type, int button, boolean runEventQueue) {
+		fgMouseButtonEvent.type= type;
+		fgMouseButtonEvent.button= button;
+		postEvent(display, fgMouseButtonEvent, runEventQueue);
+	}
+}
diff --git a/tests/org.eclipse.ui.tests.navigator/plugin.xml b/tests/org.eclipse.ui.tests.navigator/plugin.xml
new file mode 100644
index 0000000..bbb7298
--- /dev/null
+++ b/tests/org.eclipse.ui.tests.navigator/plugin.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+<plugin>
+ 
+</plugin>