Author: lcorneliussen
Date: Tue Nov  8 16:13:24 2011
New Revision: 1199326

URL: http://svn.apache.org/viewvc?rev=1199326&view=rev
Log:
[NPANDAY-479] Refactoring VS Add-in

 * created ImportSelectedProjectCommand
 * AddArtifactsCommand is now calling ImportSelectedProjectCommand as a 
subcommand (if pom doesn't exist)
 * Using the logger in more places
 * Print log level and thread when logging to the output pane

Added:
    
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Commands/ImportSelectedProjectCommand.cs
    
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Helper/VisualStudioControlsFinder.cs
      - copied, changed from r1198920, 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Helper/BuiltinCommandFinder.cs
Removed:
    
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Helper/BuiltinCommandFinder.cs
Modified:
    
incubator/npanday/trunk/dotnet/assemblies/NPanday.Logging/src/main/csharp/NPanday/Logging/Level.cs
    
incubator/npanday/trunk/dotnet/assemblies/NPanday.Logging/src/main/csharp/NPanday/Logging/LogRecord.cs
    
incubator/npanday/trunk/dotnet/assemblies/NPanday.Model.Settings/src/main/csharp/NPanday.Model.Settings.csproj
    
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/NPanday.VisualStudio.Addin.sln
    
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday.VisualStudio.Addin.csproj
    
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Commands/AddArtifactsCommand.cs
    
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Commands/ButtonCommandRegistry.cs
    
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Commands/IButtonCommandContext.cs
    
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/src/main/csharp/NPanday/VisualStudio/Logging/OutputWindowPaneHandler.cs

Modified: 
incubator/npanday/trunk/dotnet/assemblies/NPanday.Logging/src/main/csharp/NPanday/Logging/Level.cs
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.Logging/src/main/csharp/NPanday/Logging/Level.cs?rev=1199326&r1=1199325&r2=1199326&view=diff
==============================================================================
--- 
incubator/npanday/trunk/dotnet/assemblies/NPanday.Logging/src/main/csharp/NPanday/Logging/Level.cs
 (original)
+++ 
incubator/npanday/trunk/dotnet/assemblies/NPanday.Logging/src/main/csharp/NPanday/Logging/Level.cs
 Tue Nov  8 16:13:24 2011
@@ -23,37 +23,42 @@ using System;
 
 namespace NPanday.Logging
 {
-       public class Level
-       {               
-               
-               public static Level SEVERE = new Level("SEVERE", 10);
-               
-               public static Level WARNING = new Level("WARNING", 9);
-               
-               public static Level INFO = new Level("INFO", 8);                
-               
-               public static Level FINE = new Level("FINE", 7);
-               
-               public static Level DEBUG = new Level("DEBUG", 6);              
-               
-               private String name;
-               
-               private int value;
-               
-               private Level(String name, int value)
-               {
-                       this.name = name;
-                       this.value = value;
-               }
-               
-               public String GetName()
-               {
-                       return name;
-               }
-               
-               public int GetValue()
-               {
-                       return value;
-               }
-       }
+    public class Level
+    {
+
+        public static Level SEVERE = new Level("SEVERE", 10);
+
+        public static Level WARNING = new Level("WARNING", 9);
+
+        public static Level INFO = new Level("INFO", 8);
+
+        public static Level FINE = new Level("FINE", 7);
+
+        public static Level DEBUG = new Level("DEBUG", 6);
+
+        private String name;
+
+        private int value;
+
+        private Level(String name, int value)
+        {
+            this.name = name;
+            this.value = value;
+        }
+
+        public String GetName()
+        {
+            return name;
+        }
+
+        public int GetValue()
+        {
+            return value;
+        }
+
+        public override string ToString()
+        {
+            return name;
+        }
+    }
 }

Modified: 
incubator/npanday/trunk/dotnet/assemblies/NPanday.Logging/src/main/csharp/NPanday/Logging/LogRecord.cs
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.Logging/src/main/csharp/NPanday/Logging/LogRecord.cs?rev=1199326&r1=1199325&r2=1199326&view=diff
==============================================================================
--- 
incubator/npanday/trunk/dotnet/assemblies/NPanday.Logging/src/main/csharp/NPanday/Logging/LogRecord.cs
 (original)
+++ 
incubator/npanday/trunk/dotnet/assemblies/NPanday.Logging/src/main/csharp/NPanday/Logging/LogRecord.cs
 Tue Nov  8 16:13:24 2011
@@ -20,32 +20,44 @@
 #endregion
 
 using System;
+using System.Threading;
 
 namespace NPanday.Logging
 {
-       /// <summary>
-       /// Description of LogRecord.
-       /// </summary>
-       public class LogRecord
-       {
-               private Level level;
-               
-               private String message;
-               
-               public LogRecord(Level level, String message) 
-               {
-                       this.level = level;
-                       this.message = message;
-               }
-               
-               public Level GetLevel()
-               {
-                       return level;
-               }
-               
-               public String GetMessage()
-               {
-                       return message;
-               }
-       }
+    /// <summary>
+    /// Description of LogRecord.
+    /// </summary>
+    public class LogRecord
+    {
+        private Level level;
+        private String message;
+        private int thread;
+
+        public LogRecord(Level level, String message)
+        {
+            this.level = level;
+            this.message = message;
+            thread = Thread.CurrentThread.ManagedThreadId;
+        }
+
+        public Level GetLevel()
+        {
+            return level;
+        }
+
+        public String GetMessage()
+        {
+            return message;
+        }
+
+        public int GetThread()
+        {
+            return thread;
+        }
+
+        public override string ToString()
+        {
+            return "[" + level + ", #" + thread + "] " + message;
+        }
+    }
 }

Modified: 
incubator/npanday/trunk/dotnet/assemblies/NPanday.Model.Settings/src/main/csharp/NPanday.Model.Settings.csproj
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.Model.Settings/src/main/csharp/NPanday.Model.Settings.csproj?rev=1199326&r1=1199325&r2=1199326&view=diff
==============================================================================
--- 
incubator/npanday/trunk/dotnet/assemblies/NPanday.Model.Settings/src/main/csharp/NPanday.Model.Settings.csproj
 (original)
+++ 
incubator/npanday/trunk/dotnet/assemblies/NPanday.Model.Settings/src/main/csharp/NPanday.Model.Settings.csproj
 Tue Nov  8 16:13:24 2011
@@ -62,6 +62,9 @@ under the License.
       <SubType>Code</SubType>
     </Compile>
   </ItemGroup>
+  <ItemGroup>
+    <WebReferences Include="Web References\" />
+  </ItemGroup>
   <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
   <!-- To modify your build process, add your task inside one of the targets 
below and uncomment it. 
        Other similar extension points exist, see Microsoft.Common.targets.

Modified: 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/NPanday.VisualStudio.Addin.sln
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/NPanday.VisualStudio.Addin.sln?rev=1199326&r1=1199325&r2=1199326&view=diff
==============================================================================
--- 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/NPanday.VisualStudio.Addin.sln
 (original)
+++ 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/NPanday.VisualStudio.Addin.sln
 Tue Nov  8 16:13:24 2011
@@ -3,6 +3,10 @@ Microsoft Visual Studio Solution File, F
 # Visual Studio 2005
 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = 
"NPanday.VisualStudio.Addin", 
"src\main\csharp\NPanday.VisualStudio.Addin.csproj", 
"{5BE35FDF-E620-4EB0-B9A8-2359C506D85D}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = 
"NPanday.ProjectImporterEngine", 
"..\NPanday.ProjectImporter\Engine\src\main\csharp\NPanday.ProjectImporterEngine.csproj",
 "{91FC215D-C041-4000-8F71-C04A9EEABE55}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NPanday.Utils", 
"..\NPanday.Utils\src\main\csharp\NPanday.Utils.csproj", 
"{CAA4864F-F4C8-4024-8535-8B8C112307CE}"
+EndProject
 Global
        GlobalSection(SolutionConfigurationPlatforms) = preSolution
                Debug|Any CPU = Debug|Any CPU
@@ -10,6 +14,10 @@ Global
        GlobalSection(ProjectConfigurationPlatforms) = postSolution
                {5BE35FDF-E620-4EB0-B9A8-2359C506D85D}.Debug|Any CPU.ActiveCfg 
= Debug|Any CPU
                {5BE35FDF-E620-4EB0-B9A8-2359C506D85D}.Debug|Any CPU.Build.0 = 
Debug|Any CPU
+               {91FC215D-C041-4000-8F71-C04A9EEABE55}.Debug|Any CPU.ActiveCfg 
= Debug|Any CPU
+               {91FC215D-C041-4000-8F71-C04A9EEABE55}.Debug|Any CPU.Build.0 = 
Debug|Any CPU
+               {CAA4864F-F4C8-4024-8535-8B8C112307CE}.Debug|Any CPU.ActiveCfg 
= Debug|Any CPU
+               {CAA4864F-F4C8-4024-8535-8B8C112307CE}.Debug|Any CPU.Build.0 = 
Debug|Any CPU
        EndGlobalSection
        GlobalSection(SolutionProperties) = preSolution
                HideSolutionNode = FALSE

Modified: 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday.VisualStudio.Addin.csproj
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday.VisualStudio.Addin.csproj?rev=1199326&r1=1199325&r2=1199326&view=diff
==============================================================================
--- 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday.VisualStudio.Addin.csproj
 (original)
+++ 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday.VisualStudio.Addin.csproj
 Tue Nov  8 16:13:24 2011
@@ -77,6 +77,7 @@ under the License.
     <Compile 
Include="NPanday\VisualStudio\Addin\Commands\AddArtifactsCommand.cs" />
     <Compile Include="NPanday\VisualStudio\Addin\Commands\ButtonCommand.cs" />
     <Compile 
Include="NPanday\VisualStudio\Addin\Commands\IButtonCommandContext.cs" />
+    <Compile 
Include="NPanday\VisualStudio\Addin\Commands\ImportSelectedProjectCommand.cs" />
     <Compile 
Include="NPanday\VisualStudio\Addin\Commands\VSCommandCaptions.cs" />
     <Compile 
Include="NPanday\VisualStudio\Addin\ConfigureMavenRepositoryForm.cs">
       <SubType>Form</SubType>
@@ -86,7 +87,7 @@ under the License.
     </Compile>
     <Compile Include="NPanday\VisualStudio\Addin\Connect.cs" />
     <Compile Include="NPanday\VisualStudio\Addin\FolderWatcher.cs" />
-    <Compile 
Include="NPanday\VisualStudio\Addin\Helper\BuiltinCommandFinder.cs" />
+    <Compile 
Include="NPanday\VisualStudio\Addin\Helper\VisualStudioControlsFinder.cs" />
     <Compile Include="NPanday\VisualStudio\Addin\LoginForm.cs">
       <SubType>Form</SubType>
     </Compile>

Modified: 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Commands/AddArtifactsCommand.cs
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Commands/AddArtifactsCommand.cs?rev=1199326&r1=1199325&r2=1199326&view=diff
==============================================================================
--- 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Commands/AddArtifactsCommand.cs
 (original)
+++ 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Commands/AddArtifactsCommand.cs
 Tue Nov  8 16:13:24 2011
@@ -28,13 +28,11 @@ namespace NPanday.VisualStudio.Addin.Com
                     DialogResult result = MessageBox.Show("Pom file not found, 
do you want to import the projects first before adding Maven Artifact?", "Add 
Maven Artifact", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                     if (result == DialogResult.Cancel)
                         return;
-                    else if (result == DialogResult.OK)
+
+                    if (result == DialogResult.OK)
                     {
-                        
context.ExecuteCommand(VSCommandCaptions.Standard_SaveAll);
+                        
context.ExecuteCommand<ImportSelectedProjectCommand>(); ;
 
-                        NPandayImportProjectForm frm = new 
NPandayImportProjectForm(Application, context.Logger);
-                        frm.SetOutputWindowPane(context.OutputWindowPane);
-                        frm.ShowDialog();
                         currentPom = context.CurrentSelectedProjectPom;
 
                         // if import failed
@@ -44,6 +42,7 @@ namespace NPanday.VisualStudio.Addin.Com
                         }
                     }
                 }
