X-Git-Url: http://git.osdn.net/view?p=pettanr%2Fpettanr.git;a=blobdiff_plain;f=app%2Fassets%2Fjavascripts%2Fmodels%2Fground_picture.js.coffee;h=77d074fe6620d8e75d0cead3c5a1a09a94d0f090;hp=d5820fad21cfec0a7b8a910972090b5fd1f6582f;hb=aa9eca25671c772ffec8f2f65aecc8a978a2f375;hpb=01bd644358713f599c11908152f12b911593b190 diff --git a/app/assets/javascripts/models/ground_picture.js.coffee b/app/assets/javascripts/models/ground_picture.js.coffee index d5820fad..77d074fe 100644 --- a/app/assets/javascripts/models/ground_picture.js.coffee +++ b/app/assets/javascripts/models/ground_picture.js.coffee @@ -1,70 +1,100 @@ -class GroundPicture extends Element - @single: () -> +class Pettanr.GroundPicture extends Peta.Element + + @singular: () -> 'GroundPicture' @plural: () -> 'GroundPictures' - @colum_structures: -> - {} - defaults: { - x: 11 + id: null, + x: 0, + y: 0, + repeat: 0 } - initialize: () -> - confirm("Welcome to this world") - - @test: () -> - confirm( @single()) - confirm( @plural() ) - confirm( @class_name() ) - confirm( @element_name() ) - confirm( @table_name() ) - confirm( @path_name() ) - confirm( @colum_structures() ) - - has_picture: () -> + @repeat_texts: () -> + ['repeat', 'repeat-x', 'repeat-y', 'no-repeat'] + + @pick_item_name: () -> + 'resource_picture' + + @traceable_item_names: () -> + ['panel_picture', 'picture'] + + pick: (picked_item) -> + {picture_id: picked_item.get('picture_id')} + + panel: () -> + new Pettanr.Cache.Retriever(Pettanr.Panel, @get('panel_id')) + + picture: () -> + new Pettanr.Cache.Retriever(Pettanr.Picture, @get('picture_id')) + + @has_picture: () -> true - has_part: () -> - false - - extend_column: () -> - null - - test: () -> - confirm( @has_picture() ) - confirm( @has_part() ) - confirm( @parts() ) - confirm( @has_helper('column_name') ) - confirm( @element_name() ) - confirm( @extend_column() ) - confirm( @extend_element_name() ) - confirm( @find_configurations(window.configurations,'v') ) - confirm( @new_index() ) - confirm( @set_new_index(3) ) - confirm( @set_new_panel('v') ) - confirm( @get_new_panel() ) - confirm( '@get_panel()' ) - confirm( @get_panel() ) - confirm( @tag_id('c') ) - confirm( @field_tag_id('f') ) - confirm( @tag_panel_id() ) - confirm( @tag_element_id() ) - confirm( @tag_element_type() ) - confirm( @tag_new_index() ) - confirm( @path_name() ) - confirm( @form_template() ) - confirm( @scenario_template() ) - confirm( @element_face_template() ) - confirm( @form_helper_template('colum_name') ) - confirm( @tag_attributes('column') ) - confirm( @field_tag_attributes('column', 0, {}) ) - confirm( @any_tag_attributes('name', {}) ) - confirm( @select_tag_attributes(true, 'column', 0) ) - confirm( @tag_attr('column', {}) ) - confirm( @field_tag_attr('column', 1, {}) ) - confirm( @any_tag_attr('name', {}) ) - -@PanelPicture = PanelPicture + tmb_opt_img_tag: (picture) -> + new Pettanr.Image.SymbolPicture({ + attr: { + src: picture.r_url(), + alt: @escape('caption') + }, + picture: picture + }) + + symbol_option: () -> + retriever = @picture() + @listenTo(retriever, 'retrieve', @retrieve_symbol) + retriever.retrieve() + + retrieve_symbol: (picture) -> + @trigger('ready:symbol', picture.tmb_opt_img_tag()) + + repeat_text: () -> + Pettanr.GroundPicture.repeat_texts()[@get('repeat')] + + element_face: () -> + new Pettanr.Views.GroundPicture.ElementFace({element: this}) + + initialize: (attr, options) -> + super(attr, options) + +class Pettanr.GroundPicture.TraceFromPicture + + constructor: (options) -> + _.extend(this, Backbone.Events) + + trace: (picture) -> + @picture(picture) + + picture: (picture) -> + resource_picture_picture_list = picture.has_one('resource_picture_picture') + resource_picture_picture_list.open(() => + resource_picture_picture = resource_picture_picture_list.items()[0] + retriever = new Pettanr.Cache.Retriever(Pettanr.ResourcePicture, resource_picture_picture.get('resource_picture_id')) + @listenTo(retriever, 'retrieve', @resource_picture) + retriever.retrieve() + ) + + resource_picture: (resource_picture) -> + @trigger('trace', resource_picture) + +class Pettanr.GroundPicture.TraceFromPanelPicture extends Pettanr.GroundPicture.TraceFromPicture + + trace: (panel_picture) -> + @panel_picture(panel_picture) + + panel_picture: (panel_picture) -> + retriever = new Pettanr.Cache.Retriever(Pettanr.Picture, panel_picture.get('picture_id')) + @listenTo(retriever, 'retrieve', @picture) + retriever.retrieve() + + picture: (picture) -> + tracer = new Pettanr.GroundPicture.TraceFromPicture() + @listenTo(tracer, 'trace', @success) + tracer.trace(picture) + + success: (resource_picture) -> + @trigger('trace', resource_picture) +