[jira] [Updated] (FOP-1581) Improve border painting in collapsing border model

2021-06-26 Thread dian hina (Jira)


 [ 
https://issues.apache.org/jira/browse/FOP-1581?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

dian hina updated FOP-1581:
---

oke finish

> Improve border painting in collapsing border model
> --
>
> Key: FOP-1581
> URL: https://issues.apache.org/jira/browse/FOP-1581
> Project: FOP
>  Issue Type: Improvement
>  Components: unqualified
>Affects Versions: 2.5
> Environment: Operating System: All
> Platform: All
>Reporter: Vincent Hennebert
> Attachments: border-painting.fo
>
>
> See attached file: the corners adjacent to the cell without borders aren't 
> fully painted, which makes the result not very nice.
> It would be a nice to have if the borders were fully painted, like in the 
> separate border model (second table).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (FOP-1581) Improve border painting in collapsing border model

2020-01-08 Thread Chris Bowditch (Jira)


 [ 
https://issues.apache.org/jira/browse/FOP-1581?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Chris Bowditch updated FOP-1581:

Attachment: (was: az-900-Exam-Dumps-2019.pdf)

> Improve border painting in collapsing border model
> --
>
> Key: FOP-1581
> URL: https://issues.apache.org/jira/browse/FOP-1581
> Project: FOP
>  Issue Type: Improvement
>  Components: unqualified
>Affects Versions: trunk
> Environment: Operating System: All
> Platform: All
>Reporter: Vincent Hennebert
> Attachments: border-painting.fo
>
>
> See attached file: the corners adjacent to the cell without borders aren't 
> fully painted, which makes the result not very nice.
> It would be a nice to have if the borders were fully painted, like in the 
> separate border model (second table).



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Updated] (FOP-1581) Improve border painting in collapsing border model

2019-01-31 Thread victoriavargas (JIRA)


 [ 
https://issues.apache.org/jira/browse/FOP-1581?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

victoriavargas updated FOP-1581:

Attachment: az-900-Exam-Dumps-2019.pdf

> Improve border painting in collapsing border model
> --
>
> Key: FOP-1581
> URL: https://issues.apache.org/jira/browse/FOP-1581
> Project: FOP
>  Issue Type: Improvement
>  Components: unqualified
>Affects Versions: trunk
> Environment: Operating System: All
> Platform: All
>Reporter: Vincent Hennebert
> Attachments: az-900-Exam-Dumps-2019.pdf, border-painting.fo
>
>
> See attached file: the corners adjacent to the cell without borders aren't 
> fully painted, which makes the result not very nice.
> It would be a nice to have if the borders were fully painted, like in the 
> separate border model (second table).



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


DO NOT REPLY [Bug 45924] Improve border painting in collapsing border model

2012-04-06 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=45924

--- Comment #2 from Glenn Adams gl...@skynav.com 2012-04-07 01:42:45 UTC ---
resetting P2 open bugs to P3 pending further review

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


DO NOT REPLY [Bug 45924] Improve border painting in collapsing border model

2012-04-06 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=45924

Glenn Adams gl...@skynav.com changed:

   What|Removed |Added

   Priority|P2  |P3

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


DO NOT REPLY [Bug 36934] The collapsing border model on an fo:table is currently not supported by FOP

2012-04-01 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=36934

Glenn Adams gl...@skynav.com changed:

   What|Removed |Added

 Status|RESOLVED|CLOSED

--- Comment #5 from Glenn Adams gl...@skynav.com 2012-04-01 06:45:23 UTC ---
batch transition pre-FOP1.0 resolved+fixed bugs to closed+fixed

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


DO NOT REPLY [Bug 45924] Improve border painting in collapsing border model

2012-02-06 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=45924

Vincent Hennebert vhenneb...@gmail.com changed:

   What|Removed |Added

 CC||levin...@intersystems.com

--- Comment #1 from Vincent Hennebert vhenneb...@gmail.com 2012-02-07 
07:50:17 UTC ---
*** Bug 52597 has been marked as a duplicate of this bug. ***

-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


DO NOT REPLY [Bug 45924] New: Improve border painting in collapsing border model

2008-10-01 Thread bugzilla
https://issues.apache.org/bugzilla/show_bug.cgi?id=45924

   Summary: Improve border painting in collapsing border model
   Product: Fop
   Version: 1.0dev
  Platform: All
OS/Version: All
Status: NEW
  Severity: enhancement
  Priority: P2
 Component: general
AssignedTo: fop-dev@xmlgraphics.apache.org
ReportedBy: [EMAIL PROTECTED]


Created an attachment (id=22658)
 -- (https://issues.apache.org/bugzilla/attachment.cgi?id=22658)
File demonstrating the problem

See attached file: the corners adjacent to the cell without borders aren't
fully painted, which makes the result not very nice.
It would be a nice to have if the borders were fully painted, like in the
separate border model (second table).


-- 
Configure bugmail: https://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug.


DO NOT REPLY [Bug 36934] - The collapsing border model on an fo:table is currently not supported by FOP

2007-04-20 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://issues.apache.org/bugzilla/show_bug.cgi?id=36934.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=36934


[EMAIL PROTECTED] changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED




--- Additional Comments From [EMAIL PROTECTED]  2007-04-20 03:22 ---
Fixed in Trunk, rev. 530727

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug, or are watching the assignee.


DO NOT REPLY [Bug 36934] - The collapsing border model on an fo:table is currently not supported by FOP

2007-04-20 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://issues.apache.org/bugzilla/show_bug.cgi?id=36934.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=36934





--- Additional Comments From [EMAIL PROTECTED]  2007-04-20 03:30 ---
(In reply to comment #3)
 Fixed in Trunk, rev. 530727

Thank you for fixing this issue. So we can go on with testing. :-)


-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug, or are watching the assignee.


Re: Border conditionalities and collapsing-border model, breaks on header/footer

2007-03-26 Thread Vincent Hennebert
Hi,

Thanks for your inputs, Andreas and Jeremias.

The whole thing suddenly makes sense when you think in terms of area
tree instead of fo tree...
Still, I think it's not obvious by reading the spec and I'll probably
ask for clarification on [EMAIL PROTECTED]

And there is a remaining question raised by Andreas:

snip/
[me:]
 If the table is broken across several pages and the header shall be
 replicated, do
 border-before for table and table-column play again in border-resolution
 for the second and following headers?
[Andreas:]
 YES! Not only border-before even, I think, but that is open for
 interpretation. The column's border-before *and* after need to be
 considered for each body, header/footer that appears on a given page.
 
 One could also argue that the column's span the entire table for each
 page, so the column's border-after does not need to be considered for
 the header's last row, for instance.

Interesting point of vue. I think it can be summarized by the attached
picture. Jeremias' position corresponds to 1., and I suspect this is the
more common understanding. Andreas' is 2., but I'm afraid you'll be
alone ;-) Mine's tends to be 3., although I'm ok with 1.

If there is no other comment I'll go with 1.


 Apart from that, there is the tiny note, of course, that we're talking
 about hypothetical situations, in which border-conditionality is
 overridden for all table-elements.
 The default value being discard makes the interplay between
 border-collapse and border-conditionality actually much simpler than it
 seems at first...
 
 snip /
 - when we break at a grid line, should the two rows meeting a the line
   count in border resolution? Or only the row before for the
   border-after at the end of the page, and the row after for the
   border-before at the beginning of the following page?
   I would go with that latter.

 That's right.

 Fine (that means that the border may potentially be different at the
 bottom of the previous page and at the top of the next page).
 
 Only if you have no header/footer. If there is a repeated header/footer,
 then the border will neatly be the same for all pages. If you have no
 header or footer, then overriding border-*-width.conditionality on the
 table or table-body is enough to prevent weird effects.

Still, nothing prevents users from trying to achieve those weird effects ;-)

snip/
 - when we break at a grid line, should the entire border appear on each
   page, or the higher half at the bottom of the first page, and the
   lower half at the top of the following page?
   I would also go with that latter.

 No, the entire border has to be painted. This is
 BorderProps.COLLAPSE_OUTER/COLLAPSE_INNER as used by the renderers. See
 the BorderProps class.

 So the grid line at the page break would have two borders, one at the
 bottom of the page, one at the top of the next page?
 That's fine for me, but again I think it's specified nowhere.
 
 Hmm... not exactly. Think of the part of the table on one page as an
 independent subgrid, that has nothing to do anymore with the preceding
 or following subgrid. It is the gridline which is split in two, and each
 of the new gridlines will have one fully resolved border. In a sense the
 border is duplicated, yes... :/

I'm ok with that now :-)


Thanks,
Vincent



Re: Border conditionalities and collapsing-border model, breaks on header/footer

2007-03-26 Thread Andreas L Delmelle

On Mar 26, 2007, at 11:31, Vincent Hennebert wrote:


snip /
And there is a remaining question raised by Andreas:

snip/
[me:]

If the table is broken across several pages and the header shall be
replicated, do
border-before for table and table-column play again in border- 
resolution

for the second and following headers?

[Andreas:]

YES! Not only border-before even, I think, but that is open for
interpretation. The column's border-before *and* after need to be
considered for each body, header/footer that appears on a given page.

One could also argue that the column's span the entire table for each
page, so the column's border-after does not need to be considered for
the header's last row, for instance.


Interesting point of vue. I think it can be summarized by the attached
picture. Jeremias' position corresponds to 1., and I suspect this  
is the

more common understanding. Andreas' is 2., but I'm afraid you'll be
alone ;-) Mine's tends to be 3., although I'm ok with 1.

