2 using System.Drawing;
\r
3 using System.Windows.Forms;
\r
4 using NaGet.Packages;
\r
5 using NaGet.Packages.Install;
\r
7 namespace AppliStation
\r
10 /// Description of PackagesInstallConfirmForm.
\r
12 public partial class InstallationConfirmForm : Form
\r
14 private Installation[] installations;
\r
16 private PackageListsManager pkgListMan;
\r
19 ///
\83p
\83b
\83P
\81[
\83W
\83C
\83\93\83X
\83g
\81[
\83\8b\8f\88\97\9d\82Ì
\8fW
\8d\87\r
21 public Installation[] Installations {
\r
22 get { return installations; }
\r
24 installations = value;
\r
26 updateInstsListView();
\r
30 public PackageListsManager PkgListsManager {
\r
31 get { return pkgListMan; }
\r
35 updateInstsListView();
\r
39 public InstallationConfirmForm()
\r
42 // The InitializeComponent() call is required for Windows Forms designer support.
\r
44 InitializeComponent();
\r
46 //
\8aÇ
\97\9d\8eÒ
\8c \8cÀ
\82Å
\93®
\82¢
\82Ä
\82¢
\82é
\82È
\82ç
\82Îrunas
\82ª
\95K
\97v
\82É
\82Í
\82È
\82ç
\82È
\82¢
\82Ì
\82Å
\95\
\8e¦
\82µ
\82È
\82¢
\r
47 if (NaGet.Utils.IsAdministrators()) {
\r
48 runasCheckBox.Checked = false;
\r
49 runasCheckBox.Visible = false;
\r
53 private void updateInstsListView()
\r
55 instsListView.Items.Clear();
\r
57 if (installations != null) {
\r
58 foreach (Installation inst in installations) {
\r
59 Package pkg = inst.InstalledPackage;
\r
61 string[] itemData = new string[instsListView.Columns.Count];
\r
62 itemData[nameColumnHeader.Index] = pkg.Name;
\r
64 Package curPkg = null;
\r
65 if (pkgListMan != null) {
\r
66 curPkg = pkgListMan.InstalledPkgList.GetPackageForName(pkg.Name) ??
\r
67 pkgListMan.SystemInstalledPkgList.GetPackageForName(pkg.Name);
\r
69 itemData[versionColumnHeader.Index] = pkg.Version;
\r
70 itemData[currentVersionColumnHeader.Index] = (curPkg != null)? curPkg.Version : "-";
\r
72 itemData[instOptsColumnHeader.Index] = inst.Silent? "
\83T
\83C
\83\8c\83\93\83g" : string.Empty;
\r
74 ListViewItem item = new ListViewItem(itemData);
\r
76 item.ToolTipText = pkg.Summary;
\r
77 item.Checked = true;
\r
79 instsListView.Items.Add(item);
\r
83 InstsListViewItemChecked(instsListView, null);
\r
84 instsListView.Refresh();
\r
87 void InstsListViewItemChecked(object sender, ItemCheckedEventArgs e)
\r
89 System.Windows.Forms.ListView.CheckedListViewItemCollection checkeds = instsListView.CheckedItems;
\r
91 okButton.Enabled = checkeds != null && checkeds.Count > 0;
\r
94 AppliStation.Util.ListViewItemSortComparer packageListViewSortComparer;
\r
96 void InstsListViewColumnClick(object sender, ColumnClickEventArgs e)
\r
98 SortOrder order = SortOrder.None;
\r
100 if (packageListViewSortComparer == null) {
\r
101 order = SortOrder.Ascending;
\r
102 packageListViewSortComparer = new AppliStation.Util.ListViewItemSortComparer(e.Column, order);
\r
103 instsListView.ListViewItemSorter = packageListViewSortComparer;
\r
105 if (packageListViewSortComparer.Column == e.Column) {
\r
106 order = (packageListViewSortComparer.Order == SortOrder.Ascending)? SortOrder.Descending : SortOrder.Ascending;
\r
108 packageListViewSortComparer.Order = order;
\r
110 order = packageListViewSortComparer.Order;
\r
111 packageListViewSortComparer.Column = e.Column;
\r
114 instsListView.Sort();
\r
116 AppliStation.Util.NativeMethods.ColumnHeader_SetSortState(instsListView, e.Column, order);
\r
118 //
\83\
\81[
\83g
\91Î
\8fÛ
\97ñ
\82Ì
\90F
\95t
\82¯
\r
120 // SendMessage(hWnd, LVM_SETSELECTEDCOLUMN, column, NULL);
\r
121 AppliStation.Util.NativeMethods.SendMessage(instsListView.Handle, 0x1000+140, (uint) e.Column, 0);
\r
122 } catch (Exception) {
\r
127 void InstsListViewContextMenuStripOpening(object sender, System.ComponentModel.CancelEventArgs e)
\r
129 System.Windows.Forms.ListView.CheckedIndexCollection chkIdxes = instsListView.CheckedIndices;
\r
130 System.Windows.Forms.ListView.SelectedIndexCollection selIdxes = instsListView.SelectedIndices;
\r
132 silentInstallStripMenuItem.Visible = selIdxes.Count > 0;
\r
133 if (selIdxes.Count > 0) {
\r
134 Installation inst0th = ((Installation) instsListView.Items[selIdxes[0]].Tag);
\r
135 bool bChecked = inst0th.Silent;
\r
136 bool bEnabled = (inst0th.IsSupportsSilent && (!inst0th.SupportsSilentOnly));
\r
137 silentInstallStripMenuItem.Checked = bChecked;
\r
138 silentInstallStripMenuItem.Enabled = bEnabled;
\r
140 for (int i = 1; i < selIdxes.Count; i++) {
\r
141 Installation inst = ((Installation) instsListView.Items[selIdxes[i]].Tag);
\r
143 if ( (bChecked != inst.Silent) ||
\r
144 (bEnabled != (inst.IsSupportsSilent && (!inst.SupportsSilentOnly))) ) {
\r
145 silentInstallStripMenuItem.CheckState = CheckState.Indeterminate;
\r
146 silentInstallStripMenuItem.Enabled = false;
\r
151 instListToolStripSeparator.Visible = selIdxes.Count > 0;
\r
154 selectAllInstsStripMenuItem.Enabled = chkIdxes.Count < instsListView.Items.Count;
\r
155 unselectAllInstsStripMenuItem.Enabled = chkIdxes.Count > 0;
\r
158 void SilentInstallStripMenuItemClick(object sender, EventArgs e)
\r
160 bool silent = ! silentInstallStripMenuItem.Checked;
\r
161 foreach (ListViewItem item in instsListView.CheckedItems) {
\r
162 ((Installation) item.Tag).Silent = silent;
\r
164 updateInstsListView();
\r
167 void SelectAllInstsStripMenuItemClick(object sender, EventArgs e)
\r
169 foreach (ListViewItem item in instsListView.Items) {
\r
170 item.Checked = true;
\r
172 instsListView.Refresh();
\r
175 void UnselectAllInstsStripMenuItemClick(object sender, EventArgs e)
\r
177 foreach (ListViewItem item in instsListView.CheckedItems) {
\r
178 item.Checked = false;
\r
180 instsListView.Refresh();
\r
184 ///
\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
186 public Installation[] CheckedInstallations {
\r
188 System.Collections.Generic.List<Installation> insts = new System.Collections.Generic.List<Installation>();
\r
189 foreach (ListViewItem item in instsListView.CheckedItems) {
\r
190 insts.Add((Installation) item.Tag);
\r
192 return insts.ToArray();
\r
196 #region runas
\8aÖ
\98A
\r
199 /// runas
\82Å
\8eÀ
\8ds
\82·
\82é
\82©
\94Û
\82©
\r
201 public bool UseRunas {
\r
203 runasCheckBox.Checked = (! NaGet.Utils.IsAdministrators()) && value;
\r
208 return runasCheckBox.Checked;
\r
213 ///
\91I
\91ð
\82³
\82ê
\82½
\83p
\83b
\83P
\81[
\83W
\82ð
\92²
\8d¸
\82µ
\82Ä
\81ARunas
\82ð
\8eg
\82¤
\82×
\82«
\82©
\82¢
\82È
\82©
\82ð
\95Ô
\82·
\r
215 public bool GetShouldUseRunas()
\r
217 if (NaGet.Utils.IsAdministrators()) {
\r
218 //
\8aÇ
\97\9d\8eÒ
\8c \8cÀ
\82Å
\93®
\82¢
\82Ä
\82¢
\82é
\8fê
\8d\87\82Í
\95s
\97v
\r
220 } else if (NaGet.Utils.IsUACEnabled()) {
\r
221 // UAC
\82ª
\93K
\97p
\82³
\82ê
\82Ä
\82¢
\82é
\8fê
\8d\87\82Í
\95W
\8f\80\82Å
\82Í
\95s
\97v
\82Æ
\82·
\82é
\r
225 //
\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
226 foreach (Installation inst in CheckedInstallations) {
\r
227 if (inst.TargetPC) return true;
\r
229 //
\82»
\82ê
\88È
\8aO
\82Í
\95s
\97v
\r
233 void RunasCheckBoxCheckedChanged(object sender, EventArgs e)
\r
238 private void updateUseRunas()
\r
241 System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(InstallationConfirmForm));
\r
242 okButton.Image = ((System.Drawing.Bitmap)(resources.GetObject("okButton.Image")));
\r
244 okButton.Image = null;
\r