Example #1
0
        /// <summary>
        /// Updates the UI to show / hide the field.
        /// </summary>
        /// <param name="obj">The Optional Field Container.</param>
        /// <param name="args">Dependency Property Changed Event Args.</param>
        private static void IsFieldShowing_Changed(DependencyObject obj, DependencyPropertyChangedEventArgs args)
        {
            OptionalFieldContainer optionalFieldContainer = obj as OptionalFieldContainer;

            optionalFieldContainer.UpdateIsFieldShowing((args.NewValue as bool?).Value);

            if (optionalFieldContainer.IsFieldShowingChanged != null)
            {
                optionalFieldContainer.IsFieldShowingChanged(optionalFieldContainer, EventArgs.Empty);
            }
        }
        /// <summary>
        /// Gets the template parts and adds event handlers.
        /// </summary>
        public override void OnApplyTemplate()
        {
            base.OnApplyTemplate();

            this.conciseDrugsListContainer = this.GetTemplateChild(SearchAndPrescribeControl.ElementConciseDrugsListContainer) as FrameworkElement;
            this.cascadingListBoxGroup = this.GetTemplateChild(SearchAndPrescribeControl.ElementCascadingListBoxGroup) as CascadingListBoxGroup;
            if (this.cascadingListBoxGroup != null)
            {
                this.cascadingListBoxGroup.SizeChanged += new SizeChangedEventHandler(this.CascadingListBoxGroup_SizeChanged);
            }

            this.conciseDrugsList = this.GetTemplateChild(SearchAndPrescribeControl.ElementConciseDrugsList) as CascadingListBox;
            if (this.conciseDrugsList != null)
            {                
                this.conciseDrugsList.GotFocus += new RoutedEventHandler(this.ConciseList_GotFocus);
                this.conciseDrugsList.Expanded += new EventHandler(this.ConciseDrugsList_Expanded);
                this.conciseDrugsList.ConfirmedSelectedItemChanged += new EventHandler(this.CascadingConciseList_ConfirmedSelectedItemChanged);
                this.conciseDrugsList.ItemSelected += new EventHandler(this.ConciseDrugsList_ItemSelected);
                this.conciseDrugsList.KeyDown += new KeyEventHandler(this.CascadingConciseList_KeyDown);
                this.UpdateDrugResultsList(true);
            }

            this.conciseRoutesList = this.GetTemplateChild(SearchAndPrescribeControl.ElementConciseRoutesList) as CascadingListBox;
            if (this.conciseRoutesList != null)
            {
                this.conciseRoutesList.GotFocus += new RoutedEventHandler(this.ConciseList_GotFocus);
                this.conciseRoutesList.Expanded += new EventHandler(this.CascadingConciseList_Expanded);
                this.conciseRoutesList.ConfirmedSelectedItemChanged += new EventHandler(this.CascadingConciseList_ConfirmedSelectedItemChanged);
                this.conciseRoutesList.ItemSelected += new EventHandler(this.ConciseRoutesList_ItemSelected);
                this.conciseRoutesList.OtherSelected += new EventHandler(this.ConciseRoutesList_OtherSelected);
                this.conciseRoutesList.KeyDown += new KeyEventHandler(this.CascadingConciseList_KeyDown);
            }

            this.conciseFormsList = this.GetTemplateChild(SearchAndPrescribeControl.ElementConciseFormsList) as CascadingListBox;
            if (this.conciseFormsList != null)
            {
                this.conciseFormsList.GotFocus += new RoutedEventHandler(this.ConciseList_GotFocus);
                this.conciseFormsList.Expanded += new EventHandler(this.CascadingConciseList_Expanded);
                this.conciseFormsList.ConfirmedSelectedItemChanged += new EventHandler(this.CascadingConciseList_ConfirmedSelectedItemChanged);
                this.conciseFormsList.ItemSelected += new EventHandler(this.ConciseFormsList_ItemSelected);
                this.conciseFormsList.KeyDown += new KeyEventHandler(this.CascadingConciseList_KeyDown);
            }

            this.conciseStrengthsList = this.GetTemplateChild(SearchAndPrescribeControl.ElementConciseStrengthsList) as SplitComboBox;
            if (this.conciseStrengthsList != null)
            {
                this.conciseStrengthsList.GotFocus += new RoutedEventHandler(this.ConciseList_GotFocus);
                this.conciseStrengthsList.ItemSelected += new EventHandler(this.ConciseStrengthsList_ItemSelected);
                this.conciseStrengthsList.OtherSelected += new EventHandler(this.ConciseStrengthsList_OtherSelected);
                CascadingListBoxGroup.SetListVisibility(this.conciseStrengthsList, Visibility.Collapsed);
            }

            this.conciseDosagesList = this.GetTemplateChild(SearchAndPrescribeControl.ElementConciseDosagesList) as SplitComboBox;
            if (this.conciseDosagesList != null)
            {
                this.conciseDosagesList.GotFocus += new RoutedEventHandler(this.ConciseList_GotFocus);
                this.conciseDosagesList.ItemSelected += new EventHandler(this.ConciseDosagesList_ItemSelected);
                this.conciseDosagesList.OtherSelected += new EventHandler(this.ConciseDosagesList_OtherSelected);
                CascadingListBoxGroup.SetListVisibility(this.conciseDosagesList, Visibility.Collapsed);
            }

            this.conciseFrequenciesList = this.GetTemplateChild(SearchAndPrescribeControl.ElementConciseFrequenciesList) as SplitComboBox;
            if (this.conciseFrequenciesList != null)
            {
                this.conciseFrequenciesList.GotFocus += new RoutedEventHandler(this.ConciseList_GotFocus);
                this.conciseFrequenciesList.ItemSelected += new EventHandler(this.ConciseFrequenciesList_ItemSelected);
                this.conciseFrequenciesList.OtherSelected += new EventHandler(this.ConciseFrequenciesList_OtherSelected);
                CascadingListBoxGroup.SetListVisibility(this.conciseFrequenciesList, Visibility.Collapsed);
            }

            this.conciseBrandsList = this.GetTemplateChild(SearchAndPrescribeControl.ElementConciseBrandsList) as SplitComboBox;
            if (this.conciseFrequenciesList != null)
            {
                this.conciseBrandsList.GotFocus += new RoutedEventHandler(this.ConciseList_GotFocus);
                CascadingListBoxGroup.SetListVisibility(this.conciseBrandsList, Visibility.Collapsed);
            }

            this.conciseTemplatePrescriptionsList = this.GetTemplateChild(SearchAndPrescribeControl.ElementConciseTemplatePrescriptionsList) as SplitComboBox;
            if (this.conciseTemplatePrescriptionsList != null)
            {
                this.conciseTemplatePrescriptionsList.GotFocus += new RoutedEventHandler(this.ConciseList_GotFocus);
                this.conciseTemplatePrescriptionsList.ItemsChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(this.ConciseTemplatePrescriptionsList_ItemsChanged);
                this.conciseTemplatePrescriptionsList.ItemSelected += new EventHandler(this.ConciseTemplatePrescriptionsList_ItemSelected);
                this.conciseTemplatePrescriptionsList.OtherSelected += new EventHandler(this.ConciseTemplatePrescriptionsList_OtherSelected);
            }

            this.conciseStartingConditionsList = this.GetTemplateChild(SearchAndPrescribeControl.ElementConciseStartingConditionsList) as SplitComboBox;
            if (this.conciseStartingConditionsList != null)
            {
                this.conciseStartingConditionsList.ItemSelected += new EventHandler(this.ConciseStartingConditionsList_ItemSelected);
            }

            SplitComboBox conciseAdministrationTimesList = this.GetTemplateChild(SearchAndPrescribeControl.ElementConciseAdministrationTimesList) as SplitComboBox;
            if (conciseAdministrationTimesList != null)
            {
                conciseAdministrationTimesList.OtherSelected += new EventHandler(this.ConciseAdministrationTimesList_OtherSelected);
            }

            this.conciseDurationsList = this.GetTemplateChild(SearchAndPrescribeControl.ElementConciseDurationsList) as SplitComboBox;
            if (this.conciseDurationsList != null)
            {
                this.conciseDurationsList.OtherSelected += new EventHandler(this.ConciseDurationsList_OtherSelected);
            }

            this.drugSearchTextBox = this.GetTemplateChild(SearchAndPrescribeControl.ElementDrugSearchTextBox) as TextBox;
            if (this.drugSearchTextBox != null)
            {
#if SILVERLIGHT
                this.drugSearchTextBox.KeyDown += new KeyEventHandler(this.DrugSearchTextBox_KeyDown);
#else
                this.drugSearchTextBox.PreviewKeyDown += new KeyEventHandler(this.DrugSearchTextBox_KeyDown);
#endif

                if (this.focusDrugSearchTextBoxOnLoad)
                {
                    FocusHelper.FocusControl(this.drugSearchTextBox);
                    this.focusDrugSearchTextBoxOnLoad = false;
                }

                this.drugSearchTextBox.GotFocus += new RoutedEventHandler(this.DrugsList_GotFocus);
                this.drugSearchTextBox.LostFocus += new RoutedEventHandler(this.DrugsList_LostFocus);
            }

            this.drugSearchButton = this.GetTemplateChild(SearchAndPrescribeControl.ElementDrugSearchButton) as Button;
            if (this.drugSearchButton != null)
            {
                this.drugSearchButton.Click += new RoutedEventHandler(this.DrugSearchButton_Click);
                this.drugSearchButton.KeyDown += new KeyEventHandler(this.DrugSearchButton_KeyDown);
                this.drugSearchButton.GotFocus += new RoutedEventHandler(this.DrugsList_GotFocus);
                this.drugSearchButton.LostFocus += new RoutedEventHandler(this.DrugsList_LostFocus);
            }

            this.showAllDrugsButton = this.GetTemplateChild(SearchAndPrescribeControl.ElementShowAllDrugsButton) as Button;
            if (this.showAllDrugsButton != null)
            {
                this.showAllDrugsButton.Click += new RoutedEventHandler(this.ShowAllDrugsButton_Click);
                this.showAllDrugsButton.KeyDown += new KeyEventHandler(this.DrugsList_KeyDown);
                this.showAllDrugsButton.GotFocus += new RoutedEventHandler(this.DrugsList_GotFocus);
                this.showAllDrugsButton.LostFocus += new RoutedEventHandler(this.DrugsList_LostFocus);
            }

            UIElement backgroundElement = this.GetTemplateChild(SearchAndPrescribeControl.ElementBackgroundElement) as UIElement;
            if (backgroundElement != null)
            {
                backgroundElement.MouseLeftButtonDown += new MouseButtonEventHandler(this.BackgroundElement_MouseLeftButtonDown);
            }

            this.conciseDetailedViewToggleButton = this.GetTemplateChild(SearchAndPrescribeControl.ElementConciseDetailedViewToggleButton) as ToggleButton;
            if (this.conciseDetailedViewToggleButton != null)
            {
                this.conciseDetailedViewToggleButton.KeyDown += new KeyEventHandler(this.ConciseDetailedViewToggleButton_KeyDown);
            }

            this.detailedDrugRouteList = this.GetTemplateChild(SearchAndPrescribeControl.ElementDetailedDrugRouteList) as SplitComboBox;
            if (this.detailedDrugRouteList != null)
            {
                this.detailedDrugRouteList.OtherSelected += new EventHandler(this.DetailedDrugRouteList_OtherSelected);
            }

            this.unlicensedReasonTextBox = this.GetTemplateChild(SearchAndPrescribeControl.ElementUnlicensedReasonTextBox) as TextBox;

            this.detailedReasonForPrescribingOptionalFieldContainer = this.GetTemplateChild(SearchAndPrescribeControl.ElementDetailedReasonForPrescribingOptionalFieldContainer) as OptionalFieldContainer;
            SplitComboBox detailedReasonForPrescribingList = this.GetTemplateChild(SearchAndPrescribeControl.ElementDetailedReasonForPrescribingList) as SplitComboBox;
            if (detailedReasonForPrescribingList != null)
            {
                detailedReasonForPrescribingList.OtherSelected += new EventHandler(this.DetailedReasonForPrescribingList_OtherSelected);
            }

            this.scrollViewer = this.GetTemplateChild(SearchAndPrescribeControl.ElementScrollViewer) as ScrollViewer;

            this.detailedStrengthsOptionalFieldContainer = this.GetTemplateChild(SearchAndPrescribeControl.ElementDetailedStrengthsOptionalFieldContainer) as OptionalFieldContainer;
            this.detailedStrengthsList = this.GetTemplateChild(SearchAndPrescribeControl.ElementDetailedStrengthsList) as SplitComboBox;
            if (this.detailedStrengthsList != null)
            {
                this.detailedStrengthsList.OtherSelected += new EventHandler(this.DetailedStrengthsList_OtherSelected);
            }

            this.detailedFormsOptionalFieldContainer = this.GetTemplateChild(SearchAndPrescribeControl.ElementDetailedFormsOptionalFieldContainer) as OptionalFieldContainer;
            this.detailedFormsList = this.GetTemplateChild(SearchAndPrescribeControl.ElementDetailedFormsList) as SplitComboBox;
            if (this.detailedFormsList != null)
            {
                this.detailedFormsList.OtherSelected += new EventHandler(this.DetailedFormsList_OtherSelected);
            }

            this.detailedDosagesList = this.GetTemplateChild(SearchAndPrescribeControl.ElementDetailedDosagesList) as SplitComboBox;
            this.detailedMethodTextBox = this.GetTemplateChild(SearchAndPrescribeControl.ElementDetailedMethodTextBox) as TextBox;

            this.detailedSiteOptionalFieldContainer = this.GetTemplateChild(SearchAndPrescribeControl.ElementDetailedSiteOptionalFieldContainer) as OptionalFieldContainer;
            this.detailedSitesList = this.GetTemplateChild(SearchAndPrescribeControl.ElementDetailedSitesList) as SplitComboBox;
            if (this.detailedSitesList != null)
            {
                this.detailedSitesList.OtherSelected += new EventHandler(this.DetailedSitesList_OtherSelected);
            }

            OptionalFieldContainer detailedAsRequiredOptionalFieldContainer = this.GetTemplateChild(SearchAndPrescribeControl.ElementDetailedAsRequiredOptionFieldContainer) as OptionalFieldContainer;
            if (detailedAsRequiredOptionalFieldContainer != null)
            {
                detailedAsRequiredOptionalFieldContainer.Expanded += new EventHandler(this.DetailedAsRequiredOptionalFieldContainer_Expanded);
            }

            this.detailedFrequenciesList = this.GetTemplateChild(SearchAndPrescribeControl.ElementDetailedFrequenciesList) as SplitComboBox;
            this.detailedStartingConditionsList = this.GetTemplateChild(SearchAndPrescribeControl.ElementDetailedStartingConditionsList) as SplitComboBox;

            SplitComboBox detailedAdministrationTimesList = this.GetTemplateChild(SearchAndPrescribeControl.ElementDetailedAdministrationTimesList) as SplitComboBox;
            if (detailedAdministrationTimesList != null)
            {
                detailedAdministrationTimesList.OtherSelected += new EventHandler(this.DetailedAdministrationTimesList_OtherSelected);
            }

            this.detailedDurationsList = this.GetTemplateChild(SearchAndPrescribeControl.ElementDetailedDurationsList) as SplitComboBox;

            this.previewButton = this.GetTemplateChild(SearchAndPrescribeControl.ElementPreviewButton) as Button;
            if (this.previewButton != null)
            {
                this.previewButton.Click += new RoutedEventHandler(this.PreviewButton_Click);
            }

            Button authorizeButton = this.GetTemplateChild(SearchAndPrescribeControl.ElementAuthorizeButton) as Button;
            if (authorizeButton != null)
            {
                authorizeButton.Click += new RoutedEventHandler(this.AuthorizeButton_Click);
            }

            this.closeButton = this.GetTemplateChild(SearchAndPrescribeControl.ElementCloseButton) as Button;
            if (this.closeButton != null)
            {
                this.closeButton.Click += new RoutedEventHandler(this.CloseButton_Click);
            }

            Border rootBorder = this.GetTemplateChild(SearchAndPrescribeControl.ElementRootBorder) as Border;
            if (rootBorder != null)
            {
                this.templatePrescriptionPromptWatermarkTemplate = rootBorder.Resources[SearchAndPrescribeControl.ElementTemplatePrescriptionPromptWatermarkTemplate] as DataTemplate;
                this.templatePrescriptionNoPromptWatermarkTemplate = rootBorder.Resources[SearchAndPrescribeControl.ElementTemplatePrescriptionNoPromptWatermarkTemplate] as DataTemplate;
            }

            this.RegisterIsFieldShowingChangedEvents(rootBorder);
        }