Subject: Re: chunks design -- ...
From: Paul Rohr (paul@abisource.com)
Date: Sun Sep 24 2000 - 04:25:12 CDT
Martin,
Which patch are you referring to?  The last code I remember seeing from 
Keith was followed by a lengthy exchange between Keith and Justin where they 
agreed that certain aspects of that code should morph into something a lot 
more like what I've been describing. 
At 12:12 PM 9/24/00 +1000, Martin Sevior wrote:
>1. Do we really want to allow editting of Fields? 
Of course.  The only question is when.  
>This adds a whole of
>complexity if we want to preserve editting of fields through field
>updates. 
Huh?  I thought the whole idea of updating a field is that you completely 
*replace* its contents. 
>My example is TOC. If a user decides to change on line of the TOC
>it will be very hard to preserve this change when she adds a new chapter
>and the TOC is updated.
TOC is a tricky example, because it's a chunk which contains a lot of other 
fields -- specifically page and document references.  Note that there are 
(at least) two different kinds of UI-driven updates to a TOC:
  - cascading update for just the embedded fields
  - regenerate the entire chunk from scratch
I suppose that the first operation might preserve edits to the contents of 
the TOC chunk (depending on whether they modified an embedded field or not.) 
However, the whole point of doing the second operation is to get rid of all 
those edits, isn't it? 
>2. Is a chuck a subclass of a fl_BlockLayout? I'm not convinced we need
>it. Can you give me an example of where Kevin's code will fail to  give us
>the Field we want?
Feel free to ignore chunks for now.  We should only worry about getting a 
robust implementation for so-called fields which do NOT allow embedded 
paragraph or section breaks.  These fields are small, localized containers 
which live "inside" a containing block.  For most purposes, the formatter 
can entirely ignore the fact that certain runs are inside a field. 
For stuff like TOC which generates a large chunk of content -- lots of 
paragraphs or even an entire section -- we'll need a separate mechanism.  
The chunks are at document scope, and are essentially orthogonal to our 
existing section/block hierarchy.  (They can easily violate nesting, 
remember?)  
If you're thinking class hierarchies inside the formatter, both Field and 
Chunk could probably be subclasses of a common GeneratedContent class.  For 
the most part, the field and chunk objects are external bookkeeping off on 
the side which control the regeneration of that content, if needed.  
When you're down at the line and run level, you rarely need to know that 
you're inside a chunk or field, and when you do, you can go look it up if 
needed. 
Is this making sense yet?  
Paul
PS:  However, it might make the implementation a bit easier if we subclass 
these off fl_Layout, just because it makes the handle exchange with the 
piece table easier.  
This archive was generated by hypermail 2b25 : Sun Sep 24 2000 - 04:18:34 CDT