[svn] r6540: vs-plugin/trunk/Nemerle.VsIntegration:
NemerleFileNode.cs Project/NemerleProjectNode.cs Utils...
VladD2
svnadmin at nemerle.org
Wed Aug 16 22:23:40 CEST 2006
Log:
Some refactoring.
Author: VladD2
Date: Wed Aug 16 22:23:33 2006
New Revision: 6540
Modified:
vs-plugin/trunk/Nemerle.VsIntegration/NemerleFileNode.cs
vs-plugin/trunk/Nemerle.VsIntegration/Project/NemerleProjectNode.cs
vs-plugin/trunk/Nemerle.VsIntegration/Utils.cs
Modified: vs-plugin/trunk/Nemerle.VsIntegration/NemerleFileNode.cs
==============================================================================
--- vs-plugin/trunk/Nemerle.VsIntegration/NemerleFileNode.cs (original)
+++ vs-plugin/trunk/Nemerle.VsIntegration/NemerleFileNode.cs Wed Aug 16 22:23:33 2006
@@ -106,6 +106,7 @@
{
if (selectionChangedListener != null)
selectionChangedListener.Dispose();
+
return base.Close();
}
@@ -115,14 +116,17 @@
/// <returns></returns>
public override object GetAutomationObject()
{
- return
- new OANemerleFileItem(ProjectMgr.GetAutomationObject() as OAProject, this);
+ return new OANemerleFileItem((OAProject)ProjectMgr.GetAutomationObject(), this);
}
// Called since the FileNode.ImageIndex returns -1 by default.
- public override object GetIconHandle(bool open) {
- if(this.FileName.ToLower().EndsWith(GlobalConstants.FileExtension))
- return PackageUtilities.GetIntPointerFromImage(NemerleProjectNode.NemerleImageList.Images[(int)GlobalConstants.ImageListIndex.NemerleSource]);
+ public override object GetIconHandle(bool open)
+ {
+ if(FileName.EndsWith(GlobalConstants.FileExtension, StringComparison.InvariantCultureIgnoreCase))
+ return PackageUtilities.GetIntPointerFromImage(
+ NemerleProjectNode.NemerleImageList.Images[
+ (int)GlobalConstants.ImageListIndex.NemerleSource]);
+
return base.GetIconHandle(open);
}
@@ -157,8 +161,8 @@
NemerleProjectFileConstants.MainFile, GetRelativePath());
return VSConstants.S_OK;
}
- return
- base.ExecCommandOnNode(guidCmdGroup, cmd, nCmdexecopt, pvaIn, pvaOut);
+
+ return base.ExecCommandOnNode(guidCmdGroup, cmd, nCmdexecopt, pvaIn, pvaOut);
}
/// <summary>
@@ -187,6 +191,7 @@
result |= QueryStatusResult.SUPPORTED | QueryStatusResult.ENABLED;
return VSConstants.S_OK;
}
+
return base.QueryStatusOnNode(guidCmdGroup, cmd, pCmdText, ref result);
}
Modified: vs-plugin/trunk/Nemerle.VsIntegration/Project/NemerleProjectNode.cs
==============================================================================
--- vs-plugin/trunk/Nemerle.VsIntegration/Project/NemerleProjectNode.cs (original)
+++ vs-plugin/trunk/Nemerle.VsIntegration/Project/NemerleProjectNode.cs Wed Aug 16 22:23:33 2006
@@ -12,6 +12,7 @@
using VSLangProj;
using System.Reflection;
using System.Windows.Forms;
+using Microsoft.VisualStudio.Shell;
namespace Nemerle.VsIntegration.Project
{
@@ -19,15 +20,10 @@
public class NemerleProjectNode : ProjectNode, IVsProjectSpecificEditorMap2
{
NemerlePackage _package;
- static ImageList _nemerleImageList;
+ static ImageList _nemerleImageList = LoadProjectImajeList();
#region ctor
- static NemerleProjectNode()
- {
- NemerleImageList = Utilities.GetImageList(typeof(NemerleProjectNode).Assembly.GetManifestResourceStream("Nemerle.VsIntegration.Resources.NemerleImageList.bmp"));
- }
-
public NemerleProjectNode(NemerlePackage pkg)
{
FileTemplateProcessor = new TokenProcessorEx();
@@ -40,20 +36,22 @@
InitializeCATIDs();
}
- // Needed since ProjectNode.ImageIndex returns ProjectNode.ImageName.Application.
- public override int ImageIndex {
- get { return HierarchyNode.NoImage; }
- }
+ private static ImageList LoadProjectImajeList()
+ {
+ // Make the name of resource bitmap.
+ // It's bitmap used in project ImageList.
+ Type type = typeof(NemerleProjectNode);
+ Assembly resourceAssembly = type.Assembly;
+ // "<assambly name>.Resources.NemerleImageList.bmp"
+ string resourceName = Utils.GetModuleName(type) + "."
+ + GlobalConstants.ProjectImageListName;
- // We have to override ImageIndex to be called.
- public override object GetIconHandle(bool open) {
- return Microsoft.VisualStudio.Shell.PackageUtilities.GetIntPointerFromImage(NemerleProjectNode.NemerleImageList.Images[(int)GlobalConstants.ImageListIndex.NemerleProject]);
- }
+ Stream imageStream = resourceAssembly.GetManifestResourceStream(
+ resourceName);
- private static string GetModuleName(Type type)
- {
- string fileName = Path.GetFileNameWithoutExtension(type.Module.Name);
- return fileName;
+ Trace.Assert(imageStream != null);
+
+ return Utilities.GetImageList(imageStream);
}
/// <summary>
@@ -167,15 +165,22 @@
/// <summary>
/// Nemerle specific project images.
/// </summary>
- public static ImageList NemerleImageList {
+ public static ImageList NemerleImageList
+ {
get { return _nemerleImageList; }
- set { _nemerleImageList = value; }
}
#endregion
#region overridden properties
+ // Needed since ProjectNode.ImageIndex returns
+ // ProjectNode.ImageName.Application.
+ public override int ImageIndex
+ {
+ get { return HierarchyNode.NoImage; }
+ }
+
public override Guid ProjectGuid
{
get { return typeof(NemerleProjectFactory).GUID; }
@@ -193,6 +198,14 @@
#region overridden methods
+ // We have to override ImageIndex to be called.
+ public override object GetIconHandle(bool open)
+ {
+ return PackageUtilities.GetIntPointerFromImage(
+ NemerleProjectNode.NemerleImageList.Images[
+ (int)GlobalConstants.ImageListIndex.NemerleProject]);
+ }
+
public override int Close()
{
if (null != Site)
Modified: vs-plugin/trunk/Nemerle.VsIntegration/Utils.cs
==============================================================================
--- vs-plugin/trunk/Nemerle.VsIntegration/Utils.cs (original)
+++ vs-plugin/trunk/Nemerle.VsIntegration/Utils.cs Wed Aug 16 22:23:33 2006
@@ -13,6 +13,12 @@
{
static class Utils
{
+ public static string GetModuleName(Type type)
+ {
+ string fileName = Path.GetFileNameWithoutExtension(type.Module.Name);
+ return fileName;
+ }
+
public static T GetService<T>(IServiceProvider provider)
where T : class
{
More information about the svn
mailing list