OSDN Git Service

AppliStation-GUI,とりあえずサイレントインストールをサポート
authorttp <ttp@users.sourceforge.jp>
Sat, 21 Jun 2008 04:01:07 +0000 (04:01 +0000)
committerttp <ttp@users.sourceforge.jp>
Sat, 21 Jun 2008 04:01:07 +0000 (04:01 +0000)
git-svn-id: http://localhost/svn/AppliStation/trunk@928 34ed2c89-c49f-4a4b-abdb-c318350108cf

AppliStation/InstallationConfirmForm.Designer.cs
AppliStation/InstallationConfirmForm.cs
AppliStation/InstallationConfirmForm.resx
na-get-lib/NaGet.Packages.Install/Installation.cs

index c8a6128..bf386a5 100644 (file)
@@ -41,9 +41,12 @@ namespace AppliStation
                        this.nameColumnHeader = new System.Windows.Forms.ColumnHeader();\r
                        this.versionColumnHeader = new System.Windows.Forms.ColumnHeader();\r
                        this.currentVersionColumnHeader = new System.Windows.Forms.ColumnHeader();\r
+                       this.instOptsColumnHeader = new System.Windows.Forms.ColumnHeader();\r
                        this.instListViewContextMenuStrip = new System.Windows.Forms.ContextMenuStrip(this.components);\r
-                       this.selectAllPackagesStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
-                       this.unselectAllPackagesStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
+                       this.silentInstallStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
+                       this.instListToolStripSeparator = new System.Windows.Forms.ToolStripSeparator();\r
+                       this.selectAllInstsStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
+                       this.unselectAllInstsStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();\r
                        this.tableLayoutPanel1.SuspendLayout();\r
                        this.btnPanel.SuspendLayout();\r
                        this.instListViewContextMenuStrip.SuspendLayout();\r
@@ -130,13 +133,14 @@ namespace AppliStation
                        this.instsListView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {\r
                                                                        this.nameColumnHeader,\r
                                                                        this.versionColumnHeader,\r
-                                                                       this.currentVersionColumnHeader});\r
+                                                                       this.currentVersionColumnHeader,\r
+                                                                       this.instOptsColumnHeader});\r
                        this.instsListView.ContextMenuStrip = this.instListViewContextMenuStrip;\r
                        this.instsListView.Dock = System.Windows.Forms.DockStyle.Fill;\r
                        this.instsListView.GridLines = true;\r
                        this.instsListView.Location = new System.Drawing.Point(5, 53);\r
                        this.instsListView.Margin = new System.Windows.Forms.Padding(5, 3, 5, 5);\r
-                       this.instsListView.Name = "packageListView";\r
+                       this.instsListView.Name = "instsListView";\r
                        this.instsListView.ShowItemToolTips = true;\r
                        this.instsListView.Size = new System.Drawing.Size(382, 173);\r
                        this.instsListView.TabIndex = 2;\r
@@ -153,37 +157,56 @@ namespace AppliStation
                        // versionColumnHeader\r
                        // \r
                        this.versionColumnHeader.Text = "バージョン";\r
-                       this.versionColumnHeader.Width = 52;\r
+                       this.versionColumnHeader.Width = 64;\r
                        // \r
                        // currentVersionColumnHeader\r
                        // \r
                        this.currentVersionColumnHeader.Text = "現バージョン";\r
-                       this.currentVersionColumnHeader.Width = 52;\r
+                       this.currentVersionColumnHeader.Width = 64;\r
                        // \r
-                       // instsListViewContextMenuStrip\r
+                       // instOptsColumnHeader\r
+                       // \r
+                       this.instOptsColumnHeader.Text = "";\r
+                       this.instOptsColumnHeader.Width = 48;\r
+                       // \r
+                       // instListViewContextMenuStrip\r
                        // \r
                        this.instListViewContextMenuStrip.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {\r
-                                                                       this.selectAllPackagesStripMenuItem,\r
-                                                                       this.unselectAllPackagesStripMenuItem});\r
+                                                                       this.silentInstallStripMenuItem,\r
+                                                                       this.instListToolStripSeparator,\r
+                                                                       this.selectAllInstsStripMenuItem,\r
+                                                                       this.unselectAllInstsStripMenuItem});\r
                        this.instListViewContextMenuStrip.Name = "packageListViewContextMenuStrip";\r
-                       this.instListViewContextMenuStrip.Size = new System.Drawing.Size(175, 48);\r
+                       this.instListViewContextMenuStrip.Size = new System.Drawing.Size(220, 98);\r
                        this.instListViewContextMenuStrip.Opening += new System.ComponentModel.CancelEventHandler(this.InstsListViewContextMenuStripOpening);\r
                        // \r
