OK. I’ll see how it goes...
On Jun 9, 2014, at 9:31 PM, Alex Harui <aha...@adobe.com> wrote: > OK, I guess TLF doesn't really have block elements. I was just wondering > if there would be some problem further down the line. Folks seem to want > to have TLF elements work like HTML elements. > > I was pondering if you next had to support DIV and if block elements > should first be introduced to TLF. So those are some concerns that popped > into my head, but no real objections at this point. > > Good luck, > -Alex > > On 6/9/14 11:21 AM, "Harbs" <harbs.li...@gmail.com> wrote: > >> That’s pretty close to what I already did. Table composition is all >> working very well as each table cell acting as a separate TextFlow and >> container. Except extending InlineGraphicElement does not make sense. >> There’s a lot of code in there dealing with loading assets which is not >> applicable to tables. >> >> I’d just subclass FlowLeafElement (which is what InlineGraphicElement >> does) instead of subclassing FlowGroupElement as tables currently do. >> >> If I had to pick between block or inline for tables, I think I’d pick >> inline… >> >> On Jun 9, 2014, at 9:05 PM, Alex Harui <aha...@adobe.com> wrote: >> >>> I'm not an HTML expert, but they seem to divide up their elements >>> between >>> those that default to "inline" and those that default to "block". I >>> think >>> in TLF, SpanElement and InlineGraphicElement are inline and >>> ParagraphElement is "block". I haven't really thought through this, but >>> one possible strategy to make Table extend InlineGraphicElement to >>> reserve >>> space and then then make each cell its own TLF container in that space? >>> Is that sort of what you are trying to do? >>> >>> -Alex >>> >>> On 6/9/14 10:28 AM, "Harbs" <harbs.li...@gmail.com> wrote: >>> >>>> I have not yet implemented arrow navigation (beyond what was there >>>> originally), but here’s my plan: >>>> >>>> * When text outside the table is selected, arrow navigation would treat >>>> the entire table like a single atom (i.e. if the cursor is right >>>> before, >>>> a right arrow will move the cursor beyond the table). >>>> * If text inside a cell is selected, arrow navigation will work within >>>> the cell confines (as a separate TextFlow) >>>> * If a cell is selected, arrow navigation will select the next previous >>>> cell in the row/column. >>>> >>>> #1 and #2 should be working now out of the box. #3 will take a bit of >>>> work getting it to work. >>>> >>>> In HTML, tables are general layout elements similar to divs. I’m >>>> treating >>>> tables much differently. (Each cell is a separate TextFlow.) Trying to >>>> handle tables purely inline had too many challenges for me to >>>> stomach... >>>> Just looking at the spaghetti that was composition and selections made >>>> me >>>> dizzy... >>>> >>>> Treating tables as block elements, requires handling the table content >>>> as >>>> leaf elements. This make composition and selections (especially things >>>> like column selections) very challenging. >>>> >>>> On Jun 9, 2014, at 7:20 PM, Alex Harui <aha...@adobe.com> wrote: >>>> >>>>> What is the leftArrow/rightArrow navigation model when Tables are >>>>> involved? >>>>> >>>>> Also, in HTML, isn't a Table a block-level element? Are there other >>>>> reasons for making it a leaf? Shouldn't Table be more like >>>>> ParagraphElement? >>>>> >>>>> -Alex >>>>> >>>>> On 6/8/14 10:48 PM, "Harbs" <harbs.li...@gmail.com> wrote: >>>>> >>>>>> My real concern is the fact that findLeaf() is used in so many >>>>>> places. >>>>>> It >>>>>> makes the assumption that you can find a leaf by index anywhere in a >>>>>> text >>>>>> flow. That assumption falls apart with tables. I make a clear >>>>>> separation >>>>>> between tables and their contents. As far as the text flow is >>>>>> concerned, >>>>>> the table has a single index (and can only be selected as a whole >>>>>> when >>>>>> selected with surrounding text). >>>>>> >>>>>> So, unless I go through every place findLeaf() is used in TLF and >>>>>> make >>>>>> special cases for tables, the only way I can see of handling it is by >>>>>> making a table a leaf. Even if I fix all the findLeaf() calls in the >>>>>> framework, I’d still be causing client code to fall apart when it >>>>>> comes >>>>>> to tables. >>>>>> >>>>>> Although tables have cell children, they are not index tracked within >>>>>> the >>>>>> text flow as other children are. I could override the text property >>>>>> to >>>>>> return all text contents of all cells in the table. That actually >>>>>> makes >>>>>> kind of sense. >>>>>> >>>>>> On Jun 9, 2014, at 6:59 AM, Alex Harui <aha...@adobe.com> wrote: >>>>>> >>>>>>> Hmm. The doc says that FlowLeafElement doesn't have any children. >>>>>>> But >>>>>>> Tables can certainly contain other tables, right? And aren't the >>>>>>> headers/rows/cells considered children? >>>>>>> >>>>>>> FlowLeafElement also has a text property. Are you going to be >>>>>>> overriding >>>>>>> that? >>>>>>> >>>>>>> Is it just too hard to make a TableElement extend FlowElement and in >>>>>>> other >>>>>>> ways be treated as an InlineGraphicElement? >>>>>>> >>>>>>> -Alex >>>>>>> >>>>>>> On 6/8/14 12:46 PM, "Harbs" <harbs.li...@gmail.com> wrote: >>>>>>> >>>>>>>> Please see this issue. I¹m sure there are plenty of related bugs. >>>>>>>> >>>>>>>> https://github.com/Harbs/TLF-Table-Work/issues/28 >>>>>>>> >>>>>>>> I¹m thinking of changing the base-class of TableElement to change >>>>>>>> it >>>>>>>> to a >>>>>>>> leaf element rather than a group element. I don¹t see any reason >>>>>>>> off-hand >>>>>>>> not to do that, but I very likely might be missing something. >>>>>>>> >>>>>>>> Reason why I think it makes sense: >>>>>>>> >>>>>>>> Basically, I¹m treating a table as an inline object. The contents >>>>>>>> of >>>>>>>> a >>>>>>>> table are laid out in a grid, but largely independent from the main >>>>>>>> text >>>>>>>> composition. It¹s really not much more than a really fancy inline >>>>>>>> object >>>>>>>> (or one that can span across multiple containers). >>>>>>>> >>>>>>>> If anyone can think of a good reason why it¹s a bad idea, I¹d >>>>>>>> really >>>>>>>> like >>>>>>>> to hearŠ >>>>>>>> >>>>>>>> Harbs >>>>>>> >>>>>> >>>>> >>>> >>> >> >