Class ::Generic::List (public)
::xotcl::Class ::Generic::List [ -actions actions ] \ [ -bulk_action_method bulk_action_method ] [ -elements elements ] \ [ -rows_per_page rows_per_page ] [ -row_code row_code ] \ [ -class class ] [ -no_create_p no_create_p ] \ [ -create_url create_url ] [ -no_edit_p no_edit_p ] \ [ -edit_url edit_url ] [ -edit_template edit_template ] \ [ -no_delete_p no_delete_p ] [ -delete_url delete_url ] \ [ -delete_template delete_template ] [ -package_id package_id ] \ [ -html_class html_class ] [ -html_main_class html_main_class ] \ [ -html_sub_class html_sub_class ]
Defined in /var/www/openacs.org/packages/xotcl-core/tcl/generic-procs.tcl
Simple OO interface to template::list. This class has been built to allow quick creation of list UIs for generic acs_objects.
Many parameters are homonymous to those for template::list::create and work in the same way, unless stated differently in this documentation.
Despite the high number of object's members, most of them are there for backward compatibility with the procedural API and they seldom need to be specified.
An example of instantiation could just look as this:
# Must be an existing acs_object class on the system. set class "::dev::Location" # As we are talking about acs_objects, our 'delete' # page could of course be the same for every object # in the system. ::Generic::List create list1 -class $class -package_id $package_id -rows_per_page $rows_per_page -delete_url "../delete" -elements { name { label "Name" } street { label "Street" } number { label "Number" } city { label "City" } region { label "Region" } country { label "Country" } coords { label "Coordinates" } } -orderby { default_value name name { label "Name" orderby_desc "name desc" orderby_asc "name asc" } } -row_code { set coords "$latitude $longitude" } list1 generate...while the ADP template would include this:<listtemplate name="list1"></listtemplate>Notice that in this case we didn't have to specify queries, nor populate any multirow by hand: they have come directly from class's data-model. A list built in this way will be paginated automatically.
- Switches:
- -actions (optional)
- Behaves as in template::list::create. If missing, can be automatically generated acting on
create_url
andno_create_p
parameters (see below).- -bulk_action_method (optional)
- Behaves as in template::list::create, but will default to POST method, as it is safer with respect to possible high number of query parameters.
- -elements (optional)
- Behaves as in template::list::create. It must be possible to build every element either through class's instance members, or programmatically (see
row_code
below).- -rows_per_page (optional)
- Behaves as template::list::create's
page_size
parameter. Pagination is automatically for this class. To turn it off, just set this parameter to "" .- -row_code (optional)
- This snippet will be executed for every instance/row in the list, so is similar in spirit to
code_block
argument fordb_multirow
. This will allow the user to build programmatically other elements outside object's data model, override edit and delete url and so on. Code will have access to every variable in the caller scope and to each instance's variable.- -class (optional)
- Is the class (descendant of acs_object) for which this list will be built.
- -no_create_p (optional)
- Tells to the list we don't want instance creation action button to be built automatically.
- -create_url (optional)
- When instance creation url is automatically built, tells the list to which url make it point.
- -no_edit_p (optional)
- Tells to the list we don't want instance edit action button to be built automatically.
- -edit_url (optional)
- When instance edit element is automatically built, tells the list to which url make it point. Page pointed must accept an
item_id
parameter, that will be the primary key of edited instance.- -edit_template (optional)
- When instance edit element is automatically built, use this template to build the element.
- -no_delete_p (optional)
- Tells to the list we don't want instance delete action button to be built automatically.
- -delete_url (optional)
- When instance delete url is automatically built, tells the list to which url make it point. Page pointed must accept an
item_id
parameter, that will be the primary key of deleted instance.- -delete_template (optional)
- When instance delete element is automatically built, use this template to build the element.
- -package_id (optional)
- Is the package for this instance. It has no use for now.
- -html_class (optional)
- Behaves as
class
parameter in template::list::create.- -html_main_class (optional)
- Behaves as
main_class
parameter in template::list::create.- -html_sub_class (optional)
- Behaves as
sub_class
parameter in template::list::create.- Author:
- Antonio Pisano <antonio@elettrotecnica.it>
- Testcases:
- No testcase defined.
Source code: namespace eval ::Generic {} ::nsf::object::alloc ::xotcl::Class ::Generic::List {set :__default_metaclass ::xotcl::Class set :__default_superclass ::xotcl::Object} ::Generic::List instproc get_filters {} { if {${:rows_per_page} ne "" && "rows_per_page" ni ${:filters}} { set opts {} set opt [expr {int(${:rows_per_page} / 2)}] for {set i 0} {$i < 3} {incr i} { lappend opts [list $opt $opt] set opt [expr {$opt*($i+2)}] } append :filters " rows_per_page { label \"[_ acs-templating.Page_Size]\" values {$opts} default_value ${:rows_per_page} }" } set ulevel [expr {${:ulevel} + 1}] set :filters [uplevel $ulevel [list subst ${:filters}]] return ${:filters} } ::Generic::List instproc get_actions {} { if {[string is false ${:no_create_p}]} { set type ${:pretty_name} if {${:create_url} eq ""} {set create_url add-edit} set create_action [list [_ xotcl-core.create_new_type] ${:create_url} [_ xotcl-core.create_new_type]] set :actions [concat $create_action ${:actions}] } return ${:actions} } ::Generic::List instproc generate {} { set cmd [list template::list::create -ulevel [expr {${:ulevel}+1}] -name ${:list_name} -multirow ${:list_name} -actions [:get_actions] -elements [:get_elements] -filters [:get_filters] -orderby ${:orderby}] if {${:bulk_actions} ne ""} { lappend cmd -bulk_actions ${:bulk_actions} -bulk_action_method ${:bulk_action_method} -bulk_action_export_vars ${:bulk_action_export_vars} -key ${:id_column} } if {${:formats} ne ""} { lappend cmd -formats ${:formats} -selected_format ${:selected_format} } if {${:rows_per_page} ne ""} { lappend cmd -page_flush_p t -page_size ${:rows_per_page} -page_groupsize ${:page_groupsize} -page_query [:page_query] } lappend cmd -row_pretty_plural ${:pretty_plural} # These properties will be passed as they are foreach prop { pass_properties checkbox_name orderby_name no_data caption bulk_action_click_function html } { set val [set :$prop] if {$val ne ""} { lappend cmd -${prop} $val } } foreach prop { html_main_class html_sub_class html_class } { set val [set :$prop] set prop [string range $prop 5 end] if {$val ne ""} { lappend cmd -${prop} $val } } {*}$cmd :multirow # Don't put handlers directly on the HTML, but rather define them in JavaScript afterwards template::add_confirm_handler -CSSclass acs-confirm -message [_ acs-subsite.Delete]? } ::Generic::List instproc init {} { set :id_column [${:class} id_column] set :pretty_name [${:class} pretty_name] set :pretty_plural [${:class} pretty_plural] set :list_name ${:name} } ::Generic::List instproc extend_cols {} { set cols {} set specs {} foreach {el spec} [:get_elements] { lappend cols $el foreach {prop val} $spec { if {$prop in {display_col link_url_col}} { lappend cols $val} }}; return $cols } ::Generic::List instproc page_query {} { if {${:orderby} ne ""} { set orderby {:orderby} return [${:class} instance_select_query -select_attributes [list ${:id_column}] -where_clause "\[template::list::filter_where_clauses -name ${:list_name} -and\]" -orderby "\[lrange \[template::list::orderby_clause -name ${:list_name} -orderby\] 2 end\]"] } else { return [${:class} instance_select_query -select_attributes [list ${:id_column}] -where_clause "\[template::list::filter_where_clauses -name ${:list_name} -and\]"] } } ::Generic::List instproc multirow {} { :instvar list_name id_column no_edit_p {edit_url base_edit_url} no_delete_p {delete_url base_delete_url} row_code set ulevel [expr {${:ulevel} + 1}] if {$base_edit_url eq ""} {set base_edit_url "add-edit"} if {$base_delete_url eq ""} {set base_delete_url "delete"} set this_url [::xo::cc url] set extend_cols [:extend_cols] # Create the multirow {*}"template::multirow create $list_name $extend_cols" set multirow_append "template::multirow append $list_name" foreach col $extend_cols {lappend multirow_append "\$$col"} # Loop through objects in this page... foreach item_id [:get_ids] { # ...get the object set o [::xo::db::Class get_instance_from_db -id $item_id] set obj_vars [$o info vars] {*}"$o instvar $obj_vars" set item_id [set $id_column] if {!$no_edit_p} { set edit_url [export_vars -base $base_edit_url {item_id}] } if {!$no_delete_p} { set delete_url [export_vars -base $base_delete_url {item_id {return_url $this_url}}] } # ensure object variables exist and # bring them to the caller scope set upvars [lsort -unique [concat $extend_cols $obj_vars]] foreach col $upvars { if {![info exists $col]} {set $col ""} uplevel $ulevel [list set $col [set $col]] } if {$row_code ne ""} { uplevel $ulevel $row_code } {*}[uplevel $ulevel [list subst $multirow_append]] # Need to clear the area or code block could suffer # variable pollution from leftovers {*}"unset $upvars" } } ::Generic::List instproc get_elements {} { set elements {} # build the edit button if {!${:no_edit_p}} { set type ${:pretty_name} set title [_ xotcl-core.edit_type] lappend elements edit [list link_url_col edit_url display_template ${:edit_template} link_html [list title $title] sub_class narrow] } # edit button will be the first list element, # in between there will be user's elements, # delete button will be last lappend elements {*}${:elements} # build delete button if {!${:no_delete_p}} { set title [_ xotcl-core.delete_item] lappend elements delete [list link_url_col delete_url link_html [list title $title class acs-confirm] display_template ${:delete_template} sub_class narrow] } return $elements } ::Generic::List instproc to_csv {} { template::list::write_csv -name ${:list_name} } ::Generic::List instproc get_ids {} { if {${:rows_per_page} ne ""} { return [template::list::page_get_ids -name ${:list_name} -tcl_list] } # If we are not paginating, just get all ids in table return [::xo::dc list query [subst [:page_query]]] } ::Generic::List instparametercmd edit_url ::Generic::List instparametercmd filters ::Generic::List instparametercmd no_edit_p ::Generic::List instparametercmd actions ::Generic::List instparametercmd html_class ::Generic::List instparametercmd row_code ::Generic::List instparametercmd bulk_action_method ::Generic::List instparametercmd page_groupsize ::Generic::List instparametercmd rows_per_page ::Generic::List instparametercmd ulevel ::Generic::List instparametercmd page ::Generic::List instparametercmd elements ::Generic::List instparametercmd bulk_actions ::Generic::List instparametercmd bulk_action_export_vars ::Generic::List instparametercmd checkbox_name ::Generic::List instparametercmd package_id ::Generic::List instparametercmd selected_format ::Generic::List instparametercmd edit_template ::Generic::List instparametercmd name ::Generic::List instparametercmd html_sub_class ::Generic::List instparametercmd pass_properties ::Generic::List instparametercmd formats ::Generic::List instparametercmd bulk_action_click_function ::Generic::List instparametercmd delete_url ::Generic::List instparametercmd html ::Generic::List instparametercmd html_main_class ::Generic::List instparametercmd class ::Generic::List instparametercmd create_url ::Generic::List instparametercmd caption ::Generic::List instparametercmd delete_template ::Generic::List instparametercmd no_delete_p ::Generic::List instparametercmd no_data ::Generic::List instparametercmd no_create_p ::Generic::List instparametercmd orderby ::Generic::List instparametercmd orderby_name ::nx::slotObj -container slot ::Generic::List ::Generic::List::slot eval {set :__parameter { {actions ""} {name {[namespace tail [self]]}} {bulk_actions ""} {bulk_action_method "post"} {bulk_action_export_vars ""} elements {filters ""} {formats ""} {selected_format ""} {rows_per_page 30} {page 1} {orderby ""} {page_groupsize 10} {row_code ""} class {create_url ""} {edit_url ""} {edit_template {<adp:icon name="edit">}} {delete_url ""} {delete_template {<adp:icon name="trash">}} {no_create_p f} {no_edit_p f} {no_delete_p f} {package_id ""} {ulevel 1} {pass_properties ""} {checkbox_name ""} {orderby_name ""} {no_data ""} {html_main_class ""} {html_sub_class ""} {html_class ""} {html ""} {caption ""} {bulk_action_click_function ""} }} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::ulevel {set :accessor public set :configurable true set :convert false set :default 1 set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::ulevel set :methodname ulevel set :multiplicity 1..1 set :name ulevel set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::page {set :accessor public set :configurable true set :convert false set :default 1 set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::page set :methodname page set :multiplicity 1..1 set :name page set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::elements {set :accessor public set :configurable true set :convert false set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::elements set :methodname elements set :multiplicity 1..1 set :name elements set :per-object false set :position 0 set :required false set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::no_delete_p {set :accessor public set :configurable true set :convert false set :default f set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::no_delete_p set :methodname no_delete_p set :multiplicity 1..1 set :name no_delete_p set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::no_data {set :accessor public set :configurable true set :convert false set :default {} set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::no_data set :methodname no_data set :multiplicity 1..1 set :name no_data set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::delete_template {set :accessor public set :configurable true set :convert false set :default {<adp:icon name="trash">} set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::delete_template set :methodname delete_template set :multiplicity 1..1 set :name delete_template set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::caption {set :accessor public set :configurable true set :convert false set :default {} set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::caption set :methodname caption set :multiplicity 1..1 set :name caption set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::class {set :accessor public set :configurable true set :convert false set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::class set :methodname class set :multiplicity 1..1 set :name class set :per-object false set :position 0 set :required false set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::html_main_class {set :accessor public set :configurable true set :convert false set :default {} set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::html_main_class set :methodname html_main_class set :multiplicity 1..1 set :name html_main_class set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::bulk_actions {set :accessor public set :configurable true set :convert false set :default {} set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::bulk_actions set :methodname bulk_actions set :multiplicity 1..1 set :name bulk_actions set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::orderby {set :accessor public set :configurable true set :convert false set :default {} set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::orderby set :methodname orderby set :multiplicity 1..1 set :name orderby set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::no_create_p {set :accessor public set :configurable true set :convert false set :default f set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::no_create_p set :methodname no_create_p set :multiplicity 1..1 set :name no_create_p set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::package_id {set :accessor public set :configurable true set :convert false set :default {} set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::package_id set :methodname package_id set :multiplicity 1..1 set :name package_id set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::name {set :accessor public set :configurable true set :convert false set :default {[namespace tail [self]]} set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::name set :methodname name set :multiplicity 1..1 set :name name set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::filters {set :accessor public set :configurable true set :convert false set :default {} set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::filters set :methodname filters set :multiplicity 1..1 set :name filters set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::no_edit_p {set :accessor public set :configurable true set :convert false set :default f set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::no_edit_p set :methodname no_edit_p set :multiplicity 1..1 set :name no_edit_p set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::actions {set :accessor public set :configurable true set :convert false set :default {} set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::actions set :methodname actions set :multiplicity 1..1 set :name actions set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::html_sub_class {set :accessor public set :configurable true set :convert false set :default {} set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::html_sub_class set :methodname html_sub_class set :multiplicity 1..1 set :name html_sub_class set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::html {set :accessor public set :configurable true set :convert false set :default {} set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::html set :methodname html set :multiplicity 1..1 set :name html set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::delete_url {set :accessor public set :configurable true set :convert false set :default {} set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::delete_url set :methodname delete_url set :multiplicity 1..1 set :name delete_url set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::bulk_action_click_function {set :accessor public set :configurable true set :convert false set :default {} set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::bulk_action_click_function set :methodname bulk_action_click_function set :multiplicity 1..1 set :name bulk_action_click_function set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::rows_per_page {set :accessor public set :configurable true set :convert false set :default 30 set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::rows_per_page set :methodname rows_per_page set :multiplicity 1..1 set :name rows_per_page set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::create_url {set :accessor public set :configurable true set :convert false set :default {} set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::create_url set :methodname create_url set :multiplicity 1..1 set :name create_url set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::orderby_name {set :accessor public set :configurable true set :convert false set :default {} set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::orderby_name set :methodname orderby_name set :multiplicity 1..1 set :name orderby_name set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::bulk_action_export_vars {set :accessor public set :configurable true set :convert false set :default {} set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::bulk_action_export_vars set :methodname bulk_action_export_vars set :multiplicity 1..1 set :name bulk_action_export_vars set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::checkbox_name {set :accessor public set :configurable true set :convert false set :default {} set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::checkbox_name set :methodname checkbox_name set :multiplicity 1..1 set :name checkbox_name set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::edit_url {set :accessor public set :configurable true set :convert false set :default {} set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::edit_url set :methodname edit_url set :multiplicity 1..1 set :name edit_url set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::edit_template {set :accessor public set :configurable true set :convert false set :default {<adp:icon name="edit">} set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::edit_template set :methodname edit_template set :multiplicity 1..1 set :name edit_template set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::selected_format {set :accessor public set :configurable true set :convert false set :default {} set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::selected_format set :methodname selected_format set :multiplicity 1..1 set :name selected_format set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::html_class {set :accessor public set :configurable true set :convert false set :default {} set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::html_class set :methodname html_class set :multiplicity 1..1 set :name html_class set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::row_code {set :accessor public set :configurable true set :convert false set :default {} set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::row_code set :methodname row_code set :multiplicity 1..1 set :name row_code set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::pass_properties {set :accessor public set :configurable true set :convert false set :default {} set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::pass_properties set :methodname pass_properties set :multiplicity 1..1 set :name pass_properties set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::bulk_action_method {set :accessor public set :configurable true set :convert false set :default post set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::bulk_action_method set :methodname bulk_action_method set :multiplicity 1..1 set :name bulk_action_method set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::formats {set :accessor public set :configurable true set :convert false set :default {} set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::formats set :methodname formats set :multiplicity 1..1 set :name formats set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init} ::nsf::object::alloc ::xotcl::Attribute ::Generic::List::slot::page_groupsize {set :accessor public set :configurable true set :convert false set :default 10 set :defaultmethods {} set :disposition alias set :domain ::Generic::List set :incremental 0 set :manager ::Generic::List::slot::page_groupsize set :methodname page_groupsize set :multiplicity 1..1 set :name page_groupsize set :per-object false set :position 0 set :required false set :substdefault 0b111 set :trace none : init}XQL Not present: Generic, PostgreSQL, Oracle