01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: */
17:
18: /* $Id: RtfParagraphKeepTogether.java 426576 2006-07-28 15:44:37Z jeremias $ */
19:
20: package org.apache.fop.render.rtf.rtflib.rtfdoc;
21:
22: /*
23: * This file is part of the RTF library of the FOP project, which was originally
24: * created by Bertrand Delacretaz <bdelacretaz@codeconsult.ch> and by other
25: * contributors to the jfor project (www.jfor.org), who agreed to donate jfor to
26: * the FOP project.
27: */
28:
29: import java.io.Writer;
30: import java.io.IOException;
31:
32: /**
33: * Models the keep together attributes of paragraphs
34: */
35: public class RtfParagraphKeepTogether extends RtfContainer {
36:
37: /** constant for unset status */
38: public static final int STATUS_NULL = 0;
39: /** constant for open paragraph */
40: public static final int STATUS_OPEN_PARAGRAPH = 1;
41: /** constant for close paragraph */
42: public static final int STATUS_CLOSE_PARAGRAPH = 2;
43:
44: private int status = STATUS_NULL;
45:
46: /** RtfParagraphKeepTogether*/
47: RtfParagraphKeepTogether(IRtfParagraphContainer parent, Writer w)
48: throws IOException {
49: super ((RtfContainer) parent, w);
50: }
51:
52: /**
53: * Write the content
54: * @throws IOException for I/O problems
55: */
56: protected void writeRtfContent() throws IOException {
57:
58: //First reet paragraph properties
59: // create a new one with keepn
60: if (status == STATUS_OPEN_PARAGRAPH) {
61: writeControlWord("pard");
62: writeControlWord("par");
63: writeControlWord("keepn");
64: writeGroupMark(true);
65: status = STATUS_NULL;
66: }
67:
68: if (status == STATUS_CLOSE_PARAGRAPH) {
69: writeGroupMark(false);
70: status = STATUS_NULL;
71: }
72:
73: }
74:
75: /**
76: * set the status
77: * @param status the status to be set
78: */
79: public void setStatus(int status) {
80: this .status = status;
81: }
82:
83: /**
84: * @return true if this element would generate no "useful" RTF content
85: */
86: public boolean isEmpty() {
87: return false;
88: }
89:
90: }
|