OSDN Git Service

fix editor event
authoryasushiito <yas@pen-chan.jp>
Sun, 4 Jan 2015 23:48:14 +0000 (08:48 +0900)
committeryasushiito <yas@pen-chan.jp>
Sun, 4 Jan 2015 23:48:14 +0000 (08:48 +0900)
23 files changed:
app/assets/javascripts/controllers/ground_pictures.js.coffee
app/assets/javascripts/editor/panel_editor.js.coffee
app/assets/javascripts/editor/panel_editor/dock.js.coffee
app/assets/javascripts/locmare/form.js.coffee
app/assets/javascripts/locmare/form/field/helper/color.js.coffee
app/assets/javascripts/locmare/form/field/helper/size.js.coffee
app/assets/javascripts/locmare/form/field/helper/tail_angle.js.coffee
app/assets/javascripts/locmare/form/field/tag/hidden.js.coffee
app/assets/javascripts/locmare/form/field/tag/select.js.coffee
app/assets/javascripts/locmare/form/field/tag/text_area.js.coffee
app/assets/javascripts/peta/item.js.coffee
app/assets/javascripts/views/balloons/element.js.coffee
app/assets/javascripts/views/ground_colors/element.js.coffee
app/assets/javascripts/views/ground_colors/element_face.js.coffee
app/assets/javascripts/views/ground_pictures/element.js.coffee
app/assets/javascripts/views/ground_pictures/element_face.js.coffee
app/assets/javascripts/views/panel_pictures/element.js.coffee
app/assets/javascripts/views/panel_pictures/element_face.js.coffee
app/assets/javascripts/views/panels/show.js.coffee
app/assets/javascripts/views/speech_balloons/element.js.coffee
app/assets/javascripts/views/speech_balloons/element_face.js.coffee
app/assets/javascripts/views/speeches/element.js.coffee
app/assets/stylesheets/test.css.scss

index f357d62..41e10aa 100644 (file)
@@ -15,7 +15,7 @@ class Pettanr.GroundPicturesController extends Pettanr.AppController
   show_html: () -> \r
     @redraw_title(@params)\r
     @item.fetch({cache: true}).done =>\r
-      @redraw_title(@params, @item.eget('caption'))\r
+      @redraw_title(@params, @item.get('caption'))\r
       view = new Pettanr.Views.GroundPicture.Show({\r
         el: "#pettanr",\r
         item: @item,\r
index 0e71d36..0e44e52 100644 (file)
@@ -11,28 +11,29 @@ class Editor.PanelEditor extends Backbone.View
       spot: null\r
     })\r
     @dock = new Editor.PanelEditor.Dock({parent: this})\r
-    @credits = new Pettanr.Views.Panel.Show.Credits({panel: @root_item()})\r
+    @credits = new Pettanr.Views.Panel.Show.Credits({pictures: {}})\r
     _.each @panel.zorderd_elements(), (element) =>\r
       element.fetch({cache: true}).done =>\r
         @add_element(element)\r
-    @dock.add_new_tab()\r
+    #@dock.add_new_tab()\r
     @body.on('panel:resize', @panel_resize)\r
   \r
   add_element: (element) ->\r
     console.log(element)\r
     panel_element_view = @body.add_element(element)\r
-    dock_element_view = @dock.add_element(element)\r
-    @dig(element, panel_element_view, dock_element_view)\r
-    #@credits.add_element(element)\r
+    element_form = @dock.add_element(element)\r
+    @dig(element, panel_element_view, element_form)\r
+    if element.constructor.has_picture()\r
+      @credits.add_picture(element.picture())\r
   \r
-  dig: (element, panel_element_view, dock_element_view) ->\r
+  dig: (element, panel_element_view, element_form) ->\r
     console.log(element.elements_items())\r
     _.each element.elements_items(), (child_element) =>\r
       console.log(child_element)\r
       child_element.fetch({cache: true}).done =>\r
         child_panel_element_view = panel_element_view.add_element(child_element)\r
-        dock_element_view.add_element(child_element)\r
-        @dig(child_element, child_panel_element_view, dock_element_view)\r
+        child_element_form = element_form.add_element(child_element)\r
+        @dig(child_element, child_panel_element_view, child_element_form)\r
   \r
   remove_element: (element) ->\r
     \r
index 508fc95..73f3b81 100644 (file)
@@ -4,40 +4,40 @@ class Editor.PanelEditor.Dock extends Editor.EditorModule.DockBase
   \r
   initialize: (options) ->\r
     super(options)\r
