OSDN Git Service

fix orm
[pettanr/pettanr.git] / lib / editor / editor.rb
index 878cc0d..957003e 100644 (file)
+require_dependency "editor/dock"
+require_dependency "editor/dock/dock"
 module Editor
 
   class Editor
-    class Dock
-      attr_accessor :editor, :bodies
+    include EditorModule
+    
+    class Generator
       def initialize editor
         @editor = editor
-        @root_dock_body = DockBody.new(self, 0, )
-        @root_dock_body.label = DockLabel.new(@root_dock_body, 'panel')
-        @root_dock_body.bay = RootBay.new(@root_dock_body)
-        
-        @element_dock_body = DockBody.new(self, 0, )
-        @element_dock_body.label = DockLabel.new(@element_dock_body, 'elements')
-        @element_dock_body.bay = ElementBay.new(@element_dock_body)
-        
-        @torder_dock_body = DockBody.new(self, 0, )
-        @torder_dock_body.label = DockLabel.new(@torder_dock_body, 'torder')
-        @torder_dock_body.bay = TorderBay.new(@torder_dock_body)
-        
-        @zorder_dock_body = DockBody.new(self, 0, )
-        @zorder_dock_body.label = DockLabel.new(@zorder_dock_body, 'zorder')
-        @zorder_dock_body.bay = ZorderBay.new(@zorder_dock_body)
-        
-        @new_dock_body = DockBody.new(self, 0, )
-        @new_dock_body.label = DockLabel.new(@new_dock_body, 'new')
-        @new_dock_body.bay = NewBay.new(@new_dock_body)
-        
-        @bodies = [
-          @root_dock_body, @element_dock_body, @torder_dock_body, @zorder_dock_body, @new_dock_body
-        ]
       end
       
       def root_item
         @editor.root_item
       end
       
-    end
-    
-    class DockBody
-      attr_accessor :dock, :index, :label, :bay
-      def initialize dock, index
-        @dock = dock
-        @index = index
-        @label = label
-        @bay = bay
-      end
-      
-      def root_item
-        @dock.root_item
-      end
-      
-    end
-    
-    class DockLabel
-      attr_accessor :dock_body, :caption
-      def initialize dock_body, caption
-        @dock_body = dock_body
-        @caption = caption
-      end
-      
-      def root_item
-        @dock_body.root_item
-      end
-      
-      def index
-        @dock_body.index
-      end
-      
-      def label_id
-        "tabs-1-tab"
-      end
-      
-      def bay_id
-        @dock_body.bay.bay_id
-      end
-    end
-    
-    class Bay
-      attr_accessor :dock_body, :template_name
-      def initialize dock_body
-        @dock_body = dock_body
-        @template_dir = 'templates/r/editor/'
-        @template_name = @template_dir
-      end
-      
-      def root_item
-        @dock_body.root_item
-      end
-      
-      def index
-        @dock_body.index
-      end
-      
-      def label
-        @dock_body.label
-      end
-      
-      def label_id
-        self.label.label_id
-      end
-      
-      def bay_id
-        "tabs-2"
-      end
-      
-    end
-    
-    class Board
-      attr_accessor :bay, :board_index, :label, :bucket
-      def initialize bay, board_index, element
-        @bay = bay
-        @board_index = board_index
-        @element = element
-      end
-      
-      def root_item
-        @bay.root_item
+      def template_dir
+        'templates/r/editor/'
       end
       
-      def bay_index
-        @bay.index
+      def template_file_name
+        'generator'
       end
       
-      def header_class
-        ""
+      def template_name
+        self.template_dir + self.template_file_name
       end
       
     end
     
