Example #1
0
 void DataGridCellPreviewMouseLeftButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
 {
      DataGridCell cell = sender as DataGridCell;
     if (cell != null && !cell.IsEditing && !cell.IsReadOnly)
     {
         if (!cell.IsFocused)
         {
             cell.Focus();
         }
         DataGrid dataGrid = LogicalTreeWalker.FindParentOfType<DataGrid>(cell); //FindVisualParent<DataGrid>(cell);
         if (dataGrid != null)
         {
             if (dataGrid.SelectionUnit != DataGridSelectionUnit.FullRow)
             {
                 if (!cell.IsSelected)
                     cell.IsSelected = true;
             }
             else
             {
                 DataGridRow row =  LogicalTreeWalker.FindParentOfType<DataGridRow>(cell); //FindVisualParent<DataGridRow>(cell);
                 if (row != null && !row.IsSelected)
                 {
                     row.IsSelected = true;
                 }
             }
         }
     }
 }    
Example #2
0
        /// <summary>
        /// Handles the specified request.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns>Returns <see cref="Response"/>.</returns>
        public override Response Handle(TRequest request)
        {
            var requestDto = request.DataTransferObject;

            DomainEvent.Register <RuleViolationEvent> (failure => _validationFailureOccurred = true);

            LogicalTreeWalker.Walk <IDataTransferObject> (requestDto, dto => dto.ClearAllDataErrorInfo());

            var response = CreateTypedResponse();

            response.DataTransferObject = requestDto;

            var processSucceeded = Process(requestDto);

            processSucceeded &= !_validationFailureOccurred;

            if (processSucceeded)
            {
                Session.Flush();
                Session.Clear();

                response.DataTransferObject = RefreshDto(requestDto.Key);

                AfterDtoRefreshed(response.DataTransferObject);
            }

            return(response);
        }
        private void WatchObject(object objToWatch)
        {
            CheckListen(objToWatch, null, null);
            var logicalTreeWalker = new LogicalTreeWalker();

            logicalTreeWalker.RegisterAction <TRecurse>(CheckListen);
            logicalTreeWalker.Walk <TRecurse>(objToWatch);
        }
Example #4
0
 public static void FocusFirstResponder(this FrameworkElement root)
 {
     LogicalTreeWalker.Walk(root, delegate(UIElement element)
     {
         if (Responder.GetIsFirstResponder(element))
         {
             Focus(element);
         }
     });
 }
 void Search_Executed(object sender, ExecutedRoutedEventArgs e)
 {
     LogicalTreeWalker.Walk((FrameworkElement)TabHost.HeaderContent, delegate(UIElement element)
     {
         if (Responder.GetIsSearchResponder(element))
         {
             FocusHelper.Focus(element);
         }
     });
 }
        void GotoLabel_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            ClientStats.LogEventWithSegment("Goto folder (keyboard)", ActivityView.Label.ToString());

            LogicalTreeWalker.Walk((FrameworkElement)TabHost.HeaderContent, delegate(UIElement element)
            {
                if (Responder.GetIsSearchResponder(element))
                {
                    FocusHelper.Focus(element);

                    if (element is TextBox)
                    {
                        var tb = (TextBox)element;

                        tb.Text           = "label: ";
                        tb.SelectionStart = tb.Text.Length;
                    }
                }
            });
        }