+
                 AddArtifactsForm form = new AddArtifactsForm(project, 
context.ArtifactContext, context.Logger, currentPom);
                 form.Show();
                 break;

Modified: 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Commands/ButtonCommandRegistry.cs
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Commands/ButtonCommandRegistry.cs?rev=1199326&r1=1199325&r2=1199326&view=diff
==============================================================================
--- 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Commands/ButtonCommandRegistry.cs
 (original)
+++ 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Commands/ButtonCommandRegistry.cs
 Tue Nov  8 16:13:24 2011
@@ -3,6 +3,7 @@ using System.Collections.Generic;
 using System.Text;
 using Microsoft.VisualStudio.CommandBars;
 using EnvDTE80;
+using NPanday.Logging;
 
 namespace NPanday.VisualStudio.Addin.Commands
 {
@@ -13,17 +14,25 @@ namespace NPanday.VisualStudio.Addin.Com
     /// </summary>
     public class ButtonCommandRegistry
     {
-        List<CommandBarControl> _keepReferences = new 
List<CommandBarControl>();
+        readonly List<CommandBarControl> _keepReferences = new 
List<CommandBarControl>();
 
-        Dictionary<Type, ButtonCommand> _commands = new Dictionary<Type, 
ButtonCommand>();
+        readonly Dictionary<Type, ButtonCommand> _commands = new 
Dictionary<Type, ButtonCommand>();
 
         private readonly DTE2 _application;
-        private BuildCommandContext _buildContext;
+        private readonly BuildCommandContext _buildContext;
+        private readonly Logger _logger;
 
-        public ButtonCommandRegistry(DTE2 application, BuildCommandContext 
buildContext)
+        public ButtonCommandRegistry(DTE2 application, BuildCommandContext 
buildContext, Logger logger)
         {
             _application = application;
             _buildContext = buildContext;
+            _logger = logger;
+        }
+
+        public void Excecute<TCommand>(IButtonCommandContext context)
+           where TCommand : ButtonCommand, new()
+        {
+            getOrCreate<TCommand>().Execute(context);
         }
 
         public TCommand AddBefore<TCommand>(CommandBarControl barControl)
@@ -32,9 +41,17 @@ namespace NPanday.VisualStudio.Addin.Com
             return Add<TCommand>(barControl.Parent, barControl.Index);
         }
 
+        public TCommand AddAfter<TCommand>(CommandBarControl barControl)
+            where TCommand : ButtonCommand, new()
+        {
+            return Add<TCommand>(barControl.Parent, barControl.Index + 1);
+        }
+
         public TCommand Add<TCommand>(CommandBar bar, int atIndex)
             where TCommand : ButtonCommand, new()
         {
+            _logger.Log(Level.DEBUG, "Adding command " + typeof(TCommand).Name 
+ " on " + bar.Name + " at index " + atIndex);
+
             TCommand command = getOrCreate<TCommand>();
 
             CommandBarButton ctl = (CommandBarButton)
@@ -42,7 +59,7 @@ namespace NPanday.VisualStudio.Addin.Com
                                    System.Type.Missing, System.Type.Missing, 
atIndex, true);
             ctl.Click += delegate(CommandBarButton btn, ref bool Cancel)
                 {
-                    command.Execute(_buildContext()); 
+                    command.Execute(_buildContext());
                 };
             ctl.Caption = command.Caption;
             ctl.Visible = true;
@@ -63,8 +80,16 @@ namespace NPanday.VisualStudio.Addin.Com
 
             command = new TCommand();
             command.Application = _application;
-            _commands[typeof (TCommand)] = command;
+            _commands[typeof(TCommand)] = command;
             return (TCommand)command;
         }