If there is no other comment I'll go with 1.


1. is also fine with me. As I said, it's open for interpretation, and  
I would agree that option 1. is what the largest part of our audience  
will expect.


In a way, in the majority of use-cases option 2. /almost/ gives the  
same result as 1.
It would only give slightly different results if the column's after- 
border is different from the before-border. I think you'll have to  
look hard for cases where people specify different border-specs for  
the two opposite sides, but as you say: nothing prevents people from  
achieving weird effects. :-)



Cheers,

Andreas


Border conditionalities and collapsing-border model, breaks on header/footer

2007-03-23 Thread Vincent Hennebert
Guys,

I've again stumbled upon uncertainties regarding the handling of
conditional borders in the collapsing-border model, and breaks inside
headers/footers. I'd like to have your opinions on these:


Table headers and footers:
Headers and footers are generated only once, and replicated on each
page. This means that cells in headers and footers only generate one
area, with the is-first and is-last traits set. Border- and
padding-conditionality don't apply here.

Or perhaps that the border-before of the table should still be
considered? I mean, for the first header it would come into play, and
for following headers it also would only if conditionality=retain.
I think I'll go that way as it more closely matches the behavior of the
separate border-model.


Table body(-ies):
There are several uncertainties:
- should the border-before of the table and table-columns be considered
  or not: do we consider that those borders only apply to the very first
  (or last) row of the table? Or also to the first (last) row on each
  page? The question remains whether there are headers/footers or not.
  I would say yes.
- when we break /within/ a cell, should the following row come into play
  for computing the border-after? As the row hasn't even been reached
  yet, I'd say no.
- when we break at a grid line, should the two rows meeting a the line
  count in border resolution? Or only the row before for the
  border-after at the end of the page, and the row after for the
  border-before at the beginning of the following page?
  I would go with that latter.
- when we break at a grid line, should the entire border appear on each
  page, or the higher half at the bottom of the first page, and the
  lower half at the top of the following page?
  I would also go with that latter.

Tables and breaks:
- do breaks on headers and footers make sense? Obviously not, excepted
  perhaps a break-before on the header's first row, or a break-after on
  the footer's last row. But as the same effect can be achieved by
  putting the breaks on the fo:table object, I think breaks on
  headers/footers should be entirely discarded.


Opinions?
Thanks,
Vincent


Re: Border conditionalities and collapsing-border model, breaks on header/footer

2007-03-23 Thread Jeremias Maerki
BTW, don't forget to use the Wiki as resource. Simon and I documented
various cases (including the tricky ones) here:

http://wiki.apache.org/xmlgraphics-fop/TableLayout/KnuthElementsForTables/RowBorder
http://wiki.apache.org/xmlgraphics-fop/TableLayout/KnuthElementsForTables/RowBorder2
http://people.apache.org/~jeremias/fop/KnuthBoxesForTablesWithBorders.pdf
(The PDF has multiple examples, the last page shows the simplified
approach which does not take interaction between body and headers into
account when resolving borders)

On 23.03.2007 16:54:37 Jeremias Maerki wrote:
 
 On 23.03.2007 15:44:57 Vincent Hennebert wrote:
  Guys,
  
  I've again stumbled upon uncertainties regarding the handling of
  conditional borders in the collapsing-border model, and breaks inside
  headers/footers. I'd like to have your opinions on these:
  
  
  Table headers and footers:
  Headers and footers are generated only once, and replicated on each
  page. This means that cells in headers and footers only generate one
  area, with the is-first and is-last traits set. Border- and
  padding-conditionality don't apply here.
 
 Conditionality still applies but because there's a header or footer
 serving as fence, the cell borders and paddings don't get discarded.
 Different wording, but essentially, yes.
 
  Or perhaps that the border-before of the table should still be
  considered? I mean, for the first header it would come into play, and
  for following headers it also would only if conditionality=retain.
  I think I'll go that way as it more closely matches the behavior of the
  separate border-model.
 
 There's no table border in the collapsing border model when we're
 talking about areas. All levels of borders inside a table are merged. In
 the end, all you have are cell borders, nothing else.
 
 Only in separate border model do you have separate borders on the table
 and on the cells.
  
  Table body(-ies):
  There are several uncertainties:
  - should the border-before of the table and table-columns be considered
