org.apache.fop.render.rtf.rtflib.rtfdoc.RtfList Maven / Gradle / Ivy
/*
* 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: RtfList.java 1805173 2017-08-16 10:50:04Z ssteiner $ */
package org.apache.fop.render.rtf.rtflib.rtfdoc;
/*
* This file is part of the RTF library of the FOP project, which was originally
* created by Bertrand Delacretaz [email protected] and by other
* contributors to the jfor project (www.jfor.org), who agreed to donate jfor to
* the FOP project.
*/
import java.io.IOException;
import java.io.Writer;
import java.util.Random;
/**
* Model of an RTF list, which can contain RTF list items.
*
* This work was authored by Bertrand Delacretaz ([email protected]),
* Christopher Scott ([email protected]), and
* Peter Herweg ([email protected]).
*/
public class RtfList extends RtfContainer {
private RtfListItem item;
private RtfListTable listTable;
private final boolean hasTableParent;
private RtfListStyle defaultListStyle;
private Integer listTemplateId;
private Integer listId;
private static Random listIdGenerator = new Random(0);
/** Create an RTF list as a child of given container with given attributes */
RtfList(RtfContainer parent, Writer w, RtfAttributes attr) throws IOException {
super(parent, w, attr);
//random number generator for ids
listId = listIdGenerator.nextInt();
listTemplateId = listIdGenerator.nextInt();
//create a new list table entry for the list
listTable = getRtfFile().startListTable(attr);
listTable.addList(this);
// find out if we are nested in a table
hasTableParent = this.getParentOfClass(RtfTable.class) != null;
this.setRtfListStyle(new RtfListStyleBullet());
}
/**
* Close current list item and start a new one
* @return new RtfListItem
* @throws IOException for I/O problems
*/
public RtfListItem newListItem() throws IOException {
if (item != null) {
item.close();
}
item = new RtfListItem(this, writer);
return item;
}
/**
* Returns the Id of the list.
* @return Id of the list
*/
public Integer getListId() {
return listId;
}
/**
* Returns the Id of the list template.
* @return Id of the list template
*/
public Integer getListTemplateId() {
return listTemplateId;
}
/**
* Change list style
* @param ls ListStyle to set
*/
public void setRtfListStyle(RtfListStyle ls) {
defaultListStyle = ls;
}
/**
* Get list style
* @return ListSytle of the List
*/
public RtfListStyle getRtfListStyle() {
return defaultListStyle;
}
/**
* Returns true, if the list has a parent table.
* @return true, if the list has a parent table
*/
public boolean getHasTableParent() {
return hasTableParent;
}
}