+
+        public void UnregisterAll()
+        {
+            foreach (var commandBarControl in _keepReferences.ToArray())
+            {
+                _logger.Log(Level.DEBUG, "Removing control " + 
commandBarControl.Caption + " on " + commandBarControl.HelpContextId + " at 
index " + commandBarControl.Index);
+            }
+        }
     }
 }

Modified: 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Commands/IButtonCommandContext.cs
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Commands/IButtonCommandContext.cs?rev=1199326&r1=1199325&r2=1199326&view=diff
==============================================================================
--- 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Commands/IButtonCommandContext.cs
 (original)
+++ 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Commands/IButtonCommandContext.cs
 Tue Nov  8 16:13:24 2011
@@ -7,11 +7,11 @@ namespace NPanday.VisualStudio.Addin.Com
 {
     public interface IButtonCommandContext
     {
-        FileInfo CurrentSelectedProjectPom { get; }
-        ArtifactContext ArtifactContext { get; }
         Logger Logger { get; }
-        OutputWindowPane OutputWindowPane { get; }
+        ArtifactContext ArtifactContext { get; }
+        FileInfo CurrentSelectedProjectPom { get; }
 
-        bool ExecuteCommand(string barAndCaption);
+        void ExecuteCommand(string visualStudioCommandName);
+        void ExecuteCommand<TCommand>() where TCommand : ButtonCommand, new();
     }
 }

Added: 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Commands/ImportSelectedProjectCommand.cs
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Commands/ImportSelectedProjectCommand.cs?rev=1199326&view=auto
==============================================================================
--- 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Commands/ImportSelectedProjectCommand.cs
 (added)
+++ 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Commands/ImportSelectedProjectCommand.cs
 Tue Nov  8 16:13:24 2011
@@ -0,0 +1,18 @@
+namespace NPanday.VisualStudio.Addin.Commands
+{
+    public class ImportSelectedProjectCommand : ButtonCommand
+    {
+        public override string Caption
+        {
+            get { return Messages.MSG_C_IMPORT_PROJECT; }
+        }
+
+        public override void Execute(IButtonCommandContext context)
+        {
+            context.ExecuteCommand("File.SaveAll");
+
+            NPandayImportProjectForm frm = new 
NPandayImportProjectForm(Application, context.Logger);
+            frm.ShowDialog();
+        }
+    }
+}
\ No newline at end of file

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=1199326&r1=1199325&r2=1199326&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
 Tue Nov  8 16:13:24 2011