or not: do we consider that those borders only apply to the very first
(or last) row of the table? Or also to the first (last) row on each
page? The question remains whether there are headers/footers or not.
I would say yes.
 
 http://www.w3.org/TR/REC-CSS2/tables.html#table-layers answers that. The
 image should help you understand. An example: take the before border of
 the first cell of a table header. The elements that influence the
 resolved borders are: table, column-groups if applicable, the column,
 table-header, the first row in the table-header and the cell itself. All
 the borders of these elements have to be combined. That's what's already
 (!) implemented in CollapsingBorderModelEyeCatching (for
 border-collapse=collapse)
 
  - when we break /within/ a cell, should the following row come into play
for computing the border-after? As the row hasn't even been reached
yet, I'd say no.
 
 Right. That's the case in CollapsingBorderModelEyeCatching when
 currentCell is not null, and otherCell is null.
 
  - when we break at a grid line, should the two rows meeting a the line
count in border resolution? Or only the row before for the
border-after at the end of the page, and the row after for the
border-before at the beginning of the following page?
I would go with that latter.
 
 That's right.
 
  - when we break at a grid line, should the entire border appear on each
page, or the higher half at the bottom of the first page, and the
lower half at the top of the following page?
I would also go with that latter.
 
 No, the entire border has to be painted. This is
 BorderProps.COLLAPSE_OUTER/COLLAPSE_INNER as used by the renderers. See
 the BorderProps class.
 
  Tables and breaks:
  - do breaks on headers and footers make sense? Obviously not, excepted
perhaps a break-before on the header's first row, or a break-after on
the footer's last row. But as the same effect can be achieved by
putting the breaks on the fo:table object, I think breaks on
headers/footers should be entirely discarded.
 
 Yes, breaks in headers and footers make no sense and should be ignored.
 
  
  Opinions?
  Thanks,
  Vincent
 
 
 
 Jeremias Maerki



Jeremias Maerki



Re: Border conditionalities and collapsing-border model, breaks on header/footer

2007-03-23 Thread Vincent Hennebert
Jeremias Maerki a écrit :
 On 23.03.2007 15:44:57 Vincent Hennebert wrote:
 Guys,

 I've again stumbled upon uncertainties regarding the handling of
 conditional borders in the collapsing-border model, and breaks inside
 headers/footers. I'd like to have your opinions on these:


 Table headers and footers:
 Headers and footers are generated only once, and replicated on each
 page. This means that cells in headers and footers only generate one
 area, with the is-first and is-last traits set. Border- and
 padding-conditionality don't apply here.
 
 Conditionality still applies but because there's a header or footer

Why would conditionality apply? Every area from headers would have
is-first set.

 serving as fence, the cell borders and paddings don't get discarded.
 Different wording, but essentially, yes.
 
 Or perhaps that the border-before of the table should still be
 considered? I mean, for the first header it would come into play, and
 for following headers it also would only if conditionality=retain.
 I think I'll go that way as it more closely matches the behavior of the
 separate border-model.
 
 There's no table border in the collapsing border model when we're
 talking about areas. All levels of borders inside a table are merged. In
 the end, all you have are cell borders, nothing else.

I know, the question is for the border-before of (the first row of) the
header: for the very first header, border-before on table and
table-columns play in the border resolution. Should they also for the
headers on the following pages?

 
 Only in separate border model do you have separate borders on the table
 and on the cells.
 Table body(-ies):
 There are several uncertainties:
 - should the border-before of the table and table-columns be considered
   or not: do we consider that those borders only apply to the very first
   (or last) row of the table? Or also to the first (last) row on each
   page? The question remains whether there are headers/footers or not.
   I would say yes.
 
 http://www.w3.org/TR/REC-CSS2/tables.html#table-layers answers that. The
 image should help you understand. An example: take the before border of
 the first cell of a table header. The elements that influence the
 resolved borders are: table, column-groups if applicable, the column,
 table-header, the first row in the table-header and the cell itself. All
 the borders of these elements have to be combined. That's what's already
 (!) implemented in CollapsingBorderModelEyeCatching (for
 border-collapse=collapse)

That doesn't tell anything regarding page breaks!? If the table is
broken across several pages and the header shall be replicated, do
border-before for table and table-column play again in border-resolution
for the second and following headers? Or only for the first one? That's
the same question as above actually. And that also applies to the first
row from the table-body on each page, when header should be omitted at
page breaks.


 - when we break /within/ a cell, should the following row come into play
   for computing the border-after? As the row hasn't even been reached
   yet, I'd say no.
 
 Right. That's the case in CollapsingBorderModelEyeCatching when
 currentCell is not null, and otherCell is null.

Fine.


 - when we break at a grid line, should the two rows meeting a the line
   count in border resolution? Or only the row before for the
   border-after at the end of the page, and the row after for the
   border-before at the beginning of the following page?
   I would go with that latter.
 
 That's right.

Fine (that means that the border may potentially be different at the
bottom of the previous page and at the top of the next page). Do we
agree that those two latter cases are not described by the spec?


 - when we break at a grid line, should the entire border appear on each
   page, or the higher half at the bottom of the first page, and the
   lower half at the top of the following page?
   I would also go with that latter.
 
 No, the entire border has to be painted. This is
 BorderProps.COLLAPSE_OUTER/COLLAPSE_INNER as used by the renderers. See
 the BorderProps class.

So the grid line at the page break would have two borders, one at the
bottom of the page, one at the top of the next page?
That's fine for me, but again I think it's specified nowhere.


 Tables and breaks:
 - do breaks on headers and footers make sense? Obviously not, excepted
   perhaps a break-before on the header's first row, or a break-after on
   the footer's last row. But as the same effect can be achieved by
   putting the breaks on the fo:table object, I think breaks on
   headers/footers should be entirely discarded.
 
 Yes, breaks in headers and footers make no sense and should be ignored.

Great.

 
 Opinions?
 Thanks,
 Vincent
 
 Jeremias Maerki

Thanks,
Vincent


Re: Border conditionalities and collapsing-border model, breaks on header/footer

2007-03-23 Thread Andreas L Delmelle

On Mar 23, 2007, at 18:21, Vincent Hennebert wrote:

  [Jeremias: ]

snip /
http://www.w3.org/TR/REC-CSS2/tables.html#table-layers answers that.

snip /

The
image should help you understand. An example: take the before  
border of

the first cell of a table header. The elements that influence the
resolved borders are: table, column-groups if applicable, the column,
table-header, the first row in the table-header and the cell  
itself. All
the borders of these elements have to be combined. That's what's  
already

(!) implemented in CollapsingBorderModelEyeCatching (for
border-collapse=collapse)


That doesn't tell anything regarding page breaks!?


Hèhè, that always tends to happen with references to CSS. :-)

