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; } } }
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)); }
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)); } }
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)); } }