anx.framework/Visual Studio/ANXVisualStudioPackage/Nodes/IncludedAssetFileNodeProperties.cs

252 lines
6.9 KiB
C#
Raw Normal View History

using ANX.Framework.VisualStudio.Converters;
using Microsoft.VisualStudio.Project;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
namespace ANX.Framework.VisualStudio.Nodes
{
[ComVisible(true)]
public class IncludedAssetFileNodeProperties : FileNodeProperties
{
AssetFileNode fileNode;
public IncludedAssetFileNodeProperties(AssetFileNode node)
: base(node)
{
this.fileNode = node;
}
[Browsable(false)]
[AutomationBrowsable(false)]
internal AssetFileNode AssetFileNode
{
get { return fileNode; }
}
[PackageResourcesDisplayName(PackageResources.AssetName)]
[PackageResourcesDescriptionAttribute(PackageResources.AssetNameDescription)]
public string AssetName
{
get
{
return fileNode.AssetName;
}
set
{
fileNode.AssetName = value;
}
}
[PackageResourcesDisplayName(PackageResources.ContentProcessor)]
[PackageResourcesDescriptionAttribute(PackageResources.ContentProcessorDescription)]
[TypeConverter(typeof(ContentProcessorConverter))]
public string ContentProcessor
{
get
{
return fileNode.ContentProcessor;
}
set
{
fileNode.ContentProcessor = value;
}
}
[PackageResourcesDisplayName(PackageResources.ContentImporter)]
[PackageResourcesDescriptionAttribute(PackageResources.ContentImporterDescription)]
[TypeConverter(typeof(ContentImporterConverter))]
public string ContentImporter
{
get
{
return fileNode.ContentImporter;
}
set
{
fileNode.ContentImporter = value;
}
}
[Browsable(false)]
[AutomationBrowsable(false)]
public IDictionary<string, object> ProcessorParameters
{
get { return fileNode.ProcessorParameters; }
}
[Browsable(false)]
public string SourceControlStatus
{
get
{
// remove STATEICON_ and return rest of enum
return HierarchyNode.StateIconIndex.ToString().Substring(10);
}
}
public override DesignPropertyDescriptor CreateDesignPropertyDescriptor(PropertyDescriptor propertyDescriptor)
{
return new AssetFileDescriptor(propertyDescriptor);
}
}
[ComVisible(true)]
public class AnxAssemblyReferenceProperties : ReferenceNodeProperties
{
#region fields
AnxAssemblyReferenceNode node;
#endregion
#region ctors
public AnxAssemblyReferenceProperties(AnxAssemblyReferenceNode node)
: base(node)
{
this.node = node;
}
#endregion
#region properties
[SRCategoryAttribute(SR.Misc)]
[LocDisplayName(SR.RuntimeVersion)]
[SRDescriptionAttribute(SR.RuntimeVersionDescription)]
public virtual string RuntimeVersion
{
get
{
return this.node.RuntimeVersion;
}
}
[SRCategoryAttribute(SR.Misc)]
[LocDisplayName(SR.Resolved)]
[SRDescriptionAttribute(SR.ResolvedDescription)]
public bool Resolved
{
get { return this.node.IsValid; }
}
[SRCategoryAttribute(SR.Misc)]
[LocDisplayName(SR.AssemblyCulture)]
[SRDescriptionAttribute(SR.AssemblyCultureDescription)]
public string Culture
{
get
{
if (this.node.AssemblyName != null)
{
return this.node.AssemblyName.CultureName;
}
return string.Empty;
}
}
[SRCategoryAttribute(SR.Misc)]
[LocDisplayName(SR.StrongName)]
[SRDescriptionAttribute(SR.StrongNameDescription)]
public bool StrongName
{
get
{
if (this.node.AssemblyName != null)
{
return this.node.AssemblyName.KeyPair != null && this.node.AssemblyName.KeyPair.PublicKey != null && this.node.AssemblyName.KeyPair.PublicKey.Length > 0;
}
return false;
}
}
#endregion
}
[ComVisible(true)]
public class AnxProjectReferenceProperties : ProjectReferencesProperties
{
#region fields
AnxProjectReferenceNode node;
#endregion
#region ctors
public AnxProjectReferenceProperties(AnxProjectReferenceNode node)
: base(node)
{
this.node = node;
}
#endregion
#region properties
[SRCategoryAttribute(SR.Misc)]
[LocDisplayName(SR.RuntimeVersion)]
[SRDescriptionAttribute(SR.RuntimeVersionDescription)]
public virtual string RuntimeVersion
{
get
{
return this.node.RuntimeVersion;
}
}
[SRCategoryAttribute(SR.Misc)]
[LocDisplayName(SR.Resolved)]
[SRDescriptionAttribute(SR.ResolvedDescription)]
public bool Resolved
{
get { return this.node.IsValid; }
}
[SRCategoryAttribute(SR.Misc)]
[LocDisplayName(SR.AssemblyCulture)]
[SRDescriptionAttribute(SR.AssemblyCultureDescription)]
public string Culture
{
get
{
if (File.Exists(this.node.ReferencedProjectOutputPath))
{
try
{
return AssemblyName.GetAssemblyName(this.node.ReferencedProjectOutputPath).CultureName;
}
catch { }
}
return string.Empty;
}
}
[SRCategoryAttribute(SR.Misc)]
[LocDisplayName(SR.StrongName)]
[SRDescriptionAttribute(SR.StrongNameDescription)]
public bool StrongName
{
get
{
if (File.Exists(this.node.ReferencedProjectOutputPath))
{
try
{
var assemblyName = AssemblyName.GetAssemblyName(this.node.ReferencedProjectOutputPath);
return assemblyName.KeyPair != null && assemblyName.KeyPair.PublicKey != null && assemblyName.KeyPair.PublicKey.Length > 0;
}
catch { }
}
return false;
}
}
#endregion
}
}