blob: c504fbd64654c2511789f5b3dd48ade8f164e3d6 [file] [log] [blame]
using Extensibility;
using EnvDTE;
using EnvDTE80;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.IO;
using System.Net;
using System.Reflection;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using System.Xml;
using System.Xml.Serialization;
using VSLangProj;
using NPanday.Artifact;
using NPanday.Logging;
using NPanday.Model.Pom;
using NPanday.Model.Setting;
namespace NPanday.VisualStudio.Addin
{
public partial class RemoveArtifactsForm : Form
{
private List<NPanday.Artifact.Artifact> localArtifacts = new List<NPanday.Artifact.Artifact>();
private ArtifactContext artifactContext;
private Project project;
private NPanday.Logging.Logger logger;
private List<Dependency> dependenciesFromPom;
public RemoveArtifactsForm()
{
InitializeComponent();
}
public RemoveArtifactsForm(Project project, ArtifactContext container, Logger logger)
{
this.project = project;
this.logger = logger;
InitializeForm();
InitializeComponent();
artifactsListView.View = View.Details;
artifactContext = container;
}
private void InitializeForm()
{
this.SuspendLayout();
//
// RemoveArtifactsForm
//
this.ClientSize = new System.Drawing.Size(292, 260);
this.Name = "RemoveArtifactsForm";
this.Load += new System.EventHandler(this.RemoveArtifactsForm_Load);
this.ResumeLayout(false);
}
private void button2_Click(object sender, EventArgs e)
{
this.Close();
}
private void RemoveArtifactsForm_Load(object sender, EventArgs e)
{
String pomFileName = (new FileInfo(project.FileName).Directory).FullName + @"\..\..\..\pom.xml";
if (!new FileInfo(pomFileName).Exists)
{
MessageBox.Show("Could not remove reference. Missing pom file: File = " + pomFileName);
return;
}
XmlReader reader = XmlReader.Create(pomFileName);
XmlSerializer serializer = new XmlSerializer(typeof(NPanday.Model.Pom.Model));
if (!serializer.CanDeserialize(reader))
{
MessageBox.Show("Could not remove reference. Corrupted pom file: File = " + pomFileName);
return;
}
NPanday.Model.Pom.Model model = (NPanday.Model.Pom.Model)serializer.Deserialize(reader);
//List<Dependency> dependencies = new List<Dependency>();
dependenciesFromPom = new List<Dependency>();
if (model.dependencies != null)
{
dependenciesFromPom.AddRange( model.dependencies );
}
foreach (Dependency item in dependenciesFromPom)
{
System.Windows.Forms.ListViewItem viewitem = new System.Windows.Forms.ListViewItem(new string[] {
item.artifactId, item.version}, -1);
viewitem.Tag = item;
artifactsListView.Items.Add(viewitem);
}
//artifactsListBox.ClearSelected();
reader.Close();
}
private void removeBtn_Click(object sender, EventArgs e)
{
String pomFileName = (new FileInfo(project.FileName).Directory).FullName + @"\..\..\..\pom.xml";
if (!new FileInfo(pomFileName).Exists)
{
MessageBox.Show("Could not remove reference. Missing pom file: File = " + pomFileName);
return;
}
XmlReader reader = XmlReader.Create(pomFileName);
XmlSerializer serializer = new XmlSerializer(typeof(NPanday.Model.Pom.Model));
if (!serializer.CanDeserialize(reader))
{
MessageBox.Show("Could not remove reference. Corrupted pom file: File = " + pomFileName);
return;
}
NPanday.Model.Pom.Model model = (NPanday.Model.Pom.Model)serializer.Deserialize(reader);
List<Dependency> dependencies = new List<Dependency>();
ListView.SelectedIndexCollection indices = artifactsListView.SelectedIndices;
//remove dependencies at the pom
foreach (int indexItem in artifactsListView.SelectedIndices)
{
//MessageBox.Show(dependenciesFromPom[indexItem]);
dependenciesFromPom.RemoveAt (indexItem);
//VSProject vsProject1 = (VSProject)project.Object;
//File must exist
//VSProject vsProject = (VSProject)project.Object;
//vsProject.Imports.Re
}
reader.Close();
model.dependencies = dependenciesFromPom.ToArray();
TextWriter writer = new StreamWriter(pomFileName);
serializer.Serialize(writer, model);
writer.Close();
this.Close();
}
}
}