Changeset 321
- Timestamp:
- 07/07/09 23:36:45 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/model/sources/office/model/base/mediaWeb/mw.doss/_mediaWeb/mwFragment.xbl.xml
r320 r321 4 4 <content orient="vertical" flex="1"> 5 5 <xul:toolbar class="fragToolbar"> 6 <xul:toolbarbutton anonid="btnPaste" class="btnPaste" label=" Coller" oncommand="document.getBindingParent(this).pasteFrag();" tooltiptext="Coller le fragment web depuis le presse-papier"/>7 <xul:toolbarbutton anonid="btnCopy" class="btnCopy" label=" Copier" oncommand="document.getBindingParent(this).copyFrag();" tooltiptext="Copier le fragment web dans le presse-papier" style="display:none;"/>6 <xul:toolbarbutton anonid="btnPaste" class="btnPaste" label="Coller" oncommand="document.getBindingParent(this).pasteFrag();" tooltiptext="Coller le fragment web depuis le presse-papier"/> 7 <xul:toolbarbutton anonid="btnCopy" class="btnCopy" label="Copier" oncommand="document.getBindingParent(this).copyFrag();" tooltiptext="Copier le fragment web dans le presse-papier" style="display:none;"/> 8 8 </xul:toolbar> 9 9 <xul:vbox> … … 29 29 <body><![CDATA[ 30 30 try{ 31 // this.fPreviewFrame.contentDocument.body.style.font = "sans-serif 11pt";32 31 var vXbl = this; 33 32 window.setTimeout(function(){vXbl.refresh()}, 10); … … 39 38 try{ 40 39 var vVal = this.realValue; 41 if (!vVal) return; 42 var vDoc = new DOMParser().parseFromString("<root>"+vVal+"</root>", "text/xml"); 43 var vTargetRoot = this.fPreviewFrame.contentDocument.body; 44 while(vTargetRoot.hasChildNodes()) vTargetRoot.removeChild(vTargetRoot.lastChild); 45 var vNode = vDoc.documentElement.firstChild; 46 while(vNode) { 47 vTargetRoot.appendChild(vTargetRoot.ownerDocument.importNode(vNode, true)); 48 vNode = vNode.nextSibling; 40 var vTargetDoc = this.fPreviewFrame.contentDocument; 41 var vTargetRoot = vTargetDoc.body; 42 vTargetRoot.style.font = "caption"; 43 if (!vVal || vVal == "") { 44 vDiv = vTargetDoc.createElement("div"); 45 vDiv.style.position = "absolute"; 46 vDiv.style.height = "20px"; 47 vDiv.style.width = "100%"; 48 vDiv.style.top = "50%"; 49 vDiv.style.marginTop = "-10px"; 50 vDiv.style.textAlign = "center"; 51 vDiv.style.color = "silver"; 52 vDiv.style.fontStyle = "italic"; 53 vDiv.innerHTML = "Veuillez coller un fragment HTML." 54 vTargetRoot.appendChild(vDiv); 55 } else { 56 var vDoc = new DOMParser().parseFromString("<root>"+vVal+"</root>", "text/xml"); 57 while(vTargetRoot.hasChildNodes()) vTargetRoot.removeChild(vTargetRoot.lastChild); 58 var vNode = vDoc.documentElement.firstChild; 59 while(vNode) { 60 vTargetRoot.appendChild(vTargetRoot.ownerDocument.importNode(vNode, true)); 61 vNode = vNode.nextSibling; 62 } 63 this.fBtnCopy.style.display = this.realValue && this.realValue.length > 0 ? "" : "none"; 64 var vXbl = this; 65 window.setTimeout(function(){vXbl.autoSize()}, 100); 49 66 } 50 this.fBtnCopy.style.display = this.realValue && this.realValue.length > 0 ? "" : "none";51 this.autoSize();52 67 } catch(e){xed.debug("ERROR - mwFragment.refresh: "+e)} 53 68 ]]></body> … … 55 70 <method name="autoSize"> 56 71 <body><![CDATA[ 72 //xed.debug("mwFragment.autoSize"); 73 var vDocBody = this.fPreviewFrame.contentDocument.body; 74 var vHeight = Math.max(this.xToInt(vDocBody.scrollHeight), this.xToInt(vDocBody.lastChild.offsetTop) + this.xToInt(vDocBody.lastChild.clientHeight)+8); 57 75 this.fPreviewFrame.parentNode.height = 100; 58 this.fPreviewFrame.parentNode.height = this.fPreviewFrame.contentDocument.body.scrollHeight+5;76 this.fPreviewFrame.parentNode.height = vHeight+2; 59 77 ]]></body> 60 78 </method> … … 67 85 var vText = xed_transf.getStringDataFromTransferable(vTrans, xed_transf.FLAVOUR_TEXT_UNICODE); 68 86 var vHtmlDoc = this.fPreviewFrame.contentDocument; 69 70 87 vHtmlDoc.body.innerHTML = vText; 71 72 88 var vXhtmlRoot = document.createDocumentFragment(); 73 74 89 function cloneChildren2Xhtml(pHtmlNode, pXhtml) { 75 90 var vNode = pHtmlNode.firstChild; … … 96 111 } 97 112 cloneChildren2Xhtml(vHtmlDoc.body, vXhtmlRoot); 98 99 113 var vEncoder = Components.classes["@mozilla.org/layout/documentEncoder;1?type=application/xhtml+xml"].createInstance(Components.interfaces.nsIDocumentEncoder); 100 114 vEncoder.init(vXhtmlRoot.ownerDocument, "application/xhtml+xml", 0); 101 102 115 vEncoder.setContainerNode(vXhtmlRoot); 103 116 var vEncFrag = vEncoder.encodeToString(); … … 105 118 this.updateVal(vEncFrag); 106 119 this.fBtnCopy.style.display = this.realValue && this.realValue.length > 0 ? "" : "none"; 107 this.autoSize(); 120 var vXbl = this; 121 window.setTimeout(function(){vXbl.autoSize()}, 100); 108 122 } catch(e){xed.debug("ERROR - mwFragment.pasteFrag: "+e)} 109 123 ]]></body> … … 111 125 <method name="copyFrag"> 112 126 <body><![CDATA[ 113 xed.debug("mwFragment.copyFrag");127 //xed.debug("mwFragment.copyFrag"); 114 128 Components.classes['@mozilla.org/widget/clipboardhelper;1'].getService(Components.interfaces.nsIClipboardHelper).copyString(xed.getBind(this).fValue); 115 129 ]]></body> … … 140 154 this.dispatchEvent(vEvent); 141 155 return true; 142 } catch(e){xed.debug( e);}156 } catch(e){xed.debug("ERROR - mwFragment.updateVal: "+e);} 143 157 ]]></body> 144 158 </method> 145 159 <method name="xToInt"> 160 <parameter name="pVal"/> 161 <body><![CDATA[ 162 var vRet; 163 return isNaN(vRet = parseInt(pVal))? 0 : vRet; 164 ]]></body> 165 </method> 146 166 </implementation> 147 167 </binding> 148 168 </bindings> 169
Note: See TracChangeset
for help on using the changeset viewer.