Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        //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));
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
        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));
        }
Ejemplo n.º 5
0
		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;
		}
Ejemplo n.º 6
0
        /// <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);
        }
Ejemplo n.º 7
0
        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));
        }