If the table is broken across several pages and the header shall be  
replicated, do
border-before for table and table-column play again in border- 
resolution

for the second and following headers?


YES! Not only border-before even, I think, but that is open for  
interpretation. The column's border-before *and* after need to be  
considered for each body, header/footer that appears on a given page.


One could also argue that the column's span the entire table for each  
page, so the column's border-after does not need to be considered for  
the header's last row, for instance.


Apart from that, there is the tiny note, of course, that we're  
talking about hypothetical situations, in which border-conditionality  
is overridden for all table-elements.
The default value being discard makes the interplay between border- 
collapse and border-conditionality actually much simpler than it  
seems at first...



snip /
- when we break at a grid line, should the two rows meeting a the  
line

  count in border resolution? Or only the row before for the
  border-after at the end of the page, and the row after for the
  border-before at the beginning of the following page?
  I would go with that latter.


That's right.


Fine (that means that the border may potentially be different at the
bottom of the previous page and at the top of the next page).


Only if you have no header/footer. If there is a repeated header/ 
footer, then the border will neatly be the same for all pages. If you  
have no header or footer, then overriding border-*- 
width.conditionality on the table or table-body is enough to prevent  
weird effects.



Do we
agree that those two latter cases are not described by the spec?


As far as I remember, yes, since XSL-FO refers almost entirely to CSS  
(which, because of its correlation with HTML, has no concept of page- 
breaks). This still leaves some room for the implementors FTM...


- when we break at a grid line, should the entire border appear  
on each

  page, or the higher half at the bottom of the first page, and the
  lower half at the top of the following page?
  I would also go with that latter.


No, the entire border has to be painted. This is
BorderProps.COLLAPSE_OUTER/COLLAPSE_INNER as used by the  
renderers. See

the BorderProps class.


So the grid line at the page break would have two borders, one at the
bottom of the page, one at the top of the next page?
That's fine for me, but again I think it's specified nowhere.


Hmm... not exactly. Think of the part of the table on one page as an  
independent subgrid, that has nothing to do anymore with the  
preceding or following subgrid. It is the gridline which is split in  
two, and each of the new gridlines will have one fully resolved  
border. In a sense the border is duplicated, yes... :/



Cheers,

Andreas

Status of the collapsing border model

2006-11-15 Thread Vincent Hennebert
Hi all,

Just to let you know that I'd like to finish the implementation of the
collapsing border model.
I've started to look at the wiki pages, the code and the mail archives
but if you have any hint about what are the remaining problems to solve,
where to look at in particular, etc., I'm all ears ;-)

Thanks,
Vincent


Re: Status of the collapsing border model

2006-11-15 Thread Jeremias Maerki
(Sorry if I miss anything on the list these days. Some of my own mails
don't make it back to me from the list and I suspect that other mails
don't, either. Not sure what the problem is. Hopefully just a temporary
glitch.)

My ideas should be visible on the mailing list archives. If they are not
apparent, the basic idea is not to allow interaction between
headers/footers and the body in terms of border resolution. That may
lead to odd-looking borders in some exotic cases but should simplify the
implementation a lot. The renderers already only paint half-borders so
it's not necessary to change anything in the model. Most of the code
necessary is also already there, especially the resolution itself and
the painting. Only the right element list construction is missing.

There's a synthetic example on the Wiki [1] that shows the problem.
Watch out for the exclamation marks in the table. That's where the
simplified model would ignore the influence on the header and footer
treating it with constant height, thus making it easier to handle with a
trade-off in quality.

[1] 
http://wiki.apache.org/xmlgraphics-fop/TableLayout/KnuthElementsForTables/RowBorder2

Also, don't miss http://wiki.apache.org/xmlgraphics-fop/CollapsingBorderModel
which discusses some important details.

Have fun!

On 15.11.2006 11:41:12 Vincent Hennebert wrote:
 Hi all,
 
 Just to let you know that I'd like to finish the implementation of the
 collapsing border model.
 I've started to look at the wiki pages, the code and the mail archives
 but if you have any hint about what are the remaining problems to solve,
 where to look at in particular, etc., I'm all ears ;-)
 
 Thanks,
 Vincent



Jeremias Maerki



Re: Status of the collapsing border model

2006-11-15 Thread Andreas L Delmelle

On Nov 15, 2006, at 11:41, Vincent Hennebert wrote:

Hi Vincent,


Just to let you know that I'd like to finish the implementation of the
collapsing border model.
I've started to look at the wiki pages, the code and the mail archives
but if you have any hint about what are the remaining problems to  
solve,

where to look at in particular, etc., I'm all ears ;-)


Collapsing borders again, ay? 8)
Well, I still have some ideas up my sleeve for optimization, but  
AFAIU the basic implementation that Jeremias initially added should  
work nicely, except for the part that is documented on the Wiki.


Unfortunately, I haven't had too much time lately to invest into  
this, but roughly it comes down to moving a great deal of the  
collapsing-border-logic to the FOTree. I've had numerous fruitful  
discussions with Jeremias about this in the past, and I'm still  
convinced that it would be a good move --performance-wise-- to  
relocate those parts to the FOTree, and make them accessible to the  
layoutengine from there.
Although it is almost never possible to resolve the borders  
completely at that stage, since you have no page-breaking context  
yet, I still feel much for performing as much of the resolving as  
possible before the layoutengine even gets its hands on those FO nodes.


It's not a BIG problem, but still it seems like a waste to have a  
table with potentially thousands of cells, each one having a  
CommonBorderPaddingBackground with BorderInfo objects that basically  
all have the same properties (width / color / style), so my ideas go  
in the direction of reducing the number of separate BorderInfo  
instances drastically. If, for example, the table's start-borders  
would win for all rows, then it seems logical to me that all the  
cells adjacent to that start-edge actually share that very same  
BorderInfo instance.


Another way to go about that would be to implement BorderInfo as a  
fly-weight, so that even when there are many different tables with  
identical border-properties, there is actually only one BorderInfo  
alive to which all the related FO nodes share a reference...


That said, these ideas for improvement can easily wait until we have  
a fully working implementation to begin with, so go right ahead with  
this. The community is going to love you for it (if you still needed  
motivation ;) )


Cheers,

Andreas



Re: Indent Inheritance and Collapsing Border Model

2005-12-07 Thread Jeremias Maerki
Both proposed changes are now implemented. I'm not sure if I got
everything right WRT the indent behaviour. I guess I'll have to wait for
feedback from those people who wanted that feature in the first place.

http://svn.apache.org/viewcvs?rev=354763view=rev
http://svn.apache.org/viewcvs?rev=354075view=rev

