\r
void PackageListContextMenuStripOpening(object sender, System.ComponentModel.CancelEventArgs e)\r
{\r
- // 選択されていないなら開かない\r
- if (packageListView.SelectedItems.Count <= 0) {\r
- e.Cancel = true;\r
- return;\r
- }\r
- \r
// メニューアイテムのインストール/アンインストールの表示はツールストリップに同じ\r
installToolStripMenuItem.Visible = installToolStripButton.Visible;\r
uninstallToolStripMenuItem.Visible = uninstallToolStripButton.Visible;\r
\r
+ // インストールもアンインストールもできない状態ならば、メニューを表示しない\r
+ if (! (installToolStripButton.Visible || uninstallToolStripButton.Visible)) {\r
+ e.Cancel = true;\r
+ return;\r
+ }\r
+ \r
// 選択パッケージが1つのとき\r
- if (packageListView.SelectedItems.Count == 1) {\r
+ bool selectionIsOnlyOne = packageListView.SelectedItems.Count == 1;\r
+ if (selectionIsOnlyOne) {\r
Package pkg = SelectedPackage<Package>();\r
bool isInstalledPackage = pkg is InstalledPackage;\r
\r
openInstalledDirectoryStripMenuItem.Visible = isInstalledPackage &&\r
( (pkg.Type == InstallerType.ARCHIVE) || Directory.Exists(((InstalledPackage) pkg).UninstallInfo.InstallLocation) );\r
}\r
+ \r
+ toolStripSeparator1.Visible = selectionIsOnlyOne;\r
+ webResourcesToolStripMenuItem.Visible = selectionIsOnlyOne;\r
+ if (! selectionIsOnlyOne) openInstalledDirectoryStripMenuItem.Visible = false;\r
+ propertiesToolStripMenuItem.Visible = selectionIsOnlyOne;\r
}\r
\r
private IEnumerable<Package> getUpdatedPackages(PackageList<InstalledPackage> installedPkgList, PackageList<Package> avaiablePkgList, IComparer<string> verComp)\r