OSDN Git Service

t#:
[pettanr/pettanr.git] / lib / peta / element.rb
index e1abd93..7f24d98 100644 (file)
@@ -20,12 +20,36 @@ module Peta
     
     def self.root_model
       if self.parent_model
-        self.parent_model.root_model
+        if self.parent_model.element?
+          self.parent_model.root_model
+        else
+          self.parent_model
+        end
       else
         self
       end
     end
     
+    # Instance Methods
+    
+    def root
+      pm = self.__send__ self.class.parent_model.item_name
+      if pm.class.element?
+        pm.root
+      else
+        pm
+      end
+    end
+    
+    def own? operators
+      self.root.own? operators
+    end
+    
+    def visible? operators
+      return false unless self.user_visible? operators
+      self.root.visible? operators
+    end
+    
     def self.list_opt_for_panel
       {}
     end