private static void EvaluateParameters(XmlElement root, PageScheme page) { var nodeList = root.SelectNodes("Parameters/Parameter"); foreach (XmlNode node in nodeList) { var parameter = new PageParameter(); parameter.Name = XmlUtility.GetAttrValue(node as XmlElement, "Name"); parameter.Type = XmlUtility.GetAttrValue(node as XmlElement, "Type"); parameter.Value = XmlUtility.GetElementCDataValue(node as XmlElement); page.Parameters.Add(parameter); } }
public PageParameter GetPageParameter(String value, String dataType) { var parameter = Parameters.FirstOrDefault(p => p.Value == value && p.Type == dataType); if (parameter == null) { parameter = new PageParameter(); parameter.Value = value; parameter.Type = dataType; parameter.Name = "PageParameter" + Parameters.Count; Parameters.Add(parameter); } return parameter; }
public void Execute() { var data = ClipboardUtility.GetData(); if (data != null) { var existControls = ConfigToolContext.Instance.ToolDrawArea.GraphicsCollection.ToPageControls(); var pageScheme = ConfigToolContext.Instance.ToolViews.GetDrawArea().Schema; var doc = new XmlDocument(); doc.LoadXml(data.ToString()); var root = doc.FirstChild as XmlElement; var parameterMap = new Dictionary<String, String>(); var rootProperty = ConfigToolContext.Instance.ToolDrawArea.Root as FrameProperty; var parameterElem = root.SelectNodes("PageParameters/PageParameter"); foreach (XmlNode node in parameterElem) { var parameter = new PageParameter(); parameter.Name = XmlUtility.GetAttrValue(node as XmlElement, "Name"); parameter.Type = XmlUtility.GetAttrValue(node as XmlElement, "Type"); parameter.Value = XmlUtility.GetElementCDataValue(node as XmlElement); var oldName = parameter.Name; parameter = pageScheme.GetPageParameter(parameter.Value, parameter.Type); if (!parameterMap.ContainsKey(oldName)) parameterMap.Add(oldName, parameter.Name); } var controls = PageTransFromXml.RecursiveCreatePageControl(root); foreach (var control in controls) { var drawObject = PageTransToDrawArea.Instance.CreateDrawObject(control); if (drawObject != null) { foreach (var property in drawObject.Property.Properties) { var matches = ClipboardUtility.GetMatchResult(MATCHTEPLATE, property.Value); if (matches != null && matches.Count > 0) { foreach (Match item in matches) { var value = item.Value.TrimStart('<'); value = value.TrimEnd('>'); if (parameterMap.ContainsKey(value)) { property.Value = property.Value.Replace("<" + value + ">", "<" + parameterMap[value] + ">"); } } } } foreach (var tmpEvent in drawObject.Property.Events) { var matches = ClipboardUtility.GetMatchResult(MATCHTEPLATE, tmpEvent.Value); if (matches != null && matches.Count > 0) { foreach (Match item in matches) { var value = item.Value.TrimStart('<'); value = value.TrimEnd('>'); if (parameterMap.ContainsKey(value)) { tmpEvent.Value = tmpEvent.Value.Replace("<" + value + ">", "<" + parameterMap[value] + ">"); } } } } ConfigToolContext.Instance.ToolDrawArea.AddNewDrawObject(drawObject); } Recurit(parameterMap, control); } } ConfigToolContext.Instance.ToolDrawArea.RefreshToolDrawArea(); }
private void EvaluateScript(PageExample example, String eventParameter, KeyValuePair<String, String> updateProperty, KeyValuePair<String, Dictionary<String, String>> updateControl) { var parameters = ParameterTypeMapScritptUtility.ParseParameter(eventParameter); var control = FindControl(example, updateControl.Key); var property = FindProperty(example, control, updateProperty.Key); var script = ScriptUtility.TrimScript(updateProperty.Value); var scripts = ScriptUtility.GetMatchedScriptFromProperty(script); var page = example.Evaluataion.Clone() as PageEvaluataion; foreach (var parameter in parameters) { var tempparameter = page.PageParameters.FirstOrDefault(p => p.Name == parameter.Key); if (tempparameter != null) { tempparameter.Value = parameter.Value; } else { tempparameter = new PageParameter(); tempparameter.Name = parameter.Key; tempparameter.Value = parameter.Value; tempparameter.Type = ParameterTypeMapScritptUtility.MapToType(parameter.Key).ToString(); page.PageParameters.Add(tempparameter); } } foreach (Match matchScript in scripts) { script = script.Replace( matchScript.Value, PropertyValueTransform.TransformToScript(page, matchScript.Value)); } var code = EngineUtility.CompileExpression(script); property.CompiledScript = code; property.OrignalScript = updateProperty.Value; }
private static void CreateParameter(PageEvaluataion page, String pName, String pType, String pValue) { var tempParameter = page.PageParameters.FirstOrDefault(p => p.Name == pName); if (tempParameter == null) { tempParameter = new PageParameter(); tempParameter.Name = pName; tempParameter.Type = pType; tempParameter.Value = pValue; page.PageParameters.Add(tempParameter); } else { tempParameter.Value = pValue; } }
private void lvParameters_MouseDoubleClick(object sender, MouseEventArgs e) { if (SelectedEntity != null && SelectedChanged != null) { var config = lvParameters.SelectedItem as ConfigObject; if (config != null) { var page = ConfigToolContext.Instance.ToolViews.GetDrawArea().Schema; if (page != null) { if (SelectedEntity.Id.IndexOf("Input") < 0) { var parameter = page.GetPageParameter(SelectedEntity.Id, config.Category); if (parameter != null) { var item = new ListViewItem(); item.Tag = parameter; if (String.IsNullOrEmpty(config.Children)) item.Text = String.Format("<{0}>.{1}", parameter.Name, config.Script); else item.Text = String.Format(config.Script, parameter.Name); SelectedChanged(sender, new ListViewItemSelectionChangedEventArgs(item, 0, true)); } } else { var item = new ListViewItem(); var parameter = new PageParameter(); parameter.Name = SelectedEntity.Id; parameter.Type = config.Category; parameter.Value = String.Empty; item.Tag = parameter; if (String.IsNullOrEmpty(config.Children)) item.Text = String.Format("<{0}>.{1}", parameter.Name, config.Script); else item.Text = String.Format(config.Script, parameter.Name); SelectedChanged(sender, new ListViewItemSelectionChangedEventArgs(item, 0, true)); } } } } }