/*----------------------------------------------------*/ public virtual void EventController_ControlClicked(Object aSrc, EventArgs aEvent) { cCoreCtl aCtl = GetCoreControlFromEventSource((Control)aSrc); XmlNodeList aActionNodeList = cXMLDoc.GetActionNodeList(aCtl.DisplayPropertyNode); foreach(XmlNode aActionNode in aActionNodeList) { EventController_ExecuteActionMethod(aActionNode, aSrc, aCtl); } }
/*----------------------------------------------------*/ public virtual void EventController_GetEventMethodArgs(ArrayList aArgsList, cCoreCtl aCtl, Object aEventSrc, XmlNode aActionNode) { XmlNode aArgumentsNode = aActionNode.SelectSingleNode("Parameters"); if (aArgumentsNode == null) return; XmlNodeList aArgsNodeList = aArgumentsNode.SelectNodes("Argument"); foreach(XmlNode aArgumentNode in aArgsNodeList) { String aAttributeName = cXMLDoc.AttributeToString(aArgumentNode, "AttributeName"); String aType = cXMLDoc.AttributeToString(aArgumentNode, "Type"); if(aAttributeName!= "") { switch(aType) { case "": aArgsList.Add(cXMLDoc.AttributeToString(aArgumentNode, "Value")); break; case "AttributeRelatedProperty": String aDODKey = cXMLDoc.AttributeToString(aArgumentNode, "DataObjectDefinitionKey"); String aPrimaryKey = aCtl.Attributes[aAttributeName]; cDataObject aDO = this.WebSession.DataObjectFactory.GetDataObjectFromPrimaryKey(aDODKey, aPrimaryKey); String aPropertyKey = cXMLDoc.AttributeToString(aArgumentNode, "PropertyKey"); if(aDO.GetRelatedPropertyString(aPropertyKey) != "") aArgsList.Add(cXMLDoc.AttributeToString(aArgumentNode, "BaseValue") + aDO.GetRelatedPropertyString(aPropertyKey)); else aArgsList.Add(cXMLDoc.AttributeToString(aArgumentNode, "BaseValue") + cXMLDoc.AttributeToString(aArgumentNode, "DefaultValue", "0")); break; default: aArgsList.Add(cXMLDoc.AttributeToString(aArgumentNode, "BaseValue") + aCtl.Attributes[aAttributeName]); break; } } else { switch (aType) { case "Object" : aArgsList.Add(EventController_GetEventArgumentObject(aArgumentNode, aCtl, aEventSrc)); break; default : if(aType == "") aArgsList.Add(cXMLDoc.AttributeToString(aArgumentNode, "Value")); else aArgsList.Add(cXMLDoc.AttributeToString(aArgumentNode, "BaseValue") + EventController_GetArgumentValue(aArgumentNode, null)); break; } } } }
/*----------------------------------------------------*/ public virtual Object EventController_GetEventArgumentObject(XmlNode aArgumentNode, cCoreCtl aCtl, Object aEventSrc) { String aObjectType; aObjectType = cXMLDoc.AttributeToString(aArgumentNode, "ObjectType"); switch(aObjectType) { case "DataPresenter": return this; case "CoreControl": return aCtl; case "EventSource": return aEventSrc; default: return null; } }