int width = (int)c.css.getFloatProperty((Element)cell.node,"width",false);
int width = (int)c.css.getFloatProperty((Element)cell.node,"width",avail_width,false);
    public void calculateWidths(int avail_width, Context c) {        //u.p("calculating columns from total space of: " + avail_width);        //u.p("total column width = " + total_cols);                // get number of columns and init array        int total_cols = getTotalColumnCount();        int[] widths = new int[total_cols];                // loop over top cells looking for explict widths        int col_count = 0;        for(int i=0; i<top_cells.size(); i++) {            Cell cell = (Cell)top_cells.get(i);            if(c.css.hasProperty((Element)cell.node,"width",false)) {                int width = (int)c.css.getFloatProperty((Element)cell.node,"width",false);                //u.p("got width: " + width);                for(int j=col_count; j<col_count+cell.col_span; j++) {                    widths[j] = width/cell.col_span;                    avail_width -= width/cell.col_span;                }            }            col_count += cell.col_span;        }        //u.p("widths");        //u.p(widths);                // get number of unset columns        int unset_cols = 0;        for(int i=0; i<widths.length; i++) {            if(widths[i] <= 0) {                unset_cols++;            }        }        //u.p("unset cols count = " + unset_cols);                        for(int i=0; i<total_cols; i++) {            //Cell cell = (Cell)top_cells.get(i);            if(widths[i] == 0) {                widths[i] = avail_width/unset_cols;            }            //u.p("looking at: " + cell);            //u.p("set width to: " + widths[i]);        }        column_widths = widths;        //u.p("final widths");        //u.p(column_widths);    }