p.w.results_label = get_widget( p.w.document, p.nav_results );
p.w.range_label = get_widget( p.w.document, p.nav_range );
+ p.w.hits_per_page_menu = get_widget( p.w.document, p.nav_hits_per_page );
p.w.next_button = get_widget( p.w.document, p.nav_next );
p.w.prev_button = get_widget( p.w.document, p.nav_prev );
+ /*
+ // Doesn't work for some reason
+ var cmd_set_hits_per_page = get_widget( p.w.document, 'cmd_set_hits_per_page' );
+ cmd_set_hits_per_page.addEventListener(
+ 'command',
+ function (ev) {
+ sdump('D_TRACE','In set_hits handler\n');
+ alert('testing123');
+ try {
+ p.w.display_count = parseInt( p.w.hits_per_page_menu.getAttribute('value') );
+ paged_tree_update_visibility( p );
+ paged_tree_update_nav( p );
+ paged_tree_flesh_records( p );
+ } catch(E) {
+ sdump('D_ERROR',js2JSON(E)+'\n');
+ }
+ sdump('D_TRACE','Leaving set_hits handler\n');
+ },
+ false
+ );
+ */
+
+ p.w.set_hits_per_page = function () {
+ try {
+ p.w.display_count = parseInt( p.w.hits_per_page_menu.getAttribute('value') );
+ paged_tree_update_visibility( p );
+ paged_tree_update_nav( p );
+ paged_tree_flesh_records( p );
+ } catch(E) {
+ sdump('D_ERROR',js2JSON(E)+'\n');
+ }
+ }
+
var cmd_next = get_widget( p.w.document, 'cmd_next' );
cmd_next.addEventListener(
'command',
function (ev) {
- sdump('D_TRACE_ENTER',arg_dump(arguments));
- sdump('D_TRACE_EXIT',arg_dump(arguments));
- return paged_tree_nav_next(p);
+ var backup_select_callback = p.w._select_callback;
+ p.w._select_callback = function (ev) {};
+ var result = paged_tree_nav_next(p);
+ p.w._select_callback = backup_select_callback;
+ return result;
},
false
);
cmd_prev.addEventListener(
'command',
function (ev) {
- sdump('D_TRACE_ENTER',arg_dump(arguments));
- sdump('D_TRACE_EXIT',arg_dump(arguments));
- return paged_tree_nav_prev(p);
+ var backup_select_callback = p.w._select_callback;
+ p.w._select_callback = function (ev) {};
+ var result = paged_tree_nav_prev(p);
+ p.w._select_callback = backup_select_callback;
+ return result;
},
false
);
p.w.tree = get_widget(p.w.document,p.paged_tree);
+ p.w.popup = get_widget(p.w.document,p.popup);
p.w.treecols = p.w.tree.firstChild;
p.w.tc = p.w.tree.lastChild;
+ p.w._context_function = function (ev) {};
+ p.w.popup.addEventListener('popupshowing',function (ev) { return p.w._context_function(ev); },false);
+
+ p.w._select_callback = function (ev) {};
+ p.w.tree.addEventListener('select',function (ev) { return p.w._select_callback(ev); },false);
+
paged_tree_make_columns( p, p.w.treecols, p.cols )
p.w.clear_tree = function () {
empty_widget( p.w.document, p.w.tc );
p.w.current_idx = 0;
- paged_tree_update_nav(p);
+ return paged_tree_update_nav(p);
}
p.w.add_rows = function (ids) {
- sdump('D_TRACE_ENTER',arg_dump(arguments));
- sdump('D_TRACE_EXIT',arg_dump(arguments));
return paged_tree_add_rows(p,p.w.tc,ids);
}
p.w.register_flesh_row_function = function (f) {
- sdump('D_PAGED_TREE',arg_dump(arguments));
- sdump('D_TRACE_ENTER',arg_dump(arguments));
- p.w._flesh_row_function = f;
- sdump('D_TRACE_EXIT',arg_dump(arguments));
+ return p.w._flesh_row_function = f;
}
p.w.register_select_callback = function (f) {
- sdump('D_PAGED_TREE',arg_dump(arguments));
- sdump('D_TRACE_ENTER',arg_dump(arguments));
- p.w._select_callback = f;
- sdump('D_TRACE_EXIT',arg_dump(arguments));
+ return p.w._select_callback = f;
+ }
+
+ p.w.register_context_builder = function (f) {
+ return p.w._context_function = f;
}
p.w.map_cols_to_treeitem = map_array_to_treecells_via_treeitem;
var max = p.w.current_idx + p.w.display_count;
if (max > p.w.tc.childNodes.length)
max = p.w.tc.childNodes.length;
- if (p.w.range_label)
- p.w.range_label.setAttribute('value', min + ' - ' + max );
+ if (p.w.range_label) {
+ if (max > 0)
+ p.w.range_label.setAttribute('value', min + ' - ' + max );
+ else
+ p.w.range_label.setAttribute('value', '0 - 0' );
+ }
if (p.w.next_button) {
if (max < p.w.tc.childNodes.length)
<command id="cmd_next" />
+ <!-- For some reason I can't add an event listener to this and have it fire
+ from the menulist below, so using oncommand instead -->
+ <command id="cmd_set_hits_per_page" />
+
<command id="cmd_broken" oncommand="
alert('Not Yet Implemented'); "/>
<!-- main widget for paged_tree -->
<box id="PagedTree_main" flex="1" orient="vertical">
- <hbox id="PagedTree_nav">
- <label value="&displaying.results;"/>
- <label id="PagedTree_label_range" value="??? - ???" />
- <label value="&displaying.of;"/>
- <label id="PagedTree_label_results" value="???"/>
- <spacer flex="1"/>
- <button id="PagedTree_button_prev" label="&previous.range;" accesskey="&previous.range.key;" command="cmd_prev" disabled="true"/>
- <button id="PagedTree_button_next" label="&next.range;" accesskey="&next.range.key;" command="cmd_next" disabled="true"/>
- </hbox>
+ <hbox id="PagedTree_nav" />
<tree id="PagedTree_tree" flex="1">
<treecols id="PagedTree_columns"/>
- <treechildren id="PagedTree_children"/>
+ <treechildren id="PagedTree_children" context="PagedTree_popup"/>
</tree>
</box>
+<hbox id="PagedTree_nav">
+ <label value="&displaying.results;"/>
+ <label id="PagedTree_label_range" value="??? - ???" />
+ <label value="&displaying.of;"/>
+ <label id="PagedTree_label_results" value="???"/>
+ <spacer flex="1"/>
+ <label id="ptnl1" value="&displaying.hits_per_page;"/>
+ <menulist id="PagedTree_menulist_hits_per_page" oncommand="window.set_hits_per_page()">
+ <menupopup id="ptnmp">
+ <menuitem id="ptnm0" label="10" value="10" />
+ <menuitem id="ptnm1" label="20" value="20" selected="true" />
+ <menuitem id="ptnm2" label="30" value="30" />
+ <menuitem id="ptnm3" label="40" value="40" />
+ <menuitem id="ptnm4" label="50" value="50" />
+ <menuitem id="ptnm5" label="60" value="60" />
+ <menuitem id="ptnm6" label="70" value="70" />
+ <menuitem id="ptnm7" label="80" value="80" />
+ <menuitem id="ptnm8" label="90" value="90" />
+ <menuitem id="ptnm9" label="100" value="100" />
+ </menupopup>
+ </menulist>
+ <button id="PagedTree_button_prev" label="&previous.range;" accesskey="&previous.range.key;" command="cmd_prev" disabled="true"/>
+ <button id="PagedTree_button_next" label="&next.range;" accesskey="&next.range.key;" command="cmd_next" disabled="true"/>
+</hbox>
+
+<!-- Context menus -->
+<popupset id="PagedTree_popupset">
+ <popup id="PagedTree_popup" />
+</popupset>
+
<!-- Accelerator Keys (Accessor Keys are in DTD's) -->
<keyset id="PagedTree_keys">
</keyset>