00001 import gugga.common.UIComponentEx;
00002 import gugga.tracking.IFormatter;
00003 import gugga.tracking.TrackRecord;
00004 import gugga.utils.ReflectUtil;
00005
00009 class gugga.tracking.formatters.DefaultFormatter implements IFormatter
00010 {
00011 public function formatOriginator(aTrackRecord : TrackRecord) : String
00012 {
00013 if(typeof(aTrackRecord.Originator) == "string")
00014 {
00015 return aTrackRecord.Originator.toString();
00016 }
00017 else if(aTrackRecord.Originator instanceof MovieClip)
00018 {
00019 var originatorParents : Array = new Array();
00020 var tempObject : MovieClip = MovieClip(aTrackRecord.Originator);
00021
00022 while(tempObject)
00023 {
00024 if ((tempObject instanceof UIComponentEx)
00025 && UIComponentEx(tempObject).TrackableID != undefined
00026 && UIComponentEx(tempObject).TrackableID != null)
00027 {
00028 originatorParents.push(UIComponentEx(tempObject).TrackableID);
00029 }
00030
00031 tempObject = tempObject._parent;
00032 }
00033
00034 var originatorName : String = "";
00035 while(originatorParents.length > 0)
00036 {
00037 if(originatorName != "")
00038 {
00039 originatorName += ".";
00040 }
00041
00042 originatorName += originatorParents.pop().toString();
00043 }
00044
00045 return originatorName;
00046 }
00047 else
00048 {
00049 return ReflectUtil.getTypeNameForInstance(aTrackRecord.Originator);
00050 }
00051 }
00052 }