FYI:

I’ve been having a really difficult time resolving content with TextBlocks. I 
can’t seem to work within TextBlocks and keep the tables outside a composed 
TextLine. Making the width really wide just messes things up.

I tried keeping the table outside the TextBlock, but that causes all kinds of 
issues related to selections and the like.

After struggling with this all day, I’m rethinking the TextBlock <-> Paragraph 
one-to-one ratio. Yes. TextBlocks generally correspond to a single paragraph, 
but when a table would break a paragraph into two, the text above the table, 
and the text below the table are in effect two separate TextBlocks. So, I’m 
thinking of changing ParagraphElement.getTextBlock() to return a 
Vector.<TextBlock> instead of TextBlock. It would track a separate TextBlock 
for each section of text within the paragraph.

It’s a bit messy, but I’m not sure what else to do at this point...

On Jun 10, 2014, at 11:46 PM, Harbs <harbs.li...@gmail.com> wrote:

> 
> On Jun 10, 2014, at 11:10 PM, Alex Harui <aha...@adobe.com> wrote:
> 
>> 
>>>> Just wondering, did you consider a plan where you tell TLF that the table
>>>> is another container?  Or  maybe each cell is another container in
>>>> row-major order?  Would that eliminate some or all of these issues?
>>> 
>>> Not sure I understand what you¹re asking. The way I¹m currently handling
>>> cells, is by creating containers for each one. Tables are composed using
>>> TextFlowTableBlocks for each visual section of the table.
>> Right now it seems like you have to create a tree of TextFlows.  IIUC, one
>> TextFlow cannot represent a document with tables and cells in it.  This
>> also seems to create challenges around selection and also the wrapping of
>> tables in paragraphs.
> 
> The table is composed as part of the text flow similar to composition of 
> ParagraphElements or SpanElements. Composing the table causes sub-composition 
> of the nested content. But each section is composed similar to how lines are 
> composed. The composition supports tables spanning multiple containers in the 
> main textflow.
> 
>> IIRC, TLF already supports composing a single TextFlow into multiple
>> containers, but I believe it only knows how to fill up a container before
>> moving to the next container.  I was wondering if a table/cell element
>> could have just caused a jump to the next container.
> 
> Yes. Composition walks through the containers and only looks at the next 
> container once the current container is filled. We do not want to jump to the 
> next container for tables, because the container bounds is really outside the 
> scope of composition. We want the table to be composed within the bounds of 
> current container if it will fit. That’s why I am composing table content 
> into TextFlowTableBlocks which subclass TextFlowLine. This allows the table 
> content to be composed as regular lines would. it should even allow for 
> vertical text justification and the like. The section of table would all be 
> treated as a single line. Any cell content in the table that does NOT fit, is 
> pushed to the next container of the parent textflow and composed in a new 
> TextFlowTableBlock.
> 
> 

Reply via email to