anx.framework/Visual Studio/ANXVisualStudioPackage/Nodes/IncludedAssetFileNodeProperties.cs
Konstantin Koch 8287c54432 Included the Visual Studio extension and made the necessary changes to make it run.
Replaced the old VS templates with ones that offer more flexiblity.
Started replacing the Content Project for the samples with our custom project type.
Inlcuded a basic not yet working AssimpImporter.
2015-04-08 14:50:03 +02:00

252 lines
6.9 KiB
C#

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