-    @root = new Editor.EditorModule.DockModule.RootBay({\r
+    @root_bay = new Editor.EditorModule.DockModule.RootBay({\r
       parent: this, index: 0, name: 'panel'\r
     })\r
     @add_tab(\r
-      @root, \r
+      @root_bay\r
       new Editor.EditorModule.DockModule.TabModule.RootBayLabel({\r
-        parent: @root, caption: 'panel'\r
+        parent: @root_bay, caption: 'panel'\r
       }), \r
       new Editor.EditorModule.DockModule.TabModule.RootBayBody({\r
-        parent: @root\r
+        parent: @root_bay\r
       })\r
     )\r
-    @element = new Editor.EditorModule.DockModule.ElementBay({\r
+    @element_bay = new Editor.EditorModule.DockModule.ElementBay({\r
       parent: this, index: 1, name: 'elements'\r
     })\r
     @add_tab(\r
-      @element, \r
+      @element_bay\r
       new Editor.EditorModule.DockModule.TabModule.ElementBayLabel({\r
-        parent: @element, caption: 'elements'\r
+        parent: @element_bay, caption: 'elements'\r
       }), \r
       new Editor.EditorModule.DockModule.TabModule.ElementBayBody({\r
-        parent: @element\r
+        parent: @element_bay\r
       })\r
     )\r
-    @scenario = new Editor.EditorModule.DockModule.ScenarioBay({\r
+    @scenario_bay = new Editor.EditorModule.DockModule.ScenarioBay({\r
       parent: this, index: 2, name: 'scenario'\r
     })\r
     @add_tab(\r
-      @scenario, \r
+      @scenario_bay\r
       new Editor.EditorModule.DockModule.TabModule.ScenarioBayLabel({\r
-        parent: @scenario, caption: 'scenario'\r
+        parent: @scenario_bay, caption: 'scenario'\r
       }), \r
       new Editor.EditorModule.DockModule.TabModule.ScenarioBayBody({\r
-        parent: @scenario\r
+        parent: @scenario_bay\r
       })\r
     )\r
   \r
@@ -52,7 +52,7 @@ class Editor.PanelEditor.Dock extends Editor.EditorModule.DockBase
     this\r
   \r
   add_element: (element) ->\r
-    @element.add_element(element)\r
+    @element_bay.add_element(element)\r
   \r
   editor: () ->\r
     @parent\r
@@ -107,6 +107,8 @@ class Editor.EditorModule.DockModule.ElementBay extends Editor.EditorModule.Dock
   \r
   initialize: (options) ->\r
     super(options)\r
+    @elements_tabs = new Editor.EditorModule.DockModule.ElementBay.ElementsTabs({\r
+    })\r
   \r
   add_element: (element) ->\r
     index = element.get('z') - 1\r
@@ -119,62 +121,54 @@ class Editor.EditorModule.DockModule.ElementBay extends Editor.EditorModule.Dock
       new Editor.EditorModule.DockModule.TabModule.ElementBoardLabel({parent: tab, name: element.item_name()}), \r
       bb\r
     )\r
-    bb\r
+    @elements_tabs.add_element_tab(tab)\r
+    @elements_tabs.$el.tabs('refresh')\r
+    bb.form\r
   \r
   add_new_tab: () ->\r
   \r
   render: () ->\r
     this.$el.html('')\r
     this.$el.attr('id', @body.dom_id())\r
-    elements_tabs = new Editor.EditorModule.DockModule.ElementBay.ElementsTabs({\r
-      tabs: @tabs\r
-    })\r
-    this.$el.append(elements_tabs.render().el)\r
-    elements_tabs.$el.tabs()\r
-    elements_tabs.$el.addClass('ui-tabs-vertical ui-helper-clearfix')\r
-    $("li", elements_tabs.$el).removeClass('ui-corner-top')\r
-    $("li", elements_tabs.$el).addClass('ui-corner-left')\r
+    this.$el.append(@elements_tabs.render().el)\r
+    @elements_tabs.$el.tabs()\r
     this\r
   \r
   panel_body: () ->\r
     @dock().editor().body\r
   \r
-  elements: () ->\r
-    @root_item().scenario_elements()\r
-  \r
 class Editor.EditorModule.DockModule.ElementBay.ElementsTabs extends Backbone.View\r
   tagName: 'div'\r
   className: 'elements_tabs ui-tabs-vertical ui-helper-clearfix'\r
   \r
   initialize: (options) ->\r
     super(options)\r
-    @tabs = options.tabs\r
+    @inner_elements_tabs = new Editor.EditorModule.DockModule.ElementBay.InnerElementsTabs({\r
+    })\r
   \r
   render: () ->\r
     this.$el.html('')\r
-    labels = _.map @tabs, (tab) =>\r
-      tab.label\r
-    inner_elements_tabs = new Editor.EditorModule.DockModule.ElementBay.InnerElementsTabs({\r
-      labels: labels\r
-    })\r
-    this.$el.append(inner_elements_tabs.render().el)\r
-    _.each @tabs, (tab) =>\r
-      this.$el.append(tab.body.render().el)\r
+    this.$el.append(@inner_elements_tabs.render().$el)\r
     this\r
   \r
+  add_element_tab: (tab) ->\r
+    @inner_elements_tabs.add_label(tab.label)\r
+    this.$el.append(tab.body.render().$el)\r
+  \r
 class Editor.EditorModule.DockModule.ElementBay.InnerElementsTabs extends Backbone.View\r
   tagName: 'ul'\r
   \r
   initialize: (options) ->\r
     super(options)\r
-    @labels = options.labels\r
   \r
   render: () ->\r
     this.$el.html('')\r
-    _.each @labels, (label) =>\r
-      this.$el.append(label.render().el)\r
     this\r
   \r
+  add_label: (label) ->\r
+    this.$el.append(label.render().$el)\r
+    label.add_label()\r
+  \r
 class Editor.EditorModule.DockModule.TabModule.ElementBayLabel extends Editor.EditorModule.DockModule.TabModule.BayLabel\r
   \r
 class Editor.EditorModule.DockModule.TabModule.ElementBayBody extends Editor.EditorModule.DockModule.TabModule.BayBody\r
@@ -193,6 +187,15 @@ class Editor.EditorModule.DockModule.ElementBoard extends Editor.EditorModule.Do
   \r
 class Editor.EditorModule.DockModule.TabModule.ElementBoardLabel extends Editor.EditorModule.DockModule.TabModule.BoardLabel\r
   \r
+  render: () ->\r
+    super()\r
+    this.$el.removeClass('ui-corner-top')\r
+    this.$el.addClass('ui-corner-left')\r
+    this\r
+  \r
+  add_label: () ->\r
+    this.$el.attr('id', @dom_id())\r
+  \r
 class Editor.EditorModule.DockModule.TabModule.ElementBoardBody extends Editor.EditorModule.DockModule.TabModule.BoardBody\r
   \r
   initialize: (options) ->\r
index cd2a8e1..ff8c05e 100644 (file)
@@ -82,14 +82,15 @@ class Locmare.Form extends Locmare.FormBase
     this\r
   \r
   add_element: (element) ->\r
-    form = new Locmare.Form(\r
-      element.item_name(), \r
-      element, \r
-      @mounted, \r
-      null, \r
-      @operators\r
-    )\r
-    this.$el.append( form.render().el)\r
+    form = Locmare.Form.factory({\r
+      form_name: element.item_name(), \r
+      item: element, \r
+      mounted: @mounted, \r
+      submit: null, \r
+      operators: @operators,\r
+      action: '/' + element.table_name() + '/' + Pettanr.to_s(element.get('id'))\r
+    })\r
+    this.$el.append(form.render().el)\r
     form\r
   \r
   init_fields: () ->\r
index 9549c75..f2bbef6 100644 (file)
@@ -24,7 +24,8 @@ class Locmare.FormModule.FieldModule.HelperModule.Color extends Locmare.FormModu
     this\r
   \r
   h: () -> \r
-    h = "000000" + @field.value().toString(16)\r
+    c = @field.value()\r
+    h = "000000" + c.toString(16)\r
     h.substring(h.length - 6)\r
   \r
   slider_change: () -> \r
@@ -33,7 +34,7 @@ class Locmare.FormModule.FieldModule.HelperModule.Color extends Locmare.FormModu
     blue = @picker.blue.$el.slider('value')\r
     code = (red << 16) + (green << 8) + (blue)\r
     @field.tag.$el.val(code)\r
-    @field.set(code)\r
+    @field.trigger('change')\r
     @swatch.refresh()\r
     @status.refresh()\r
   \r
@@ -144,7 +145,6 @@ class Locmare.FormModule.FieldModule.HelperModule.ColorModule.Status extends Bac
     }\r
     this.$el.attr(@attr)\r
     \r
-    hex = @field.value().toString(16)\r
     @hex = new Tag.Div({})\r
     @rgb = new Tag.Div({})\r
     this.$el.html('')\r
index 16784fe..6edc3d6 100644 (file)
@@ -3,12 +3,12 @@ class Locmare.FormModule.FieldModule.HelperModule.Size extends Locmare.FormModul
   initialize: (options) ->\r
     super(options)\r
     this.$el.addClass(@helper_manifest.dom_class)\r
-    @reverse = new Locmare.FormModule.FieldModule.HelperModule.SizeModule.Reverse({field: @field})\r
-    @double = new Locmare.FormModule.FieldModule.HelperModule.SizeModule.Double({field: @field})\r
-    @half = new Locmare.FormModule.FieldModule.HelperModule.SizeModule.Half({field: @field})\r
   \r
   render: () ->\r
     this.$el.html('')\r
+    @reverse = new Locmare.FormModule.FieldModule.HelperModule.SizeModule.Reverse({field: @field})\r
+    @double = new Locmare.FormModule.FieldModule.HelperModule.SizeModule.Double({field: @field})\r
+    @half = new Locmare.FormModule.FieldModule.HelperModule.SizeModule.Half({field: @field})\r
     this.$el.append(@reverse.render().el)\r
     this.$el.append(@double.render().el)\r
     this.$el.append(@half.render().el)\r
@@ -30,9 +30,8 @@ class Locmare.FormModule.FieldModule.HelperModule.SizeModule.Reverse extends Bac
     this\r
   \r
   click: () -> \r
-    w = -@field.val()\r
-    @field.tag.$el.val(w)\r
-    @field.set(w)\r
+    @field.tag.$el.val(-@field.val())\r
+    @field.trigger('change')\r
     return false\r
   \r
 class Locmare.FormModule.FieldModule.HelperModule.SizeModule.Double extends Backbone.View\r
@@ -52,7 +51,7 @@ class Locmare.FormModule.FieldModule.HelperModule.SizeModule.Double extends Back
   click: () -> \r
     w = @field.val() * 2\r
     @field.tag.$el.val(w)\r
-    @field.set(w)\r
+    @field.trigger('change')\r
     return false\r
   \r
 class Locmare.FormModule.FieldModule.HelperModule.SizeModule.Half extends Backbone.View\r
@@ -72,21 +71,6 @@ class Locmare.FormModule.FieldModule.HelperModule.SizeModule.Half extends Backbo
   click: () -> \r
     w = Math.floor(@field.val() / 2)\r
     @field.tag.$el.val(w)\r
-    @field.set(w)\r
+    @field.trigger('change')\r
     return false\r
   \r
-class PettanrPictureSizeHelper\r
-  @refresh_picture = (e, w, h)  ->\r
-    if w and h\r
-      sd = ''\r
-      if h < 0\r
-        sd += 'v'\r
-      if w < 0\r
-        sd += 'h'\r
-      if sd.length > 0\r
-        sd += '/'\r
-      pid = parseInt(e.attr('picture_id')).toString()\r
-      ext = e.attr('ext')\r
-      src = '/pictures/' + sd + pid + '.' + ext\r
-      e.attr('src', src)\r
-  \r
index ca0b0ca..ccc6687 100644 (file)
@@ -93,6 +93,7 @@ class Locmare.FormModule.FieldModule.HelperModule.TailAngleModule.Down extends B
   click: () -> \r
     idx = @helper.balloon_next_index(-1)\r
     @helper.refresh_balloon(idx)\r
+    @field.trigger('change')\r
     false\r
     \r
 class Locmare.FormModule.FieldModule.HelperModule.TailAngleModule.Up extends Backbone.View\r
@@ -113,6 +114,7 @@ class Locmare.FormModule.FieldModule.HelperModule.TailAngleModule.Up extends Bac
   click: () -> \r
     idx = @helper.balloon_next_index(1)\r
     @helper.refresh_balloon(idx)\r
+    @field.trigger('change')\r
     false\r
   \r
 class Locmare.FormModule.FieldModule.HelperModule.TailAngleModule.Reset extends Backbone.View\r
@@ -132,6 +134,7 @@ class Locmare.FormModule.FieldModule.HelperModule.TailAngleModule.Reset extends
   \r
   click: () -> \r
     @field.tag.$el.val(0)\r
+    @field.trigger('change')\r
     @helper.refresh_balloon(0)\r
     false\r
   \r
index fe8da64..f93c887 100644 (file)
@@ -11,3 +11,5 @@ class Locmare.FormModule.FieldModule.TagModule.HiddenTag extends Locmare.FormMod
     this.$el.attr(@attr)\r
     this\r
   \r
+  val: () ->\r
+    parseInt(super)  # humm... \r
index 1e45f7d..9806207 100644 (file)
@@ -1,5 +1,8 @@
 class Locmare.FormModule.FieldModule.TagModule.SelectTag extends Locmare.FormModule.FieldModule.TagModule.Base\r
   tagName: 'select'\r
+  events: {\r
+    'change': 'change'\r
+  }\r
   \r
   render: () ->\r
     this.$el.html('')\r
@@ -65,3 +68,6 @@ class Locmare.FormModule.FieldModule.TagModule.SelectTag extends Locmare.FormMod
       members = Manifest.manifest().system_resources.select_items[@select_item_name()]\r
       cb(members)\r
   \r
+  change: () ->\r
+    @field.trigger('change')\r
+  \r
index 2f7fe13..34857a6 100644 (file)
@@ -1,5 +1,8 @@
 class Locmare.FormModule.FieldModule.TagModule.TextAreaTag extends Locmare.FormModule.FieldModule.TagModule.Base\r
   tagName: 'textarea'\r
+  events: {\r
+    'change': 'change'\r
+  }\r
   \r
   render: () ->\r
     this.$el.html('')\r
@@ -16,3 +19,6 @@ class Locmare.FormModule.FieldModule.TagModule.TextAreaTag extends Locmare.FormM
     this.$el.html(@value())\r
     this\r
   \r
+  change: () ->\r
+    @field.trigger('change')\r
+  \r
index db071bd..fa9fa2a 100644 (file)
@@ -55,6 +55,9 @@ class Peta.Item extends Backbone.Model
   @parent_model: () ->\r
     null\r
   \r
+  @has_picture: () ->\r
+    false\r
+  \r
   @path_name: (with_engine = false) ->\r
     @table_name()\r
   \r
index ffab95e..8844eed 100644 (file)
@@ -15,16 +15,21 @@ class Pettanr.Views.Balloon.Element extends Backbone.View
     this\r
   \r
   render: () ->\r
+    @restyle()\r
+    this\r
+  \r
+  restyle: () ->\r
     attr = {\r
       src: @system_picture.r_url(), \r
       alt: @element.get('caption'),\r
       style: Pettanr.to_style(@style())\r
     }\r
     this.$el.attr(attr)\r
-    this\r
   \r
   style: () ->\r
     {\r
+      'width': '100%'\r
+      'height': '100%'\r
       'z-index': 2\r
     }\r
   \r
@@ -35,6 +40,9 @@ class Pettanr.Views.Balloon.Element.Edit extends Pettanr.Views.Balloon.Element
   \r
   initialize: (options) ->\r
     super(options)\r
+    @listenTo(@element, 'input:r', @restyle)\r
+    @listenTo(@element, 'input:width', @resize)\r
+    @listenTo(@element, 'input:height', @resize)\r
   \r
   render: () ->\r
     super()\r
@@ -76,4 +84,10 @@ class Pettanr.Views.Balloon.Element.Edit extends Pettanr.Views.Balloon.Element
     }\r
     this\r
   \r
+  resize: () ->\r
+    resize_div = this.$el.parent()\r
+    resize_div.css('width', '100%')\r
+    resize_div.css('height', '100%')\r
+    this.$el.css('width',  '100%')\r
+    this.$el.css('height', '100%')\r
   \r
index 89d0be2..ba9df00 100644 (file)
@@ -11,11 +11,14 @@ class Pettanr.Views.GroundColor.Element extends Backbone.View
     this\r
   \r
   render: () ->\r
+    @restyle()\r
+    this\r
+  \r
+  restyle: () ->\r
     attr = {\r
       style: Pettanr.to_style(@style(@spot))\r
     }\r
     this.$el.attr(attr)\r
-    this\r
   \r
   add_element: (element) ->\r
     null\r
@@ -70,3 +73,10 @@ class Pettanr.Views.GroundColor.Element extends Backbone.View
   \r
 class Pettanr.Views.GroundColor.Element.Edit extends Pettanr.Views.GroundColor.Element\r
   \r
+  initialize: (options) ->\r
+    super(options)\r
+    @listenTo(@element, 'input:code', @restyle)\r
+    @listenTo(@element, 'input:xy', @restyle)\r
+    @listenTo(@element, 'input:wh', @restyle)\r
+    @listenTo(@element, 'input:orientation', @restyle)\r
+  \r
index ee9f75d..cfe8864 100644 (file)
@@ -4,17 +4,14 @@ class Pettanr.Views.GroundColor.ElementFace extends Backbone.View
   \r
   initialize: (options) ->\r
     @element = options.element\r
+    @listenTo(@element, 'input:code', @render)\r
   \r
   render: () ->\r
     this.$el.html('')\r
     symbol = new Pettanr.Views.GroundColor.Symbol({item: @element, class_name: 'elements-tab-face-icon'})\r
     this.$el.append(symbol.render().el)\r
-    name = Pettanr.truncate(@element.get('caption'), 15)\r
-    caption = new Tag.Span({\r
-      class_name: 'elements-tab-face-caption', \r
-      content: _.escape(name)\r
-    })\r
-    this.$el.append(caption.render().el)\r
     fe = new Tag.Div({class_name: 'elements-tab-face-end'})\r
     this.$el.append(fe.render().el)\r
     this\r
+  \r
+  \r
index fb4223d..fcff616 100644 (file)
@@ -6,18 +6,23 @@ class Pettanr.Views.GroundPicture.Element extends Backbone.View
     @element = options.element\r
     @root = options.root\r
     @spot = options.spot\r
+    @picture = @element.picture()\r
+    @picture.fetch({cache: true}).done =>\r
+      @restyle()\r
   \r
   clear: () ->\r
     this\r
   \r
   render: () ->\r
+    this\r
+  \r
+  restyle: () ->\r
     s = @style(@spot)\r
     _.extend(s, @style_wh())\r
     attr = {\r
       style: Pettanr.to_style(s)\r
     }\r
     this.$el.attr(attr)\r
-    this\r
   \r
   add_element: (element) ->\r
     null\r
@@ -28,7 +33,7 @@ class Pettanr.Views.GroundPicture.Element extends Backbone.View
       top: '0px', \r
       left: '0px',\r
       'z-index': @element.get('z'), \r
-      'background-image': 'url(' + @element.picture().r_url() + ')', \r
+      'background-image': 'url(' + @picture.r_url() + ')', \r
       'background-repeat': @element.repeat_text(), \r
       'background-position': Pettanr.to_s(@element.get('x')) + 'px ' + Pettanr.to_s(@element.get('y')) + 'px'\r
     }\r
@@ -42,3 +47,12 @@ class Pettanr.Views.GroundPicture.Element extends Backbone.View
   \r
 class Pettanr.Views.GroundPicture.Element.Edit extends Pettanr.Views.GroundPicture.Element\r
   \r
+  initialize: (options) ->\r
+    super(options)\r
+    @listenTo(@root, 'resize', @restyle)\r
+    @listenTo(@root, 'input:width', @restyle)\r
+    @listenTo(@root, 'input:height', @restyle)\r
+    @listenTo(@element, 'input:repeat', @restyle)\r
+    @listenTo(@element, 'input:x', @restyle)\r
+    @listenTo(@element, 'input:y', @restyle)\r
+  \r
index 42a4b56..1633481 100644 (file)
@@ -23,12 +23,6 @@ class Pettanr.Views.GroundPicture.ElementFace extends Backbone.View
     this.$el.html('')\r
     symbol = new Pettanr.Views.GroundPicture.ElementSymbol({element: @element})\r
     this.$el.append(symbol.render().el)\r
-    name = Pettanr.truncate(@element.get('caption'), 15)\r
-    caption = new Tag.Span({\r
-      class_name: 'elements-tab-face-caption', \r
-      content: _.escape(name)\r
-    })\r
-    this.$el.append(caption.render().el)\r
     fe = new Tag.Div({class_name: 'elements-tab-face-end'})\r
     this.$el.append(fe.render().el)\r
     this\r
index a8e56cf..cb3f77b 100644 (file)
@@ -17,11 +17,14 @@ class Pettanr.Views.PanelPicture.Element extends Backbone.View
     this\r
   \r
   render: () ->\r
-    @attr = {style: Pettanr.to_style(@style())}\r
-    this.$el.attr(@attr)\r
+    @restyle()\r
     this.$el.html(@img.clear().el)\r
     this\r
   \r
+  restyle: () ->\r
+    attr = {style: Pettanr.to_style(@style())}\r
+    this.$el.attr(attr)\r
+  \r
   add_element: (element) ->\r
     null\r
   \r
@@ -55,9 +58,12 @@ class Pettanr.Views.PanelPicture.Element.Img extends Backbone.View
     this\r
   \r
   render: () ->\r
-    this.$el.attr(@attr(@spot))\r
+    @restyle()\r
     this\r
   \r
+  restyle: () ->\r
+    this.$el.attr(@attr(@spot))\r
+  \r
   attr: (spot = null, opacity = 20) ->\r
     style = {}\r
     if spot and spot.constructor == @element.constructor and spot.get('id') != @element.get('id')\r
@@ -75,8 +81,9 @@ class Pettanr.Views.PanelPicture.Element.Edit extends Pettanr.Views.PanelPicture
   \r
   initialize: (options) ->\r
     super(options)\r
-    @listenTo(@root, 'input:width', @restyle)\r
-    @listenTo(@root, 'input:height', @restyle)\r
+    @listenTo(@element, 'input:x', @restyle)\r
+    @listenTo(@element, 'input:y', @restyle)\r
+    @listenTo(@element, 'input:z', @restyle)\r
   \r
   render: () ->\r
     super()\r
@@ -102,6 +109,8 @@ class Pettanr.Views.PanelPicture.Element.Img.Edit extends Pettanr.Views.PanelPic
   \r
   initialize: (options) ->\r
     super(options)\r
+    @listenTo(@element, 'input:width', @restyle)\r
+    @listenTo(@element, 'input:height', @restyle)\r
   \r
   render: () ->\r
     super()\r
@@ -142,3 +151,12 @@ class Pettanr.Views.PanelPicture.Element.Img.Edit extends Pettanr.Views.PanelPic
       handles: 'all',\r
       autoHide: true\r
     }\r
+  \r
+  restyle: () ->\r
+    super()\r
+    resize_div = this.$el.parent()\r
+    width = this.$el.css('width')\r
+    height = this.$el.css('height')\r
+    resize_div.width(width)\r
+    resize_div.height(height)\r
+  \r
index b6edaf6..5fb52fd 100644 (file)
@@ -23,16 +23,6 @@ class Pettanr.Views.PanelPicture.ElementFace extends Backbone.View
     this.$el.html('')\r
     symbol = new Pettanr.Views.PanelPicture.ElementSymbol({element: @element})\r
     this.$el.append(symbol.render().el)\r
-    if name = @element.get('caption')\r
-      content = _.escape(Pettanr.truncate(@element.get('caption'), 15))\r
-    else\r
-      empty = new Pettanr.Views.Common.EmptyCaption()\r
-      content = empty.render().el\r
-    caption = new Tag.Span({\r
-      class_name: 'elements-tab-face-caption', \r
-      content: content\r
-    })\r
-    this.$el.append(caption.render().el)\r
     fe = new Tag.Div({class_name: 'elements-tab-face-end'})\r
     this.$el.append(fe.render().el)\r
     this\r
index 3733d80..6e34cdb 100644 (file)
@@ -29,7 +29,9 @@ class Pettanr.Views.Panel.Show extends Backbone.View
       panel: @panel,\r
       operators: @operators\r
     })\r
