private void BuildPrompt(HPatternInstance instance, AttributeElement ae,TransactionAttribute ta,Transaction trn)
        {
            List<string> listapk = new List<string>();
            foreach (AttributeRelation ar in ta.ForeignKeyTo.KeyAttributes)
            {
                listapk.Add(ar.Related.Name);
            }

            IEnumerable<WebPanel> listaw = WebPanel.GetAll(instance.Model);
            bool geralink = false;
            foreach (WebPanel wobj in listaw)
            {
                // Se este objeto foi gerado pelo Pattern
                if (String.IsNullOrEmpty(settings.Template.PromptSuggestNameContains) || wobj.Name.ToLower().IndexOf(settings.Template.PromptSuggestNameContains.ToLower()) >= 0)
                {
                    // Aqui vamos retirar a o loop infinito, então nunca ira sugerir um prompt dele mesmo
                    bool gera = true;
                    if (wobj.Parent is PatternInstance)
                    {
                        if (((PatternInstance)wobj.Parent).KBObjectKey.Equals(pinstance.KBObjectKey))
                            gera = false;
                    }
                    if (gera)
                    {
                        foreach (Signature sig in wobj.GetSignatures())
                        {
                            if (sig.ParametersCount > 0)
                            {
                                foreach (AttributeRelation ar in ta.ForeignKeyTo.KeyAttributes)
                                {
                                    geralink = false;
                                    foreach (Parameter par in sig.Parameters)
                                    {
                                        if (par.Object.Name.ToLower().IndexOf(ar.Related.Name.ToLower()) >= 0)
                                        {
                                            geralink = true;
                                        }
                                    }
                                    if (!geralink)
                                        break;
                                }
                                if (geralink)
                                {
                                    LinkElement link = new LinkElement();
                                    ae.Links.Add(link);
                                    link = new LinkElement();
                                    link.WebpanelObject = wobj;
                                    link.Tooltip = wobj.Description;

                                    foreach (AttributeRelation ar in ta.ForeignKeyTo.KeyAttributes)
                                    {
                                        link.Parameters.Add(new ParameterElement(ar.Base.Name));
                                    }
                                    break;
                                }
                            }
                            break;
                        }
                    }
                }
                if (geralink)
                {
                    break;
                }
            }
        }
Exemple #2
0
 public static void LinkImage(StringBuilder atts, LinkElement link, string name, HPatternSettings settings)
 {
     string imagename = settings.Template.PromptImageName;
     string eventname = null;
     if (link.Image != null)
     {
         if (!String.IsNullOrEmpty(link.ImageName))
             imagename = link.ImageName;
     }
     // Se não temos imagem de prompt definido, vamos procurar uma na kb
     if (String.IsNullOrEmpty(imagename))
     {
         imagename = ImageDefault(link.Instance.Model);
     }
     if (link.Type == LinkElement.TypeValue.Event)
         eventname = String.Format("'{0}'", link.EventName);
     atts.AppendLine(WebForm.Image(link.ControlName, settings.Template.PromptClass, imagename, eventname, link.Tooltip));
 }
Exemple #3
0
 public static void RulePrompt(StringBuilder ret, LinkElement link,string name, HPatternSettings settings,string prefix)
 {
     if (link.Type == LinkElement.TypeValue.Prompt && !String.IsNullOrEmpty(link.WebpanelObjectName))
     {
         ret.AppendLine(String.Format("Prompt({0},{1}) on {2};", link.WebpanelObjectName, link.Parameters.ConcatenatePrompt(prefix,false), link.ControlName));
     }
 }
Exemple #4
0
 private static void EventPrompt(StringBuilder ret, LinkElement link, string name, HPatternSettings settings, string prefix)
 {
     if (link.Type == LinkElement.TypeValue.Event && !String.IsNullOrEmpty(link.WebpanelObjectName))
     {
         ret.AppendLine(String.Format("Event '{0}'",link.EventName));
         ret.AppendLine(String.Format("\t{0}.Popup({1})", link.WebpanelObjectName, link.Parameters.ConcatenatePrompt(prefix, false)));
         ret.AppendLine(String.Format("EndEvent // {0}", link.EventName));
     }
 }