Bump source level to 1.4
Ignore build directory
Improve robustness of font family handling

Improve robustness of font family handling:
  - Font faces are now added to all candidate font families instead of
    just trying to guess the best one.  This includes the Unicode,
    Macintosh, and US English names.  Previously, the US English name
    was preferred.
  - font-family can be specified in @font-face

(also some whitespace clean-up spam)
Support CSS3 property word-wrap when rendering PDF

Very long words without spaces are not wraped, which might result in
words printed over the right edge of the paper when rendering PDFs.

CSS3 introduced the property word-wrap that can be used to force wrapping
of long words even if they don't have any spaces.

This patch adds support for the word-wrap property to PDF rendering.
Fix table layout when all rows have colspan > 1

When a table uses mixed colspan=1 and colspan=2 attributes, the layout is
done correctly:
 ________________ ________________ ________________
| col1 colspan=1 | col2 colspan=1 | col3 colspan=1 |
|----------------|---------------------------------|
| col1 colspan=1 | col2 colspan=2                  |
|----------------|---------------------------------|
| col1 colspan=1 | col2 colspan=2                  |
|________________|_________________________________|

However, if the same table is layed out, but all of the rows have colspan=2
then the last column is not used at all and the result looks like this:
 ________________ ________________
| col1 colspan=1 | col2 colspan=2 |
|----------------|----------------|
| col1 colspan=1 | col2 colspan=2 |
|----------------|----------------|
| col1 colspan=1 | col2 colspan=2 |
|________________|________________|

This patch introduces the correct layout, such that the table above would
look like this:
 ________________ _________________________________
| col1 colspan=1 | col2 colspan=2                  |
|----------------|---------------------------------|
| col1 colspan=1 | col2 colspan=2                  |
|----------------|---------------------------------|
| col1 colspan=1 | col2 colspan=2                  |
|________________|_________________________________|
Merge branch 'colspan' of http://github.com/fstab/flyingsaucer
Fix "page-break-after: avoid" followed by multi-line elements

If a document has two consecutive elements <elem1> and <elem2>, and <elem1>
has the property "page-break-after: avoid", then <elem1> should only be moved
to the next page only if there is a page break between <elem1> and <elem2>.
If <elem2> starts on the same page as <elem1>, then later page breaks inside
of <elem2> should not be considered.

This patch fixes the page break behaviour such that "page-break-after: avoid"
is ignored as long as the first line of <elem2> fits on the same page as
the end of <elem1>.

Example: Our documents have the following structure:

<h1>headline</h1>
<h2>headline</h2>
<table><!-- very long table, might include page breaks --></table>
<h2>headline</h2>
<h3>headline</h3>
<table><!-- very long table, might include page breaks --></table>
<h2>headline</h2>
<table><!-- very long table, might include page breaks --></table>

We want to avoid headlines at the bottom of a page, so we put the following
in the CSS:

h1, h2, h3, h4, h5, h6 {
        page-break-after: avoid;
}

The expected behaviour is: When there is a page break after a headline,
the headline should be moved to the next page. If the table begins on the
same page as the headline, then everything is ok, even if there are page breaks
later in the table.

The current implementation is: headlines are moved to the next page unless
the following table fits entirely on the same page as the headline.

This patch fixes the current implementation, such that only the first lines
of the tables are considered when processing "page-break-after: avoid".
[SWT] Fix font anti-aliasing
Add .hgignore for those using hg-git

--HG--
rename : .gitignore => .hgignore
Build SharedContext from scratch for PDF rendering

Don't replace Swing classes with their iText equivalents after
SharedContext construction.  Instead create an empty SharedContext and
set additional properties as necessary.
Make FS a better Swing citizen

A few changes to make FS a better Swing citizen
  - Respect insets when laying out and painting
  - validate() marks panel for relayout on next paint if view extents
    have changed
  - Layout and render use Graphics object provided to it by
    paintComponent().
  - Graphics object is copied before laying out or rendering in case
    irreversible changes are made to it (per general contract of
    paintComponent()).
  - componentResized() only triggers a relayout and repaint if view
    extents have actually changed.  Some events can apparently be sent
    twice.
  - Calling panel.setDefaultFontFromComponent(true) will set initial
    font-related CSS properties to the corresponding values from panel.
    This includes font-family, font-size, font-weight, font-style, and
    color.  background-color is already handled.
[SWT] Upgrade SWT library to version 3.6
Merge SWT upgrade
Ensure that content width is not negative.
Add config key to control background image loading

Add config key (xr.image.background.loading.enable) to enable/disable
background image loading.  Current default is false if not explicitly
set.
Improve painting size calculation

Don't consider children boxes if overflow is something other than
visible when calculating painting (preferred) size.
Catch Exception instead of specific exceptions

Catch Exception instead of specific checked exceptions in order to catch
RuntimeExceptions too.  See #317 on java.net for an example of an image
load throwing an IllegalArgumentException.
documentFromString() treated string as system identifier

(also, fix deprecated toURL() call)
Don't explicitly call super.setDocument()

Don't explicitly call super.setDocument().  Instead allow subclasses to
override it.
Only support table-layout: fixed if width is explicit

This matches the behavior of Chrome, Firefox, and Opera and prevents
undesirable behavior when we try to layout a fixed width table in a
context where the width isn't yet known (inline blocks for example).