private void OnTypeRequested(object sender, TypeRequestedEventArgs e)
        {
            var vsender = (ObjectPropertyViewModel)sender;

            var panel = this.FindPropertiesHost();

            ITypeInfo type = TypeSelectorWindow.RequestType(panel, vsender.AssignableTypes);

            e.SelectedType = Task.FromResult(type);
        }
Exemplo n.º 2
0
        private void OnTypeRequested(object sender, TypeRequestedEventArgs e)
        {
            var vm = (ObjectPropertyViewModel)sender;

            var panel = this.FindParent <PropertyEditorPanel> ();

            ITypeInfo type = TypeSelectorWindow.RequestType(panel, vm.AssignableTypes);

            e.SelectedType = type;
        }
Exemplo n.º 3
0
        public static Task <ITypeInfo> RequestAt(this TypeRequestedEventArgs self, IHostResourceProvider hostResources, NSView source, AsyncValue <IReadOnlyDictionary <IAssemblyInfo, ILookup <string, ITypeInfo> > > assignableTypes)
        {
            var tcs = new TaskCompletionSource <ITypeInfo> ();

            var vm       = new TypeSelectorViewModel(assignableTypes);
            var selector = new TypeSelectorControl {
                ViewModel  = vm,
                Appearance = source.EffectiveAppearance
            };

            vm.PropertyChanged += (vms, ve) => {
                if (ve.PropertyName == nameof(TypeSelectorViewModel.SelectedType))
                {
                    tcs.TrySetResult(vm.SelectedType);
                }
            };

            var popover = new AutoClosePopOver(hostResources, hostResources.GetVibrantAppearance(source.EffectiveAppearance))
            {
                Delegate = new PopoverDelegate <ITypeInfo> (tcs),
                ContentViewController = new NSViewController {
                    View = selector,
                    PreferredContentSize = new CoreGraphics.CGSize(360, 335)
                },
            };

            tcs.Task.ContinueWith(t => {
                // Focus back to the button that popped us up
                source.Superview?.Window?.MakeFirstResponder(source);

                popover.PerformClose(popover);
                popover.Dispose();
            }, TaskScheduler.FromCurrentSynchronizationContext());

            popover.Show(source.Frame, source.Superview, NSRectEdge.MinYEdge);
            return(tcs.Task);
        }
Exemplo n.º 4
0
 private void OnTypeRequested(object sender, TypeRequestedEventArgs e)
 {
     e.SelectedType = e.RequestAt(HostResources, this.selectType, ViewModel.AssignableTypes);
 }
Exemplo n.º 5
0
 private void OnTypeRequested(object sender, TypeRequestedEventArgs args)
 {
     args.SelectedType = Task.FromResult(TypeSelectorWindow.RequestType(this, ((CollectionPropertyViewModel)DataContext).AssignableTypes));
 }