-                       // selectAllPackagesStripMenuItem\r
+                       // silentInstallStripMenuItem\r
+                       // \r
+                       this.silentInstallStripMenuItem.Name = "silentInstallStripMenuItem";\r
+                       this.silentInstallStripMenuItem.Size = new System.Drawing.Size(219, 22);\r
+                       this.silentInstallStripMenuItem.Text = "サイレントインストールをする(&S)";\r
+                       this.silentInstallStripMenuItem.Click += new System.EventHandler(this.SilentInstallStripMenuItemClick);\r
+                       // \r
+                       // instListToolStripSeparator\r
+                       // \r
+                       this.instListToolStripSeparator.Name = "instListToolStripSeparator";\r
+                       this.instListToolStripSeparator.Size = new System.Drawing.Size(216, 6);\r
+                       // \r
+                       // selectAllInstsStripMenuItem\r
                        // \r
-                       this.selectAllPackagesStripMenuItem.Name = "selectAllPackagesStripMenuItem";\r
-                       this.selectAllPackagesStripMenuItem.Size = new System.Drawing.Size(174, 22);\r
-                       this.selectAllPackagesStripMenuItem.Text = "全て選択(&A)";\r
-                       this.selectAllPackagesStripMenuItem.Click += new System.EventHandler(this.SelectAllInstsStripMenuItemClick);\r
+                       this.selectAllInstsStripMenuItem.Name = "selectAllInstsStripMenuItem";\r
+                       this.selectAllInstsStripMenuItem.Size = new System.Drawing.Size(219, 22);\r
+                       this.selectAllInstsStripMenuItem.Text = "全て選択(&A)";\r
+                       this.selectAllInstsStripMenuItem.Click += new System.EventHandler(this.SelectAllInstsStripMenuItemClick);\r
                        // \r
-                       // unselectAllPackagesStripMenuItem\r
+                       // unselectAllInstsStripMenuItem\r
                        // \r
-                       this.unselectAllPackagesStripMenuItem.Name = "unselectAllPackagesStripMenuItem";\r
-                       this.unselectAllPackagesStripMenuItem.Size = new System.Drawing.Size(174, 22);\r
-                       this.unselectAllPackagesStripMenuItem.Text = "全ての選択を解除(&U)";\r
-                       this.unselectAllPackagesStripMenuItem.Click += new System.EventHandler(this.UnselectAllInstsStripMenuItemClick);\r
+                       this.unselectAllInstsStripMenuItem.Name = "unselectAllInstsStripMenuItem";\r
+                       this.unselectAllInstsStripMenuItem.Size = new System.Drawing.Size(219, 22);\r
+                       this.unselectAllInstsStripMenuItem.Text = "全ての選択を解除(&U)";\r
+                       this.unselectAllInstsStripMenuItem.Click += new System.EventHandler(this.UnselectAllInstsStripMenuItemClick);\r
                        // \r
-                       // PackagesInstallConfirmForm\r
+                       // InstallationConfirmForm\r
                        // \r
                        this.AcceptButton = this.okButton;\r
                        this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);\r
@@ -192,7 +215,7 @@ namespace AppliStation
                        this.ClientSize = new System.Drawing.Size(392, 266);\r
                        this.Controls.Add(this.tableLayoutPanel1);\r
                        this.MaximizeBox = false;\r
-                       this.Name = "PackagesInstallConfirmForm";\r
+                       this.Name = "InstallationConfirmForm";\r
                        this.ShowIcon = false;\r
                        this.ShowInTaskbar = false;\r
                        this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;\r
@@ -204,8 +227,11 @@ namespace AppliStation
                        this.instListViewContextMenuStrip.ResumeLayout(false);\r
                        this.ResumeLayout(false);\r
                }\r
-               private System.Windows.Forms.ToolStripMenuItem unselectAllPackagesStripMenuItem;\r
-               private System.Windows.Forms.ToolStripMenuItem selectAllPackagesStripMenuItem;\r
+               private System.Windows.Forms.ToolStripSeparator instListToolStripSeparator;\r
+               private System.Windows.Forms.ToolStripMenuItem silentInstallStripMenuItem;\r
+               private System.Windows.Forms.ColumnHeader instOptsColumnHeader;\r
+               private System.Windows.Forms.ToolStripMenuItem unselectAllInstsStripMenuItem;\r
+               private System.Windows.Forms.ToolStripMenuItem selectAllInstsStripMenuItem;\r
                private System.Windows.Forms.ContextMenuStrip instListViewContextMenuStrip;\r
                private System.Windows.Forms.CheckBox runasCheckBox;\r
                private System.Windows.Forms.ColumnHeader currentVersionColumnHeader;\r
