X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;ds=sidebyside;f=app%2Fassets%2Fjavascripts%2Fmodels%2Fspeech_balloon.js.coffee;h=57fd0169ff82f55b2e5332db9a444cd6faef1c8f;hb=aa9eca25671c772ffec8f2f65aecc8a978a2f375;hp=55841effbddc4647d4b8dd30867a6f41077f8612;hpb=9529441f04dd2c502077a051b866eac838e5849e;p=pettanr%2Fpettanr.git diff --git a/app/assets/javascripts/models/speech_balloon.js.coffee b/app/assets/javascripts/models/speech_balloon.js.coffee index 55841eff..57fd0169 100644 --- a/app/assets/javascripts/models/speech_balloon.js.coffee +++ b/app/assets/javascripts/models/speech_balloon.js.coffee @@ -1,5 +1,4 @@ class Pettanr.SpeechBalloon extends Peta.Element - url: '/speech_balloons/' @singular: () -> 'SpeechBalloon' @@ -13,26 +12,89 @@ class Pettanr.SpeechBalloon extends Peta.Element t: null } + @pick_item_name: () -> + 'speech_balloon_template' + + @traceable_item_names: () -> + ['speech', 'balloon'] + + pick: () -> + # + speech_balloon_template = @templates.speech_balloon_template + { + speech_balloon_template_id: speech_balloon_template.get('id'), + speech_balloon_template_module_name: speech_balloon_template.get('module_name') + } + + panel: () -> + new Pettanr.Cache.Retriever(Pettanr.Panel, @get('panel_id')) + speech_balloon_template: () -> - new Pettanr.SpeechBalloonTemplate({id: @get('speech_balloon_template_id')}) + new Pettanr.Cache.Retriever(Pettanr.SpeechBalloonTemplate, @get('speech_balloon_template_id')) @has_picture: () -> false - symbol_option: (cb) -> - sbt = @speech_balloon_template() - sbt.fetch().done -> - sp = sbt.system_picture() - sp.fetch().done -> - cb(sp.tmb_opt_img_tag()) + symbol_option: () -> + retriever = @speech_balloon_template() + @listenTo(retriever, 'retrieve', @retrieve_speech_balloon_template) + retriever.retrieve() + + retrieve_speech_balloon_template: (speech_balloon_template) -> + retriever = speech_balloon_template.system_picture() + @listenTo(retriever, 'retrieve', @retrieve_system_picture) + retriever.retrieve() + + retrieve_system_picture: (system_picture) -> + @trigger('ready:symbol', system_picture.tmb_opt_img_tag()) + + filer_caption: () -> + retriever = @retriever() + @listenTo(retriever, 'retrieve', @retrieve_filer_caption) + retriever.retrieve() + + retrieve_filer_caption: (item) -> + caption = item.escape('caption') + @trigger('ready:caption', caption) plain_scenario: () -> @get('caption') - initialize: () -> - if @id - @url = @url + @id + element_face: () -> + new Pettanr.Views.SpeechBalloon.ElementFace({element: this}) + + initialize: (attr, options) -> + super(attr, options) + +class Pettanr.SpeechBalloon.TraceFromBalloon + + constructor: (options) -> + _.extend(this, Backbone.Events) + + trace: (balloon) -> + @balloon(balloon) + + balloon: (balloon) -> + retriever = new Pettanr.Cache.Retriever(Pettanr.SpeechBalloon, balloon.get('speech_balloon_id')) + @listenTo(retriever, 'retrieve', @speech_balloon) + retriever.retrieve() + + speech_balloon: (speech_balloon) -> + @trigger('trace', speech_balloon) + +class Pettanr.SpeechBalloon.TraceFromSpeech + + constructor: (options) -> + _.extend(this, Backbone.Events) + + trace: (speech) -> + @speech(speech) + + speech: (speech) -> + retriever = new Pettanr.Cache.Retriever(Pettanr.SpeechBalloon, speech.get('speech_balloon_id')) + @listenTo(retriever, 'retrieve', @speech_balloon) + retriever.retrieve() + + speech_balloon: (speech_balloon) -> + @trigger('trace', speech_balloon) -class Pettanr.SpeechBalloon.Collection extends Backbone.Collection - model: Pettanr.SpeechBalloon - url: '/speech_balloons'