public override NSMenu MenuForEvent(NSEvent theEvent) { NSTableViewDataSource ds = (NSTableViewDataSource)this.DataSource; NSMenu menu = new NSMenu(); if (SelectedRow >= (nint)0) { if (ds is AttributesEntryListView) { VMDirSchemaAttributeEntryNode node = (ds as AttributesEntryListView).Entries[(int)SelectedRow]; NSMenuItem properties = new NSMenuItem(VMDirSchemaConstants.VMDIRSCHEMA_PROPERTIES, node.ShowProperties); menu.AddItem(properties); } else if (ds is ObjectClassesListView) { VMDirSchemaClassEntryNode node = (ds as ObjectClassesListView).Entries[(int)SelectedRow]; NSMenuItem properties = new NSMenuItem(VMDirSchemaConstants.VMDIRSCHEMA_PROPERTIES, node.ShowProperties); menu.AddItem(properties); } else { //do nothing } } NSMenu.PopUpContextMenu(menu, theEvent, theEvent.Window.ContentView); return(base.MenuForEvent(theEvent)); }
//Handle right click event for the TableView public override NSMenu MenuForEvent(NSEvent theEvent) { CGPoint pt = this.ConvertPointFromView(theEvent.LocationInWindow, null); _selectedRow = this.GetRow(pt); NSTableViewDataSource ds = (NSTableViewDataSource)this.DataSource; NSMenu menu = new NSMenu(); if (_selectedRow >= (nint)0) { if (ds is NodesListView) { DirectoryNode node = ((ds as NodesListView).Entries [(int)_selectedRow] as DirectoryNode); if (node != null) { if (node.NodeType == DirectoryNode.DirectoryNodeType.User) { NSMenuItem ResetPassword = new NSMenuItem("Set Password", node.RestUserPassword); menu.AddItem(ResetPassword); NSMenuItem delete = new NSMenuItem("Delete", node.Delete); menu.AddItem(delete); NSMenuItem Properties = new NSMenuItem("Properties", node.ViewProperties); menu.AddItem(Properties); } else if (node.NodeType == DirectoryNode.DirectoryNodeType.Groups) { NSMenuItem addUser = new NSMenuItem("Add user to group", node.AddUserToGroup); menu.AddItem(addUser); } } } } NSMenu.PopUpContextMenu(menu, theEvent, theEvent.Window.ContentView); return(base.MenuForEvent(theEvent)); }
public override NSMenu MenuForEvent(NSEvent theEvent) { CGPoint pt = this.ConvertPointFromView(theEvent.LocationInWindow, null); selectedRow = this.GetRow(pt); NSTableViewDataSource ds = (NSTableViewDataSource)this.DataSource; NSMenu menu = new NSMenu(); if (selectedRow >= (nint)0) { if (ds is ZoneDetailsListView) { VMDNSZoneEntryNode zone = (ds as ZoneDetailsListView).Entries[(int)SelectedRow] as VMDNSZoneEntryNode; NSMenuItem properties = new NSMenuItem(VMDNSConstants.ZONE_PROPERTIES, zone.OnClickZoneProperties); menu.AddItem(properties); } else if (ds is DnsRecordListView) { VMDNSZoneEntryNode zoneNode = (ds as DnsRecordListView).ZoneNode; if (zoneNode != null) { VmDnsRecord record = (ds as DnsRecordListView).Entries[(int)selectedRow]; NSMenuItem properties = new NSMenuItem(VMDNSConstants.RECORD_PROPERTIES, (sender, e) => zoneNode.ShowRecordProperties(sender, e, record)); menu.AddItem(properties); NSMenuItem deleteRecord = new NSMenuItem(VMDNSConstants.RECORD_DELETE, (sender, e) => zoneNode.DeleteRecord(sender, e, record)); menu.AddItem(deleteRecord); } } } NSMenu.PopUpContextMenu(menu, theEvent, theEvent.Window.ContentView); return(base.MenuForEvent(theEvent)); }
public override NSMenu MenuForEvent(NSEvent theEvent) { CGPoint pt = this.ConvertPointFromView(theEvent.LocationInWindow, null); _selectedRow = this.GetRow(pt); NSTableViewDataSource ds = (NSTableViewDataSource)this.DataSource; NSMenu menu = new NSMenu(); if (_selectedRow >= (nint)0) { if (ds is NodesListView) { string data = (ds as NodesListView).Entries [(int)_selectedRow].DisplayName; switch (data) { case "Private Entities": NSMenuItem addPrivateEntity = new NSMenuItem("Add Private Entity", ((ds as NodesListView).Entries [(int)_selectedRow] as VecsPrivateKeysNode).AddPrivateKeyHandler); menu.AddItem(addPrivateEntity); break; case "Secret Keys": NSMenuItem createCertificate = new NSMenuItem("Add Secret Key", ((ds as NodesListView).Entries [(int)_selectedRow] as VecsSecretKeysNode).AddSecretKey); menu.AddItem(createCertificate); break; case "Trusted Certs": NSMenuItem createSigningRequest = new NSMenuItem("Create Certificate", ((ds as NodesListView).Entries [(int)_selectedRow] as VecsTrustedCertsNode).AddCertificate); menu.AddItem(createSigningRequest); break; default: break; } } else if (ds is CertificateDetailsListView) { CertificateDetailsListView lw = ds as CertificateDetailsListView; CertDTO cert = lw.Entries [(int)_selectedRow]; NSMenuItem showCert = new NSMenuItem("Show Certificate", (object sender, EventArgs e) => CertificateService.DisplayX509Certificate2(this, cert.Cert)); menu.AddItem(showCert); NSMenuItem deleteEntry = new NSMenuItem("Delete", (object sender, EventArgs e) => { UIErrorHelper.CheckedExec(delegate() { if (UIErrorHelper.ConfirmDeleteOperation("Are you sure?") == true) { using (var session = new VecsStoreSession(lw.ServerDto.VecsClient, lw.Store, "")) { session.DeleteCertificate(cert.Alias); } lw.Entries.Remove(cert); UIErrorHelper.ShowAlert("", "Successfully deleted the entry."); NSNotificationCenter.DefaultCenter.PostNotificationName("ReloadServerData", this); } }); }); menu.AddItem(deleteEntry); } NSMenu.PopUpContextMenu(menu, theEvent, theEvent.Window.ContentView); } return(base.MenuForEvent(theEvent)); }
public static NSTableView ToNSTableView(List<ColumnOptions> options, NSTableViewDataSource nodeListView) { var view = new NSTableView (); var columns = ToNSTableColumns (options); foreach (var column in columns) view.AddColumn (column); view.DataSource = nodeListView; return view; }
/// <summary> /// Gets the NS table view from column options. /// </summary> /// <returns>The NS table view.</returns> /// <param name="options">Options.</param> /// <param name="nodeListView">Node list view.</param> public static NSTableView ToNSTableView(List <ColumnOptions> options, NSTableViewDataSource nodeListView) { var view = new NSTableView(); var columns = ToNSTableColumns(options); foreach (var column in columns) { view.AddColumn(column); } view.DataSource = nodeListView; return(view); }
public override NSMenu MenuForEvent(NSEvent theEvent) { UIErrorHelper.CheckedExec(delegate() { CGPoint pt = this.ConvertPointFromView(theEvent.LocationInWindow, null); _selectedRow = this.GetRow(pt); //get datasource and node information NSTableViewDataSource ds = (NSTableViewDataSource)this.DataSource; NSMenu menu = new NSMenu(); if (_selectedRow >= 0) { if (ds is NodesListView) { string data = (ds as NodesListView).Entries [(int)_selectedRow].DisplayName; switch (data) { case "Key Pairs": NSMenuItem createKeyPair = new NSMenuItem("Create Key Pair", HandleKeyPairRequest); menu.AddItem(createKeyPair); break; case "Certificates": NSMenuItem createCertificate = new NSMenuItem("Create Certificate", HandleCreateSelfSignedCertificate); menu.AddItem(createCertificate); break; case "Signing Requests": NSMenuItem createSigningRequest = new NSMenuItem("Create SigningRequest", HandleCreateSigningRequest); menu.AddItem(createSigningRequest); break; default: break; } } else if (ds is CertificateDetailsListView || ds is PrivateCertsListView) { X509Certificate2 cert = null; if (ds is CertificateDetailsListView) { CertificateDetailsListView lw = ds as CertificateDetailsListView; cert = lw.Entries [(int)_selectedRow]; if (lw.CertificateState == (int)VMCA.CertificateState.Active) { NSMenuItem revokeCert = new NSMenuItem("Revoke Certificate", (object sender, EventArgs e) => { UIErrorHelper.CheckedExec(delegate() { VMCACertificateService.RevokeCertificate(cert, lw.ServerDto); NSNotificationCenter.DefaultCenter.PostNotificationName("ReloadAll", this); }); }); menu.AddItem(revokeCert); } } if (ds is PrivateCertsListView) { cert = CertificateExtensions.GetX509Certificate2FromString((ds as PrivateCertsListView).Entries [(int)_selectedRow].Certificate); } NSMenuItem showCert = new NSMenuItem("Show Certificate", (object sender, EventArgs e) => { CertificateService.DisplayX509Certificate2(this, cert); }); menu.AddItem(showCert); NSMenuItem showCertString = new NSMenuItem("Show Certificate String", (object sender, EventArgs e) => { UIHelper.ShowGenericWindowAsSheet(VMCACertificate.GetCertificateAsString(cert), "Certificate String", VMCAAppEnvironment.Instance.MainWindow); }); menu.AddItem(showCertString); /* if (lw.CertificateState == -1) { * NSMenuItem deleteString = new NSMenuItem ("Delete Certificate", (object sender, EventArgs e) => { * lw.ServerDto.PrivateCertificates.RemoveAll (x => x.Certificate.Equals (cert.ToString ())); * NSNotificationCenter.DefaultCenter.PostNotificationName ("ReloadTableView", this); * * }); * menu.AddItem (deleteString); * }*/ } else if (ds is CSRDetailListView) { CSRDetailListView lw = ds as CSRDetailListView; var csr = lw.Entries [(int)_selectedRow].CSR; NSMenuItem showCert = new NSMenuItem("Show CSR", (object sender, EventArgs e) => { UIHelper.ShowGenericWindowAsSheet(csr, "CSR", VMCAAppEnvironment.Instance.MainWindow); }); menu.AddItem(showCert); } else if (ds is KeyPairDetailListView) { KeyPairDetailListView lw = ds as KeyPairDetailListView; var privateKey = lw.Entries [(int)_selectedRow].PrivateKey; var publicKey = lw.Entries [(int)_selectedRow].PublicKey; KeyPairData keyPair = new KeyPairData(privateKey, publicKey); NSMenuItem showCert = new NSMenuItem("Export KeyPair", (object sender, EventArgs e) => { VMCAKeyPairNode.SaveKeyData(keyPair); }); menu.AddItem(showCert); } NSMenu.PopUpContextMenu(menu, theEvent, theEvent.Window.ContentView); } }); return(base.MenuForEvent(theEvent)); }