private void calcExtraPageClearance(LayoutContext c) { if (c.isPageBreaksAllowed() && c.getExtraSpaceTop() > 0 && (getStyle().isSpecifiedAsBlock() || getStyle().isListItem())) { PageBox first = c.getRootLayer().getFirstPage(c, this); if (first != null && first.getTop() + c.getExtraSpaceTop() > getAbsY()) { int diff = first.getTop() + c.getExtraSpaceTop() - getAbsY(); setY(getY() + diff); c.translate(0, diff); calcCanvasLocation(); } } }
private void calcExtraPageClearance(LayoutContext c) { if (c.isPageBreaksAllowed() && c.getExtraSpaceTop() > 0 && (getStyle().isSpecifiedAsBlock() || getStyle().isListItem())) { PageBox first = c.getRootLayer().getFirstPage(c, this); if (first != null && first.getTop() + c.getExtraSpaceTop() > getAbsY()) { int diff = first.getTop() + c.getExtraSpaceTop() - getAbsY(); setY(getY() + diff); c.translate(0, diff); calcCanvasLocation(); } } }
public void checkPagePosition(LayoutContext c, boolean alwaysBreak) { if (! c.isPageBreaksAllowed()) { return; } PageBox pageBox = c.getRootLayer().getFirstPage(c, this); if (pageBox != null) { boolean needsPageBreak = alwaysBreak || getAbsY() + getHeight() >= pageBox.getBottom() - c.getExtraSpaceBottom(); if (needsPageBreak) { forcePageBreakBefore(c, IdentValue.ALWAYS, false); calcCanvasLocation(); } else if (pageBox.getTop() + c.getExtraSpaceTop() > getAbsY()) { int diff = pageBox.getTop() + c.getExtraSpaceTop() - getAbsY(); setY(getY() + diff); calcCanvasLocation(); } } }
public void checkPagePosition(LayoutContext c, boolean alwaysBreak) { if (! c.isPageBreaksAllowed()) { return; } PageBox pageBox = c.getRootLayer().getFirstPage(c, this); if (pageBox != null) { boolean needsPageBreak = alwaysBreak || getAbsY() + getHeight() >= pageBox.getBottom() - c.getExtraSpaceBottom(); if (needsPageBreak) { forcePageBreakBefore(c, IdentValue.ALWAYS, false); calcCanvasLocation(); } else if (pageBox.getTop() + c.getExtraSpaceTop() > getAbsY()) { int diff = pageBox.getTop() + c.getExtraSpaceTop() - getAbsY(); setY(getY() + diff); calcCanvasLocation(); } } }
public LayoutState captureLayoutState() { LayoutState result = new LayoutState(); result.setFirstLines(_firstLines); result.setFirstLetters(_firstLetters); result.setCurrentMarkerData(_currentMarkerData); result.setBFCs(_bfcs); if (isPrint()) { result.setPageName(getPageName()); result.setExtraSpaceBottom(getExtraSpaceBottom()); result.setExtraSpaceTop(getExtraSpaceTop()); result.setNoPageBreak(getNoPageBreak()); } return result; }
private void layoutTable(LayoutContext c) { boolean running = c.isPrint() && getStyle().isPaginateTable(); int prevExtraTop = 0; int prevExtraBottom = 0; if (running) { prevExtraTop = c.getExtraSpaceTop(); prevExtraBottom = c.getExtraSpaceBottom(); c.setExtraSpaceTop(c.getExtraSpaceTop() + (int)getPadding(c).top() + (int)getBorder(c).top() + getStyle().getBorderVSpacing(c)); c.setExtraSpaceBottom(c.getExtraSpaceBottom() + (int)getPadding(c).bottom() + (int)getBorder(c).bottom() + getStyle().getBorderVSpacing(c)); } super.layout(c); if (running) { if (isNeedAnalyzePageBreaks()) { analyzePageBreaks(c); setExtraSpaceTop(0); setExtraSpaceBottom(0); } else { setExtraSpaceTop(c.getExtraSpaceTop() - prevExtraTop); setExtraSpaceBottom(c.getExtraSpaceBottom() - prevExtraBottom); } c.setExtraSpaceTop(prevExtraTop); c.setExtraSpaceBottom(prevExtraBottom); } }
private int layoutRunningHeader(LayoutContext c) { int result = 0; if (getChildCount() > 0) { TableSectionBox section = (TableSectionBox)getChild(0); if (section.isHeader()) { c.setNoPageBreak(c.getNoPageBreak() + 1); section.initContainingLayer(c); section.layout(c); c.setExtraSpaceTop(c.getExtraSpaceTop() + section.getHeight()); result = section.getHeight(); section.reset(c); c.setNoPageBreak(c.getNoPageBreak() - 1); } } return result; }
public LayoutState captureLayoutState() { LayoutState result = new LayoutState(); result.setFirstLines(_firstLines); result.setFirstLetters(_firstLetters); result.setCurrentMarkerData(_currentMarkerData); result.setBFCs(_bfcs); if (isPrint()) { result.setPageName(getPageName()); result.setExtraSpaceBottom(getExtraSpaceBottom()); result.setExtraSpaceTop(getExtraSpaceTop()); result.setNoPageBreak(getNoPageBreak()); } return result; }
prevExtraTop = c.getExtraSpaceTop(); prevExtraBottom = c.getExtraSpaceBottom(); calcExtraSpaceBottom(c); c.setExtraSpaceTop(c.getExtraSpaceTop() + getExtraSpaceTop()); c.setExtraSpaceBottom(c.getExtraSpaceBottom() + getExtraSpaceBottom());
prevExtraTop = c.getExtraSpaceTop(); prevExtraBottom = c.getExtraSpaceBottom(); c.setExtraSpaceTop(c.getExtraSpaceTop() + (int)getPadding(c).top() + (int)getBorder(c).top() + setExtraSpaceBottom(0); } else { setExtraSpaceTop(c.getExtraSpaceTop() - prevExtraTop); setExtraSpaceBottom(c.getExtraSpaceBottom() - prevExtraBottom);
private int layoutRunningHeader(LayoutContext c) { int result = 0; if (getChildCount() > 0) { TableSectionBox section = (TableSectionBox)getChild(0); if (section.isHeader()) { c.setNoPageBreak(c.getNoPageBreak() + 1); section.initContainingLayer(c); section.layout(c); c.setExtraSpaceTop(c.getExtraSpaceTop() + section.getHeight()); result = section.getHeight(); section.reset(c); c.setNoPageBreak(c.getNoPageBreak() - 1); } } return result; }
prevExtraTop = c.getExtraSpaceTop(); prevExtraBottom = c.getExtraSpaceBottom(); calcExtraSpaceBottom(c); c.setExtraSpaceTop(c.getExtraSpaceTop() + getExtraSpaceTop()); c.setExtraSpaceBottom(c.getExtraSpaceBottom() + getExtraSpaceBottom());
public void forcePageBreakAfter(LayoutContext c, IdentValue pageBreakValue) { boolean needSecondPageBreak = false; PageBox page = c.getRootLayer().getLastPage(c, this); if ((page.isLeftPage() && pageBreakValue == IdentValue.LEFT) || (page.isRightPage() && pageBreakValue == IdentValue.RIGHT)) { needSecondPageBreak = true; } int delta = page.getBottom() + c.getExtraSpaceTop() - (getAbsY() + getMarginBorderPadding(c, CalculatedStyle.TOP) + getHeight()); if (page == c.getRootLayer().getLastPage()) { c.getRootLayer().addPage(c); } if (needSecondPageBreak) { page = (PageBox)c.getRootLayer().getPages().get(page.getPageNo()+1); delta += page.getContentHeight(c); if (page == c.getRootLayer().getLastPage()) { c.getRootLayer().addPage(c); } } setHeight(getHeight() + delta); }
public void forcePageBreakAfter(LayoutContext c, IdentValue pageBreakValue) { boolean needSecondPageBreak = false; PageBox page = c.getRootLayer().getLastPage(c, this); if ((page.isLeftPage() && pageBreakValue == IdentValue.LEFT) || (page.isRightPage() && pageBreakValue == IdentValue.RIGHT)) { needSecondPageBreak = true; } int delta = page.getBottom() + c.getExtraSpaceTop() - (getAbsY() + getMarginBorderPadding(c, CalculatedStyle.TOP) + getHeight()); if (page == c.getRootLayer().getLastPage()) { c.getRootLayer().addPage(c); } if (needSecondPageBreak) { page = (PageBox)c.getRootLayer().getPages().get(page.getPageNo()+1); delta += page.getContentHeight(c); if (page == c.getRootLayer().getLastPage()) { c.getRootLayer().addPage(c); } } setHeight(getHeight() + delta); }
int delta = page.getBottom() + c.getExtraSpaceTop() - getAbsY(); if (page == c.getRootLayer().getLastPage()) { c.getRootLayer().addPage(c);
int delta = page.getBottom() + c.getExtraSpaceTop() - getAbsY(); if (page == c.getRootLayer().getLastPage()) { c.getRootLayer().addPage(c);