index 5fc8f4b..13f812f 100644 (file)
@@ -58,14 +58,20 @@ namespace AppliStation
                                foreach (Installation inst in installations) {\r
                                        Package pkg = inst.InstalledPackage;\r
                                        \r
+                                       string[] itemData = new string[instsListView.Columns.Count];\r
+                                       itemData[nameColumnHeader.Index] = pkg.Name;\r
+                                       \r
                                        Package curPkg = null;\r
                                        if (pkgListMan != null) {       \r
-                                               curPkg = pkgListMan.InstalledPkgList.GetPackageForName(pkg.Name);\r
-                                               if (curPkg == null) curPkg = pkgListMan.SystemInstalledPkgList.GetPackageForName(pkg.Name);\r
+                                               curPkg = pkgListMan.InstalledPkgList.GetPackageForName(pkg.Name) ??\r
+                                                       pkgListMan.SystemInstalledPkgList.GetPackageForName(pkg.Name);\r
                                        }\r
-                                       string curVersion = (curPkg == null)? "-" : curPkg.Version;\r
+                                       itemData[versionColumnHeader.Index]        = pkg.Version;\r
+                                       itemData[currentVersionColumnHeader.Index] = (curPkg != null)? curPkg.Version : "-";\r
+                                       \r
+                                       itemData[instOptsColumnHeader.Index] = inst.Silent? "\83T\83C\83\8c\83\93\83g" : string.Empty;\r
                                        \r
-                                       ListViewItem item = new ListViewItem(new string[]{pkg.Name, pkg.Version, curVersion});\r
+                                       ListViewItem item = new ListViewItem(itemData);\r
                                        item.Tag = inst;\r
                                        item.ToolTipText = pkg.Summary;\r
                                        item.Checked = true;\r
@@ -120,9 +126,42 @@ namespace AppliStation
                                \r
                void InstsListViewContextMenuStripOpening(object sender, System.ComponentModel.CancelEventArgs e)\r
                {\r
-                       System.Windows.Forms.ListView.CheckedIndexCollection coll = instsListView.CheckedIndices;\r
-                       selectAllPackagesStripMenuItem.Enabled = coll.Count < instsListView.Items.Count;\r
-                       unselectAllPackagesStripMenuItem.Enabled = coll.Count > 0;\r
+                       System.Windows.Forms.ListView.CheckedIndexCollection  chkIdxes = instsListView.CheckedIndices;\r
+                       System.Windows.Forms.ListView.SelectedIndexCollection selIdxes = instsListView.SelectedIndices;\r
+                       \r
+                       silentInstallStripMenuItem.Visible = selIdxes.Count > 0;\r
+                       if (selIdxes.Count > 0) {\r
+                               Installation inst0th = ((Installation) instsListView.Items[selIdxes[0]].Tag);\r
+                               bool bChecked = inst0th.Silent;\r
+                               bool bEnabled = (inst0th.IsSupportsSilent && (!inst0th.SupportsSilentOnly));\r
+                               silentInstallStripMenuItem.Checked = bChecked;\r
+                               silentInstallStripMenuItem.Enabled = bEnabled;\r
+                               \r
+                               for (int i = 1; i < selIdxes.Count; i++) {\r
+                                       Installation inst = ((Installation) instsListView.Items[selIdxes[i]].Tag);\r
+                                       \r
+                                       if ( (bChecked != inst.Silent) ||\r
+                                           (bEnabled != (inst.IsSupportsSilent && (!inst.SupportsSilentOnly))) ) {\r
+                                               silentInstallStripMenuItem.CheckState = CheckState.Indeterminate;\r
+                                               silentInstallStripMenuItem.Enabled = false;\r
+                                               break;\r
+                                       }\r
+                               }\r
+                       }\r
+                       instListToolStripSeparator.Visible = selIdxes.Count > 0;\r
+               \r
+                       \r
+                       selectAllInstsStripMenuItem.Enabled = chkIdxes.Count < instsListView.Items.Count;\r
+                       unselectAllInstsStripMenuItem.Enabled = chkIdxes.Count > 0;\r
+               }\r
+               \r
+               void SilentInstallStripMenuItemClick(object sender, EventArgs e)\r
+               {\r
+                       bool silent = ! silentInstallStripMenuItem.Checked;\r
+                       foreach (ListViewItem item in instsListView.CheckedItems) {\r
+                               ((Installation) item.Tag).Silent = silent;\r
+                       }\r
+                       updateInstsListView();\r
                }\r
                                \r
                void SelectAllInstsStripMenuItemClick(object sender, EventArgs e)\r
@@ -207,7 +246,5 @@ namespace AppliStation
                }\r
                \r
                #endregion\r
-\r
-\r
        }\r
 }\r
index 00b8979..4b5ab9b 100644 (file)
         pwAAAABJRU5ErkJggg==\r
 </value>\r
   </data>\r
-  <metadata name="packageListViewContextMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
+  <metadata name="instListViewContextMenuStrip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">\r
     <value>17, 17</value>\r
   </metadata>\r
 </root>
\ No newline at end of file
index 9678d70..229b428 100644 (file)
@@ -218,7 +218,7 @@ namespace NaGet.Packages.Install
                                        \r
                                        break;\r
                                case InstallerType.MSI_PACKAGE:\r
-                                       string msiexecArgs = string.Format("{0} /i \"{1}\"",\r
+                                       string msiexecArgs = string.Format("{0} /norestart /i \"{1}\" REBOOT=ReallySuppress",\r
                                                                    (Silent)? "/passive" : string.Empty,\r
                                                                    installerfile);\r
                                        \r