void SoftCollectionFileExportToolStripMenuItemClick(object sender, EventArgs e)\r
{\r
string pwd = Directory.GetCurrentDirectory();\r
+ string[] softtargets = new string[]{"PCにインストールされたソフト", "AppliStation内でインストールされたソフト", "インストールされたソフトすべて"};\r
+ int softtargetid = softtargets.Length - 1;\r
+ \r
+ {\r
+ AppliStation.Util.OptionDialog optdialog = AppliStation.Util.OptionDialog.createOptionDialog(\r
+ "ソフトコレクションファイルに出力するソフトの種類を選択してください。", "エクスポート", "エクスポートするソフト",\r
+ System.Drawing.SystemIcons.Question, MessageBoxButtons.OKCancel,\r
+ softtargets, softtargets.Length-1);\r
+ if (optdialog.ShowDialog(this) != DialogResult.OK) {\r
+ return; // canceled\r
+ } else if (optdialog.UserInputValue != null) {\r
+ softtargetid = (int) optdialog.UserInputValue;\r
+ }\r
+ }\r
\r
SaveFileDialog fd = new SaveFileDialog();\r
fd.Filter = "ソフトコレクションファイル (*.txt)|*.txt";\r
\r
PackageCollectionFileData collectionData = new PackageCollectionFileData();\r
\r
- collectionData.loadPackages(pkgListsMan.GetAllInstalledPackages());\r
+ switch (softtargetid) {\r
+ case 0: // PCにインストール\r
+ collectionData.loadPackages(pkgListsMan.SystemInstalledPkgList.GetEnumerator());\r
+ break;\r
+ case 1: // AppliStation内にインストール\r
+ collectionData.loadPackages(pkgListsMan.InstalledPkgList.GetEnumerator());\r
+ break;\r
+ case 2: // すべて\r
+ default:\r
+ collectionData.loadPackages(pkgListsMan.GetAllInstalledPackages());\r
+ break;\r
+ }\r
\r
try {\r
collectionData.saveAs(fd.FileName);\r
}\r
\r
/// <summary>\r
+ /// パッケージ名をリストに入れる\r
+ /// </summary>\r
+ /// <param name="pkgs">パッケージ情報</param>\r
+ public void loadPackages<T>(IEnumerator<T> e) where T : Package\r
+ {\r
+ while(e.MoveNext()) {\r
+ T pkg = e.Current;\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