-    @credits = new Pettanr.Views.Panel.Show.Credits({pictures: @panel.licensed_pictures()})\r
+    @credits = new Pettanr.Views.Panel.Show.Credits({\r
+      pictures: @panel.licensed_pictures()\r
+    })\r
   \r
   render: () ->\r
     this.$el.html('')\r
@@ -51,8 +53,13 @@ class Pettanr.Views.Panel.Show.Credits extends Backbone.View
   render: () ->\r
     this.$el.html('')\r
     _.each @pictures, (picture) =>\r
+      @add_picture(picture)\r
+    this\r
+  \r
+  add_picture: (picture) ->\r
+    if not @pictures[picture.get('id')]\r
       picture.fetch({cache: true}).done =>\r
+        @pictures[picture.get('id')] = picture\r
         credit = picture.credit_view()\r
         this.$el.append(credit.render().el)\r
-    this\r
   \r
index f0329e4..5be87e5 100644 (file)
@@ -45,6 +45,9 @@ class Pettanr.Views.SpeechBalloon.Element extends Backbone.View
       this.$el.append(view.clear().el)\r
     this\r
   \r
+  restyle: () ->\r
+    @set_style()\r
+  \r
   set_style: () ->\r
     attr = {style: Pettanr.to_style(@style())}\r
     this.$el.attr(attr)\r
