#3469: Simply range walking codes
-----------------------+----------------------------------------------------
 Reporter:  garry.yao  |       Owner:              
     Type:  Bug        |      Status:  new         
 Priority:  High       |   Milestone:  CKEditor 3.0
Component:  General    |     Version:              
 Keywords:             |  
-----------------------+----------------------------------------------------
 The new range walker API is about to be ready with #3367, it introduced a
 completely new simplified way to perform daily range work, it's concise
 and powerful to support the the following ways when walk along
 range.[[BR]]
 We should try to replace the bells and whistles we've had in v2 for ranges
 manipulation with this new API after we close #3367.

 Now we could:
  1. Walking along the content inside the range, mostly useful for style
 system.
 {{{
 outside [->...inside...<-]outside
 }}}
  With
 {{{
 #!js
 var walker = new CKEDITOR.dom.walker( range ), node;
 while ( node = walker.next() )
 {
         // Node processing...
 }
 }}}
  1. Walking along the other opposite two sides of the range, mostly useful
 for enlargement and checking block boundary.
 {{{
 outside <-[ ...inside...]-> outside
 }}}
  With
 {{{
 #!js
 // E.g. Walking along the left out side
 var walkerRange = new CKEDITOR.dom.range();
 walkerRange.setStartAt( document.getBody(), CKEDITOR.POSITION_AFTER_START
 );
 walkerRange.setEndAt( range.startContainer, range.startOffset );
 walker.guard = function()
 {
         //// Node processing...
 };
 do
 {
         node = walker.next()
 }
 while (  node )

 }}}
  1. Retrieve the boundary nodes of collapsed range:
 {{{
 leftBoundaryNode<-^->rightBoundaryNode
 }}}
  With
 {{{
 #!js
 // E.g. Get the end boundary node after the range.
 var walkerRange = new CKEDITOR.dom.range();
 walkerRange.setStartAt( range.endContainer, range.endOffset );
 walkerRange.setEndAt( document.getBody(), CKEDITOR.POSITION_BEFORE_END );
 var endBoundaryNode = walkerRange.next();
 }}}
  1. Even other usages could be expanded...

-- 
Ticket URL: <http://dev.fckeditor.net/ticket/3469>
FCKeditor <http://www.fckeditor.net/>
The text editor for Internet
------------------------------------------------------------------------------
Register Now & Save for Velocity, the Web Performance & Operations 
Conference from O'Reilly Media. Velocity features a full day of 
expert-led, hands-on workshops and two days of sessions from industry 
leaders in dedicated Performance & Operations tracks. Use code vel09scf 
and Save an extra 15% before 5/3. http://p.sf.net/sfu/velocityconf
_______________________________________________
FCKeditor-Trac mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/fckeditor-trac

Reply via email to