System.Windows.Forms.ColumnHeader nameHeader;\r
System.Windows.Forms.ColumnHeader versionHeader;\r
System.Windows.Forms.ColumnHeader summaryHeader;\r
+ System.Windows.Forms.ToolStripSeparator organizeToolStripSeparator1;\r
+ System.Windows.Forms.ToolStripMenuItem softCollectionFileToolStripMenuItem;\r
+ System.Windows.Forms.ToolStripSeparator organizeToolStripSeparator2;\r
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PackageListViewForm));\r
+ this.softCollectionFileImportToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
+ this.softCollectionFileExportToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
this.packageListContextMenuStripSeparator = new System.Windows.Forms.ToolStripSeparator();\r
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();\r
this.toolStripContainer = new System.Windows.Forms.ToolStripPanel();\r
this.organizeToolStripDropDownButton1 = new System.Windows.Forms.ToolStripDropDownButton();\r
this.updateToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
this.localupdateToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
- this.organizeToolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();\r
this.optionToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
this.upgradeToolStripButton = new System.Windows.Forms.ToolStripButton();\r
this.informationToolStripDropDownButton = new System.Windows.Forms.ToolStripDropDownButton();\r
this.webResourceCommonContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);\r
this.webOfficialMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
this.webGoogleSearchMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
- this.webResourceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
this.installedDirectoryMenuItem = new AppliStation.Util.ToolStripPetitLauncherMenuItem();\r
this.propertiesMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
this.installToolStripButton = new System.Windows.Forms.ToolStripButton();\r
this.packageListContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);\r
this.installToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
this.uninstallToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
+ this.webResourceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
this.installedDirectoryToolStripMenuItem = new AppliStation.Util.ToolStripPetitLauncherMenuItem();\r
this.propertiesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
this.columnToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
nameHeader = new System.Windows.Forms.ColumnHeader();\r
versionHeader = new System.Windows.Forms.ColumnHeader();\r
summaryHeader = new System.Windows.Forms.ColumnHeader();\r
+ organizeToolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();\r
+ softCollectionFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
+ organizeToolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();\r
this.tableLayoutPanel1.SuspendLayout();\r
this.toolStripContainer.SuspendLayout();\r
this.packageListFilterToolStrip.SuspendLayout();\r
summaryHeader.Text = "概要";\r
summaryHeader.Width = 300;\r
// \r
+ // organizeToolStripSeparator1\r
+ // \r
+ organizeToolStripSeparator1.Name = "organizeToolStripSeparator1";\r
+ organizeToolStripSeparator1.Size = new System.Drawing.Size(253, 6);\r
+ // \r
+ // softCollectionFileToolStripMenuItem\r
+ // \r
+ softCollectionFileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {\r
+ this.softCollectionFileImportToolStripMenuItem,\r
+ this.softCollectionFileExportToolStripMenuItem});\r
+ softCollectionFileToolStripMenuItem.Name = "softCollectionFileToolStripMenuItem";\r
+ softCollectionFileToolStripMenuItem.Size = new System.Drawing.Size(256, 22);\r
+ softCollectionFileToolStripMenuItem.Text = "ソフトコレクションファイル(&C)";\r
+ // \r
+ // softCollectionFileImportToolStripMenuItem\r
+ // \r
+ this.softCollectionFileImportToolStripMenuItem.Name = "softCollectionFileImportToolStripMenuItem";\r
+ this.softCollectionFileImportToolStripMenuItem.Size = new System.Drawing.Size(152, 22);\r
+ this.softCollectionFileImportToolStripMenuItem.Text = "インポート(&I)...";\r
+ this.softCollectionFileImportToolStripMenuItem.Click += new System.EventHandler(this.SoftCollectionFileImportToolStripMenuItemClick);\r
+ // \r
+ // softCollectionFileExportToolStripMenuItem\r
+ // \r
+ this.softCollectionFileExportToolStripMenuItem.Name = "softCollectionFileExportToolStripMenuItem";\r
+ this.softCollectionFileExportToolStripMenuItem.Size = new System.Drawing.Size(152, 22);\r
+ this.softCollectionFileExportToolStripMenuItem.Text = "エクスポート(&E)...";\r
+ this.softCollectionFileExportToolStripMenuItem.Click += new System.EventHandler(this.SoftCollectionFileExportToolStripMenuItemClick);\r
+ // \r
+ // organizeToolStripSeparator2\r
+ // \r
+ organizeToolStripSeparator2.Name = "organizeToolStripSeparator2";\r
+ organizeToolStripSeparator2.Size = new System.Drawing.Size(253, 6);\r
+ // \r
// packageListContextMenuStripSeparator\r
// \r
this.packageListContextMenuStripSeparator.Name = "packageListContextMenuStripSeparator";\r
this.uninstallToolStripButton});\r
this.packageCommandsToolStrip.Location = new System.Drawing.Point(3, 25);\r
this.packageCommandsToolStrip.Name = "packageCommandsToolStrip";\r
- this.packageCommandsToolStrip.Size = new System.Drawing.Size(184, 25);\r
+ this.packageCommandsToolStrip.Size = new System.Drawing.Size(489, 25);\r
this.packageCommandsToolStrip.TabIndex = 2;\r
// \r
// organizeToolStripDropDownButton1\r
this.organizeToolStripDropDownButton1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {\r
this.updateToolStripMenuItem,\r
this.localupdateToolStripMenuItem,\r
- this.organizeToolStripSeparator1,\r
+ organizeToolStripSeparator1,\r
+ softCollectionFileToolStripMenuItem,\r
+ organizeToolStripSeparator2,\r
this.optionToolStripMenuItem});\r
this.organizeToolStripDropDownButton1.Image = ((System.Drawing.Image)(resources.GetObject("organizeToolStripDropDownButton1.Image")));\r
this.organizeToolStripDropDownButton1.Name = "organizeToolStripDropDownButton1";\r
this.localupdateToolStripMenuItem.Text = "インストール済ソフトの読み直し(&R)";\r
this.localupdateToolStripMenuItem.Click += new System.EventHandler(this.LocalupdateToolStripMenuItemClick);\r
// \r
- // organizeToolStripSeparator1\r
- // \r
- this.organizeToolStripSeparator1.Name = "organizeToolStripSeparator1";\r
- this.organizeToolStripSeparator1.Size = new System.Drawing.Size(253, 6);\r
- // \r
// optionToolStripMenuItem\r
// \r
this.optionToolStripMenuItem.Name = "optionToolStripMenuItem";\r
this.webOfficialMenuItem,\r
this.webGoogleSearchMenuItem});\r
this.webResourceCommonContextMenuStrip.Name = "packageListContextMenuStrip";\r
- this.webResourceCommonContextMenuStrip.OwnerItem = this.webResourceMenuItem;\r
+ this.webResourceCommonContextMenuStrip.OwnerItem = this.webResourceToolStripMenuItem;\r
this.webResourceCommonContextMenuStrip.Size = new System.Drawing.Size(152, 48);\r
this.webResourceCommonContextMenuStrip.Opening += new System.ComponentModel.CancelEventHandler(this.WebResourceCommonContextMenuStripOpening);\r
// \r
this.webGoogleSearchMenuItem.Text = "Google検索(&G)";\r
this.webGoogleSearchMenuItem.Click += new System.EventHandler(this.WebGoogleSearchMenuItemClick);\r
// \r
- // webResourceToolStripMenuItem\r
- // \r
- this.webResourceToolStripMenuItem.DropDown = this.webResourceCommonContextMenuStrip;\r
- this.webResourceToolStripMenuItem.Name = "webResourceToolStripMenuItem";\r
- this.webResourceToolStripMenuItem.Size = new System.Drawing.Size(214, 22);\r
- this.webResourceToolStripMenuItem.Tag = "";\r
- this.webResourceToolStripMenuItem.Text = "Webページ(&W)";\r
- // \r
// installedDirectoryMenuItem\r
// \r
this.installedDirectoryMenuItem.InvokerForm = this;\r
this.packageListView.Name = "packageListView";\r
this.packageListView.Size = new System.Drawing.Size(486, 225);\r
this.packageListView.SmallImageList = this.packageListViewImageList;\r
+ this.packageListView.SortColumn = null;\r
this.packageListView.TabIndex = 0;\r
this.packageListView.UseCompatibleStateImageBehavior = false;\r
this.packageListView.View = System.Windows.Forms.View.Details;\r
this.propertiesToolStripMenuItem,\r
this.columnToolStripMenuItem});\r
this.packageListContextMenuStrip.Name = "packageListContextMenuStrip";\r
- this.packageListContextMenuStrip.Size = new System.Drawing.Size(215, 120);\r
+ this.packageListContextMenuStrip.Size = new System.Drawing.Size(215, 142);\r
this.packageListContextMenuStrip.Opening += new System.ComponentModel.CancelEventHandler(this.PackageListContextMenuStripOpening);\r
// \r
// installToolStripMenuItem\r
this.uninstallToolStripMenuItem.Text = "アンインストール(&U)...";\r
this.uninstallToolStripMenuItem.Click += new System.EventHandler(this.UninstallToolStripButtonClick);\r
// \r
+ // webResourceToolStripMenuItem\r
+ // \r
+ this.webResourceToolStripMenuItem.DropDown = this.webResourceCommonContextMenuStrip;\r
+ this.webResourceToolStripMenuItem.Name = "webResourceToolStripMenuItem";\r
+ this.webResourceToolStripMenuItem.Size = new System.Drawing.Size(214, 22);\r
+ this.webResourceToolStripMenuItem.Tag = "";\r
+ this.webResourceToolStripMenuItem.Text = "Webページ(&W)";\r
+ // \r
// installedDirectoryToolStripMenuItem\r
// \r
this.installedDirectoryToolStripMenuItem.InvokerForm = this;\r
this.packageListContextMenuStrip.ResumeLayout(false);\r
this.ResumeLayout(false);\r
}\r
+ private System.Windows.Forms.ToolStripMenuItem softCollectionFileExportToolStripMenuItem;\r
+ private System.Windows.Forms.ToolStripMenuItem softCollectionFileImportToolStripMenuItem;\r
private System.Windows.Forms.ToolStripMenuItem installDateToolStripMenuItem;\r
private System.Windows.Forms.ToolStripMenuItem licenseToolStripMenuItem;\r
private System.Windows.Forms.ToolStripMenuItem packageListNameToolStripMenuItem;\r
private System.Windows.Forms.ToolStripMenuItem webOfficialMenuItem;\r
private System.Windows.Forms.ContextMenuStrip webResourceCommonContextMenuStrip;\r
private System.Windows.Forms.ToolStripMenuItem optionToolStripMenuItem;\r
- private System.Windows.Forms.ToolStripSeparator organizeToolStripSeparator1;\r
private System.Windows.Forms.ToolStripMenuItem localupdateToolStripMenuItem;\r
private System.Windows.Forms.ToolStripMenuItem updateToolStripMenuItem;\r
private System.Windows.Forms.ToolStripDropDownButton organizeToolStripDropDownButton1;\r
UpdatePackageList();\r
}\r
\r
+ void SoftCollectionFileImportToolStripMenuItemClick(object sender, EventArgs e)\r
+ {\r
+ string pwd = Directory.GetCurrentDirectory();\r
+ \r
+ OpenFileDialog fd = new OpenFileDialog();\r
+ fd.Filter = "ソフトコレクションファイル (*.txt)|*.txt";\r
+ fd.DefaultExt = "txt";\r
+ fd.CheckFileExists = true;\r
+ fd.CheckPathExists = true;\r
+ fd.Multiselect = false;\r
+ fd.ShowDialog();\r
+ if (fd.FileNames.Length > 0) {\r
+ string filepath = Path.GetFullPath(fd.FileName);\r
+ Directory.SetCurrentDirectory(pwd); // ファイルダイアログで変わったカレントディレクトリを戻す\r
+ \r
+ IList<Package> pkgs;\r
+ IList<string> invalid;\r
+ \r
+ try {\r
+ PackageCollectionFileData collectionData = new PackageCollectionFileData();\r
+ collectionData.load(filepath);\r
+ collectionData.generatePackages(pkgListsMan, out pkgs, out invalid);\r
+ \r
+ if (invalid.Count > 0) {\r
+ DialogResult result = MessageBox.Show("一部読み込みの失敗したパッケージがありますが続行しますか?", "インポート", MessageBoxButtons.OKCancel, MessageBoxIcon.Error);\r
+ if (result != DialogResult.OK) {\r
+ return;\r
+ }\r
+ }\r
+ } catch (IOException) {\r
+ MessageBox.Show("ファイルの読み込みに失敗しました", "インポート", MessageBoxButtons.OK, MessageBoxIcon.Error);\r
+ return;\r
+ }\r
+ \r
+ {\r
+ InstallationConfirmForm confirm = new InstallationConfirmForm();\r
+ confirm.PkgListsManager = pkgListsMan;\r
+ confirm.Installations = Installation.ConvertInstallations( NaGet.Utils.IEnumerable2Array(pkgs) );\r
+ confirm.UseRunas = confirm.GetShouldUseRunas();\r
+ DialogResult result = confirm.ShowDialog(this);\r
+ \r
+ if (result == DialogResult.OK) {\r
+ Installation[] insts = confirm.CheckedInstallations;\r
+ \r
+ if (confirm.UseRunas) {\r
+ installRunasActionInvoke(insts);\r
+ } else {\r
+ installActionInvoke(insts);\r
+ }\r
+ \r
+ UpdatePackageList();\r
+ }\r
+ }\r
+ } else {\r
+ Directory.SetCurrentDirectory(pwd); // ファイルダイアログで変わったカレントディレクトリを戻す\r
+ }\r
+ }\r
+ \r
+ void SoftCollectionFileExportToolStripMenuItemClick(object sender, EventArgs e)\r
+ {\r
+ string pwd = Directory.GetCurrentDirectory();\r
+ \r
+ SaveFileDialog fd = new SaveFileDialog();\r
+ fd.Filter = "ソフトコレクションファイル (*.txt)|*.txt";\r
+ fd.DefaultExt = "txt";\r
+ fd.CheckPathExists = true;\r
+ fd.ShowDialog();\r
+ if (fd.FileNames.Length > 0) {\r
+ string filepath = Path.GetFullPath(fd.FileName);\r
+ Directory.SetCurrentDirectory(pwd); // ファイルダイアログで変わったカレントディレクトリを戻す\r
+ \r
+ PackageCollectionFileData collectionData = new PackageCollectionFileData();\r
+ \r
+ collectionData.loadPackages(pkgListsMan.GetAllInstalledPackages());\r
+ \r
+ try {\r
+ collectionData.saveAs(fd.FileName);\r
+ } catch (IOException) {\r
+ MessageBox.Show("ファイルの書き込みに失敗しました", "エクスポート", MessageBoxButtons.OK, MessageBoxIcon.Error);\r
+ return;\r
+ }\r
+ } else {\r
+ Directory.SetCurrentDirectory(pwd); // ファイルダイアログで変わったカレントディレクトリを戻す\r
+ }\r
+ }\r
+ \r
void OptionToolStripMenuItemClick(object sender, EventArgs e)\r
{\r
UserPrefForm userPrefForm = new UserPrefForm();\r
--- /dev/null
+using System;\r
+using System.Text;\r
+using System.IO;\r
+using System.Collections.Generic;\r
+\r
+namespace NaGet.Packages\r
+{\r
+ /// <summary>\r
+ /// 環境構築/移行を便利にするためのパッケージ名リストの表現クラス\r
+ /// </summary>\r
+ public class PackageCollectionFileData : System.Collections.ObjectModel.Collection<string>\r
+ {\r
+ public PackageCollectionFileData()\r
+ {\r
+ }\r
+ \r
+ /// <summary>\r
+ /// パッケージ名をリストに入れる\r
+ /// </summary>\r
+ /// <param name="pkgs">パッケージ情報</param>\r
+ public void loadPackages(IEnumerable<NaGet.Packages.Install.InstalledPackage> pkgs)\r
+ {\r
+ foreach (Package pkg in pkgs) {\r
+ if (this.IndexOf(pkg.Name) < 0) {\r
+ this.Add(pkg.Name);\r
+ }\r
+ }\r
+ }\r
+ \r
+ /// <summary>\r
+ /// このリストからパッケージのリストを得る\r
+ /// </summary>\r
+ /// <returns>パッケージのリスト</returns>\r
+ public void generatePackages(PackageListsManager pkgMan, out IList<Package> pkgs, out IList<string> invalidPkgNames)\r
+ {\r
+ pkgs = new List<Package>();\r
+ invalidPkgNames = new List<string>();\r
+ \r
+ foreach (string pkgName in this) {\r
+ Package pkg = pkgMan.availablePkgList.GetPackageForName(pkgName);\r
+ if (pkg != null) {\r
+ if ((pkgMan.installedPkgList.GetPackageForName(pkgName) == null)\r
+ || (pkgMan.systemInstalledPkgList.GetPackageForName(pkgName) == null)) {\r
+ pkgs.Add(pkg);\r
+ } else {\r
+ // すでにインストールされている場合は何もしない\r
+ }\r
+ } else {\r
+ invalidPkgNames.Add(pkgName);\r
+ }\r
+ }\r
+ }\r
+ \r
+ #region ファイル入出力\r
+ \r
+ /// <summary>\r
+ /// リストをストリームに保存する\r
+ /// </summary>\r
+ /// <param name="stream">保存先</param>\r
+ public void saveAs(StreamWriter stream)\r
+ {\r
+ foreach (string name in this) {\r
+ stream.WriteLine("{0}", name);\r
+ }\r
+ }\r
+ \r
+ /// <summary>\r
+ /// リストをファイルに保存する\r
+ /// </summary>\r
+ /// <param name="filepath">保存先</param>\r
+ public void saveAs(String filepath)\r
+ {\r
+ using (FileStream stream = new FileStream(filepath, FileMode.Create)) {\r
+ using (StreamWriter sw = new StreamWriter(stream, Encoding.UTF8)) {\r
+ saveAs(sw);\r
+ }\r
+ }\r
+ }\r
+ \r
+ /// <summary>\r
+ /// ストリームからリストを読み込む\r
+ /// </summary>\r
+ /// <param name="stream">読み取り元</param>\r
+ public void load(StreamReader stream)\r
+ {\r
+ string line = null;\r
+ \r
+ while ((line = stream.ReadLine()) != null) {\r
+ this.Add(line.Trim());\r
+ }\r
+ }\r
+\r
+ /// <summary>\r
+ /// ファイルからリストを読み込む\r
+ /// </summary>\r
+ /// <param name="stream">読み取り元</param>\r
+ public void load(string filepath)\r
+ {\r
+ using (FileStream fs = new FileStream(filepath, FileMode.Open)) {\r
+ using (StreamReader sr = new StreamReader(fs, Encoding.UTF8)) {\r
+ load(sr);\r
+ }\r
+ }\r
+ }\r
+ \r
+ #endregion\r
+ }\r
+}\r