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);
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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()));
            }
        }