@@ -414,58 +414,68 @@ namespace NPanday.VisualStudio.Addin
         /// <seealso class='IDTExtensibility2' />
         public void OnConnection(object application, ext_ConnectMode 
connectMode, object addInInst, ref Array custom)
         {
-            _applicationObject = (DTE2)application;
-            mavenRunner = new MavenRunner(_applicationObject);
-            mavenRunner.RunnerStopped += new 
EventHandler(mavenRunner_RunnerStopped);
-            _addInInstance = (AddIn)addInInst;
-            EnvDTE.Command command = null;
-            mavenConnected = true;
+            if (_applicationObject == null)
+            {
+                // this should only be done once!
 
-            string paneName = "NPanday Build System";
+                _applicationObject = (DTE2)application;
+                mavenRunner = new MavenRunner(_applicationObject);
+                mavenRunner.RunnerStopped += new 
EventHandler(mavenRunner_RunnerStopped);
+                _addInInstance = (AddIn)addInInst;
+                mavenConnected = true;
 
-            outputWindowPane = getOrCreateOutputPane(paneName);
+                string paneName = "NPanday Build System";
 
-            OutputWindowPaneHandler handler = new OutputWindowPaneHandler();
-            handler.SetOutputWindowPaneHandler(outputWindowPane);
+                outputWindowPane = getOrCreateOutputPane(paneName);
 
-            logger = NPanday.Logging.Logger.GetLogger("UC");
-            logger.AddHandler(handler);
+                OutputWindowPaneHandler handler = new 
OutputWindowPaneHandler();
+                handler.SetOutputWindowPaneHandler(outputWindowPane);
 
-            if (_addInInstance.Name.Contains("SNAPSHOT"))
-            {
-                OutputWindowPaneHandler debugHandler = new 
OutputWindowPaneHandler();
-                
debugHandler.SetOutputWindowPaneHandler(getOrCreateOutputPane(paneName + " 
(DEBUG)"));
-                debugHandler.SetLevel(Level.DEBUG);
-                logger.AddHandler(debugHandler);
-            }
+                logger = NPanday.Logging.Logger.GetLogger("UC");
+                logger.AddHandler(handler);
 
-            logger.Log(Level.DEBUG, "Intialized panes; connect mode is " + 
connectMode);
+                if (_addInInstance.Name.Contains("SNAPSHOT"))
+                {
+                    OutputWindowPaneHandler debugHandler = new 
OutputWindowPaneHandler();
+                    
debugHandler.SetOutputWindowPaneHandler(getOrCreateOutputPane(paneName + " 
(DEBUG)"));
+                    debugHandler.SetLevel(Level.DEBUG);
+                    logger.AddHandler(debugHandler);
+                }
 
-            _buttonCommandRegistry = new 
ButtonCommandRegistry(_applicationObject, buildCommandContext);
+                logger.Log(Level.DEBUG, "Intialized panes");
 
-            _finder = new BuiltinCommandFinder(_applicationObject, logger);
+                _buttonCommandRegistry = new 
ButtonCommandRegistry(_applicationObject, buildCommandContext, logger);
 
+                _finder = new VisualStudioControlsFinder(_applicationObject, 
logger);
+                _finder.IndexCommands();
 
-            globalSolutionEvents = 
(EnvDTE.SolutionEvents)((Events2)_applicationObject.Events).SolutionEvents;
-            globalSolutionEvents.BeforeClosing += new 
_dispSolutionEvents_BeforeClosingEventHandler(SolutionEvents_BeforeClosing);
-            globalSolutionEvents.Opened += new 
_dispSolutionEvents_OpenedEventHandler(SolutionEvents_Opened);
-            globalSolutionEvents.ProjectAdded += new 
_dispSolutionEvents_ProjectAddedEventHandler(SolutionEvents_ProjectAdded);
+                globalSolutionEvents = 
(EnvDTE.SolutionEvents)((Events2)_applicationObject.Events).SolutionEvents;
+                globalSolutionEvents.BeforeClosing += new 
_dispSolutionEvents_BeforeClosingEventHandler(SolutionEvents_BeforeClosing);
+                globalSolutionEvents.Opened += new 
_dispSolutionEvents_OpenedEventHandler(SolutionEvents_Opened);
+                globalSolutionEvents.ProjectAdded += new 
_dispSolutionEvents_ProjectAddedEventHandler(SolutionEvents_ProjectAdded);
 
-            projectItemsEvents = 
(EnvDTE.ProjectItemsEvents)((Events2)_applicationObject.Events).ProjectItemsEvents;
-            projectItemsEvents.ItemAdded += new 
_dispProjectItemsEvents_ItemAddedEventHandler(ProjectItemEvents_ItemAdded);
-            projectItemsEvents.ItemRemoved += new 
_dispProjectItemsEvents_ItemRemovedEventHandler(ProjectItemEvents_ItemRemoved);
-            projectItemsEvents.ItemRenamed += new 
_dispProjectItemsEvents_ItemRenamedEventHandler(ProjectItemEvents_ItemRenamed);
+                projectItemsEvents = 
(EnvDTE.ProjectItemsEvents)((Events2)_applicationObject.Events).ProjectItemsEvents;
+                projectItemsEvents.ItemAdded += new 
_dispProjectItemsEvents_ItemAddedEventHandler(ProjectItemEvents_ItemAdded);
+                projectItemsEvents.ItemRemoved += new 
_dispProjectItemsEvents_ItemRemovedEventHandler(ProjectItemEvents_ItemRemoved);
+                projectItemsEvents.ItemRenamed += new 
_dispProjectItemsEvents_ItemRenamedEventHandler(ProjectItemEvents_ItemRenamed);
+            }
 
+            logger.Log(Level.DEBUG, "OnConnetion() called with connect mode " 
+ connectMode);
+
+            // this is only called once per installation
             if (connectMode == ext_ConnectMode.ext_cm_UISetup)
             {
+                logger.Log(Level.DEBUG, "Registering Startup-Command in 
Tools-Menu");
 
+                Command toolsMenuCommand = null;
                 object[] contextGUIDS = new object[] { };
                 Commands2 commands = (Commands2)_applicationObject.Commands;
+
                 string toolsMenuName = VSCommandCaptions.Tools;
 
                 //Place the command on the tools menu.
                 //Find the MenuBar command bar, which is the top-level command 
bar holding all the main menu items:
-                Microsoft.VisualStudio.CommandBars.CommandBar 
menuBarCommandBar = 
((Microsoft.VisualStudio.CommandBars.CommandBars)_applicationObject.CommandBars)["MenuBar"];
+                CommandBar menuBarCommandBar = 
((CommandBars)_applicationObject.CommandBars)["MenuBar"];
 
                 //Find the Tools command bar on the MenuBar command bar:
                 CommandBarControl toolsControl = 
menuBarCommandBar.Controls[toolsMenuName];
@@ -483,16 +493,16 @@ namespace NPanday.VisualStudio.Addin
                 try
                 {
                     //Add a command to the Commands collection:
-                    command = commands.AddNamedCommand2(_addInInstance, 
"NPandayAddin",
+                    toolsMenuCommand = 
commands.AddNamedCommand2(_addInInstance, "NPandayAddin",
                         Messages.MSG_D_NPANDAY_BUILD_SYSTEM, 
Messages.MSG_T_NPANDAY_BUILDSYSTEM, true, 480, ref contextGUIDS,
                         (int)vsCommandStatus.vsCommandStatusSupported + 
(int)vsCommandStatus.vsCommandStatusEnabled,
                         (int)vsCommandStyle.vsCommandStylePictAndText,
                         vsCommandControlType.vsCommandControlTypeButton);
 
                     //Add a control for the command to the tools menu:
-                    if ((command != null) && (toolsPopup != null))
+                    if ((toolsMenuCommand != null) && (toolsPopup != null))
                     {
-                        command.AddControl(toolsPopup.CommandBar, 1);
+                        toolsMenuCommand.AddControl(toolsPopup.CommandBar, 1);
                     }
                     else
                     {
@@ -510,7 +520,9 @@ namespace NPanday.VisualStudio.Addin
                 }
 
             }
-            else if (connectMode == ext_ConnectMode.ext_cm_AfterStartup)
+
+
+            if (connectMode == ext_ConnectMode.ext_cm_AfterStartup)
             {
                 launchNPandayBuildSystem();
             }
@@ -534,51 +546,43 @@ namespace NPanday.VisualStudio.Addin
 
         private IButtonCommandContext buildCommandContext()
         {
-            return new ButtonCommandContext(this);
+            return new ButtonCommandContext(this, _applicationObject);
         }
 
         private class ButtonCommandContext : IButtonCommandContext
         {
-            private Connect _this;
-            public ButtonCommandContext(Connect connect)
+            private Connect _connect;
+            private readonly DTE2 _application;
+
+            public ButtonCommandContext(Connect connect, DTE2 application)
             {
-                _this = connect;
+                _connect = connect;
+                _application = application;
             }
 
             public FileInfo CurrentSelectedProjectPom
             {
-                get { return _this.CurrentSelectedProjectPom; }
+                get { return _connect.CurrentSelectedProjectPom; }
             }
 
             public ArtifactContext ArtifactContext
             {
-                get { return _this.container; }
+                get { return _connect.container; }
             }
 
             public Logger Logger
             {
-                get { return _this.logger; }
+                get { return _connect.logger; }
             }
 
-            public OutputWindowPane OutputWindowPane
+            public void ExecuteCommand(string visualStudioCommandName)
             {
-                get { return _this.outputWindowPane; }
+                _application.ExecuteCommand(visualStudioCommandName, "");
             }
 
-            public bool ExecuteCommand(string barAndCaption)
+            public void ExecuteCommand<TCommand>() where TCommand : 
ButtonCommand, new()
             {
-                CommandBarControl[] controls;
-                if (_this._finder.TryFindCommands(barAndCaption, out controls))
-                {
-                    // best guess
-                    controls[0].Execute();
-                    return true;
-                }
-                else
-                {
-                    Logger.Log(Level.SEVERE, "Could not find and execute 
command: " + barAndCaption);
-                    return false;
-                }
+                _connect._buttonCommandRegistry.Excecute<TCommand>(this);
             }
         }
 
@@ -1158,6 +1162,8 @@ namespace NPanday.VisualStudio.Addin
 
         private void launchNPandayBuildSystem()
         {
+            logger.Log(Level.DEBUG, "launchNPandayBuildSystem() called, 
_npandayLaunched is " + _npandayLaunched);
+
             try
             {
                 // just to be safe, check if NPanday is already launched
@@ -1183,8 +1189,6 @@ namespace NPanday.VisualStudio.Addin
                 bool placedNPandayMenus = false;
                 bool placedAllProjectMenu = false;
 
-                _finder.IndexCommands();
-
                 CommandBarControl[] barControls;
 
                 if (_finder.TryFindCommands(VSCommandCaptions.AddReference, 
out barControls))
@@ -1203,19 +1207,7 @@ namespace NPanday.VisualStudio.Addin
                 {
                     foreach (CommandBarControl control in commandBar.Controls)
                     {
-                        if 
(control.Caption.Equals(Messages.MSG_C_ADD_REFERENCE))
-                        {
-                            CommandBarButton ctl = (CommandBarButton)
-                                                   
commandBar.Controls.Add(MsoControlType.msoControlButton,
-                                                                           
System.Type.Missing, System.Type.Missing,
-                                                                           
control.Index, true);
-                            ctl.Click += new 
_CommandBarButtonEvents_ClickEventHandler(cbShowAddArtifactsForm_Click);
-                            ctl.Caption = Messages.MSG_C_ADD_MAVEN_ARTIFACT;
-                            ctl.Visible = true;
-                            addReferenceControls.Add(ctl);
-
-                        }
-                        else if (control.Caption.Equals("C&onfiguration 
Manager..."))
+                        if (control.Caption.Equals("C&onfiguration 
Manager..."))
                         {
                             //add solution menu
                             createStopBuildMenu(commandBar, control);
@@ -1291,6 +1283,8 @@ namespace NPanday.VisualStudio.Addin
 
             if (_applicationObject.Solution != null)
                 attachReferenceEvent();
+
+            logger.Log(Level.DEBUG, "launchNPandayBuildSystem() exited, 
_npandayLaunched is " + _npandayLaunched);
         }
 
         CommandBarButton cleanButton;
@@ -1431,7 +1425,6 @@ namespace NPanday.VisualStudio.Addin
 
         CommandBarButton ctlSettingsXml;
         CommandBarButton ctlSignAssembly;
-        CommandBarButton ctlProjectImport;
 
         private void createNPandayMenus(CommandBar commandBar, 
CommandBarControl control)
         {
@@ -1460,18 +1453,7 @@ namespace NPanday.VisualStudio.Addin
             ctlSignAssembly.Visible = true;
             buildControls.Add(ctlSignAssembly);
 
-            ctlProjectImport = (CommandBarButton)
-            commandBar.Controls.Add(MsoControlType.msoControlButton,
-                                      System.Type.Missing,
-                                      System.Type.Missing,
-                                      control.Index + 1,
-                                      true);
-            ctlProjectImport.Click +=
-                new 
_CommandBarButtonEvents_ClickEventHandler(cbChangeProjectImportForm_Click);
-            ctlProjectImport.Caption = Messages.MSG_C_IMPORT_PROJECT;
-            ctlProjectImport.Visible = true;
-
-            buildControls.Add(ctlProjectImport);
+            
_buttonCommandRegistry.Add<ImportSelectedProjectCommand>(commandBar, 
control.Index + 1);
         }
 
         CommandBarPopup ctlAll;
@@ -1730,6 +1712,8 @@ namespace NPanday.VisualStudio.Addin
             addReferenceControls = new List<CommandBarButton>();
             buildControls = new List<CommandBarControl>();
 
+            _buttonCommandRegistry.UnregisterAll();
+
             outputWindowPane.Clear();
             mavenRunner.ClearOutputWindow();
 
@@ -2279,40 +2263,6 @@ namespace NPanday.VisualStudio.Addin
         }
         #endregion
 
-        #region cbShowAddArtifactsForm_Click(CommandBarButton,bool)
-        private void cbShowAddArtifactsForm_Click(CommandBarButton btn, ref 
bool Cancel)
-        {
-            //First selected project
-            foreach (Project project in 
(Array)_applicationObject.ActiveSolutionProjects)
-            {
-                FileInfo currentPom = this.CurrentSelectedProjectPom;
-                if (currentPom == null || 
Path.GetDirectoryName(currentPom.FullName) != 
Path.GetDirectoryName(project.FullName))
-                {
-                    DialogResult result = MessageBox.Show("Pom file not found, 
do you want to import the projects first before adding Maven Artifact?", "Add 
Maven Artifact", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
-                    if (result == DialogResult.Cancel)
-                        return;
-                    else if (result == DialogResult.OK)
-                    {
-                        SaveAllDocuments();
-                        NPandayImportProjectForm frm = new 
NPandayImportProjectForm(_applicationObject, logger);
-                        frm.SetOutputWindowPane(outputWindowPane);
-                        frm.ShowDialog();
-                        currentPom = this.CurrentSelectedProjectPom;
-
-                        // if import failed
-                        if (currentPom == null || 
Path.GetDirectoryName(currentPom.FullName) != 
Path.GetDirectoryName(project.FullName))
-                        {
-                            return;
-                        }
-                    }
-                }
-                AddArtifactsForm form = new AddArtifactsForm(project, 
container, logger, currentPom);
-                form.Show();
-                break;
-            }
-        }
-        #endregion
-
         // by jan ancajas
         #region cbChangeSettingsXmlForm_Click(CommandBarButton, bool)
         private void cbChangeSettingsXmlForm_Click(CommandBarButton btn, ref 
bool Cancel)
@@ -2341,16 +2291,6 @@ namespace NPanday.VisualStudio.Addin
 
         #endregion
 
-        #region cbChangeProjectImportForm_Click(CommandBarButton, bool)
-        private void cbChangeProjectImportForm_Click(CommandBarButton btn, ref 
bool Cancel)
-        {
-            SaveAllDocuments();
-            NPandayImportProjectForm frm = new 
NPandayImportProjectForm(_applicationObject, logger);
-            frm.SetOutputWindowPane(outputWindowPane);
-            frm.ShowDialog();
-        }
-        #endregion
-
         #region OnBeginShutdown(Array)
         /// <summary>Implements the OnBeginShutdown method of the 
IDTExtensibility2 interface. Receives notification that the host application is 
being unloaded.</summary>
         /// <param term='custom'>Array of parameters that are host application 
specific.</param>
@@ -2428,7 +2368,7 @@ namespace NPanday.VisualStudio.Addin
         private CommandBarButton stopButton;
 
         private ButtonCommandRegistry _buttonCommandRegistry;
-        private BuiltinCommandFinder _finder;
+        private VisualStudioControlsFinder _finder;
 
 
         List<WebServicesReferenceWatcher> wsRefWatcher = new 
List<WebServicesReferenceWatcher>();

Copied: 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Helper/VisualStudioControlsFinder.cs
 (from r1198920, 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Helper/BuiltinCommandFinder.cs)
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Helper/VisualStudioControlsFinder.cs?p2=incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Helper/VisualStudioControlsFinder.cs&p1=incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Helper/BuiltinCommandFinder.cs&r1=1198920&r2=1199326&rev=1199326&view=diff
==============================================================================
--- 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Helper/BuiltinCommandFinder.cs
 (original)
+++ 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPanday/VisualStudio/Addin/Helper/VisualStudioControlsFinder.cs
 Tue Nov  8 16:13:24 2011
@@ -9,20 +9,20 @@ using NPanday.Logging;
 
 namespace NPanday.VisualStudio.Addin.Helper
 {
-    public class BuiltinCommandFinder
+    public class VisualStudioControlsFinder
     {
         private readonly DTE2 _application;
         private readonly Logger _logger;
 
-        IDictionary<string, List<string>> 
_containingCommandBarsByControlCaption = new Dictionary<string, List<string>>();
-        IDictionary<string, List<string>> _containingCommandBarsByCammandName 
= new Dictionary<string, List<string>>();
+        readonly IDictionary<string, List<string>> 
_containingCommandBarsByControlCaption = new Dictionary<string, List<string>>();
+        readonly IDictionary<string, List<string>> 
_containingCommandBarsByCammandName = new Dictionary<string, List<string>>();
 
-        IDictionary<string, CommandBarControl> _controlByCaptionPath = new 
Dictionary<string, CommandBarControl>();
-        IDictionary<string, CommandBarControl> _controlByBarAndCommandNamePath 
= new Dictionary<string, CommandBarControl>();
-        private bool _indexed = false;
+        readonly IDictionary<string, CommandBarControl> _controlByCaptionPath 
= new Dictionary<string, CommandBarControl>();
+        readonly IDictionary<string, CommandBarControl> 
_controlByBarAndCommandNamePath = new Dictionary<string, CommandBarControl>();
+        private bool _indexed;
 
 
-        public BuiltinCommandFinder(DTE2 application, Logger logger)
+        public VisualStudioControlsFinder(DTE2 application, Logger logger)
         {
             _application = application;
             _logger = logger;
@@ -117,25 +117,21 @@ namespace NPanday.VisualStudio.Addin.Hel
             ensureIsIndexed();
             CommandBarControl control;
 
-            if 
(_controlByBarAndCommandNamePath.TryGetValue(buildCommandCaptionPath(commandBar,
 controlCaptionOrCommandName), out control))
+            var commandNamePath = buildCommandCaptionPath(commandBar, 
controlCaptionOrCommandName);
+            if (_controlByBarAndCommandNamePath.TryGetValue(commandNamePath, 
out control))
             {
-                string commandName = getButtonTargetCommand(control).Name;
-                if (!string.IsNullOrEmpty(commandName))
-                {
-                    _logger.Log(Level.DEBUG,
-                                "Control found using it's caption; its better 
to use the command name: " + commandName);
-                }
                 return control;
             }
 
 
-            if 
(_controlByCaptionPath.TryGetValue(buildCommandCaptionPath(commandBar, 
controlCaptionOrCommandName), out control))
+            var commandCaptionPath = buildCommandCaptionPath(commandBar, 
controlCaptionOrCommandName);
+            if (_controlByCaptionPath.TryGetValue(commandCaptionPath, out 
control))
             {
                 string commandName = getButtonTargetCommand(control).Name;
                 if (!string.IsNullOrEmpty(commandName))
                 {
                     _logger.Log(Level.DEBUG,
-                                "Control found using it's caption; its better 
to use the command name: " + commandName);
+                                "Control found using it's caption path '" + 
commandCaptionPath + "'; its better to use the command name path: " + 
commandNamePath);
                 }
                 return control;
             }

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=1199326&r1=1199325&r2=1199326&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
 Tue Nov  8 16:13:24 2011
@@ -43,10 +43,9 @@ namespace NPanday.VisualStudio.Addin
     public partial class NPandayImportProjectForm : Form
     {
         private DTE2 applicationObject;
-        private OutputWindowPane outputWindowPane;
         private NPanday.Logging.Logger logger;
 
-               public static string FilterID(string partial)
+        public static string FilterID(string partial)
         {
             string filtered = string.Empty;
             if (partial.EndsWith("."))
@@ -81,16 +80,16 @@ namespace NPanday.VisualStudio.Addin
             {
                 txtBrowseDotNetSolutionFile.Text = 
applicationObject.Solution.FileName;
                 try
-                {                    
-                    string companyId = 
Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Windows 
NT\CurrentVersion").GetValue("RegisteredOrganization","mycompany").ToString();
+                {
+                    string companyId = 
Registry.LocalMachine.OpenSubKey(@"Software\Microsoft\Windows 
NT\CurrentVersion").GetValue("RegisteredOrganization", "mycompany").ToString();
                     string groupId = string.Empty;
-                    
+
                     if (companyId != string.Empty)
                     {
-                        groupId = FilterID( ConvertToPascalCase(companyId) )+ 
".";
+                        groupId = FilterID(ConvertToPascalCase(companyId)) + 
".";
                     }
-                    
-                    groupId = groupId +  FilterID(ConvertToPascalCase(new 
FileInfo(applicationObject.Solution.FileName).Name.Replace(".sln", "")));
+
+                    groupId = groupId + FilterID(ConvertToPascalCase(new 
FileInfo(applicationObject.Solution.FileName).Name.Replace(".sln", "")));
                     txtGroupId.Text = groupId;
                     string scmTag = string.Empty;  
//getSCMTag(applicationObject.Solution.FileName);
                     string version = "1.0-SNAPSHOT";
@@ -114,7 +113,7 @@ namespace NPanday.VisualStudio.Addin
                         }
                     }
 
-                    if(! string.IsNullOrEmpty(scmTag))
+                    if (!string.IsNullOrEmpty(scmTag))
                     {
                         txtSCMTag.Text = scmTag;
                     }
@@ -153,11 +152,6 @@ namespace NPanday.VisualStudio.Addin
             return strBuild.ToString();
         }
 
-        public void SetOutputWindowPane(OutputWindowPane pane)
-        {
-            outputWindowPane = pane;
-        }
-
         private void btnBrowse_Click(object sender, EventArgs e)
         {
             OpenFileDialog ofd = new OpenFileDialog();
@@ -196,8 +190,8 @@ namespace NPanday.VisualStudio.Addin
                 MessageBox.Show(exception.Message, "NPanday Import Error:", 
MessageBoxButtons.OK, MessageBoxIcon.Error);
             }
         }
-        
-         protected void GeneratePom(String solutionFile, String groupId, 
String version, String scmTag)
+
+        protected void GeneratePom(String solutionFile, String groupId, String 
version, String scmTag)
         {
             string warningMsg = string.Empty;
             String mavenVerRegex = "^[0-9]+(" + Regex.Escape(".") + 
"?[0-9]+){0,3}$";
@@ -205,12 +199,12 @@ namespace NPanday.VisualStudio.Addin
             String singleMavenVer = "[0-9]+";
             bool isMatch = false;
 
-             if (version.Length > 1)
+            if (version.Length > 1)
             {
 
                 if (Regex.IsMatch(version, hasAlpha) && 
version.ToUpper().EndsWith("-SNAPSHOT"))
                 {
-                    isMatch = 
Regex.IsMatch(version.ToUpper().Replace("-SNAPSHOT",""), mavenVerRegex, 
RegexOptions.Singleline);
+                    isMatch = 
Regex.IsMatch(version.ToUpper().Replace("-SNAPSHOT", ""), mavenVerRegex, 
RegexOptions.Singleline);
                 }
                 else
                 {
@@ -318,15 +312,15 @@ namespace NPanday.VisualStudio.Addin
                 {
                     message += Environment.NewLine + "Version is empty.";
                 }
-                
+
                 else if (!isMatch)
                 {
                     message += Environment.NewLine + "Version should be in the 
form major.minor.build.revision-SNAPSHOT";
                 }
-                
+
                 throw new Exception(message);
             }
-            
+
         }
 
         private void btnCancel_Click(object sender, EventArgs e)
@@ -337,7 +331,7 @@ namespace NPanday.VisualStudio.Addin
 
         private void txtSCMTag_TextChanged(object sender, EventArgs e)
         {
-           
+
         }
 
         private void txtSCMTag_Click(object sender, EventArgs e)
@@ -379,7 +373,7 @@ namespace NPanday.VisualStudio.Addin
                 if (refManagers.Count > 0)
                 {
                     refManagerHasError = false;
-                    outputWindowPane.OutputString("\n[INFO] Re-syncing 
artifacts... ");
+                    logger.Log(Level.INFO, "Re-syncing artifacts... ");
                     try
                     {
                         foreach (IReferenceManager mgr in refManagers)
@@ -390,18 +384,18 @@ namespace NPanday.VisualStudio.Addin
 
                         if (!refManagerHasError)
                         {
-                            outputWindowPane.OutputString(string.Format("done 
[{0}]", DateTime.Now.ToString("hh:mm tt")));
+                            logger.Log(Level.INFO, string.Format("done [{0}]", 
DateTime.Now.ToString("hh:mm tt")));
                         }
                     }
                     catch (Exception ex)
                     {
                         if (refManagerHasError)
                         {
-                            
outputWindowPane.OutputString(string.Format("\n[WARNING] {0}\n\n{1}\n\n", 
ex.Message, ex.StackTrace));
+                            logger.Log(Level.WARNING, 
string.Format("{0}\n\n{1}\n\n", ex.Message, ex.StackTrace));
                         }
                         else
                         {
-                            
outputWindowPane.OutputString(string.Format("failed: {0}\n\n{1}\n\n", 
ex.Message, ex.StackTrace));
+                            logger.Log(Level.SEVERE, (string.Format("failed: 
{0}\n\n{1}\n\n", ex.Message, ex.StackTrace)));
                         }
                     }
                 }
@@ -412,7 +406,7 @@ namespace NPanday.VisualStudio.Addin
         {
             Solution2 solution = (Solution2)applicationObject.Solution;
             string solutionDir = Path.GetDirectoryName(solution.FullName);
-            bool isFlatSingleModule = (solution.Projects.Count == 1 
+            bool isFlatSingleModule = (solution.Projects.Count == 1
                 && 
Path.GetExtension(solution.Projects.Item(1).FullName).EndsWith("proj")
                 && solutionDir == 
Path.GetDirectoryName(solution.Projects.Item(1).FullName));
 
@@ -435,10 +429,10 @@ namespace NPanday.VisualStudio.Addin
                     else
                     {
                         // This check seems too arbitrary - removed for now
-//                        if (solutionDir != Path.GetDirectoryName(projDir))
-//                        {
-//                            throw new Exception("Project Importer failed 
with project " + project.Name + ". Project directory structure may not be 
supported: in a multi-module project, the project must be in a direct 
subdirectory of the solution");
-//                        }
+                        //                        if (solutionDir != 
Path.GetDirectoryName(projDir))
+                        //                        {
+                        //                            throw new 
Exception("Project Importer failed with project " + project.Name + ". Project 
directory structure may not be supported: in a multi-module project, the 
project must be in a direct subdirectory of the solution");
+                        //                        }
                     }
                 }
             }
@@ -448,7 +442,7 @@ namespace NPanday.VisualStudio.Addin
         void refmanager_OnError(object sender, ReferenceErrorEventArgs e)
         {
             refManagerHasError = true;
-            outputWindowPane.OutputString("\n[WARNING] " + e.Message);
+            logger.Log(Level.WARNING, e.Message);
         }
 
         private const string WEB_PROJECT_KIND_GUID = 
"{E24C65DC-7377-472B-9ABA-BC803B73C61A}";

Modified: 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio/src/main/csharp/NPanday/VisualStudio/Logging/OutputWindowPaneHandler.cs
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio/src/main/csharp/NPanday/VisualStudio/Logging/OutputWindowPaneHandler.cs?rev=1199326&r1=1199325&r2=1199326&view=diff
==============================================================================
--- 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio/src/main/csharp/NPanday/VisualStudio/Logging/OutputWindowPaneHandler.cs
 (original)
+++ 
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio/src/main/csharp/NPanday/VisualStudio/Logging/OutputWindowPaneHandler.cs
 Tue Nov  8 16:13:24 2011
@@ -26,44 +26,44 @@ using NPanday.Logging;
 
 namespace NPanday.VisualStudio.Logging
 {
-       /// <summary>
-       /// Description of OutputWindowPaneHandler.
-       /// </summary>
-       public class OutputWindowPaneHandler : IHandler
-       {
-               private Level level;
-               
-               private OutputWindowPane outputWindowPane;
-                               
-               public OutputWindowPaneHandler()
-               {
-                       this.level = Level.INFO;
-               }
-               
-               public void SetOutputWindowPaneHandler(OutputWindowPane 
outputWindowPane)
-               {
-                       this.outputWindowPane = outputWindowPane;       
-               }
-               
-               [MethodImpl(MethodImplOptions.Synchronized)]
-               public void publish(LogRecord record)
-               {
-                       if(record.GetLevel().GetValue() >= level.GetValue())
-                       {
-                               
outputWindowPane.OutputString(record.GetMessage().Trim() + Environment.NewLine);
-                       }
-               }
-               
-               [MethodImpl(MethodImplOptions.Synchronized)]
-               public void SetLevel(Level level)
-               {
-                       this.level = level;
-               }
-               
-               [MethodImpl(MethodImplOptions.Synchronized)]
-               public Level GetLevel()
-               {
-                       return level;
-               }
-       }               
+    /// <summary>
+    /// Description of OutputWindowPaneHandler.
+    /// </summary>
+    public class OutputWindowPaneHandler : IHandler
+    {
+        private Level level;
+
+        private OutputWindowPane outputWindowPane;
+
+        public OutputWindowPaneHandler()
+        {
+            this.level = Level.INFO;
+        }
+
+        public void SetOutputWindowPaneHandler(OutputWindowPane 
outputWindowPane)
+        {
+            this.outputWindowPane = outputWindowPane;
+        }
+
+        [MethodImpl(MethodImplOptions.Synchronized)]
+        public void publish(LogRecord record)
+        {
+            if (record.GetLevel().GetValue() >= level.GetValue())
+            {
+                outputWindowPane.OutputString(record.ToString().Trim() + 
Environment.NewLine);
+            }
+        }
+
+        [MethodImpl(MethodImplOptions.Synchronized)]
+        public void SetLevel(Level level)
+        {
+            this.level = level;
+        }
+
+        [MethodImpl(MethodImplOptions.Synchronized)]
+        public Level GetLevel()
+        {
+            return level;
+        }
+    }
 }


Reply via email to