@@ -71,24 +74,24 @@ class Pettanr.Views.SpeechBalloon.Element.Edit extends Pettanr.Views.SpeechBallo
     @listenTo(this, 'active', @active)\r
     @listenTo(this, 'inactive', @inactive)\r
   \r
-  render: () ->\r
-    super()\r
-    elm = @element\r
-    this.$el.draggable {\r
-      stop: (event, ui) ->\r
-        left = $(@).position().left\r
-        top = $(@).position().top\r
-        elm.set({x: parseInt(left), y: parseInt(top)}, {silent: true})\r
-        elm.trigger('move')\r
-    }\r
-    this\r
-  \r
   collect_views: () ->\r
     @views = []  # elements collect by dock\r
   \r
   set_style: () ->\r
     if @balloon\r
       super()\r
+      @listenTo(@balloon, 'input:x', @restyle)\r
+      @listenTo(@balloon, 'input:y', @restyle)\r
+      @listenTo(@balloon, 'input:width', @restyle)\r
+      @listenTo(@balloon, 'input:height', @restyle)\r
+      bln = @balloon\r
+      this.$el.draggable {\r
+        stop: (event, ui) ->\r
+          left = $(@).position().left\r
+          top = $(@).position().top\r
+          bln.set({x: left, y: top}, {silent: true})\r
+          bln.trigger('move')\r
+      }\r
   \r
   active: () ->\r
     $('.ui-resizable-handle', this.el).map ->\r
