public override void BeforeSaveObjects(PatternInstance instance, InstanceObjects instanceObjects) { base.BeforeSaveObjects(instance, instanceObjects); foreach (InstanceObject instanceObject in instanceObjects) { string outputSDTName; List <KeyValuePair <string, object> > props = new List <KeyValuePair <string, object> >(); if (instanceObject.Name.EndsWith("DataProvider")) { props.Add(new KeyValuePair <string, object>("OutputCollection", true)); props.Add(new KeyValuePair <string, object>("OutputCollectionName", "DataCollection")); outputSDTName = "Data"; } else { outputSDTName = "Definition"; } SDT outputSDT = SDT.Get(instanceObject.Model, new QualifiedName("GeneXusAI.Custom", outputSDTName)); if (outputSDT != null) { props.Add(new KeyValuePair <string, object>("OutputSDT", new DataProviderOutputReference(outputSDT))); } instanceObject.GeneratedObject.SetPropertyValues(props); } }
public static void getFactory(PatternInstance instance, InstanceObjects instanceObjects) { /* int mTot = 0; foreach (InstanceObject io in instanceObjects) { mTot++; } ManualResetEvent[] doneEvents = new ManualResetEvent[mTot]; int i = 0; foreach (InstanceObject io in instanceObjects) { doneEvents[i] = new ManualResetEvent(false); ParserFactory pf = new ParserFactory(instance, io, doneEvents[i]); ThreadPool.QueueUserWorkItem(pf.MergeObject, i); i++; } WaitHandle.WaitAll(doneEvents); */ foreach (InstanceObject io in instanceObjects) { ParserFactory pf = new ParserFactory(instance, io, null); pf.MergeObject(null); } }
public override void BeforeSaveObjects(PatternInstance instance, InstanceObjects instanceObjects) { if (Messages.Debug()) { CommonServices.Output.AddLine(String.Format(">>> BeforeSaveObjects Begin {0}", DateTime.Now.ToString())); } base.BeforeSaveObjects(instance, instanceObjects); ParserFactory.getFactory(instance, instanceObjects); HPatternSettings settings = HPatternSettings.Get(instance.Model); HPatternInstance wwInstance = HPatternInstance.Load(instance); string trnName = ""; if (wwInstance.Transaction != null && wwInstance.Transaction.Transaction != null) { trnName = wwInstance.Transaction.TransactionName; } foreach (DataProvider dp in instanceObjects.GetGroup(HPatternObject.DataProviderDSM).GetObjects<DataProvider>()) { SDT sdt = SDT.Get(instance.Model, "MenuData"); if (sdt != null) dp.SetPropertyValue(Properties.DPRV.Output, new DataProviderOutputReference(new KBObjectReference(sdt))); } foreach (DataProvider dp in instanceObjects.GetGroup(HPatternObject.DataProviderGridModel).GetObjects<DataProvider>()) { SDT sdt = SDT.Get(instance.Model, "gxuiGridColumnModel"); if (sdt != null) dp.SetPropertyValue(Properties.DPRV.Output, new DataProviderOutputReference(new KBObjectReference(sdt))); } if (wwInstance != null) { if (wwInstance.Levels.Count > 0) { if (wwInstance.Levels[0].Selection != null) { if (wwInstance.Levels[0].Selection.GridType == SettingsGridElement.GridTypeValue.Gxui) { foreach (Procedure p in instanceObjects.GetGroup(HPatternObject.ProcedureGrid).GetObjects<Procedure>()) { p.SetPropertyValue(Properties.PRC.MainProgram, true); p.SetPropertyValue(Properties.PRC.CallProtocol, Properties.PRC.CallProtocol_Values.Http); } } } } } bool gera = false; if (wwInstance.Transaction != null) { gera = wwInstance.Transaction.WebBC; } /* bool gera = settings.Template.DataEntryWebPanelBC; if (wwInstance.Transaction.DataEntryWebPanelBC.ToLower() == "true") gera = true; if (wwInstance.Transaction.DataEntryWebPanelBC.ToLower() == "false") gera = false; */ LevelElement level = null; if (wwInstance.Levels != null && wwInstance.Levels.Count > 0) { level = wwInstance.Levels[0]; } ViewElement view = null; if (gera || level == null) { gera = false; } else { view = level.View; if (view == null) gera = false; } if (gera) { InstanceObjectsGroup group = instanceObjects.GetGroup(HPatternObject.TabGrid); foreach (WebPanel webi in group.GetObjects<WebPanel>()) { foreach (TabElement tabe in view.Tabs) { if (tabe.Type == TabElement.TypeValue.Grid && tabe.Transaction !=null && tabe.Transaction.Transaction != null) { if (webi.Name == tabe.Wcname) { webi.SetPropertyValue(Properties.WBP.Type, Properties.WBP.Type_Values.WebPage); } } } } InstanceObjectsGroup group2 = instanceObjects.GetGroup(HPatternObject.TabGridTrn); foreach (WebPanel webi in group2.GetObjects<WebPanel>()) { webi.SetPropertyValue(Properties.WBP.Type, Properties.WBP.Type_Values.WebPage); } } WebPanel mSelection = settings.MasterPages.Selection; WebPanel mPrompt = settings.MasterPages.Prompt; WebPanel mView = settings.MasterPages.View; WebPanel mTransaction = settings.MasterPages.Transaction; Theme tTema = null; string AMP = SettingsThemeElement.SetObjectThemeValue.True; string ATema = settings.Theme.SetObjectTheme; if (ATema != SettingsThemeElement.SetObjectThemeValue.False) tTema = settings.Theme.Theme; if (settings.CustomThemeMasterPage != null) { foreach (SettingsThemeMasterPageElement sis in settings.CustomThemeMasterPage) { if (wwInstance.Transaction != null && wwInstance.Transaction.Transaction != null) { if (wwInstance.Transaction.TransactionName.IndexOf(sis.Name, StringComparison.InvariantCultureIgnoreCase) >= 0) { if (sis.SetMasterPage != SettingsThemeElement.SetObjectThemeValue.False) { AMP = sis.SetMasterPage; mSelection = sis.Selection; mPrompt = sis.Prompt; mView = sis.View; mTransaction = sis.Transaction; } if (sis.SetTheme != SettingsThemeElement.SetObjectThemeValue.False) { ATema = sis.SetTheme; tTema = sis.Theme; } break; } } } } // Define a mesma Categoria da transação ao objetos gerados pelo pattern if (wwInstance.Transaction != null && wwInstance.Transaction.Transaction != null) { foreach (Artech.Udm.Framework.Entity cat in wwInstance.Transaction.Transaction.Categories) { foreach (KBObject obj in instanceObjects.GeneratedObjects) { obj.AddCategory(cat); } } } // Set master page for objects. SetObjectsMasterPage("s", settings.Grid.AutomaticRefresh, wwInstance, instanceObjects.GetGroup(HPatternObject.Selection), mSelection, tTema,ATema,AMP); SetObjectsMasterPage("p", settings.Grid.AutomaticRefresh, wwInstance, instanceObjects.GetGroup(HPatternObject.Prompt), mPrompt, tTema, ATema, AMP); SetObjectsMasterPage("", settings.Grid.AutomaticRefresh, wwInstance, instanceObjects.GetGroup(HPatternObject.View), mView, tTema, ATema, AMP); SetObjectsMasterPage("", settings.Grid.AutomaticRefresh, wwInstance, instanceObjects.GetGroup(HPatternObject.TransactionBC), mTransaction, tTema, ATema, AMP); SetObjectsMasterPage("", settings.Grid.AutomaticRefresh, wwInstance, instanceObjects.GetGroup(HPatternObject.TransactionBCTab), mTransaction, tTema, ATema, AMP); SetObjectsMasterPage("", settings.Grid.AutomaticRefresh, wwInstance, instanceObjects.GetGroup(HPatternObject.TabGrid), mTransaction, tTema, ATema, AMP); SetObjectsMasterPage("", settings.Grid.AutomaticRefresh, wwInstance, instanceObjects.GetGroup(HPatternObject.TabGridTrn), mTransaction, tTema, ATema, AMP); if (wwInstance.Transaction != null && wwInstance.Transaction.WebBC) { if (settings.Template.WebPanelBCDefault == false && wwInstance.UpdateWebPanelBC == HPatternInstance.UpdateWebPanelBCValue.Default) { InstanceObjectsGroup group2 = null; if (wwInstance.Transaction.Form.Tabs.Count > 0) { group2 = instanceObjects.GetGroup(HPatternObject.TransactionBCTab); foreach (WebPanel web2 in group2.GetObjects<WebPanel>()) { web2.Rules.IsDefault = true; web2.Events.IsDefault = true; web2.Conditions.IsDefault = true; web2.Variables.IsDefault = true; web2.WebForm.IsDefault = true; web2.Rules.IsDefault = false; web2.Events.IsDefault = false; web2.Conditions.IsDefault = false; web2.Variables.IsDefault = false; web2.WebForm.IsDefault = false; //web2.Save(); } } else { group2 = instanceObjects.GetGroup(HPatternObject.TransactionBC); foreach (WebPanel web2 in group2.GetObjects<WebPanel>()) { web2.Rules.IsDefault = true; web2.Events.IsDefault = true; web2.Conditions.IsDefault = true; web2.Variables.IsDefault = true; web2.WebForm.IsDefault = true; //web2.Save(); web2.Rules.IsDefault = false; web2.Events.IsDefault = false; web2.Conditions.IsDefault = false; web2.Variables.IsDefault = false; web2.WebForm.IsDefault = false; //web2.Save(); } } if (wwInstance.Levels[0].View != null) { ViewElement v = wwInstance.Levels[0].View; if (v.Tabs.Count > 0) { group2 = instanceObjects.GetGroup(HPatternObject.TabGrid); foreach (WebPanel web2 in group2.GetObjects<WebPanel>()) { web2.Rules.IsDefault = true; web2.Events.IsDefault = true; web2.Conditions.IsDefault = true; web2.Variables.IsDefault = true; web2.WebForm.IsDefault = true; //web2.Save(); web2.Rules.IsDefault = false; web2.Events.IsDefault = false; web2.Conditions.IsDefault = false; web2.Variables.IsDefault = false; web2.WebForm.IsDefault = false; //web2.Save(); } } } } } if (wwInstance.DocumentationEnabled) { foreach (KBObject obj in instanceObjects.GeneratedObjects) { if (obj is WebPanel) { WebPanel obja = obj as WebPanel; ChangeDocumentation(obja.Documentation, obj, wwInstance,settings); } if (obj is Procedure) { ChangeDocumentation((obj as Procedure).Documentation, obj, wwInstance, settings); } if (obj is DataProvider) { ChangeDocumentation((obj as DataProvider).Documentation, obj, wwInstance, settings); } if (obj is SDT) { ChangeDocumentation((obj as SDT).Documentation, obj, wwInstance, settings); } } } if (Messages.Debug()) { CommonServices.Output.AddLine(String.Format(">>> BeforeSaveObjects End {0}", DateTime.Now.ToString())); } }