X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=Pman.Gnumeric.js;h=be4e8d75195861ee5c5144d3020cde8e6084307b;hb=b9e901eca507e6c4ce523f34308d5c8dec8f97a4;hp=8ddf6367ef28effbb86c9926464932702bd82f8a;hpb=eea8f578fd24f934620ef716dcbf7da2ae2312da;p=Pman.Core diff --git a/Pman.Gnumeric.js b/Pman.Gnumeric.js index 8ddf6367..be4e8d75 100644 --- a/Pman.Gnumeric.js +++ b/Pman.Gnumeric.js @@ -327,7 +327,6 @@ Roo.extend(Pman.Gnumeric, Roo.util.Observable, { } } - }); // read colinfo.. var ci = this.sheet.getElementsByTagNameNS('*','ColInfo'); @@ -834,14 +833,13 @@ Roo.extend(Pman.Gnumeric, Roo.util.Observable, { this.setRowHeight( row + yoff +1, Roo.get(rows[row]).getHeight()); } - var cols = rows[row].getElementsByTagName('td'); - for(var col=0;col < cols.length; col++) { - - + if (cols[col].getAttribute('xls:width')) { + this.setColumnWidth(col, 1 * cols[col].getAttribute('xls:width')); + } var colspan = cols[col].getAttribute('colspan'); colspan = colspan ? colspan *1 : 1; @@ -1123,6 +1121,10 @@ Roo.extend(Pman.Gnumeric, Roo.util.Observable, { }, + writeImageOld : function (row, col, data, width, height, type) + { + + }, /** @@ -1199,7 +1201,7 @@ Roo.extend(Pman.Gnumeric, Roo.util.Observable, { var hh2 = 0.99; var offset_str = ww + ' ' + hh + ' ' + ww2 + ' '+hh2; - //console.log(offset_str ); + //alert(offset_str); soi.setAttribute('ObjectOffset', offset_str); soi.setAttribute('ObjectAnchorType','16 16 16 16'); @@ -1229,83 +1231,51 @@ Roo.extend(Pman.Gnumeric, Roo.util.Observable, { godoc.appendChild(goimage); + if (typeof(this.grid[row]) == 'undefined') { + this.grid[row] = []; + } + if (typeof(this.grid[row][col]) == 'undefined') { + this.createCell(row,col); + } + + this.grid[row][col].value= data; + this.grid[row][col].valueFormat = 'image'; + this.grid[row][col].imageType = type; + this.grid[row][col].width = width; + this.grid[row][col].height = height; + return true; //< /gnm:SheetObjectImage> // < /gnm:Objects> }, - writeFixedImage : function (startRow, startCol, endRow, endCol data, width, height, type) + writeFixedImage : function (startCol, startRow, endCol, endRow, type, data, width, height) { - if (!data) { throw "write Image called with missing data"; } - // our default height width is 50/50 ?! - //console.log('w='+width+',height='+height); - // - row*=1; - col*=1; - height*=1; - width*=1; - var objs = this.sheet.getElementsByTagNameNS('*','Objects')[0]; - var soi = this.doc.createElementNS('http://www.gnumeric.org/v10.dtd', 'gnm:SheetObjectImage'); - - // - - - //alert(gnumeric_colRowToName(row,col)); - - // this is where we really have fun!!!... - // since our design currently assumes the height is enough to fit - // stuff in, we only really need to work out how wide it has to be.. - - // note we should probably use centralized calcs if it fits in the first cell! - // step 1 - work out how many columns it will span.. - // lets hope the spreadsheet is big enought.. - var colwidth = 0; - var endcol=col; - for ( endcol=col;endcol <100; endcol++) { - if (!this.colInfo[endcol]) { - this.colInfo[endcol] = 100; // eak fudge - } - colwidth += this.colInfo[endcol]; - if (colwidth > width) { - break; - } - } + startCol = startCol * 1; + startRow = startRow * 1; + endCol = endCol * 1; + endRow = endRow * 1; + width = width * 1; + height = height * 1; - soi.setAttribute('ObjectBound', - //gnumeric_colRowToName(row,col) + ':' + gnumeric_colRowToName(row+1,col+1)); - this.RCtoCell(row,col) + ':' + this.RCtoCell(row,endcol)); - - var ww = 0.01; // offset a bit... - var hh = 0.01; // + var objs = this.sheet.getElementsByTagNameNS('*','Objects')[0]; + var soi = this.doc.createElementNS('http://www.gnumeric.org/v10.dtd', 'gnm:SheetObjectImage'); - var ww2 = 1 - ((colwidth - width) / this.colInfo[endcol]); - var hh2 = 0.99; + soi.setAttribute('ObjectBound',this.RCtoCell(startRow, startCol) + ':' + this.RCtoCell(endRow, endCol)); - var offset_str = ww + ' ' + hh + ' ' + ww2 + ' '+hh2; - //console.log(offset_str ); - //alert(offset_str); - soi.setAttribute('ObjectOffset', offset_str); + soi.setAttribute('ObjectOffset', '0 0 0 0'); soi.setAttribute('ObjectAnchorType','16 16 16 16'); soi.setAttribute('Direction','17'); soi.setAttribute('crop-top','0.000000'); soi.setAttribute('crop-bottom','0.000000'); soi.setAttribute('crop-left','0.000000'); soi.setAttribute('crop-right','0.000000'); - // ...... < / Content> - + var name = 'Image' + Math.random().toString(36).substring(2); var content = this.doc.createElement('Content'); content.setAttribute('image-type', type ? type : 'jpeg'); @@ -1325,10 +1295,20 @@ Roo.extend(Pman.Gnumeric, Roo.util.Observable, { godoc.appendChild(goimage); + if (typeof(this.grid[startRow]) == 'undefined') { + this.grid[startRow] = []; + } + if (typeof(this.grid[startRow][startCol]) == 'undefined') { + this.createCell(startRow,startCol); + } + + this.grid[startRow][startCol].value= data; + this.grid[startRow][startCol].valueFormat = 'image'; + this.grid[startRow][startCol].imageType = type; + this.grid[startRow][startCol].width = width; + this.grid[startRow][startCol].height = height; + return true; - //< /gnm:SheetObjectImage> - // < /gnm:Objects> - }, /** @@ -1449,7 +1429,7 @@ Roo.extend(Pman.Gnumeric, Roo.util.Observable, { column = column *1; width= width*1; if (typeof(this.colInfoDom[column]) == 'undefined') { - var cols = this.doc.getElementsByTagNameNS('*','Cols')[0]; + var cols = this.sheet.getElementsByTagNameNS('*','Cols')[0]; var ri = this.doc.createElementNS('http://www.gnumeric.org/v10.dtd', 'gnm:ColInfo'); ri.setAttribute('No', column); ri.setAttribute('Unit', width); @@ -1519,6 +1499,23 @@ Roo.extend(Pman.Gnumeric, Roo.util.Observable, { } + if(g.valueFormat == 'image') { + + out+=String.format('
', + g.colspan, g.rowspan, g.cls.join(' '), + 'overflow:hidden;' + + 'width:'+g.width+'px;' + + + 'text-overflow:ellipsis;' + + 'white-space:nowrap;', + g.imageType, + value, g.width, g.height + + ); + c+=(g.colspan-1); + continue; + } + out+=String.format('
{2}
', g.colspan, g.rowspan, value, 'overflow:hidden;' +