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;
+ }
+ }
}