public static List<PageControl> RecursiveCreatePageControl(XmlElement root) { var result = new List<PageControl>(); var nodeList = root.SelectNodes("Children/Child"); if (nodeList.Count <= 0) { nodeList = root.SelectNodes("Child"); } foreach (XmlNode node in nodeList) { var element = node as XmlElement; var control = new PageControl(); control.Id = XmlUtility.GetAttrValue(element, "Id"); control.Type = XmlUtility.GetAttrValue(element, "Type"); var dynamicProperty = new DynamicProperty(); dynamicProperty.InitProperty(); var flashProperty = new FlashProperty(); flashProperty.InitProperty(); EvaluateProperty(element, control, dynamicProperty, flashProperty); EvaluateEvent(element, control, dynamicProperty, flashProperty); if (dynamicProperty.FlashEvents.Count > 0 || dynamicProperty.FlashPropertys.Count > 0) { control.Properties.Add(new Property() { Name = PropertyUtility.DYNAMICNAME, Type = PropertyValueType.str.ToString(), Value = dynamicProperty.ToXml() }); } control.Children = RecursiveCreatePageControl(element); result.Add(control); } return result; }
public IDrawObject CreateDrawObject(PageControl control) { ToolBoxType toolBox = ToolBoxType.Pointer; var result = Enum.TryParse<ToolBoxType>(control.Type, out toolBox); if (result && toolBox != ToolBoxType.Frame) { return ConfigToolContext.Instance.ToolBoxs[toolBox].CreateDrawObject(control); } return null; }
public void Recurit(PageControl control) { foreach (var child in control.Children) { var drawObject = CreateDrawObject(child); if (drawObject != null) { ConfigToolContext.Instance.ToolDrawArea.AddNewDrawObject(drawObject); } Recurit(child); } }
public void Copy(PageControl control, bool isContainChild) { Id = control.Id; Type = control.Type; foreach (var item in control.Properties) { var property = FindProperty(item.Name); if (property != null) { property.Value = item.Value; } else { property = item.Clone() as Property; Properties.Add(property); } } foreach (var item in control.Events) { var events = FindEvent(item.Name); if (events != null) { events.Value = item.Value; } else { events = item.Clone() as Event; Events.Add(events); } } if (isContainChild) { foreach (var item in control.Children) { var childControl = Children.FirstOrDefault(c => c.Id == item.Id); if (childControl != null) { childControl.Copy(item, isContainChild); } else { childControl = item.Clone() as PageControl; Children.Add(childControl); } } } }
private static void RecursionEvaluatePageControl(PageControl control, PageControl expression, PageEvaluataion evaluate) { var expressionControl = control.Clone() as PageControl; expressionControl.Children.Clear(); var evaluationControl = new ControlEvaluataion(); evaluationControl.ControlId = control.Id; EvaluatePageControlProperty(control, expressionControl, evaluationControl); EvaluatePageControlEvent(control, expressionControl, evaluationControl); expression.Children.Add(expressionControl); if (evaluationControl.Propertys.Count > 0 || evaluationControl.Events.Count > 0) { evaluate.PageControls.Add(evaluationControl); } foreach (var child in control.Children) { RecursionEvaluatePageControl(child, expressionControl, evaluate); } }
private static List<PageControl> RecursiveCreatePageControl(XmlElement root) { var result = new List<PageControl>(); var nodeList = root.SelectNodes("Children/Child"); if (nodeList.Count <= 0) { nodeList = root.SelectNodes("Child"); } foreach (XmlNode node in nodeList) { var element = node as XmlElement; var control = new PageControl(); control.Id = XmlUtility.GetAttrValue(element, "Id"); control.Type = XmlUtility.GetAttrValue(element, "Type"); EvaluateProperty(element, control); EvaluateEvent(element, control); control.Children = RecursiveCreatePageControl(element); result.Add(control); } return result; }
private void Recurit(Dictionary<String, String> parameterMap, PageControl control) { foreach (var child in control.Children) { var drawObject = PageTransToDrawArea.Instance.CreateDrawObject(child); 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, child); } }
public object Clone() { var result = new PageControl(); result.Id = Id; result.Type = Type; foreach (var item in Properties) { result.Properties.Add(item.Clone() as Property); } foreach (var item in Events) { result.Events.Add(item.Clone() as Event); } foreach (var item in Children) { result.Children.Add(item.Clone() as PageControl); } return result; }
protected virtual void JoinPropertyToPageControl(PageControl control) { foreach (var property in Properties) { if (IsCanSerialization(property.Name)) { var controlProperty = new Property(); controlProperty.Name = property.Name; controlProperty.Type = property.ValueType.ToString(); controlProperty.Value = property.Value; control.Properties.Add(controlProperty); } } }
public override IDrawObject CreateDrawObject(PageControl control) { var property = new SignalChartProperty(); InitDrawObjectFromPageControl(control, property); return new DrawSignalChart(property); }
private void Init(PageControl control, FrameProperty property) { property.InitProperty(); property.Id = control.Id; foreach (var childProperty in property.Properties) { var tempProperty = control.FindProperty(childProperty.Name); if (tempProperty != null) { childProperty.Value = tempProperty.Value; } } foreach (var childEvent in property.Events) { var tempEvent = control.FindEvent(childEvent.Name); if (tempEvent != null) { childEvent.Value = tempEvent.Value; } } }
protected override void JoinPropertyToPageControl(PageControl control) { base.JoinPropertyToPageControl(control); AddDynamicProperty(control); }
protected virtual void JoinEventToPageControl(PageControl control) { foreach (var events in Events) { if (IsCanSerialization(events.Name)) { var controlEvent = new Event(); controlEvent.Name = events.Name; controlEvent.Value = events.Value; control.Events.Add(controlEvent); } } }
private static void EvaluateProperty(XmlElement element, PageControl control, DynamicProperty dynamicProperty, FlashProperty flashProperty) { var nodeProperties = element.SelectNodes("Properties/Property"); foreach (XmlNode nodeProperty in nodeProperties) { var property = new Property(); property.Name = XmlUtility.GetAttrValue(nodeProperty as XmlElement, "Name"); property.Type = XmlUtility.GetAttrValue(nodeProperty as XmlElement, "Type"); property.Value = XmlUtility.GetElementCDataValue(nodeProperty as XmlElement); if (control.Type != ToolBoxType.Flash.ToString()) { control.Properties.Add(property); } else { if (flashProperty.Properties.Any(p => p.Name == property.Name)) { control.Properties.Add(property); } else if (control.Type == ToolBoxType.Flash.ToString()) { var tempProperty = new FlashControlDynamicProperty(); tempProperty.Name = XmlUtility.GetAttrValue(nodeProperty as XmlElement, "Name"); tempProperty.Type = XmlUtility.GetAttrValue(nodeProperty as XmlElement, "Type"); tempProperty.Description = XmlUtility.GetAttrValue(nodeProperty as XmlElement, "Description"); tempProperty.DefaultValue = XmlUtility.GetAttrValue(nodeProperty as XmlElement, "DefaultValue"); tempProperty.Value = XmlUtility.GetElementCDataValue(nodeProperty as XmlElement); if (!dynamicProperty.FlashPropertys.ContainsKey(tempProperty.Name)) dynamicProperty.FlashPropertys.Add(tempProperty.Name, tempProperty); } } } }
private static void EvaluatePageControlProperty(PageControl control, PageControl expressionControl, ControlEvaluataion evaluationControl) { foreach (var property in control.Properties) { if (ScriptUtility.IsEvaluateScript(property.Value)) { property.Value = ScriptUtility.TrimScript(property.Value); var evaluateProperty = PropertyEvaluataionTransform.TransformToPropertyEvaluataion(property); evaluationControl.Propertys.Add(evaluateProperty); var tempProperty = expressionControl.Properties.FirstOrDefault(p => p.Name == property.Name); if (tempProperty != null) { expressionControl.Properties.Remove(tempProperty); } } } ClearSpiltProperty(expressionControl, evaluationControl); }
private static void ClearSpiltProperty(PageControl expressionControl, ControlEvaluataion evaluationControl) { if (expressionControl.Type == ToolBoxType.Flash.ToString()) { var expressProperty = expressionControl.Properties.FirstOrDefault(p => p.Name == PropertyUtility.DYNAMICNAME); if (expressProperty != null) { expressionControl.Properties.Remove(expressProperty); } var evaProperty = evaluationControl.Propertys.FirstOrDefault(p => p.Name == PropertyUtility.DYNAMICNAME); if (evaProperty != null) { evaluationControl.Propertys.Remove(evaProperty); } } }
private static void EvaluatePageControlEvent(PageControl control, PageControl expressionControl, ControlEvaluataion evaluationControl) { foreach (var events in control.Events) { var pageValue = String.Empty; var othersValue = String.Empty; if (!String.IsNullOrEmpty(events.Value)) { events.Value = ScriptUtility.TrimScript(events.Value); SplitPageControlEventValue(events.Value, out pageValue, out othersValue); events.Value = othersValue; var evaluateEvent = EventEvaluataionTransform.TransformToEventEvaluataion(events); evaluationControl.Events.Add(evaluateEvent); } var tempEvent = expressionControl.Events.FirstOrDefault(p => p.Name == events.Name); if (tempEvent != null) { if (!String.IsNullOrEmpty(pageValue)) tempEvent.Value = pageValue; else if (!String.IsNullOrEmpty(othersValue)) tempEvent.Value = events.Name; else expressionControl.Events.Remove(tempEvent); } } }
private static void EvaluateEvent(XmlElement element, PageControl control, DynamicProperty dynamicProperty, FlashProperty flashProperty) { var nodeEvents = element.SelectNodes("Events/Event"); foreach (XmlNode nodeEvent in nodeEvents) { var events = new Event(); events.Name = XmlUtility.GetAttrValue(nodeEvent as XmlElement, "Name"); events.Value = XmlUtility.GetElementCDataValue(nodeEvent as XmlElement); if (control.Type != ToolBoxType.Flash.ToString()) { control.Events.Add(events); } else { if (flashProperty.Properties.Any(p => p.Name == events.Name)) { control.Events.Add(events); } else if (control.Type == ToolBoxType.Flash.ToString()) { var tempProperty = new FlashControlDynamicProperty(); tempProperty.Name = XmlUtility.GetAttrValue(nodeEvent as XmlElement, "Name"); tempProperty.Description = XmlUtility.GetAttrValue(nodeEvent as XmlElement, "Description"); tempProperty.Value = XmlUtility.GetElementCDataValue(nodeEvent as XmlElement); if (!dynamicProperty.FlashEvents.ContainsKey(tempProperty.Name)) dynamicProperty.FlashEvents.Add(tempProperty.Name, tempProperty); } } } }
private void GatherResource(List<String> ids, PageControl control) { foreach (var child in control.Children) { if (IsControlExport(child)) { var id = GetResourceId(child); if (!String.IsNullOrEmpty(id) && !ids.Contains(id)) { ids.Add(id); } GatherResource(ids, child); } } }
private void AddDynamicEvent(PageControl control) { var property = Properties.FirstOrDefault(p => p.Name == PropertyUtility.DYNAMICNAME); if (property != null && !String.IsNullOrEmpty(property.Value)) { var flashPropertys = new DynamicProperty(); flashPropertys.Load(property.Value); foreach (var dynamicEvent in flashPropertys.FlashEvents.Values) { var controlEvent = new Event(); controlEvent.Name = dynamicEvent.Name; controlEvent.Value = dynamicEvent.Value; control.Events.Add(controlEvent); } } }
private Boolean IsControlExport(PageControl control) { var result = false; if (control.Type == ToolBoxType.Image.ToString() || control.Type == ToolBoxType.Flash.ToString() || control.Type == ToolBoxType.Frame.ToString()) { result = true; } return result; }
protected override void JoinEventToPageControl(PageControl control) { base.JoinEventToPageControl(control); AddDynamicEvent(control); }
private String GetResourceId(PageControl control) { var result = String.Empty; var property = control.Properties.FirstOrDefault(p => p.Name == "BackgroudImage"); if (property != null && !String.IsNullOrEmpty(property.Value)) { var values = property.Value.Split('\\'); result = values[1]; } else { property = control.Properties.FirstOrDefault(p => p.Name == PropertyUtility.DYNAMICNAME); if (property != null && !String.IsNullOrEmpty(property.Value)) { var flashPropertys = new DynamicProperty(); flashPropertys.Load(property.Value); if (!String.IsNullOrEmpty(flashPropertys.FlashUrl)) { var values = flashPropertys.FlashUrl.Split('\\'); result = values[1]; } } } return result; }
private static void EvaluateEvent(XmlElement element, PageControl control) { var nodeEvents = element.SelectNodes("Events/Event"); foreach (XmlNode nodeEvent in nodeEvents) { var events = new Event(); events.Name = XmlUtility.GetAttrValue(nodeEvent as XmlElement, "Name"); events.Value = XmlUtility.GetElementCDataValue(nodeEvent as XmlElement); control.Events.Add(events); } }
/// <summary> /// Draw Object /// </summary> public virtual IDrawObject CreateDrawObject(PageControl control) { return null; }
private static void EvaluateProperty(XmlElement element, PageControl control) { var nodeProperties = element.SelectNodes("Properties/Property"); foreach (XmlNode nodeProperty in nodeProperties) { var property = new Property(); property.Name = XmlUtility.GetAttrValue(nodeProperty as XmlElement, "Name"); property.Type = XmlUtility.GetAttrValue(nodeProperty as XmlElement, "Type"); property.Value = XmlUtility.GetElementCDataValue(nodeProperty as XmlElement); control.Properties.Add(property); } }
public virtual void InitDrawObjectFromPageControl(PageControl control, IDrawObjectProperty property) { property.InitProperty(); foreach (var childProperty in property.Properties) { var tempProperty = control.FindProperty(childProperty.Name); if (tempProperty != null) { childProperty.Value = tempProperty.Value; } } foreach (var childEvent in property.Events) { var tempEvent = control.FindEvent(childEvent.Name); if (tempEvent != null) { childEvent.Value = tempEvent.Value; } } }
public override IDrawObject CreateDrawObject(PageControl control) { var property = new LineProperty(); InitDrawObjectFromPageControl(control, property); return new DrawLine(property); }
public virtual PageControl ToPageControl() { var control = new PageControl(); control.Id = Id; control.Type = BoxType.ToString(); JoinPropertyToPageControl(control); JoinEventToPageControl(control); return control; }