* Get the inline area created by this element.
*
* @return the viewport inline area
*/
private Viewport getInlineArea() {
final AbstractGraphics fobj = (AbstractGraphics)this.fobj;
Dimension intrinsicSize = new Dimension(
fobj.getIntrinsicWidth(),
fobj.getIntrinsicHeight());
//TODO Investigate if the line-height property has to be taken into the calculation
//somehow. There was some code here that hints in this direction but it was disabled.
ImageLayout imageLayout = new ImageLayout(fobj, this, intrinsicSize);
Rectangle placement = imageLayout.getPlacement();
CommonBorderPaddingBackground borderProps = fobj.getCommonBorderPaddingBackground();
//Determine extra BPD from borders and padding
int beforeBPD = borderProps.getPadding(CommonBorderPaddingBackground.BEFORE, false, this);
beforeBPD += borderProps.getBorderWidth(CommonBorderPaddingBackground.BEFORE, false);
placement.y += beforeBPD;
//Determine extra IPD from borders and padding
int startIPD = borderProps.getPadding(CommonBorderPaddingBackground.START, false, this);
startIPD += borderProps.getBorderWidth(CommonBorderPaddingBackground.START, false);
placement.x += startIPD;
Area viewportArea = getChildArea();
TraitSetter.setProducerID(viewportArea, fobj.getId());
transferForeignAttributes(viewportArea);
Viewport vp = new Viewport(viewportArea);
TraitSetter.addPtr(vp, fobj.getPtr()); // used for accessibility
TraitSetter.setProducerID(vp, fobj.getId());
vp.setIPD(imageLayout.getViewportSize().width);
vp.setBPD(imageLayout.getViewportSize().height);
vp.setContentPosition(placement);
vp.setClip(imageLayout.isClipped());
vp.setOffset(0);
// Common Border, Padding, and Background Properties
TraitSetter.addBorders(vp, fobj.getCommonBorderPaddingBackground()
, false, false, false, false, this);
TraitSetter.addPadding(vp, fobj.getCommonBorderPaddingBackground()
, false, false, false, false, this);
TraitSetter.addBackground(vp, fobj.getCommonBorderPaddingBackground(), this);
return vp;
}