public override NSMenu MenuForEvent(NSEvent theEvent) { CGPoint pt = this.ConvertPointToView(theEvent.LocationInWindow, null); nint row = this.GetRow(pt); if (row >= (nint)0) { NSObject obj = this.ItemAtRow((int)row); if (obj != null) { NSMenu menu = new NSMenu(); if (obj is VMCAServerNode) { VMCAServerNode serverNode = obj as VMCAServerNode; if (serverNode.IsLoggedIn) { NSMenuItem getVersion = new NSMenuItem("Get Server Version", serverNode.GetServerVersion); menu.AddItem(getVersion); NSMenuItem showRoot = new NSMenuItem("Show Root Certificate", serverNode.ShowRootCertificate); menu.AddItem(showRoot); NSMenuItem addCert = new NSMenuItem("Add Root Certificate", serverNode.AddRootCertificate); menu.AddItem(addCert); } } else if (obj is VMCAKeyPairNode) { VMCAKeyPairNode node = obj as VMCAKeyPairNode; NSMenuItem createKeyPair = new NSMenuItem("Create KeyPair", node.CreateKeyPair); menu.AddItem(createKeyPair); } else if (obj is VMCACSRNode) { VMCACSRNode node = obj as VMCACSRNode; NSMenuItem createSigningRequest = new NSMenuItem("Create Signing Request", node.HandleSigningRequest); menu.AddItem(createSigningRequest); } else if (obj is VMCAPersonalCertificatesNode) { VMCAPersonalCertificatesNode node = obj as VMCAPersonalCertificatesNode; NSMenuItem createCertificate = new NSMenuItem("Create Self Signed Certificate", node.CreateCertificate); menu.AddItem(createCertificate); NSMenuItem createCASingedCertificate = new NSMenuItem("Create CA Signed Certificate", node.CreateCASignedCertificate); menu.AddItem(createCASingedCertificate); } NSMenu.PopUpContextMenu(menu, theEvent, theEvent.Window.ContentView); } } return(base.MenuForEvent(theEvent)); }
public void OnClickCreateKey(object sender, EventArgs eventargs) { if (KeyLength.SelectedValue != null) { var numKeyLength = KeyLength.SelectedValue.ToString(); var keyPair = VMCAKeyPair.Create(Convert.ToUInt32(numKeyLength)); PrivateKeyTextView.Value = keyPair.PrivateKey; ConfirmationDialogController dlg = new ConfirmationDialogController("Do you want to save the Keys?"); //dlg.ConfirmLabel.StringValue = ; int result = (int)NSApplication.SharedApplication.RunModalForWindow(dlg.Window); if (result == Constants.DIALOGOK) { VMCAKeyPairNode.SaveKeyData(keyPair); } } else { UIErrorHelper.ShowAlert("", "Please enter a value for Key Length"); } }
public void DisplayRightPaneKeyPairView(NSObject item) { try { //add respective columns NSTableColumn col1 = new NSTableColumn("CreatedDate"); col1.HeaderCell.Title = "Created Date"; col1.Width = 150; col1.DataCell = new NSBrowserCell(); splitViewController.MainTableView.AddColumn(col1); NSTableColumn col2 = new NSTableColumn("KeyLength"); col2.HeaderCell.Title = "Key Length"; col2.Width = 150; splitViewController.MainTableView.AddColumn(col2); VMCAKeyPairNode node = item as VMCAKeyPairNode; splitViewController.MainTableView.DataSource = new KeyPairDetailListView(node.ServerDTO.KeyPairs); } catch (Exception e) { UIErrorHelper.ShowAlert("", e.Message); } }
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)); }