Sha256: 413bbb159e69c3d915661813cc445af4a2cd4b363c5ed612e9c02bdc27b44354
Contents?: true
Size: 1.57 KB
Versions: 4
Compression:
Stored size: 1.57 KB
Contents
module Netzke # Abstract GridPanel-based editor for a JSON array of homogenious objects. # Inherit from it in order to override: # <tt>store_data</p> - passes the data to be saved (e.g. to the persistant storage) # <tt>initial_data</p> - should return initial data (e.g. from the persistant storage) # For an example of an implementation, see Netzke::FieldsConfigurator. class JsonArrayEditor < GridPanel def initialize(*args) super data_class.configure(:owner => global_id, :columns => dynamic_fields, :initial_data => initial_data) end def data_class NetzkePersistentArrayAutoModel end # Fields for NetzkePersistentArrayAutoModel (override it) def dynamic_fields default_columns.collect { |c| {:name => c[:name], :type => c[:attr_type], :default => c[:default_value]} } end # Default predifined columns (override if needed) def default_columns [{ :name => :id, :attr_type => :integer },{ :name => :name, :attr_type => :string },{ :name => :position, :attr_type => :integer }] end # Don't show the config tool # def config_tool_needed? # false # end def before_load data_class.rebuild_table super end private # Override this def store_data(data); end # Override this def initial_data [] end # This is an override of GridPanel#on_data_changed def on_data_changed store_data(data_class.all_columns) end end end
Version data entries
4 entries across 4 versions & 1 rubygems