org.apache.fop.layoutmgr.KnuthBlockBox Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of org.apache.fop Show documentation
Show all versions of org.apache.fop Show documentation
The core maven build properties
The newest version!
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/* $Id: KnuthBlockBox.java 1642793 2014-12-02 00:29:57Z lbernardo $ */
package org.apache.fop.layoutmgr;
import java.util.LinkedList;
import java.util.List;
import org.apache.fop.traits.MinOptMax;
/**
* Knuth box used to represent a line in block-progression-dimension (i.e. the width is its height).
*/
public class KnuthBlockBox extends KnuthBox {
private MinOptMax ipdRange;
/**
* Natural width of the line represented by this box. In addition to ipdRange because
* it isn't possible to get the opt value stored in a MinOptMax object.
*/
private int bpd;
private List footnoteList;
private List floatContentLMs;
/** List of Knuth elements. This is a list of LinkedList elements. */
private List elementLists;
/**
* Creates a new box.
*
* @param width block progression dimension of this box
* @param range min, opt, max inline progression dimension of this box
* @param bpdim natural width of the line represented by this box.
* @param pos the Position stored in this box
* @param auxiliary is this box auxiliary?
*/
public KnuthBlockBox(int width, MinOptMax range, int bpdim, Position pos, boolean auxiliary) {
super(width, pos, auxiliary);
ipdRange = range;
bpd = bpdim;
footnoteList = new LinkedList();
floatContentLMs = new LinkedList();
}
/**
* Creates a new box.
*
* @param width block progression dimension of this box
* @param list footnotes cited by elements in this box. The list contains the corresponding
* FootnoteBodyLayoutManagers
* @param pos the Position stored in this box
* @param auxiliary is this box auxiliary?
*/
public KnuthBlockBox(int width, List list, Position pos, boolean auxiliary) {
super(width, pos, auxiliary);
ipdRange = MinOptMax.ZERO;
bpd = 0;
footnoteList = new LinkedList(list);
floatContentLMs = new LinkedList();
}
public KnuthBlockBox(int width, List list, Position pos, boolean auxiliary,
List fclms) {
super(width, pos, auxiliary);
ipdRange = MinOptMax.ZERO;
bpd = 0;
footnoteList = new LinkedList(list);
floatContentLMs = new LinkedList(fclms);
}
/**
* @return the LMs for the footnotes cited in this box.
*/
public List getFootnoteBodyLMs() {
return footnoteList;
}
/**
* @return true if this box contains footnote citations.
*/
public boolean hasAnchors() {
return (footnoteList.size() > 0);
}
/**
* Adds the given list of Knuth elements to this box' list of elements.
*
* @param list elements corresponding to a footnote body
*/
public void addElementList(List list) {
if (elementLists == null) {
elementLists = new LinkedList();
}
elementLists.add(list);
}
/**
* Returns the list of Knuth sequences registered by this box.
*
* @return a list of KnuthElement sequences corresponding to footnotes cited in this box
*/
public List getElementLists() {
return elementLists;
}
/**
* @return the inline progression dimension of this box.
*/
public MinOptMax getIPDRange() {
return ipdRange;
}
/**
* Returns the natural width (without stretching nor shrinking) of the line represented by this
* box.
*
* @return the line width
*/
public int getBPD() {
return bpd;
}
public List getFloatContentLMs() {
return floatContentLMs;
}
public boolean hasFloatAnchors() {
return (floatContentLMs.size() > 0);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy