src/cm/media/js/client/c_selection.js
changeset 600 fda73ac53450
parent 558 5ba711a2bd06
equal deleted inserted replaced
599:6c2ef083d89f 600:fda73ac53450
    69           r3.setEndAfter(next) ;
    69           r3.setEndAfter(next) ;
    70           
    70           
    71           var ind = parseInt(csStartAncestor.id.substring('sv_'.length)) ;
    71           var ind = parseInt(csStartAncestor.id.substring('sv_'.length)) ;
    72           while(r3.toString().length < range.toString().length) {
    72           while(r3.toString().length < range.toString().length) {
    73               ind++ ;
    73               ind++ ;
    74               var node = CY.get("#sv_"+ind) ;
    74               var node = CY.one("#sv_"+ind) ;
    75               if (node) {
    75               if (node) {
    76                 next = CY.Node.getDOMNode(node) ;
    76                 next = CY.Node.getDOMNode(node) ;
    77                 r3.setEndAfter(next) ;
    77                 r3.setEndAfter(next) ;
    78               }
    78               }
    79               else 
    79               else 
    91           r3.setStartBefore(prev) ;
    91           r3.setStartBefore(prev) ;
    92           
    92           
    93           var ind = parseInt(csEndAncestor.id.substring('sv_'.length)) ;
    93           var ind = parseInt(csEndAncestor.id.substring('sv_'.length)) ;
    94           while(r3.toString().length < range.toString().length) {
    94           while(r3.toString().length < range.toString().length) {
    95               ind-- ;
    95               ind-- ;
    96               var node = CY.get("#sv_"+ind) ;
    96               var node = CY.one("#sv_"+ind) ;
    97               if (node) {
    97               if (node) {
    98                 prev = CY.Node.getDOMNode(node) ;
    98                 prev = CY.Node.getDOMNode(node) ;
    99                 r3.setStartBefore(prev) ;
    99                 r3.setStartBefore(prev) ;
   100               }
   100               }
   101               else 
   101               else 
   108           var textLength = text.length ;
   108           var textLength = text.length ;
   109           
   109           
   110           // gather nodes with id sv_xxxx as candidates for start ancestor
   110           // gather nodes with id sv_xxxx as candidates for start ancestor
   111           var startNodeInds = [] ;
   111           var startNodeInds = [] ;
   112           for (var ind = 0 ;  ; ind++) {
   112           for (var ind = 0 ;  ; ind++) {
   113             var svNode = CY.get("#sv_"+ind) ;
   113             var svNode = CY.one("#sv_"+ind) ;
   114             if (svNode == null) {
   114             if (svNode == null) {
   115               break;
   115               break;
   116             }
   116             }
   117             else {
   117             else {
   118               var svText = svNode.get("text") ;
   118               var svText = svNode.get("text") ;
   123           }
   123           }
   124           
   124           
   125           // gather nodes with id sv_xxxx as candidates for end ancestor
   125           // gather nodes with id sv_xxxx as candidates for end ancestor
   126           var endNodeInds = [] ;
   126           var endNodeInds = [] ;
   127           for (var ind = 0 ;  ; ind++) {
   127           for (var ind = 0 ;  ; ind++) {
   128             var svNode = CY.get("#sv_"+ind) ;
   128             var svNode = CY.one("#sv_"+ind) ;
   129             if (svNode == null) {
   129             if (svNode == null) {
   130               break;
   130               break;
   131             }
   131             }
   132             else {
   132             else {
   133               var svText = svNode.get("text") ;
   133               var svText = svNode.get("text") ;
   140           var stop = false ;
   140           var stop = false ;
   141           for (var i = 0 ; i < startNodeInds.length ; i++) {
   141           for (var i = 0 ; i < startNodeInds.length ; i++) {
   142             for (var j = 0 ; j < endNodeInds.length ; j++) {
   142             for (var j = 0 ; j < endNodeInds.length ; j++) {
   143               var r4 = document.createRange() ;
   143               var r4 = document.createRange() ;
   144               
   144               
   145               var s = CY.Node.getDOMNode(CY.get("#sv_"+startNodeInds[i])) ; var e = CY.Node.getDOMNode(CY.get("#sv_"+endNodeInds[j])) ;
   145               var s = CY.Node.getDOMNode(CY.one("#sv_"+startNodeInds[i])) ; var e = CY.Node.getDOMNode(CY.one("#sv_"+endNodeInds[j])) ;
   146               
   146               
   147               r4.setStartBefore(s) ; r4.setEndAfter(CY.Node.getDOMNode(e)) ;
   147               r4.setStartBefore(s) ; r4.setEndAfter(CY.Node.getDOMNode(e)) ;
   148               
   148               
   149               // does r4 starts after range start and r4 ends before range end ? 
   149               // does r4 starts after range start and r4 ends before range end ? 
   150               if ((-1 < r4.compareBoundaryPoints(0, range)) && (1 > r4.compareBoundaryPoints(2, range))) { 
   150               if ((-1 < r4.compareBoundaryPoints(0, range)) && (1 > r4.compareBoundaryPoints(2, range))) {