Revision: 3321
http://vexi.svn.sourceforge.net/vexi/?rev=3321&view=rev
Author: clrg
Date: 2008-12-23 02:36:55 +0000 (Tue, 23 Dec 2008)
Log Message:
-----------
More table enhancement
Modified Paths:
--------------
trunk/widgets/org.vexi.widgets/src/org/vexi/lib/widget/row.t
trunk/widgets/org.vexi.widgets/src/org/vexi/lib/widget/table.t
Modified: trunk/widgets/org.vexi.widgets/src/org/vexi/lib/widget/row.t
===================================================================
--- trunk/widgets/org.vexi.widgets/src/org/vexi/lib/widget/row.t
2008-12-21 23:17:25 UTC (rev 3320)
+++ trunk/widgets/org.vexi.widgets/src/org/vexi/lib/widget/row.t
2008-12-23 02:36:55 UTC (rev 3321)
@@ -35,10 +35,16 @@
cascade = v;
var n = trapee.numchildren;
for (var i=0; n>i; i++) {
- trapee[i].v_head = v ? v[i] : null;
- if (v==null) continue;
- trapee[i].display = v[i].display;
- trapee[i].minwidth = v[i].contentwidth;
+ var c = trapee[i];
+ if (v==null) {
+ c.v_head = null;
+ continue;
+ }
+ var h = v[i];
+ c.shrink = h.hshrink;
+ c.display = h.display;
+ c.minwidth = h.contentwidth;
+ c.maxwidth = h.maxwidth;
}
}
Modified: trunk/widgets/org.vexi.widgets/src/org/vexi/lib/widget/table.t
===================================================================
--- trunk/widgets/org.vexi.widgets/src/org/vexi/lib/widget/table.t
2008-12-21 23:17:25 UTC (rev 3320)
+++ trunk/widgets/org.vexi.widgets/src/org/vexi/lib/widget/table.t
2008-12-23 02:36:55 UTC (rev 3321)
@@ -50,6 +50,7 @@
thisbox.th_hscroll;
thisbox.th_vscroll;
thisbox.fetchData;
+ thisbox.setViewInfo;
// functions that should be forwarded onto th_body
thisbox.loadData = static.bodyNotSet;
@@ -168,12 +169,12 @@
// establish the rows the table is attempting to view
viewindex = max(floor((-th_bodyview.y) / rowheight), 0);
viewfinal = min(numrows, viewindex+ceil(th_bodyport.height /
rowheight)+1);
+ if (setViewInfo) setViewInfo(viewindex, viewfinal-viewindex+1);
var fetchindex, fetchcount;
- if (thisbox.setInfo) thisbox.setInfo(viewindex,
viewindex-viewfinal);
// fetch all the rows on display
if (fetchfull or activeindex==null or activeindex>=viewfinal or
viewindex>=activefinal) {
fetchindex = viewindex;
- fetchcount = viewfinal-viewindex;
+ fetchcount = viewfinal-viewindex+1;
// repeat attempt to fetch rows on display
} else if (activeindex==viewindex and activefinal==viewfinal) {
//util.common..logException("repeat:
"+activeindex+"->"+activefinal);
@@ -184,7 +185,7 @@
fetchcount = activeindex-viewindex;
// previous display clips below desired display
} else {
- fetchindex = activefinal;
+ fetchindex = activefinal+1;
fetchcount = viewfinal-activefinal;
}
// nothing to fetch
@@ -198,7 +199,7 @@
// keep body in sync with bodyport
b.height = height;
// our starting y position for offsetting rows
- viewoffset = -(viewy%rowheight);
+ viewoffset = -(ceil(viewy)%rowheight);
for (var i=0; n>i; i++) {
r = b[i];
if (r) {
@@ -288,8 +289,8 @@
/** if fetchData is defined, become a large dynamic table */
thisbox.fetchData ++= function(v) {
+ cascade = v;
initAsDynamic();
- cascade = v;
}
/** used for setting up dynamic tables */
@@ -369,8 +370,8 @@
return;
}
- /** match column widths with column headers */
- var colwidthWrite = function(v) {
+ /** match column minwidths with column header contentwidth */
+ var col_minwidthWrite = function(v) {
cascade = v;
var ind = th_head.indexof(trapee);
if (th_foot and th_foot[ind]) th_foot[ind].minwidth = v;
@@ -378,6 +379,15 @@
for (var i=0; n>i; i++) th_body[i][ind].minwidth = v;
}
+ /** match column properties to column header properties */
+ var col_propWrite = function(v) {
+ cascade = v;
+ var ind = th_head.indexof(trapee);
+ if (th_foot and th_foot[ind]) th_foot[ind][trapname] = v;
+ var n = th_body.numchildren;
+ for (var i=0; n>i; i++) th_body[i][ind][trapname] = v;
+ }
+
/** set up table components */
thisbox.v_container ++= function(v) {
cascade = v;
@@ -398,21 +408,33 @@
// set up existing column headers
for (var i=0; c.numchildren > i; i++) {
- c[i].action ++= actionWrite;
- c[i].contentwidth ++= colwidthWrite;
+ var h = c[i];
+ h.action ++= actionWrite;
+ h.contentwidth ++= col_minwidthWrite;
+ h.display ++= col_propWrite;
+ h.hshrink ++= col_propWrite;
+ h.maxwidth ++= col_propWrite;
}
// assign functions to new column headers
- c.Children ++= function(e) {
- if (e) {
- e.action ++= actionWrite;
- e.contentwidth ++= colwidthWrite;
+ c.Children ++= function(h) {
+ if (h) {
+ h.action ++= actionWrite;
+ h.contentwidth ++= col_minwidthWrite;
+ h.display ++= col_propWrite;
+ h.hshrink ++= col_propWrite;
+ h.maxwidth ++= col_propWrite;
+ } else {
+ var _h = c[trapname];
+ if (_h) {
+ _h.action --= actionWrite;
+ _h.contentwidth --= col_minwidthWrite;
+ _h.display --= col_propWrite;
+ _h.hshrink --= col_propWrite;
+ _h.maxwidth --= col_propWrite;
+ }
}
- if (e == null and c[trapname]) {
- c[trapname].action --= actionWrite;
- c[trapname].contentwidth --= colwidthWrite;
- }
- cascade = e;
+ cascade = h;
}
return;
}
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
_______________________________________________
Vexi-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/vexi-svn