Cosmos/source2/VSIP/Cosmos.VS.Package/KernelPage.cs

59 lines
No EOL
2 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using Microsoft.VisualStudio.Project;
namespace Cosmos.VS.Package
{
[Guid(Guids.KernelPage)]
public partial class KernelPage : CustomPropertyPage
{
public KernelPage()
{
InitializeComponent();
comboKernelAssembly.SelectedIndexChanged += delegate(Object sender, EventArgs e)
{
IsDirty=true;
};
}
//protected DebugProperties mProps = new DebugProperties();
//public override PropertiesBase Properties
//{
// get { return mProps; }
//}
protected override void FillProperties()
{
base.FillProperties();
var xReferenceContainer = ProjectMgr.GetReferenceContainer();
if (xReferenceContainer != null)
{
var xReferences = xReferenceContainer.EnumReferences().ToArray();
comboKernelAssembly.DataSource = xReferences;
var xId = Project.Project.BuildProject.GetEvaluatedProperty("KernelAssemblyReferenceId");
comboKernelAssembly.SelectedItem = (from item in xReferences
where item.ReferenceIdentifier == xId
select item).SingleOrDefault();
}
}
public override void ApplyChanges()
{
base.ApplyChanges();
var xItem = (ReferenceNode)comboKernelAssembly.SelectedItem;
Project.Project.BuildProject.SetProperty("KernelAssemblyReferenceId", xItem.ReferenceIdentifier);
Project.Project.BuildProject.SetProperty("KernelAssemblyReference", xItem.AssemblyFilename);
}
}
}