Example #7
0
        protected override void OnInitialized(EventArgs e)
        {
            if (Child is IControllablePopup)
            {
                IControllablePopup child = (IControllablePopup)Child;

                child.RequestClosePopup += delegate { TryClose(); };
            }
            else
            {
                Button button = LogicalTreeWalker.FindName <Button>(this, "PART_CloseButton");

                if (button != null)
                {
                    button.Click += delegate { TryClose(); }
                }
                ;
            }

            base.OnInitialized(e);
        }
        /// <summary>
        /// Handles the specified request.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns>A <see cref="Agatha.Common.Response"/></returns>
        public override Response Handle(SaveDtoRequest <SelfPaymentDto> request)
        {
            var requestDto = request.DataTransferObject;

            DomainEvent.Register <RuleViolationEvent>(failure => _validationFailureOccurred = true);

            LogicalTreeWalker.Walk <IDataTransferObject>(requestDto, dto => dto.ClearAllDataErrorInfo());

            var response = CreateTypedResponse();

            response.DataTransferObject = requestDto;


            if (requestDto.EditStatus == EditStatus.Create)
            {
                var selfPayment = CreateNew(requestDto);
                response.DataTransferObject = AutoMapper.Mapper.Map <SelfPayment, SelfPaymentDto> (selfPayment);
            }
            else if (requestDto.EditStatus == EditStatus.Delete)
            {
                var selfPayment = _selfPaymentRepository.GetByKey(requestDto.Key);
                if (selfPayment != null)
                {
                    Delete(selfPayment);
                }
                response.DataTransferObject = requestDto;
            }

            var processSucceeded = !_validationFailureOccurred;

            if (processSucceeded)
            {
                Session.Flush();
                Session.Clear();
            }

            return(response);
        }
        private void StopWatchingObject(object objToStopWatching)
        {
            LogicalTreeWalker.Walk <TRecurse>(
                objToStopWatching,
                item =>
            {
                if (item is INotifyPropertyChanged)
                {
                    (item as INotifyPropertyChanged).PropertyChanged -= PropertyChanged;
                }
                else if (item is INotifyCollectionChanged)
                {
                    (item as INotifyCollectionChanged).CollectionChanged -= CollectionChanged;

                    lock ( _collectionPropertyNames )
                    {
                        var itemToRemove =
                            _collectionPropertyNames.FirstOrDefault(kvp => kvp.Key.IsAlive && kvp.Key.Target == item);
                        _collectionPropertyNames.Remove(itemToRemove);
                    }
                }
            });
        }
        public FoldersControl()
        {
            mailbox    = VirtualMailBox.Current;
            viewFilter = ViewFilter.Current;
            labels     = new ThreadSafeCollection <LabelsContainer>();

            LabelsViewSource = new CollectionViewSource {
                Source = labels
            };
            LabelsViewSource.SortDescriptions.Add(new SortDescription("Count", ListSortDirection.Descending));
            LabelsViewSource.View.Filter = IsLabelVisible;

            InitializeComponent();

            signal       = new AutoResetEvent(false);
            workerThread = new Thread(UpdateCounters)
            {
                Name         = "Counter update thread",
                IsBackground = true,
                Priority     = ThreadPriority.BelowNormal
            };

            workerThread.Start();

            DataContext = this;

            VirtualMailBox.Current.LoadComplete += delegate { UpdateCountersAsync(); };

            EventBroker.Subscribe(AppEvents.RebuildOverview, UpdateCountersAsync);
            EventBroker.Subscribe(AppEvents.ReceiveMessagesFinished, UpdateCountersAsync);
            EventBroker.Subscribe(AppEvents.MessageUpdated, UpdateCountersAsync);

            EventBroker.Subscribe(AppEvents.View, delegate(ActivityView view)
            {
                ClientState.Current.ViewController.MoveTo(WellKnownView.Overview);

                // Find the radio-button with the requested view
                LogicalTreeWalker.Walk(this, delegate(RadioButton rb)
                {
                    if (GetActivityView(rb) == view)
                    {
                        rb.IsChecked = true;
                    }
                });

                viewFilter.Filter.CurrentView = view;
                viewFilter.RebuildCurrentViewAsync();

                EventBroker.Publish(AppEvents.RequestFocus);
            });

            EventBroker.Subscribe(AppEvents.View, delegate(Label label)
            {
                EventBroker.Publish(AppEvents.View, ActivityView.Label);

                viewFilter.Filter.Label = label.Labelname;
                viewFilter.RebuildCurrentViewAsync();

                EventBroker.Publish(AppEvents.RequestFocus);
            });

            EventBroker.Subscribe(AppEvents.ShuttingDown, () => Thread.CurrentThread.ExecuteOnUIThread(delegate
            {
                // Save settings during shutdown
                SettingsManager.ClientSettings.AppConfiguration.ShowProductivityColumn = ProductivityExpander.IsExpanded;
                SettingsManager.ClientSettings.AppConfiguration.ShowLabelsColumn       = LabelsExpander.IsExpanded;
                SettingsManager.Save();
            }));

            EventBroker.Subscribe(AppEvents.LabelCreated, (string label) => labels.Add(new LabelsContainer(label)));
        }
        /// <summary>
        /// Handles the specified request.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns>A <see cref="Agatha.Common.Response"/></returns>
        public override Response Handle(SaveDtoRequest <PayorCoverageCacheDto> request)
        {
            var requestDto = request.DataTransferObject;

            DomainEvent.Register <RuleViolationEvent> (failure => _validationFailureOccurred = true);

            LogicalTreeWalker.Walk <IDataTransferObject> (requestDto, dto => dto.ClearAllDataErrorInfo());

            var response = CreateTypedResponse();

            if (requestDto.EditStatus == EditStatus.Create || requestDto.EditStatus == EditStatus.Update)
            {
                var patient                = _patientRepository.GetByKeyOrThrow(requestDto.PatientKey, "Patient");
                var payorCache             = _payorCacheRepository.GetByKeyOrThrow(requestDto.PayorCache.Key, "Payor");
                var effectiveDateRange     = new DateRange(requestDto.StartDate, requestDto.EndDate);
                var payorCoverageCacheType = _mappingHelper.MapLookupField <PayorCoverageCacheType> (requestDto.PayorCoverageCacheType);

                var countyArea    = _mappingHelper.MapLookupField <CountyArea> (requestDto.PayorSubscriberCache.Address.CountyArea);
                var stateProvince = _mappingHelper.MapLookupField <StateProvince> (requestDto.PayorSubscriberCache.Address.StateProvince);
                var country       = _mappingHelper.MapLookupField <Country> (requestDto.PayorSubscriberCache.Address.Country);

                var address = new Address(
                    requestDto.PayorSubscriberCache.Address.FirstStreetAddress,
                    requestDto.PayorSubscriberCache.Address.SecondStreetAddress,
                    requestDto.PayorSubscriberCache.Address.CityName,
                    countyArea,
                    stateProvince,
                    country,
                    new PostalCode(requestDto.PayorSubscriberCache.Address.PostalCode));

                var gender = _mappingHelper.MapLookupField <AdministrativeGender>(requestDto.PayorSubscriberCache.AdministrativeGender);

                var patientName = new PersonNameBuilder()
                                  .WithFirst(requestDto.PayorSubscriberCache.FirstName)
                                  .WithMiddle(requestDto.PayorSubscriberCache.MiddleName)
                                  .WithLast(requestDto.PayorSubscriberCache.LastName);

                var payorSubscriberRelationshipCacheType =
                    _mappingHelper.MapLookupField <PayorSubscriberRelationshipCacheType> (requestDto.PayorSubscriberCache.PayorSubscriberRelationshipCacheType);

                var payorSubscriberCache = new PayorSubscriberCache(
                    address, requestDto.PayorSubscriberCache.BirthDate, gender, patientName, payorSubscriberRelationshipCacheType);

                PayorCoverageCache payorCoverageCache;

                if (requestDto.EditStatus == EditStatus.Create)
                {
                    payorCoverageCache = _payorCoverageCacheFactory.CreatePayorCoverage(
                        patient, payorCache, effectiveDateRange, requestDto.MemberNumber, payorSubscriberCache, payorCoverageCacheType);
                }
                else
                {
                    payorCoverageCache = _payorCoverageCacheRepository.GetByKeyOrThrow(requestDto.Key, "Payor");
                    payorCoverageCache.RevisePayorCoverageCacheInfo(payorCoverageCacheType, effectiveDateRange, requestDto.MemberNumber);
                    payorCoverageCache.RevisePayorCache(payorCache);
                    payorCoverageCache.RevisePayorSubscriberCache(payorSubscriberCache);
                }

                response.DataTransferObject = payorCoverageCache == null ? requestDto : Mapper.Map <PayorCoverageCache, PayorCoverageCacheDto>(payorCoverageCache);
            }
            else if (requestDto.EditStatus == EditStatus.Delete)
            {
                var payorCoverageCache = _payorCoverageCacheRepository.GetByKey(requestDto.Key);
                if (payorCoverageCache != null)
                {
                    _payorCoverageCacheFactory.DestroyPayorCoverage(payorCoverageCache);
                }
                response.DataTransferObject = requestDto;
            }
            else
            {
                var payorCoverageCache = _payorCoverageCacheRepository.GetByKeyOrThrow(requestDto.Key, "Payor");
                response.DataTransferObject = Mapper.Map <PayorCoverageCache, PayorCoverageCacheDto>(payorCoverageCache);
            }

            var processSucceeded = !_validationFailureOccurred;

            if (processSucceeded)
            {
                Session.Flush();
                Session.Clear();
            }
            else
            {
                if (requestDto.EditStatus == EditStatus.Create)
                {
                    response.DataTransferObject.Key = 0;
                }
            }

            return(response);
        }