On 01.12.2005 12:53:56 Jeremias Maerki wrote:
 Hey gang,
 
 There are two issues I'd like to discuss. They come from feedback from
 customers:
 
 The first concerns indent inheritance which I documented in [1]. It
 turns out that most commercial implementations decided to deliberately
 break indent inheritance to work around the expectations of
 inexperienced XSL-FO users. This obviously breaks the specification and
 it creates an interoperability issue. This becomes an issue, especially
 since I know a few companies that would like switch from commercial
 implementations back to Apache FOP now that it's more usable now. I've
 asked the XSL WG in [2] on their updated opinion about the issue. There
 are arguments in both directions.
 
 So what I'd like to do is implement the alternative behaviour as a
 configurable option in the FO tree. The default would still be what the
 specification describes (see [1]), but users would be able to set a
 switch that would make FOP reset start-indent and end-indent to zero in
 cases where in the area tree a reference area boundary would be crossed
 (block-containers and table-cell, mainly).
 
 [1] http://wiki.apache.org/xmlgraphics-fop/IndentInheritance
 [2] http://lists.w3.org/Archives/Public/xsl-editors/2005OctDec/0024.html
 
 
 The second issue is about the collapsing border model. Currently, having
 an fo:table with no explicit border-collapse=separate results in a
 warning message in the log as well as frequent exceptions due to the
 fact that this border model not completely implemented. I would like to
 modify the FO tree in a way that a table always reports being in
 separate border model mode. The other idea would have been to change the
 default but I don't particularly like that approach because it breaks
 the spec. Obviously, this is only a temporary measure until the
 collapsing border model becomes usable. I was recently thinking about
 doing a scaled-down implementation which ignores the tricky interactions
 between headers/footers and the table-body. But my priorities here are
 not particularly high, so it might be some time until I get to this.
 
 Any objections? Comments?
 
 Thanks,
 Jeremias Maerki



Jeremias Maerki



Re: Indent Inheritance and Collapsing Border Model

2005-12-03 Thread Andreas L Delmelle

On Dec 1, 2005, at 12:53, Jeremias Maerki wrote:

Hi,


There are two issues I'd like to discuss. They come from feedback from
customers:

The first concerns indent inheritance which I documented in [1].
snip /


+1 for making this configurable.



[1] http://wiki.apache.org/xmlgraphics-fop/IndentInheritance
[2] http://lists.w3.org/Archives/Public/xsl-editors/2005OctDec/ 
0024.html



The second issue is about the collapsing border model. Currently,  
having

an fo:table with no explicit border-collapse=separate results in a
warning message in the log as well as frequent exceptions due to the
fact that this border model not completely implemented. I would  
like to

modify the FO tree in a way that a table always reports being in
separate border model mode.


Easiest way, I guess, would be to expand the already existing test in  
fo.flow.Table.bind()... Weird that this wasn't already being done. I  
must have read over that bit a hundred times, and never wondered  
about it, but indeed, it's almost like saying: Not implemented, and  
now we're going to prove it to you by just continuing as if it  
were... Who knows, maybe you're lucky. :-)


+1

Cheers,

Andreas


Indent Inheritance and Collapsing Border Model

2005-12-01 Thread Jeremias Maerki
Hey gang,

There are two issues I'd like to discuss. They come from feedback from
customers:

The first concerns indent inheritance which I documented in [1]. It
turns out that most commercial implementations decided to deliberately
break indent inheritance to work around the expectations of
inexperienced XSL-FO users. This obviously breaks the specification and
it creates an interoperability issue. This becomes an issue, especially
since I know a few companies that would like switch from commercial
implementations back to Apache FOP now that it's more usable now. I've
asked the XSL WG in [2] on their updated opinion about the issue. There
are arguments in both directions.

So what I'd like to do is implement the alternative behaviour as a
configurable option in the FO tree. The default would still be what the
specification describes (see [1]), but users would be able to set a
switch that would make FOP reset start-indent and end-indent to zero in
cases where in the area tree a reference area boundary would be crossed
(block-containers and table-cell, mainly).

[1] http://wiki.apache.org/xmlgraphics-fop/IndentInheritance
[2] http://lists.w3.org/Archives/Public/xsl-editors/2005OctDec/0024.html


The second issue is about the collapsing border model. Currently, having
an fo:table with no explicit border-collapse=separate results in a
warning message in the log as well as frequent exceptions due to the
fact that this border model not completely implemented. I would like to
modify the FO tree in a way that a table always reports being in
separate border model mode. The other idea would have been to change the
default but I don't particularly like that approach because it breaks
the spec. Obviously, this is only a temporary measure until the
collapsing border model becomes usable. I was recently thinking about
doing a scaled-down implementation which ignores the tricky interactions
between headers/footers and the table-body. But my priorities here are
not particularly high, so it might be some time until I get to this.

Any objections? Comments?

Thanks,
Jeremias Maerki



Re: Indent Inheritance and Collapsing Border Model

2005-12-01 Thread Luca Furini

Jeremias Maerki wrote:


The first concerns indent inheritance [...]

So what I'd like to do is implement the alternative behaviour as a 
configurable option in the FO tree. The default would still be what the 
specification describes (see [1]), but users would be able to set a 
switch that would make FOP reset start-indent and end-indent to zero in 
cases where in the area tree a reference area boundary would be crossed 
(block-containers and table-cell, mainly).


I agree with the need to provide users what they expect, but I did not 
understand where this switch will be: in the configuration file (+1) or in 
the document itself as an extension property / element (not so 
enthusiastic about that)?


In the first case the file would be correct, only its rendering will be 
deliberately wrong: the user is aware that he is requiring a 
non-standard rendering *to the formatter*.


In the second the document itself would require a non-standard rendering, 
which only our implementation will provide; in other words, it seems to me 
that this solution would give the impression that the file itself is 
enough to achieve the expected result, while it is not.


Or maybe you were thinking of something else?

The second issue is about the collapsing border model. Currently, having 
an fo:table with no explicit border-collapse=separate results in a 
warning message in the log as well as frequent exceptions due to the 
fact that this border model not completely implemented. I would like to 
modify the FO tree in a way that a table always reports being in 
separate border model mode. The other idea would have been to change the 
default but I don't particularly like that approach because it breaks 
the spec. Obviously, this is only a temporary measure until the 
collapsing border model becomes usable.


I agree with you, I prefer the first option.

Regards
Luca


Re: Indent Inheritance and Collapsing Border Model

2005-12-01 Thread Jeremias Maerki

On 01.12.2005 13:30:05 Luca Furini wrote:
 Jeremias Maerki wrote:
 
  The first concerns indent inheritance [...]
  
  So what I'd like to do is implement the alternative behaviour as a 
  configurable option in the FO tree. The default would still be what the 
  specification describes (see [1]), but users would be able to set a 
  switch that would make FOP reset start-indent and end-indent to zero in 
  cases where in the area tree a reference area boundary would be crossed 
  (block-containers and table-cell, mainly).
 
 I agree with the need to provide users what they expect, but I did not 
 understand where this switch will be: 

I did not say.

 in the configuration file (+1) or in 
 the document itself as an extension property / element (not so 
 enthusiastic about that)?
 
 In the first case the file would be correct, only its rendering will be 
 deliberately wrong: the user is aware that he is requiring a 
 non-standard rendering *to the formatter*.
 
 In the second the document itself would require a non-standard rendering, 
 which only our implementation will provide; in other words, it seems to me 
 that this solution would give the impression that the file itself is 
 enough to achieve the expected result, while it is not.
 
 Or maybe you were thinking of something else?

No. The second idea would kill the effect of the change. Someone would
still have to modify a stylesheet to make it work with FOP. That is not
the idea. I assume it will be good enough to control the option via the
user agent and indirectly through the configuration file.

  The second issue is about the collapsing border model. Currently, having 
  an fo:table with no explicit border-collapse=separate results in a 
  warning message in the log as well as frequent exceptions due to the 
  fact that this border model not completely implemented. I would like to 
  modify the FO tree in a way that a table always reports being in 
  separate border model mode. The other idea would have been to change the 
  default but I don't particularly like that approach because it breaks 
  the spec. Obviously, this is only a temporary measure until the 
  collapsing border model becomes usable.
 
 I agree with you, I prefer the first option.

Thanks for your feedback.


Jeremias Maerki



DO NOT REPLY [Bug 36934] New: - The collapsing border model on an fo:table is currently not supported by FOP

2005-10-05 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://issues.apache.org/bugzilla/show_bug.cgi?id=36934.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=36934

   Summary: The collapsing border model on an fo:table is currently
not supported by FOP
   Product: Fop
   Version: 1.0dev
  Platform: PC
OS/Version: Windows XP
Status: NEW
  Severity: blocker
  Priority: P2
 Component: fo tree
AssignedTo: fop-dev@xmlgraphics.apache.org
ReportedBy: [EMAIL PROTECTED]


We committed to test latest FOP from SVN, but actually *every* FO file we want
to render ends up in the following message, and no PDF output is created:

The collapsing border model on an fo:table is currently not supported by FOP

So it seems the lack of this 'feature' blocks us from beeing any further help to
the project. :-(

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug, or are watching the assignee.


DO NOT REPLY [Bug 36934] - The collapsing border model on an fo:table is currently not supported by FOP

2005-10-05 Thread bugzilla
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
http://issues.apache.org/bugzilla/show_bug.cgi?id=36934.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=36934





--- Additional Comments From [EMAIL PROTECTED]  2005-10-05 15:04 ---
Which project? Yours or ours? :-)

FOP 0.20.5 doesn't fully support the collapsing border model, either. It just
pretends it does. The borders are simply painted on top of each other. FOP Trunk
doesn't do any such ugly hacks right now. Apart from the warning message you
got, what did the output look like? Unusable?

Does any committer have a good overview of what exactly works on tables in
0.20.5? Currently, the compliance page suggests that 0.20.5 work much better
than FOP Trunk WRT table support which is probably not the case.

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
--- You are receiving this mail because: ---
You are the assignee for the bug, or are watching the assignee.


Re: Collapsing border model

2005-05-06 Thread Jeremias Maerki
Thanks everyone for helping me with this.

On 05.05.2005 20:43:58 Simon Pepping wrote:
 Jeremias,
 
 At first sight I agree with Andreas' interpretation in his reply to
 this message, which I think is the same as your original
 interpretation. Thinking on, however, I see that there may be a
 problem with spanned cells. Is that what you are aiming at?

Yes, exactly.

 The cell level, means the level of the spanned cell. This suggests
 indeed that each side of a spanned cell must be treated as a whole.
 However, the spec says precisely:
 
  If the value of the border-collapse property is collapse or
  collapse-with-precedence the border is determined, for each segment,

  at the cell level.

Yes, but it's the cell level part that made think twice. I now
interpret the each segment part in the way that each segment has to be
taken to get at the candidates for a non-segmented cell border.

 and
 
  If the value of the border-collapse trait is collapse, the border for
  each side of the cell is determined by, for each segment of a border,
   
  selecting, from all border specifications for that segment, the border
  that has the most eye catching border style...

At the moment I'm not sure what to think. There are parts of this
sentence that let me run on one direction, others let me run in the
opposite direction.

 Moreover, the term 'cell level' is rather vague, and certainly not the
 same as 'per cell'.
 
 That seems to mean that the determination is done per segment indeed,
 which agrees with your original interpretation. Note that the spec
 does not define the notion of a segment, nor does the CSS2 spec. But I
 take it to mean the side of a grid unit.

Let's hope so.

 Your Wiki example shows a result that is probably undesirable, a
 spanned cell with vastly different border segments. But apparently the
 spec does not protect the user from specifying such a border
 arrangement.

...if the original interpretation was correct.

 Probably it is not possible to define resolution of collapsing border
 specifications per cell. Consider the following example:
 
++++
||||
||||
||||
||||
++---+++
|| |
|| |
|| |
|| |
++-+
 
 On the border between rows 1 and 2 each segment is part of two cell
 borders. Conflicting border specifications can only be resolved per
 segment, not per cell.

Actually, I think it could but the implications are dreadful. Actually,
so far this is the one reason in all this that urges me to believe that
the original interpretation was indeed correct.

 Note also this remark in the spec (6.7.3 fo:table) about the
 background of spanned cells: A cell that is spanned may have a
 different background in each of the grid units it occupies. This is
 somewhat similar to the spec allowing different segments on a side of
 a spanned cell.

But that's because you have backgrounds on various levels (rows, columns,
column groups, row groups). If you specify the background on a spanned cell
it fills all the occupying grid units. You have no means to directly specify
a background (at least on cell level) for each of the occupying grid
unit.

Again, thanks for helping me here. I guess it's best to just leave it
like it is right now. It's a lot better than nothing even if the
interpretation turns out to be wrong at one point. It also leaves the
whole thing simpler. These are, after all, only nits but with a big
impact on the complexity. And BTW, a XEP trial version matches more or
less my original interpretation even though I found some diffences on
start and end borders.

Jeremias Maerki



RE: Collapsing border model

