OSDN Git Service

AppliStation-GUI,インストール確認ダイアログにてパッケージ情報でなくインストール処理情報を渡すように変更
authorttp <ttp@users.sourceforge.jp>
Sat, 21 Jun 2008 02:46:36 +0000 (02:46 +0000)
committerttp <ttp@users.sourceforge.jp>
Sat, 21 Jun 2008 02:46:36 +0000 (02:46 +0000)
git-svn-id: http://localhost/svn/AppliStation/trunk@925 34ed2c89-c49f-4a4b-abdb-c318350108cf

AppliStation/PackageListViewForm.cs
AppliStation/PackagesInstallConfirmForm.cs
AppliStation/Program.cs
na-get-lib/NaGet/Utils.cs

index 037cf86..f84da5a 100644 (file)
@@ -326,11 +326,11 @@ namespace AppliStation
                \r
                #endregion\r
                \r
-               internal void installActionInvoke(Package[] pkgs)\r
+               internal void installActionInvoke(Installation[] insts)\r
                {\r
                        AppliStation.Util.ExecutionProgressViewer prog = new AppliStation.Util.ExecutionProgressViewer();\r
                        prog.Shown += delegate(object sender2, EventArgs e2) {\r
-                               NaGet.SubCommands.NaGetInstall tasks = new NaGet.SubCommands.NaGetInstall(pkgListsMan, pkgs);\r
+                               NaGet.SubCommands.NaGetInstall tasks = new NaGet.SubCommands.NaGetInstall(pkgListsMan, insts);\r
                                tasks.Downloader = prog.Downloader;\r
                                prog.SetTaskSet(tasks);\r
                                prog.Refresh();\r
@@ -344,34 +344,34 @@ namespace AppliStation
                {\r
                        PackagesInstallConfirmForm confirm = new PackagesInstallConfirmForm();\r
                        confirm.PkgListsManager = pkgListsMan;\r
-                       confirm.Packages = SelectedPackages<Package>();\r
+                       confirm.Installations = Installation.ConvertInstallations(SelectedPackages<Package>());\r
                        confirm.UseRunas = confirm.GetShouldUseRunas();\r
                        DialogResult result = confirm.ShowDialog(this);\r
                        \r
                        if (result == DialogResult.OK) {\r
-                               Package[] instPkgs = confirm.CheckedPackages;\r
+                               Installation[] insts = confirm.CheckedInstallations;\r
                                \r
                                if (confirm.UseRunas) {\r
-                                       installRunasActionInvoke(instPkgs);\r
+                                       installRunasActionInvoke(insts);\r
                                } else {\r
-                                       installActionInvoke(instPkgs);\r
+                                       installActionInvoke(insts);\r
                                }\r
                                \r
                                UpdatePackageList();\r
                        }\r
                }\r
                \r
-               public void installRunasActionInvoke(Package[] pkgs)\r
+               public void installRunasActionInvoke(Installation[] insts)\r
                {\r
                        this.setWindowEnabled(false);\r
                        \r
                        string tmpfileName = Path.GetTempFileName();\r
                        try {\r
-                               NaGet.Utils.PutSerializeObject(tmpfileName, pkgs);\r
+                               NaGet.Utils.PutSerializeObject(tmpfileName, insts);\r
                                \r
                                System.Diagnostics.ProcessStartInfo procInfo = new System.Diagnostics.ProcessStartInfo();\r
                                procInfo.FileName = Application.ExecutablePath;\r
-                               procInfo.Arguments = string.Format("--noupdate --cmd=install \"--pkgsref={0}\"", tmpfileName);\r
+                               procInfo.Arguments = string.Format("--noupdate --cmd=install \"--instsref={0}\"", tmpfileName);\r
                                procInfo.Verb = "runas";\r
                                procInfo.WorkingDirectory = Environment.CurrentDirectory;\r
                                \r
@@ -581,16 +581,16 @@ namespace AppliStation
                        \r
                        PackagesInstallConfirmForm confirm = new PackagesInstallConfirmForm();\r
                        confirm.PkgListsManager = pkgListsMan;\r
-                       confirm.Packages = pkgs.ToArray();\r
+                       confirm.Installations = Installation.ConvertInstallations(pkgs.ToArray());\r
                        DialogResult result = confirm.ShowDialog(this);\r
                        \r
                        if (result == DialogResult.OK) {\r
-                               Package[] instPkgs = confirm.CheckedPackages;\r
+                               Installation[] insts = confirm.CheckedInstallations;\r
                                \r
                                if (confirm.UseRunas) {\r
-                                       installRunasActionInvoke(instPkgs);\r
+                                       installRunasActionInvoke(insts);\r
                                } else {\r
-                                       installActionInvoke(instPkgs);\r
+                                       installActionInvoke(insts);\r
                                }\r
                                \r
                                UpdatePackageList();\r
index 351089c..e0e7ecb 100644 (file)
@@ -2,6 +2,7 @@ using System;
 using System.Drawing;\r
 using System.Windows.Forms;\r
 using NaGet.Packages;\r
+using NaGet.Packages.Install;\r
 \r
 namespace AppliStation\r
 {\r
@@ -10,17 +11,17 @@ namespace AppliStation
        /// </summary>\r
        public partial class PackagesInstallConfirmForm : Form\r
        {\r
-               private Package[] packages;\r
+               private Installation[] installations;\r
                \r
                private PackageListsManager pkgListMan;\r
                \r
                /// <summary>\r
-               /// \83p\83b\83P\81[\83W\82Ì\8fW\8d\87\r
+               /// \83p\83b\83P\81[\83W\83C\83\93\83X\83g\81[\83\8b\8f\88\97\9d\82Ì\8fW\8d\87\r
                /// </summary>\r
-               public Package[] Packages {\r
-                       get { return packages; }\r
+               public Installation[] Installations {\r
+                       get { return installations; }\r
                        set {\r
-                               packages = value;\r
+                               installations = value;\r
                                \r
                                updatePackagesListView();\r
                        }\r
@@ -53,8 +54,10 @@ namespace AppliStation
                {\r
                        packageListView.Items.Clear();\r
                        \r
-                       if (packages != null && packages.Length > 0) {\r
-                               foreach (Package pkg in packages) {\r
+                       if (installations != null) {\r
+                               foreach (Installation inst in installations) {\r
+                                       Package pkg = inst.InstalledPackage;\r
+                                       \r
                                        Package curPkg = null;\r
                                        if (pkgListMan != null) {       \r
                                                curPkg = pkgListMan.InstalledPkgList.GetPackageForName(pkg.Name);\r
@@ -63,7 +66,7 @@ namespace AppliStation
                                        string curVersion = (curPkg == null)? "-" : curPkg.Version;\r
                                        \r
                                        ListViewItem item = new ListViewItem(new string[]{pkg.Name, pkg.Version, curVersion});\r
-                                       item.Tag = pkg;\r
+                                       item.Tag = inst;\r
                                        item.ToolTipText = pkg.Summary;\r
                                        item.Checked = true;\r
                                        \r
@@ -118,7 +121,7 @@ namespace AppliStation
                void PackageListViewContextMenuStripOpening(object sender, System.ComponentModel.CancelEventArgs e)\r
                {\r
                        System.Windows.Forms.ListView.CheckedIndexCollection coll = packageListView.CheckedIndices;\r
-                       selectAllPackagesStripMenuItem.Enabled = coll.Count < packages.Length;\r
+                       selectAllPackagesStripMenuItem.Enabled = coll.Count < packageListView.Items.Count;\r
                        unselectAllPackagesStripMenuItem.Enabled = coll.Count > 0;\r
                }\r
                                \r
@@ -141,13 +144,13 @@ namespace AppliStation
                /// <summary>\r
                /// \83C\83\93\83X\83g\81[\83\8b\82·\82é\82æ\82¤\91I\91ð\82³\82ê\82½\83p\83b\83P\81[\83W\82Ì\94z\97ñ\r
                /// </summary>\r
-               public Package[] CheckedPackages {\r
+               public Installation[] CheckedInstallations {\r
                        get {\r
-                               System.Collections.Generic.List<Package> pkgs = new System.Collections.Generic.List<Package>();\r
+                               System.Collections.Generic.List<Installation> insts = new System.Collections.Generic.List<Installation>();\r
                                foreach (ListViewItem item in packageListView.CheckedItems) {\r
-                                       pkgs.Add((Package) item.Tag);\r
+                                       insts.Add((Installation) item.Tag);\r
                                }\r
-                               return pkgs.ToArray();\r
+                               return insts.ToArray();\r
                        }\r
                }\r
                \r
@@ -180,14 +183,12 @@ namespace AppliStation
                                return false;   \r
                        }\r
                        \r
-                       bool useRunas = false;\r
-                       foreach (Package pkg in CheckedPackages) {\r
-                               if (pkg.Type != InstallerType.ARCHIVE) {\r
-                                       useRunas = true;\r
-                                       break;\r
-                               }\r
+                       // \82Ð\82Æ\82Â\82Å\82àPC\83^\81[\83Q\83b\83g\82È\83C\83\93\83X\83g\81[\83\89\82ª\82 \82ê\82Î\95K\97v\82Æ\82·\82é\r
+                       foreach (Installation inst in CheckedInstallations) {\r
+                               if (inst.TargetPC) return true;\r
                        }\r
-                       return useRunas;\r
+                       // \82»\82ê\88È\8aO\82Í\95s\97v\r
+                       return false;\r
                }\r
                \r
                void RunasCheckBoxCheckedChanged(object sender, EventArgs e)\r
index 9b007df..d05559c 100644 (file)
@@ -24,6 +24,7 @@ namespace AppliStation
                        appArgs["noupdate"] = false;\r
                        appArgs["cmd"] = string.Empty;\r
                        appArgs["pkgsref"] = string.Empty;\r
+                       appArgs["instsref"] = string.Empty;\r
                        \r
                        form = new PackageListViewForm();\r
                }\r
@@ -42,10 +43,10 @@ namespace AppliStation
                void RunInstall()\r
                {\r
                        try {\r
-                               NaGet.Packages.Package[] pkgs = NaGet.Utils.GetDeserializedObject<NaGet.Packages.Package[]>((string) appArgs["pkgsref"]);\r
+                               NaGet.Packages.Install.Installation[] insts = NaGet.Utils.GetDeserializedObject<NaGet.Packages.Install.Installation[]>((string) appArgs["instsref"]);\r
                                \r
                                hideSplashScreen();\r
-                               form.installActionInvoke(pkgs);\r
+                               form.installActionInvoke(insts);\r
                        } catch (UnauthorizedAccessException e) {\r
                                MessageBox.Show(string.Format("\8aÇ\97\9d\8eÒ\8c \8cÀ\82É\8f¸\8ai\82µ\82Ä\82¢\82È\82¢\82©\81A\8eÀ\8ds\8c \8cÀ\82É\96â\91è\82ª\82 \82è\82Ü\82·\81B\n(\8fÚ\8d×:{0})", e.Message),\r
                                                Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error);\r
index 8bd2e09..819d741 100644 (file)
@@ -337,8 +337,13 @@ namespace NaGet
                \r
                #endregion\r
                \r
-               #region XmlSerializer便利メソッド群\r
+               #region シリアル化関連\r
                \r
+               /// <summary>\r
+               /// XMLでシリアル化したオブジェクトのXMLファイルを読み込み、デシリアル化したオブジェクトを取得する\r
+               /// </summary>\r
+               /// <param name="path">XMLファイルのパス</param>\r
+               /// <returns>デシリアル化されたオブジェクト</returns>\r
                public static T GetDeserializedObject<T>(string path)\r
                {\r
                        T retVal = default(T);\r
@@ -349,6 +354,11 @@ namespace NaGet
                        return retVal;\r
                }\r
                \r
+               /// <summary>\r
+               /// オブジェクトをXMLでシリアル化してファイルに書き込む\r
+               /// </summary>\r
+               /// <param name="path">XMLファイルのパス</param>\r
+               /// <param name="obj">シリアル化する対象のオブジェクト</param>\r
                public static void PutSerializeObject<T>(string path, T obj)\r
                {\r
                        using (FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write)) {\r