index d5135e4..c56a0be 100644 (file)
@@ -25,13 +25,6 @@ class Pettanr.Views.SpeechBalloon.ElementFace extends Backbone.View
     this.$el.html('')\r
     symbol = new Pettanr.Views.SpeechBalloon.ElementSymbol({element: @element})\r
     this.$el.append(symbol.render().el)\r
-    speech = @element.get('speech')\r
-    name = Pettanr.truncate(speech.get('content'), 15)\r
-    caption = new Tag.Span({\r
-      class_name: 'elements-tab-face-caption', \r
-      content: _.escape(name)\r
-    })\r
-    this.$el.append(caption.render().el)\r
     rb = new Tag.RowBreak()\r
     this.$el.append(rb.render().el)\r
     this\r
index f7d9fe8..dbb2ab5 100644 (file)
@@ -7,36 +7,52 @@ class Pettanr.Views.Speech.Element extends Backbone.View
     @root = options.root\r
     @spot = options.spot\r
     @speech_balloon = options.parent\r
-    @div = new Tag.Div({\r
-      attr: {\r
-        style: Pettanr.to_style(@inner_style())\r
-      }, \r
-      content: @element.scenario(),\r
-      class_name: 'pettanr-comic-speech-inner'\r
+    c = @inner_class()\r
+    @inner = new c({\r
+      element: @element\r
     })\r
   \r
   clear: () ->\r
     @render()\r
   \r
   render: () ->\r
-    @outer_attr = {style: Pettanr.to_style(@outer_style())}\r
-    this.$el.attr(@outer_attr)\r
-    this.$el.html(@div.render().el)\r
+    attr = {style: Pettanr.to_style(@style())}\r
+    this.$el.attr(attr)\r
+    this.$el.html(@inner.render().el)\r
     this\r
   \r
   add_element: (element) ->\r
     null\r
   \r
-  outer_style: () ->\r
+  style: () ->\r
     {\r
-      top: @element.get('y')\r
-      left: @element.get('x')\r
-      width: @element.get('width'), \r
-      height: @element.get('height'),\r
+      top: Pettanr.to_s(@element.get('y')) + '%'\r
+      left: Pettanr.to_s(@element.get('x')) + '%'\r
+      width: Pettanr.to_s(@element.get('width') + '%'), \r
+      height: Pettanr.to_s(@element.get('height')) + '%',\r
       'z-index': 1\r
     }\r
   \r
-  inner_style: () ->\r
+  inner_class: () ->\r
+    Pettanr.Views.Speech.Element.Inner\r
+  \r
+class Pettanr.Views.Speech.Element.Inner extends Backbone.View\r
+  tagName: 'div'\r
+  className: 'pettanr-comic-speech-inner'\r
+  \r
+  initialize: (options) ->\r
+    @element = options.element\r
+  \r
+  render: () ->\r
+    @restyle()\r
+    this.$el.html(@element.scenario())\r
+    this\r
+  \r
+  restyle: () ->\r
+    attr = {style: Pettanr.to_style(@style())}\r
+    this.$el.attr(attr)\r
+  \r
+  style: () ->\r
     {\r
       'font-size': Pettanr.to_s(@element.get('font_size')) + 'em',\r
       'text-align': @element.text_align_text(), \r
@@ -51,9 +67,21 @@ class Pettanr.Views.Speech.Element.Edit extends Pettanr.Views.Speech.Element
   render: () ->\r
     super()\r
     sb = @speech_balloon\r
-    @div.$el.mouseover -> \r
+    @inner.$el.mouseover -> \r
       sb.trigger('active')\r
-    @div.$el.mouseout -> \r
+    @inner.$el.mouseout -> \r
       sb.trigger('inactive')\r
     this\r
   \r
+  inner_class: () ->\r
+    Pettanr.Views.Speech.Element.Inner.Edit\r
+  \r
+class Pettanr.Views.Speech.Element.Inner.Edit extends Pettanr.Views.Speech.Element.Inner\r
+  \r
+  initialize: (options) ->\r
+    super(options)\r
+    @listenTo(@element, 'input:content', @render)\r
+    @listenTo(@element, 'input:font_size', @restyle)\r
+    @listenTo(@element, 'input:text_align', @restyle)\r
+    @listenTo(@element, 'input:fore_color', @restyle)\r
+  \r
index 4231d73..583a1cd 100644 (file)
@@ -315,7 +315,7 @@ font-family : monospace;
 .ui-tabs-vertical .ui-tabs-nav {
     padding: .2em .1em .2em .2em;
     float: left; 
-    width: 220px;
+    width: 100px;
 }
 .ui-tabs-vertical .ui-tabs-nav li {
     clear: left; width: 100%;