Author: apadilla
Date: Thu May 26 03:25:17 2011
New Revision: 1127766

URL: http://svn.apache.org/viewvc?rev=1127766&view=rev
Log:
[NPANDAY-433] 
 - made sure when NPanday is stopped, POMs should not be updated if project is 
changed

Added:
    
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/test/csharp/NPanday.Utils-Test/SuccessfulDisconnectTest.cs
Modified:
    
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Connect.cs
    
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/NPandayImportProjectForm.cs
    
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/test/csharp/NPanday.Utils-Test/ConnectTest.csproj

Modified: 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Connect.cs
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Connect.cs?rev=1127766&r1=1127765&r2=1127766&view=diff
==============================================================================
--- 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Connect.cs
 (original)
+++ 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Connect.cs
 Thu May 26 03:25:17 2011
@@ -1549,6 +1549,11 @@ namespace NPanday.VisualStudio.Addin
         /// <seealso class='IDTExtensibility2' />
         public void OnDisconnection(ext_DisconnectMode disconnectMode, ref 
Array custom)
         {
+            //check if NPanday is already closed
+            if ( _applicationObject == null )
+            {
+                return;
+            }
             mavenConnected = false;
             //remove maven menus
             DTE2 dte2 = _applicationObject;
@@ -1559,19 +1564,30 @@ namespace NPanday.VisualStudio.Addin
             outputWindowPane.Clear();
             mavenRunner.ClearOutputWindow();
 
+            List<CommandBarControl> npandayCmdBarCtrl = new 
List<CommandBarControl>();
+
             foreach (CommandBar commandBar in (CommandBars)dte2.CommandBars)
             {
                 foreach (CommandBarControl control in commandBar.Controls)
                 {
                     if (control.Caption.ToLower().Contains("maven") || 
control.Caption.ToLower().Contains("npanday") || 
control.Caption.ToLower().Contains("pom"))
                     {
-                        // i dont know what 'false' means. but it works.
-                        control.Delete(false);
+                        //getting the npanday controls instead of deleting
+                        //to prevent index out of bounds exception being 
thrown 
+                        //when deleting from within the List of 
CommandBarControls
+                        npandayCmdBarCtrl.Add(control);
                     }
 
                 }
             }
 
+            //Delete the npandayCtrls
+            foreach (CommandBarControl delCtrl in npandayCmdBarCtrl)
+            {
+                //false works a temporary control
+                delCtrl.Delete(false);
+            }
+
             //unregister maven event listener
             foreach (Project project in dte2.Solution.Projects)
             {
@@ -1585,8 +1601,8 @@ namespace NPanday.VisualStudio.Addin
                     continue;
                 }
 
-                //vsProject.Events.ReferencesEvents.ReferenceRemoved
-                //        -= new 
_dispReferencesEvents_ReferenceRemovedEventHandler(ReferencesEvents_ReferenceRemoved);
+                vsProject.Events.ReferencesEvents.ReferenceRemoved
+                        -= new 
_dispReferencesEvents_ReferenceRemovedEventHandler(ReferencesEvents_ReferenceRemoved);
 
             }
 
@@ -1599,6 +1615,22 @@ namespace NPanday.VisualStudio.Addin
             {
                 s.Stop();
             }
+            
+            if (disconnectMode != 
Extensibility.ext_DisconnectMode.ext_dm_HostShutdown)
+            {
+                this.OnBeginShutdown(ref custom);
+            }
+            _applicationObject = null;
+        }
+
+        //used for Unit Testing on Disconnect
+        protected bool IsApplicationObjectNull()
+        {
+            if (_applicationObject == null)
+            {
+                return true;
+            }
+            return false;
         }
         #endregion
 

Modified: 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/NPandayImportProjectForm.cs
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/NPandayImportProjectForm.cs?rev=1127766&r1=1127765&r2=1127766&view=diff
==============================================================================
--- 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/NPandayImportProjectForm.cs
 (original)
+++ 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/NPandayImportProjectForm.cs
 Thu May 26 03:25:17 2011
@@ -66,7 +66,11 @@ namespace NPanday.VisualStudio.Addin
 
             return filtered;
         }
-               
+
+        public NPandayImportProjectForm()
+        {
+        }
+
         public NPandayImportProjectForm(DTE2 applicationObject, Logger logger)
         {
             this.applicationObject = applicationObject;

Modified: 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/test/csharp/NPanday.Utils-Test/ConnectTest.csproj
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/test/csharp/NPanday.Utils-Test/ConnectTest.csproj?rev=1127766&r1=1127765&r2=1127766&view=diff
==============================================================================
--- 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/test/csharp/NPanday.Utils-Test/ConnectTest.csproj
 (original)
+++ 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/test/csharp/NPanday.Utils-Test/ConnectTest.csproj
 Thu May 26 03:25:17 2011
@@ -79,6 +79,7 @@ under the License.
     <Compile Include="MavenSettingsConfigurationTest.cs" />
     <Compile Include="RenameWebReferenceTest.cs" />
     <Compile Include="ResyncArtifactSnapshot.cs" />
+    <Compile Include="SuccessfulDisconnectTest.cs" />
   </ItemGroup>
   <ItemGroup>
     <Folder Include="Properties\" />

Added: 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/test/csharp/NPanday.Utils-Test/SuccessfulDisconnectTest.cs
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/test/csharp/NPanday.Utils-Test/SuccessfulDisconnectTest.cs?rev=1127766&view=auto
==============================================================================
--- 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/test/csharp/NPanday.Utils-Test/SuccessfulDisconnectTest.cs
 (added)
+++ 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/test/csharp/NPanday.Utils-Test/SuccessfulDisconnectTest.cs
 Thu May 26 03:25:17 2011
@@ -0,0 +1,35 @@
+using System;
+using NUnit.Framework;
+using NPanday.Utils;
+using System.IO;
+using NPanday.VisualStudio.Addin;
+using Extensibility;
+
+namespace ConnectTest.UtilsTest
+{
+    [TestFixture]
+    public class SuccessfulDisconnectTest
+    {
+        public class ConnectTest : Connect
+        {
+            public bool IsNpandayDisconnected()
+            {             
+                return this.IsApplicationObjectNull();
+            }
+        }
+
+        [Test]
+        public void CheckCleanDisconnectTest()
+        {
+            ConnectTest npandayConnect = new ConnectTest();
+
+            ext_DisconnectMode disconnectMode = 
ext_DisconnectMode.ext_dm_HostShutdown;
+            Object[] holder = {""};
+            Array custom = (Array)holder;
+
+            npandayConnect.OnDisconnection(disconnectMode,ref custom);
+
+            Assert.AreEqual(true,npandayConnect.IsNpandayDisconnected()); 
+        }
+    }
+}


Reply via email to