public void ReloadActionList() { ActionEventCollection a = new ActionEventCollection(_objectMap); a.LoadActions(); _objectMap.SetTypedData(typeof(ActionEventCollection), a); }
private void taskExecuter(IEventPointer eventPointer, object[] eventParameters) { try { foreach (EventAction ea in eventHandlers) { EventPointer ep = eventPointer as EventPointer; if (ea.Event.IsSameObjectRef(ep)) { List <ParameterClass> eventValues = new List <ParameterClass>(); if (eventParameters != null && eventParameters.Length > 0) { ParameterInfo[] pifs = ep.Parameters; if (pifs.Length != eventParameters.Length) { throw new DesignerException("Event {0} parameter count mismatch", ep.MemberName); } for (int i = 0; i < pifs.Length; i++) { ParameterClass p = new ParameterClass(new TypePointer(pifs[i].ParameterType)); p.Name = pifs[i].Name; p.ObjectInstance = eventParameters[i]; eventValues.Add(p); } } //execute the event handlers TaskIdList actIdList = ea.TaskIDList; foreach (TaskID tid in actIdList) { UInt32 classId = tid.ClassId; //if (tid.IsGroup) //{ //} //else //{ //find the action in the list of all actions List <IAction> acts = null; if (classId == _map.ClassId) { acts = actions; } else { ObjectIDmap classmap = _map.GetMapByClassId(classId); if (classmap != null) { ActionEventCollection av = classmap.GetTypedData <ActionEventCollection>(); if (av == null) { av = new ActionEventCollection(classmap); classmap.SetTypedData <ActionEventCollection>(av); av.LoadActions(); } acts = av.actions; } } if (acts != null) { foreach (IAction a in acts) { if (a.ActionId == tid.ActionId) { a.Execute(eventValues); break; } } } //} } break; } } } catch (Exception err) { MathNode.Log(err); } }