diff -r 29f28a9f236f -r 41c574c807d1 src/js/serializers/PlatformSerializer.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/js/serializers/PlatformSerializer.js Wed Apr 11 16:39:03 2012 +0200 @@ -0,0 +1,62 @@ +if (typeof IriSP.serializers === "undefined") { + IriSP.serializers = {} +} + +IriSP.serializers.platform = { + deSerialize : function(_data, _container) { + + var _types = [ + { + serialized_name : "medias", + model_name : "media", + deserializer : function(_data) { + var _res = new IriSP.Model.Media(_data.id, _data); + _res.url = _data.href; + _res.title = _data.meta["dc:title"]; + _res.description = _data.meta["dc:description"]; + _res.setDuration(_data.meta["dc:duration"]); + return _res; + } + }, + { + serialized_name : "annotation-types", + model_name : "annotationType", + deserializer : function(_data) { + var _res = new IriSP.Model.AnnotationType(_data.id, _data); + _res.title = _data["dc:title"]; + _res.description = _data["dc:description"]; + return _res; + } + }, + { + serialized_name : "annotations", + model_name : "annotation", + deserializer : function(_data) { + var _res = new IriSP.Model.Annotation(_data.id, _data); + _res.title = _data.content.title; + _res.description = _data.content.description; + _res.setMedia(_data.media, _container); + _res.setAnnotationType(_data.meta["id-ref"], _container); + _res.setBegin(_data.begin); + _res.setEnd(_data.end); + return _res; + } + } + ]; + + IriSP._(_types).each(function(_type) { + if (typeof _data[_type.serialized_name] !== "undefined") { + var _list = new IriSP.Model.List(); + IriSP._(_data[_type.serialized_name]).each(function(_el) { + _list.addElement(_type.deserializer(_el)); + }); + _container.addList(_type.model_name, _list); + } + }); + + if (typeof _data.meta !== "undefined" && typeof _data.meta.main_media !== "undefined" && typeof _data.meta.main_media["id-ref"] !== "undefined") { + _container.setCurrentMediaById(_data.meta.main_media["id-ref"]); + } + _container.setDefaultCurrentMedia(); + } +} \ No newline at end of file