src/cm/media/js/client/c_selection.js
changeset 532 0bad3613f59d
parent 525 89ef5ed3c48b
child 556 69503659fe8f
equal deleted inserted replaced
531:80859749e6b1 532:0bad3613f59d
    67           r3.setEndAfter(next) ;
    67           r3.setEndAfter(next) ;
    68           
    68           
    69           var ind = parseInt(csStartAncestor.id.substring('sv_'.length)) ;
    69           var ind = parseInt(csStartAncestor.id.substring('sv_'.length)) ;
    70           while(r3.toString().length < range.toString().length) {
    70           while(r3.toString().length < range.toString().length) {
    71               ind++ ;
    71               ind++ ;
    72               var node = CY.one("#sv_"+ind) ;
    72               var node = CY.get("#sv_"+ind) ;
    73               if (node) {
    73               if (node) {
    74                 next = CY.Node.getDOMNode(node) ;
    74                 next = CY.Node.getDOMNode(node) ;
    75                 r3.setEndAfter(next) ;
    75                 r3.setEndAfter(next) ;
    76               }
    76               }
    77               else 
    77               else 
    89           r3.setStartBefore(prev) ;
    89           r3.setStartBefore(prev) ;
    90           
    90           
    91           var ind = parseInt(csEndAncestor.id.substring('sv_'.length)) ;
    91           var ind = parseInt(csEndAncestor.id.substring('sv_'.length)) ;
    92           while(r3.toString().length < range.toString().length) {
    92           while(r3.toString().length < range.toString().length) {
    93               ind-- ;
    93               ind-- ;
    94               var node = CY.one("#sv_"+ind) ;
    94               var node = CY.get("#sv_"+ind) ;
    95               if (node) {
    95               if (node) {
    96                 prev = CY.Node.getDOMNode(node) ;
    96                 prev = CY.Node.getDOMNode(node) ;
    97                 r3.setStartBefore(prev) ;
    97                 r3.setStartBefore(prev) ;
    98               }
    98               }
    99               else 
    99               else 
   106           var textLength = text.length ;
   106           var textLength = text.length ;
   107           
   107           
   108           // gather nodes with id sv_xxxx as candidates for start ancestor
   108           // gather nodes with id sv_xxxx as candidates for start ancestor
   109           var startNodeInds = [] ;
   109           var startNodeInds = [] ;
   110           for (var ind = 0 ;  ; ind++) {
   110           for (var ind = 0 ;  ; ind++) {
   111             var svNode = CY.one("#sv_"+ind) ;
   111             var svNode = CY.get("#sv_"+ind) ;
   112             if (svNode == null) {
   112             if (svNode == null) {
   113               break;
   113               break;
   114             }
   114             }
   115             else {
   115             else {
   116               var svText = svNode.get("text") ;
   116               var svText = svNode.get("text") ;
   121           }
   121           }
   122           
   122           
   123           // gather nodes with id sv_xxxx as candidates for end ancestor
   123           // gather nodes with id sv_xxxx as candidates for end ancestor
   124           var endNodeInds = [] ;
   124           var endNodeInds = [] ;
   125           for (var ind = 0 ;  ; ind++) {
   125           for (var ind = 0 ;  ; ind++) {
   126             var svNode = CY.one("#sv_"+ind) ;
   126             var svNode = CY.get("#sv_"+ind) ;
   127             if (svNode == null) {
   127             if (svNode == null) {
   128               break;
   128               break;
   129             }
   129             }
   130             else {
   130             else {
   131               var svText = svNode.get("text") ;
   131               var svText = svNode.get("text") ;
   138           var stop = false ;
   138           var stop = false ;
   139           for (var i = 0 ; i < startNodeInds.length ; i++) {
   139           for (var i = 0 ; i < startNodeInds.length ; i++) {
   140             for (var j = 0 ; j < endNodeInds.length ; j++) {
   140             for (var j = 0 ; j < endNodeInds.length ; j++) {
   141               var r4 = document.createRange() ;
   141               var r4 = document.createRange() ;
   142               
   142               
   143               var s = CY.Node.getDOMNode(CY.one("#sv_"+startNodeInds[i])) ; var e = CY.Node.getDOMNode(CY.one("#sv_"+endNodeInds[j])) ;
   143               var s = CY.Node.getDOMNode(CY.get("#sv_"+startNodeInds[i])) ; var e = CY.Node.getDOMNode(CY.get("#sv_"+endNodeInds[j])) ;
   144               
   144               
   145               r4.setStartBefore(s) ; r4.setEndAfter(CY.Node.getDOMNode(e)) ;
   145               r4.setStartBefore(s) ; r4.setEndAfter(CY.Node.getDOMNode(e)) ;
   146               
   146               
   147               // does r4 starts after range start and r4 ends before range end ? 
   147               // does r4 starts after range start and r4 ends before range end ? 
   148               if ((-1 < r4.compareBoundaryPoints(0, range)) && (1 > r4.compareBoundaryPoints(2, range))) { 
   148               if ((-1 < r4.compareBoundaryPoints(0, range)) && (1 > r4.compareBoundaryPoints(2, range))) {