2005-05-06 Thread Andreas L. Delmelle
 -Original Message-
 From: Simon Pepping [mailto:[EMAIL PROTECTED]


Hi Simon,

 At first sight I agree with Andreas' interpretation in his reply to
 this message, which I think is the same as your original
 interpretation. Thinking on, however, I see that there may be a
 problem with spanned cells. Is that what you are aiming at?

Aah, yes! I knew there was something I was overlooking...


 The cell level, means the level of the spanned cell. This suggests
 indeed that each side of a spanned cell must be treated as a whole.
 However, the spec says precisely:

  If the value of the border-collapse property is collapse or
  collapse-with-precedence the border is determined, for each segment,

Indeed, and as you point out below --and I also recall from reading the CSS2
spec-- that segment is actually meant to be the 'intersection between a row
and a column', such that a row- and column-spanning cell can have different
borders and backgrounds for each of the grid-units it occupies.

snip /
 Moreover, the term 'cell level' is rather vague, and certainly not the
 same as 'per cell'.

 That seems to mean that the determination is done per segment indeed,
 which agrees with your original interpretation. Note that the spec
 does not define the notion of a segment, nor does the CSS2 spec. But I
 take it to mean the side of a grid unit.

 Your Wiki example shows a result that is probably undesirable, a
 spanned cell with vastly different border segments. But apparently the
 spec does not protect the user from specifying such a border
 arrangement.

 Probably it is not possible to define resolution of collapsing border
 specifications per cell. Consider the following example:

++++
||||
||||
||||
||||
++---+++
|| |
|| |
|| |
|| |
++-+

 On the border between rows 1 and 2 each segment is part of two cell
 borders. Conflicting border specifications can only be resolved per
 segment, not per cell.

Yes and no. Ultimately this problem always poses itself, even in very basic
table-grids, for the first cell's after-border, you might have to wait until
the before-border for the first cell below it is known... (to be able to
fully and correctly resolve the after-borders for the cells in one row, we
need the before-border info for the cells in the next row as well)

The only thing that seems quite impossible (to me, maybe in error) is that
there would be different borders on two sides of the same gridline. In
Jeremias' example this would mean that IF the entire before-border of the
spanning cell has to be the thick red border, THEN this border-style would
also be applicable to the after-border of *both* cells immediately above.
(and suddenly I think I see what Jeremias meant by 'ending up taking the
after-border of the cell to the right...' in his OP)

OTOH, as Jeremias just pointed out in his reply, IF borders are specified at
the cell-level, and the cell spans multiple columns/rows, then that border
would be a candidate for _all_ the relevant segments --not only the first
grid-unit it occupies. If it is dominant over all the others you would end
up with a uniform border on all segments.


Cheers,

Andreas



Re: Collapsing border model

2005-05-05 Thread Simon Pepping
Jeremias,

At first sight I agree with Andreas' interpretation in his reply to
this message, which I think is the same as your original
interpretation. Thinking on, however, I see that there may be a
problem with spanned cells. Is that what you are aiming at?

The cell level, means the level of the spanned cell. This suggests
indeed that each side of a spanned cell must be treated as a whole.
However, the spec says precisely:

 If the value of the border-collapse property is collapse or
 collapse-with-precedence the border is determined, for each segment,
   
 at the cell level.

and

 If the value of the border-collapse trait is collapse, the border for
 each side of the cell is determined by, for each segment of a border,
  
 selecting, from all border specifications for that segment, the border
 that has the most eye catching border style...

Moreover, the term 'cell level' is rather vague, and certainly not the
same as 'per cell'.

That seems to mean that the determination is done per segment indeed,
which agrees with your original interpretation. Note that the spec
does not define the notion of a segment, nor does the CSS2 spec. But I
take it to mean the side of a grid unit.

Your Wiki example shows a result that is probably undesirable, a
spanned cell with vastly different border segments. But apparently the
spec does not protect the user from specifying such a border
arrangement.

Probably it is not possible to define resolution of collapsing border
specifications per cell. Consider the following example:

   ++++
   ||||
   ||||
   ||||
   ||||
   ++---+++
   || |
   || |
   || |
   || |
   ++-+

On the border between rows 1 and 2 each segment is part of two cell
borders. Conflicting border specifications can only be resolved per
segment, not per cell.

Note also this remark in the spec (6.7.3 fo:table) about the
background of spanned cells: A cell that is spanned may have a
different background in each of the grid units it occupies. This is
somewhat similar to the spec allowing different segments on a side of
a spanned cell.

Regards, Simon

On Tue, May 03, 2005 at 03:14:50PM +0200, Jeremias Maerki wrote:
 I've just realized I probably made a big mistake interpreting collapsing
 border model. While going through the specs to reread everything about
 the outer table border I carefully reread the following passages:
 
 XSL-FO 1.0, 6.7.2, Trait Derivation:
 If the value of the border-collapse property is collapse or
 collapse-with-precedence the border is determined, for each segment,
 at the cell level.
 
 So far I've based everything on being determined, for each segment, at
 the segment level as it seems. I even had the part about cell level
 highlighted in my print-out and still got it wrong. Damn me!
 
 But I think I know why I got it wrong:
 
 XSL-FO 1.0, 6.7.10, Trait Derivation:
 If the value of the border-collapse trait is collapse, the border for
 each side of the cell is determined by, for each segment of a border,
 selecting, from all border specifications for that segment, the border
 that has the most eye catching border style...
 
 Obviously sounded too much like a per-segment thing.
 
 Under the new light, this means a totally different thing. Looking at my
 (buggy) example [1] this means that the segment where the arrow points
 should actually be the same broad red border as the one next to it on
 the right side.


-- 
Simon Pepping
home page: http://www.leverkruid.nl



Re: Collapsing border model

2005-05-04 Thread Jeremias Maerki
As I have proven a few times now I'm not without flaws. :-) That's where
we need peer-review. Thanks for looking into this.

On 03.05.2005 21:03:49 Simon Pepping wrote:
 I am afraid I just followed your interpretation. I will try to read
 the spec more independently and more critically.


Jeremias Maerki



RE: Collapsing border model

2005-05-04 Thread Andreas L. Delmelle
 -Original Message-
 From: Jeremias Maerki [mailto:[EMAIL PROTECTED]

 I've attached the picture and an FO file I wrote today to mimic that
 picture.

Apologies. Damn *me* now for not having tried this with a decent browser...
of course IE will let you down.

More feedback probably tomorrow.

Cheers,

Andreas



Collapsing border model

2005-05-03 Thread Jeremias Maerki
I've just realized I probably made a big mistake interpreting collapsing
border model. While going through the specs to reread everything about
the outer table border I carefully reread the following passages:

XSL-FO 1.0, 6.7.2, Trait Derivation:
If the value of the border-collapse property is collapse or
collapse-with-precedence the border is determined, for each segment,
at the cell level.

So far I've based everything on being determined, for each segment, at
the segment level as it seems. I even had the part about cell level
highlighted in my print-out and still got it wrong. Damn me!

But I think I know why I got it wrong:

XSL-FO 1.0, 6.7.10, Trait Derivation:
If the value of the border-collapse trait is collapse, the border for
each side of the cell is determined by, for each segment of a border,
selecting, from all border specifications for that segment, the border
that has the most eye catching border style...

Obviously sounded too much like a per-segment thing.

Under the new light, this means a totally different thing. Looking at my
(buggy) example [1] this means that the segment where the arrow points
should actually be the same broad red border as the one next to it on
the right side.

That also means that it's making the whole border resolution a lot more
complicated. If you started with the upper left cell and tried to
determine the after border you can end up taking the after border
specification from the cell on the right side of the cell. I'll have to
think about how to implement this in an efficient way, first.

But before I turn everything upside-down again, can please someone
confirm that I was really wrong before and got it right now? Thanks a
lot.


[1] http://wiki.apache.org/xmlgraphics-fop/CollapsingBorderModel

Jeremias Maerki

PS: Can someone please beat me?



RE: Collapsing border model

2005-05-03 Thread Andreas L. Delmelle
 -Original Message-
 From: Jeremias Maerki [mailto:[EMAIL PROTECTED]


Hi,

snip /

BTW: Am I the only one who has trouble viewing the pictures on the wiki
page? (It seems to be the only one with which I have problems. The other
table-related pages show up nicely...)

 That also means that it's making the whole border resolution a lot more
 complicated. If you started with the upper left cell and tried to
 determine the after border you can end up taking the after border
 specification from the cell on the right side of the cell.

Are you talking about what our current implementation *would* end up taking
as after border, or what *should* be taken as after border according to the
spec?

In the latter case, if you mean 'start/end', I'm game, but I don't see how
the 'after' border of the first cell to the right of a given cell could
influence the 'after' border of that cell... If the border is determined,
for each segment, at the cell level that seems to mean a decision at the
cell level between:

- table
- body (header / footer)
- column
- row
- neighbouring cells
* start ~ border-end of first cell to the left
* end ~ border-start of first cell to the right
* before ~ border-after of first cell above
* after ~ border-before of first cell below
- the cell itself

for each of the border segments: start - before - end - after

One optimistic note: all of the above options can't be an option at the same
time for one and the same cell... and the decision between row borders and
table borders, for instance, could already be resolved at row level, such
that, when the borders are determined at cell level, the cell only needs to
query the row, column and neighbouring cells (not reach back up to the body
and table).

 But before I turn everything upside-down again, can please someone
 confirm that I was really wrong before and got it right now? Thanks a
 lot.

If I could only see the images...


Cheers,

Andreas



Re: Collapsing border model

2005-05-03 Thread Jeremias Maerki
I've attached the picture and an FO file I wrote today to mimic that
picture.

BTW, the pictures worked fine for me the whole day. They are all here:
http://people.apache.org/~jeremias/fop/

Alternatively, if you log into cvs.apache.org you can cd into
/x1/home/jeremias/public_html/fop to get them.

On 03.05.2005 19:40:39 Andreas L. Delmelle wrote:
  -Original Message-
  From: Jeremias Maerki [mailto:[EMAIL PROTECTED]
 
 
 Hi,
 
 snip /
 
 BTW: Am I the only one who has trouble viewing the pictures on the wiki
 page? (It seems to be the only one with which I have problems. The other
 table-related pages show up nicely...)
 
  That also means that it's making the whole border resolution a lot more
  complicated. If you started with the upper left cell and tried to
  determine the after border you can end up taking the after border
  specification from the cell on the right side of the cell.
 
 Are you talking about what our current implementation *would* end up taking
 as after border, or what *should* be taken as after border according to the
 spec?

*should* :-(

 In the latter case, if you mean 'start/end', I'm game, but I don't see how
 the 'after' border of the first cell to the right of a given cell could
 influence the 'after' border of that cell... If the border is determined,
 for each segment, at the cell level that seems to mean a decision at the
 cell level between:
 
 - table
 - body (header / footer)
 - column
 - row
 - neighbouring cells
 * start ~ border-end of first cell to the left
 * end ~ border-start of first cell to the right
 * before ~ border-after of first cell above
 * after ~ border-before of first cell below
 - the cell itself
 
 for each of the border segments: start - before - end - after
 
 One optimistic note: all of the above options can't be an option at the same
 time for one and the same cell... and the decision between row borders and
 table borders, for instance, could already be resolved at row level, such
 that, when the borders are determined at cell level, the cell only needs to
 query the row, column and neighbouring cells (not reach back up to the body
 and table).

Got to think that through first. It might speed things up a little.

  But before I turn everything upside-down again, can please someone
  confirm that I was really wrong before and got it right now? Thanks a
  lot.
 
 If I could only see the images...
 
 
 Cheers,
 
 Andreas



Jeremias Maerki
attachment: border-collapse5.png

table-border-special2.fo
Description: Binary data


Re: Collapsing border model

2005-05-03 Thread Simon Pepping
I am afraid I just followed your interpretation. I will try to read
the spec more independently and more critically.

Regards, Simon

On Tue, May 03, 2005 at 03:14:50PM +0200, Jeremias Maerki wrote:
 I've just realized I probably made a big mistake interpreting collapsing
 border model. While going through the specs to reread everything about
 the outer table border I carefully reread the following passages:
 
 XSL-FO 1.0, 6.7.2, Trait Derivation:
 If the value of the border-collapse property is collapse or
 collapse-with-precedence the border is determined, for each segment,
 at the cell level.
 
 So far I've based everything on being determined, for each segment, at
 the segment level as it seems. I even had the part about cell level
 highlighted in my print-out and still got it wrong. Damn me!
 
 But I think I know why I got it wrong:
 
 XSL-FO 1.0, 6.7.10, Trait Derivation:
 If the value of the border-collapse trait is collapse, the border for
 each side of the cell is determined by, for each segment of a border,
 selecting, from all border specifications for that segment, the border
 that has the most eye catching border style...
 
 Obviously sounded too much like a per-segment thing.
 
 Under the new light, this means a totally different thing. Looking at my
 (buggy) example [1] this means that the segment where the arrow points
 should actually be the same broad red border as the one next to it on
 the right side.
 
 That also means that it's making the whole border resolution a lot more
 complicated. If you started with the upper left cell and tried to
 determine the after border you can end up taking the after border
 specification from the cell on the right side of the cell. I'll have to
 think about how to implement this in an efficient way, first.
 
 But before I turn everything upside-down again, can please someone
 confirm that I was really wrong before and got it right now? Thanks a
 lot.
 
 
 [1] http://wiki.apache.org/xmlgraphics-fop/CollapsingBorderModel
 
 Jeremias Maerki
 
 PS: Can someone please beat me?
 

-- 
Simon Pepping
home page: http://www.leverkruid.nl



Re: Collapsing border model

2005-05-03 Thread Peter B. West
Jeremias Maerki wrote:
PS: Can someone please beat me?
Stick, riding crop, whip, rope, chain or plain old bare knuckles?
Peter
--
Peter B. West http://cv.pbw.id.au/
Folio http://defoe.sourceforge.net/folio/ http://folio.bkbits.net/


Re: Collapsing border model

2005-05-03 Thread Jeremias Maerki
Whatever helps. Thanks!

On 04.05.2005 04:14:51 Peter B. West wrote:
 Jeremias Maerki wrote:
  
  PS: Can someone please beat me?
 
 Stick, riding crop, whip, rope, chain or plain old bare knuckles?
 
 Peter
 -- 
 Peter B. West http://cv.pbw.id.au/
 Folio http://defoe.sourceforge.net/folio/ http://folio.bkbits.net/



Jeremias Maerki