public virtual void InsertChildProvider(bool raiseEvent, FragmentControlProvider childProvider, int index) { if (children.Contains(childProvider) == true) { return; } childProvider.Navigation = NavigationFactory.CreateNavigation(childProvider, this); childProvider.Navigation.Initialize(); if (index < 0 || index >= children.Count) { children.Add(childProvider); } else { children.Insert(index, childProvider); } OnNavigationUpdated(new NavigationEventArgs(raiseEvent, StructureChangeType.ChildAdded, childProvider, index)); childProvider.InitializeChildControlStructure(); }
static void OnFormAdded(object sender, EventArgs args) { Form f = (Form)sender; if (formProviders.ContainsKey(f)) { return; } FormProvider provider = (FormProvider) ProviderFactory.GetProvider(f, true); // NOTE: Form Provider Releasing is done by FormProvider // Pass false in last argument so that InitializeChildControlStructure // isn't called when the provider is created. We'll do // that manually after alerting the bridge to the presence // of the new form. formProviders [f] = provider; if (f.Owner == null) //For example is not MessageBox, f.ShowDialog or XXXXXDialog //Initialize navigation to let children use it { provider.Navigation = NavigationFactory.CreateNavigation(provider); provider.Navigation.Initialize(); // TODO: Fill in rest of eventargs Helper.RaiseStructureChangedEvent(StructureChangeType.ChildAdded, provider); provider.InitializeChildControlStructure(); } else { FormProvider ownerProvider = (FormProvider)ProviderFactory.FindProvider(f.Owner); ownerProvider.AddChildProvider(provider); } }