protected virtual void OnFormLoadBefore(SBOItemEventArg pVal, out bool BubbleEvent) { List <DoverFormBase> pendingList; // forms that does not have UniqueID. Type implementationType; IForm form = sapApp.Forms.Item(pVal.FormUID); string key = form.TypeEx; BubbleEvent = true; if (pendingForms.TryGetValue(key, out pendingList)) { pendingForms.Remove(key); foreach (var addOneForm in pendingList) { addOneForm.OnFormLoadBefore(pVal, out BubbleEvent); } } else if (formImplementationType.TryGetValue(key, out implementationType) && !events.ContainsKey(pVal.FormUID)) // if no form was registered, it's a system or udo form. { DoverFormBase addOneSysForm = (DoverFormBase)ContainerManager.Container.Resolve(implementationType); addOneSysForm.FormUID = pVal.FormUID; RegisterForm(pVal.FormUID, addOneSysForm); addOneSysForm.OnFormLoadBefore(pVal, out BubbleEvent); } }
/* * Register form so we can get FormUID when form is being created. */ private void RegisterForm(string uniqueID, DoverFormBase form) { if (!events.ContainsKey(uniqueID)) // prevent duplicates. Shouldn't happen. { events.Add(uniqueID, form); form.OnInitializeFormEvents(); } }
private void RegisterFormLoadBefore(string type, DoverFormBase form) { List <DoverFormBase> pendingList; // forms that does not have UniqueID created by UI. if (!pendingForms.TryGetValue(type, out pendingList)) { pendingList = new List <DoverFormBase>(); pendingForms.Add(type, pendingList); } pendingList.Add(form); }
private void RegisterFormLoadBefore(string type, DoverFormBase form) { List<DoverFormBase> pendingList; // forms that does not have UniqueID created by UI. if (!pendingForms.TryGetValue(type, out pendingList)) { pendingList = new List<DoverFormBase>(); pendingForms.Add(type, pendingList); } pendingList.Add(form); }