-    class BoardLabel
-      def initialize board, caption
-      end
-      
-      def class_name
-        "elements-tabs"
-      end
-      
-    end
-    
-    class SimpleBay < Bay
-      attr_accessor :bucket, :bucket_template_name
-      def initialize dock_body
-        super
-        @template_name = @template_dir + 'simple_bay'
-        @bucket = nil
-        @bucket_template_name = @template_dir + ''
-      end
-      
-    end
-    
-    class BoardBay < Bay
-      attr_accessor :boards
-      def initialize dock_body
-        super
-        @template_name = @template_dir + 'board_bay'
-      end
-      
-    end
-    
-    class Bucket
-      def class_name
-        "elements-tabs"
-      end
-      
-    end
-    
-    class RootBay < SimpleBay
-      def initialize dock_body
-        super
-        form_manager = Pettanr::Application::manifest.form_managers[self.root_item.form_name]
-        mounted = true
-        @bucket = form_manager.open self.root_item, @dock_body.dock.editor.operators, mounted
-        @bucket_template_name = @template_dir + 'element_form'
-      end
-    end
-    
-    class ElementBay < BoardBay
-      def initialize dock_body
-        super
-        @boards = self.root_item.panel_elements.map {|element| 
-          board = ElementBoard.new self, index, element
-          board_label = BoardLabel.new board 
-          bucket = form_manager.open self.root_item, @dock_body.dock.editor.operators, mounted
-          bucket_template_name = @template_dir + 'element_form'
-          board_bucket = bucket
-          board.label = board_label
-          board.bucket = board_bucket
-          board
-        }
-      end
-      
-    end
-    
-    class TorderBay < BoardBay
-      def initialize dock_body
-        super
-        @boards = self.root_item.panel_elements.map {|element| 
-          board = TorderBoard.new self, index, element
-          board_label = BoardLabel.new board 
-          bucket = form_manager.open self.root_item, @dock_body.dock.editor.operators, mounted
-          bucket_template_name = @template_dir + 'element_form'
-          board_bucket = bucket
-          board.label = board_label
-          board.bucket = board_bucket
-          board
-        }
-      end
-      
-    end
-    
-    class ZorderBay < BoardBay
-      def initialize dock_body
-        super
-        @boards = self.root_item.panel_elements.map {|element| 
-          board = ZorderBoard.new self, index, element
-          board_label = BoardLabel.new board 
-          bucket = form_manager.open self.root_item, @dock_body.dock.editor.operators, mounted
-          bucket_template_name = @template_dir + 'element_form'
-          board_bucket = bucket
-          board.label = board_label
-          board.bucket = board_bucket
-          board
-        }
-      end
-      
+    attr_accessor :root_item, :dock, :generator, :operators
+    def initialize root_item, operators
+      @root_item = root_item
+      @operators = operators
+      @dock = self.new_dock
+      @generator = Generator.new self
     end
     
-    class NewBay < BoardBay
-      def initialize dock_body
-        super
-        @boards = self.root_item.panel_elements.map {|element| 
-          board = NewBoard.new self, index, element
-          board_label = BoardLabel.new board 
-          bucket = form_manager.open self.root_item, @dock_body.dock.editor.operators, mounted
-          bucket_template_name = @template_dir + 'element_form'
-          board_bucket = bucket
-          board.label = board_label
-          board.bucket = board_bucket
-          board
-        }
-      end
-      
-    end
+    #InstanceMethods
     
-    class ElementBoard < Board
-      def class_name
-        "elements-tabs"
-      end
-      
+    def new_dock
+      Dock.new self
     end
     
-    class TorderBoard < Board
-      def class_name
-        "tsort-box"
-      end
-      
+    def template_dir
+      'templates/r/editor/'
     end
     
-    class ZorderBoard < Board
-      def class_name
-        "zsort-box"
-      end
-      
+    def template_file_name
+      'editor'
     end
     
-    class NewBoard < Board
+    def template_name
+      self.template_dir + self.template_file_name
     end
     
-    class Generator
-      def initialize editor
-        @editor = editor
-      end
-      
-      def root_item
-        @editor.root_item
-      end
-      
+    def dom_id
+      'editor-' + @root_item.id.to_s
     end
     
-    attr_accessor :root_item, :dock, :generator, :operators
-    def initialize root_item, operators
-      @root_item = root_item
-      @operators = operators
-      @dock = Dock.new self
-      @generator = Generator.new self
+    def dom_class
+      'editor'
     end
     
-    #InstanceMethods
-    
     def render view
       @docks.map {|element| 
         ElementTab.new self, element
       }
     end
   end
+  
 end