You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ParagraphKeeptogetherContext.java 2.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. /*
  2. * Licensed to the Apache Software Foundation (ASF) under one or more
  3. * contributor license agreements. See the NOTICE file distributed with
  4. * this work for additional information regarding copyright ownership.
  5. * The ASF licenses this file to You under the Apache License, Version 2.0
  6. * (the "License"); you may not use this file except in compliance with
  7. * the License. You may obtain a copy of the License at
  8. *
  9. * 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. /* $Id$ */
  18. package org.apache.fop.render.rtf.rtflib.rtfdoc;
  19. /*
  20. * This file is part of the RTF library of the FOP project, which was originally
  21. * created by Bertrand Delacretaz bdelacretaz@codeconsult.ch and by other
  22. * contributors to the jfor project (www.jfor.org), who agreed to donate jfor to
  23. * the FOP project.
  24. */
  25. /**
  26. *
  27. * This context is used to manage the "keepn" RTF attribute
  28. * Used by ParagraphBuilder and JforCmd
  29. *
  30. */
  31. public final class ParagraphKeeptogetherContext {
  32. private static int paraKeepTogetherOpen;
  33. private static boolean paraResetProperties;
  34. private ParagraphKeeptogetherContext() {
  35. }
  36. /**
  37. * @return the level of current "keep whith next" paragraph
  38. */
  39. public static int getKeepTogetherOpenValue() {
  40. return paraKeepTogetherOpen;
  41. }
  42. /** Open a new "keep with next" paragraph */
  43. public static void keepTogetherOpen() {
  44. paraKeepTogetherOpen++;
  45. }
  46. /** Close a "keep with next" paragraph */
  47. public static void keepTogetherClose() {
  48. if (paraKeepTogetherOpen > 0) {
  49. paraKeepTogetherOpen--;
  50. //If the \pard control word is not present, the current paragraph
  51. //inherits all paragraph properties.
  52. //Also the next paragraph must reset the properties otherwise the \keepn don't stop.
  53. paraResetProperties = (paraKeepTogetherOpen == 0);
  54. }
  55. }
  56. /**
  57. * @return true if the next paragraph must reset the properties
  58. */
  59. public static boolean paragraphResetProperties() {
  60. return paraResetProperties;
  61. }
  62. /** Reset the flag if the paragraph properties have been resested */
  63. public static void setParagraphResetPropertiesUsed() {
  64. paraResetProperties = false;
  65. }
  66. }