I would vote for table/cells
I think it more accurately describes a table.
This way you could also more easily set the borders of cells like excell
does.
IMO rows and columns don't actually exist,  they are just a coordinate
system to locate a cell.
On Dec 4, 2013 2:42 PM, "Harbs" <harbs.li...@gmail.com> wrote:

> There's one more issue I'm struggling with:
>
> The way the elements were implemented is that rows are nested inside
> tables and cells are inside rows. Table columns are not directly connected
> to cells -- they are really just there to compute the position.
>
> This makes sense in the way that the tables would normally be composed
> (i.e. row by row).
>
> The only issue I can see with this, would be joined cells. If cells are
> joined horizontally, it would not be to complicated since the row would be
> composed across.
>
> Vertically joined cells would be much more complicated. Once cells are
> joined vertically, a single cell would actually reside inside two different
> rows. This does not jive very well with the concept of cells belonging to a
> specific row. A better fit might be to make cells children of the table and
> to have cells contain row and column info.
>
> It might be possible to compose joined cells even if they are children of
> rows and use placeholder objects to indicate the joined cell location
> within the row -- or maybe skip that area.
>
> I think I'm leaning towards sticking with tables/rows/cells rather than
> tables/cells because I think it's neater for the classic tables, but I'm
> not completely set on it.
>
> I'd like to hear if anyone has input on the subject…
>
> On Dec 2, 2013, at 9:08 PM, Alex Harui wrote:
>
> > OK, good luck.
> >
> > On 12/2/13 1:16 AM, "Harbs" <harbs.li...@gmail.com> wrote:
> >
> >> The way it was implemented is like this:
> >>
> >> 1) Tables and table columns have fixed widths. (I might add a default
> >> width if none was set to prevent runtime errors. What's a reasonable
> >> number?)
> >> 2) Table cell parcels are created with a maximum height of 8000. I'm not
> >> sure why they picked that number, but it's probably high enough that
> it's
> >> fine. After the cell is composed, the height of the parcel is adjusted.
> >>
> >> This simplifies the calculations tremendously because tables can be
> >> safely composed on a row-by-row basis. I think both of these limitations
> >> are reasonable ones and it's pretty consistent with how tables work in
> >> DTP apps. The only thing I'm probably going to change is to add the
> >> option of a fixed height to the cell parcel where the contents would
> just
> >> become overset if it does not fit.
> >>
> >> One thing I'm planning on changing is related to table widths.
> Currently,
> >> the width of a table is constrained by the with of the containing
> parcel.
> >> I think it's reasonable that tables can extend beyond the bounds of the
> >> parent parcel. This is the way InDesign works and I think it's necessary
> >> for tables that flow across multiple containers since the width of the
> >> containers are not necessarily constant.
> >>
> >> Another limitation that I think is reasonable is no nested tables.
> >> InDesign for example allows unlimited levels of nesting tables inside
> >> table cells. This adds a lot of complexity to the composition, and it
> >> seems to me that this is an edge case. Does TLF currently support nested
> >> text containers? (i.e. text containers as inline graphics)
> >>
> >> I think I'm also going to not allow cells to split across containers as
> >> this also adds complexity (and I personally have no need for this
> >> support).
> >>
> >> Harbs
> >>
> >> On Dec 2, 2013, at 8:19 AM, Avi Kessner wrote:
> >>
> >>> Just a random thought here, but what if you set the parcels at the end
> >>> of
> >>> table creation?   Something like, populateParcels() which gets called
> >>> after
> >>> all cell sizes and positions are known, and then get placed into those
> >>> rectangles?
> >>> On Dec 2, 2013 7:02 AM, "Alex Harui" <aha...@adobe.com> wrote:
> >>>
> >>>> Harbs,
> >>>>
> >>>> I haven't looked at the Table code at all.  I don't remember exactly
> >>>> how
> >>>> Parcels work for the standard case, either.
> >>>>
> >>>> IMO, HTML Tables are really hard.  In some cases, I think you have to
> >>>> compose cells multiple times in order to decide the cell widths and
> row
> >>>> heights.  If your use case can constrain the problem space it might be
> >>>> easier to get something to work.
> >>>>
> >>>> FWIW, I agree that it doesn't make sense for the main container's
> >>>> ParcelList to know about parcels in the table.
> >>>>
> >>>> Good luck,
> >>>> -Alex
> >>>>
> >>>> On 12/1/13 6:14 AM, "Gavriel Harbater" <gavha...@gmail.com> wrote:
> >>>>
> >>>>> Some more rambling:
> >>>>>
> >>>>> The more I'm working through this, the more I'm convinced that the
> >>>>> current implementation is fundamentally broken. The cell Parcels
> >>>>> really
> >>>>> can't be in the same ParcelList as the Containers. I'm pretty sure
> >>>>> that
> >>>>> not only multi-container text threads are broken, but multi-column
> >>>>> containers are broken as well.
> >>>>>
> >>>>> It seems to me that there needs to be a separate ParcelList for table
> >>>>> cells that are separate from the container parcel list. Table parcels
> >>>>> don't exactly fit into the concept of container parcels either
> because
> >>>>> they should be nested inside other parcels (which normal parcels are
> >>>>> not). I think I should subclass Parcel as TableCellParcel which would
> >>>>> have a parcel as a "parent". I'm also going to have to either modify
> >>>>> ParcelList to track the cell parcels or subclass it for dealing with
> >>>>> cell
> >>>>> parcels.
> >>>>>
> >>>>> Harbs
> >>>>>
> >>>>> On Dec 1, 2013, at 2:42 PM, Harbs wrote:
> >>>>>
> >>>>>> This is really difficult, because I'm not sure what is supposed to
> >>>>>> work
> >>>>>> in the current implementation. I'm trying to reverse engineer how
> >>>>>> tables
> >>>>>> work when they don't really work. Trying to sift out what I don't
> >>>>>> understand from what simply doesn't work from what is poorly
> >>>>>> implemented
> >>>>>> is a huge pain.
> >>>>>>
> >>>>>> I'm going to ramble a bit. I hope that things will become clearer to
> >>>>>> me
> >>>>>> as I ramble on... ;-)
> >>>>>>
> >>>>>> If someone who understands how text flow in TLF is supposed to work
> >>>>>> would either confirm or correct me, I'd appreciate it.
> >>>>>>
> >>>>>> Here's how I understand the way TLF works with parcels:
> >>>>>>
> >>>>>> Each composition has a ParcelList which contains one or more
> parcels.
> >>>>>> Each ContainerController has one or more parcels in the ParcelList.
> >>>>>> Generally, there is one parcel per column. (If a ContainerController
> >>>>>> has
> >>>>>> more than one column, the composition of each column is done
> >>>>>> separately
> >>>>>> as a separate parcel.)
> >>>>>>
> >>>>>> For normal text frames, this is all pretty straight-forward.
> >>>>>>
> >>>>>> With tables things get a bit more muddled. Each table cell is in
> >>>>>> effect
> >>>>>> a separate composition area. If every composition area gets its own
> >>>>>> parcel, I guess this would mean that every cell in the table would
> >>>>>> get
> >>>>>> its own parcel. If I'm reading the code correctly, it's supposed to
> >>>>>> be
> >>>>>> doing this. I think another way to look at it, would be to look at
> >>>>>> each
> >>>>>> column of each table within a specific Container as a separate
> >>>>>> composition area (parcel) and position the text within that. I'm not
> >>>>>> sure this makes any sense, though. The more I'm looking at how
> >>>>>> parcels
> >>>>>> work (i.e. vj, etc.), the less this makes sense.
> >>>>>>
> >>>>>> So, basically, every cell in the table would be a separate parcel,
> >>>>>> and
> >>>>>> these parcels need to be organized into rows and columns. Keeping
> >>>>>> track
> >>>>>> of the columns and the placement of the rows has some level of
> >>>>>> complexity. Adding header and footer rows to the mix should make it
> >>>>>> more
> >>>>>> interesting.
> >>>>>>
> >>>>>> Here's what I'm not (yet) totally clear on (or even if it works
> >>>>>> right):
> >>>>>> 1) The logic of placing the table parcels relative to the container
> >>>>>> parcels. The way I see it, the table parcels should be arranged
> >>>>>> within
> >>>>>> the bounds of the column parcels of the containing container(s).
> >>>>>> 2) How the calculations of the parcel placement goes. This is
> >>>>>> especially true for tables that might span more than one parent
> >>>>>> parcel.
> >>>>>> 3) The placement of the table parcels relative to the container
> >>>>>> parcels
> >>>>>> they are contained within. (Should there be a separate ParcelList
> for
> >>>>>> table parcels, or should it be part of the main ParcelList?)
> >>>>>> 4) What I'm not clear on... ;-)
> >>>>>>
> >>>>>> On Nov 28, 2013, at 3:20 PM, Harbs wrote:
> >>>>>>
> >>>>>>> I'm back on this, and starting to make some (slow) progress.
> >>>>>>>
> >>>>>>> I've started a Google Docs document to try to make some order out
> of
> >>>>>>> the chaos that is the current state of TLF Tables. This is just a
> >>>>>>> place
> >>>>>>> where I'm jotting down my findings as I go and my thoughts on
> >>>>>>> direction
> >>>>>>> as I work on this. I made the document publicly editable and would
> >>>>>>> love
> >>>>>>> input. If there's anyone out there that has answers to the
> questions
> >>>>>>> I'm posing, it would be very helpful!
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>
> >>>>
> https://docs.google.com/document/d/1sT0IAiMfIOBVgmo8wwF6ZZviuNFcW2bUfQoj
> >>>>>>> 0zDmSog/edit?usp=sharing
> >>>>>>>
> >>>>>>> Harb
> >>>>>>>
> >>>>>>> On Sep 10, 2013, at 11:22 PM, Harbs wrote:
> >>>>>>>
> >>>>>>>> My first tests are not very encouraging...
> >>>>>>>>
> >>>>>>>> Trying to compose the table results in this function returning
> >>>>>>>> null:
> >>>>>>>>          static tlf_internal function
> >>>> beginFactoryCompose():SimpleCompose
> >>>>>>>>          {
> >>>>>>>>                  var rslt:SimpleCompose = _factoryComposer;
> >>>>>>>>                  _factoryComposer = peekFactoryCompose();
> >>>>>>>>                  _savedFactoryComposer = null;
> >>>>>>>>                  return rslt;
> >>>>>>>>          }
> >>>>>>>>
> >>>>>>>> Looks like I need to the composition process...
> >>>>>>>> FWIW, it made no difference whether I added the rows to a
> >>>>>>>> TableBodyElement or to the table directly.
> >>>>>>>>
> >>>>>>>> On Sep 10, 2013, at 7:17 PM, Alex Harui wrote:
> >>>>>>>>
> >>>>>>>>> Hi Harbs,
> >>>>>>>>>
> >>>>>>>>> I see code for Tables, but I'm not sure it is "officially" there.
> >>>>>>>>> Or even
> >>>>>>>>> complete, or even working at a prototype-level.
> >>>>>>>>>
> >>>>>>>>> So good luck with it.  I might be able to ask folks who used to
> >>>>>>>>> work
> >>>>>>>>> on it
> >>>>>>>>> a few questions, but I'm pretty sure their memories of it are
> >>>>>>>>> pretty
> >>>>>>>>> dim
> >>>>>>>>> by now.
> >>>>>>>>>
> >>>>>>>>> -Alex
> >>>>>>>>>
> >>>>>>>>> On 9/10/13 6:16 AM, "Harbs" <harbs.li...@gmail.com> wrote:
> >>>>>>>>>
> >>>>>>>>>> I knew I was going to spend some real time on this one day, and
> >>>>>>>>>> that time
> >>>>>>>>>> is coming really soonŠ
> >>>>>>>>>>
> >>>>>>>>>> Before I dig in too deeply, what's the status on TLF Table
> >>>>>>>>>> support?
> >>>>>>>>>> I
> >>>>>>>>>> know it's officially there, but I don't see any documentation on
> >>>>>>>>>> it
> >>>>>>>>>> --
> >>>>>>>>>> not even the basics on how it's supposed to be used.
> >>>>>>>>>>
> >>>>>>>>>> I fully expect to find bugs once I start really digging into it,
> >>>>>>>>>> but some
> >>>>>>>>>> documentation (any) would be nice to get me started.
> >>>>>>>>>>
> >>>>>>>>>> Looking at the source code, I see the following classes:
> >>>>>>>>>>
> >>>>>>>>>> TableElement
> >>>>>>>>>> TableBodyElement
> >>>>>>>>>> TableColElement
> >>>>>>>>>> TableRowElement
> >>>>>>>>>> TableColGroupElement
> >>>>>>>>>> TableDataCellElement
> >>>>>>>>>> TableFormattedElement
> >>>>>>>>>>
> >>>>>>>>>> I understand the structure like this:
> >>>>>>>>>>
> >>>>>>>>>> * A TableElement is the top level element for any table
> >>>>>>>>>> * All elements in a table inherit from TableFormattedElement
> >>>>>>>>>> * The bottom level of a table which needs to contain one or more
> >>>>>>>>>> ParagraphElements in a TableDataCellElement
> >>>>>>>>>> * TableDataCellElements must reside within a TableRowElement
> >>>>>>>>>>
> >>>>>>>>>> After this things get a bit fuzzier.
> >>>>>>>>>>
> >>>>>>>>>> What is TableBodyElement used for?
> >>>>>>>>>> How is TableColGroupElement and TableColElement used? (I assume
> >>>>>>>>>> they are
> >>>>>>>>>> used for formatting table columns, but the details are not very
> >>>>>>>>>> clear to
> >>>>>>>>>> me.)
> >>>>>>>>>> What about header and footer rows? Is that supported yet?
> >>>>>>>>>> Header and footer columns?
> >>>>>>>>>> Is breaking tables across containers supported yet?
> >>>>>>>>>>
> >>>>>>>>>> I have not started studying how to specify table formatting
> >>>>>>>>>> either.
> >>>>>>>>>> I'm
> >>>>>>>>>> hoping that's obviousŠ
> >>>>>>>>>>
> >>>>>>>>>> I'll try to add some documentation to the source code as things
> >>>>>>>>>> become
> >>>>>>>>>> clearer to meŠ
> >>>>>>>>>>
> >>>>>>>>>> Harbs
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>
> >>>>
> >>>>
> >>
> >
>
>

Reply via email to