You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by sp...@apache.org on 2004/09/05 21:16:40 UTC

cvs commit: xml-fop/src/java/org/apache/fop/layoutmgr KnuthBox.java KnuthElement.java KnuthGlue.java KnuthPenalty.java KnuthPossPosIter.java

spepping    2004/09/05 12:16:40

  Added:       src/java/org/apache/fop/layoutmgr KnuthBox.java
                        KnuthElement.java KnuthGlue.java KnuthPenalty.java
                        KnuthPossPosIter.java
  Log:
  These new classes are part of the implementation of the new line
  breaking algorithm, patch 29124, submitted by Luca Furini.
  
  Revision  Changes    Path
  1.1                  xml-fop/src/java/org/apache/fop/layoutmgr/KnuthBox.java
  
  Index: KnuthBox.java
  ===================================================================
  package org.apache.fop.layoutmgr;
  
  public class KnuthBox extends KnuthElement {
      private int lead;
      private int total;
      private int middle;
  
      public KnuthBox(int w, int l, int t, int m, Position pos, boolean bAux) {
          super(KNUTH_BOX, w, pos, bAux);
          lead = l;
          total = t;
          middle = m;
      }
  
      public int getLead() {
          return lead;
      }
  
      public int getTotal() {
          return total;
      }
  
      public int getMiddle() {
          return middle;
      }
  }
  
  
  1.1                  xml-fop/src/java/org/apache/fop/layoutmgr/KnuthElement.java
  
  Index: KnuthElement.java
  ===================================================================
  package org.apache.fop.layoutmgr;
  
  public abstract class KnuthElement {
  
      public static final int KNUTH_BOX = 0;
      public static final int KNUTH_GLUE = 1;
      public static final int KNUTH_PENALTY = 2;
  
      public static final int INFINITE = 1000;
  
      private int type;
      private int width;
      private Position position;
      private boolean bIsAuxiliary;
  
      protected KnuthElement(int t, int w, Position pos, boolean bAux) {
          type = t;
          width = w;
          position = pos;
          bIsAuxiliary = bAux;
      }
  
      public boolean isBox() {
          return (type == KNUTH_BOX);
      }
  
      public boolean isGlue() {
          return (type == KNUTH_GLUE);
      }
  
      public boolean isPenalty() {
          return (type == KNUTH_PENALTY);
      }
  
      public boolean isAuxiliary() {
          return bIsAuxiliary;
      }
  
      public int getW() {
          return width;
      }
  
      public Position getPosition() {
          return position;
      }
  
      public void setPosition(Position pos) {
          position = pos;
      }
  
      public LayoutManager getLayoutManager() {
          if (position != null) {
              return position.getLM();
          } else {
              return null;
          }
      }
  }
  
  
  1.1                  xml-fop/src/java/org/apache/fop/layoutmgr/KnuthGlue.java
  
  Index: KnuthGlue.java
  ===================================================================
  package org.apache.fop.layoutmgr;
  
  public class KnuthGlue extends KnuthElement {
      private int stretchability;
      private int shrinkability;
  
      public KnuthGlue(int w, int y, int z, Position pos, boolean bAux) {
          super(KNUTH_GLUE, w, pos, bAux);
          stretchability = y;
          shrinkability = z;
      }
  
      public int getY() {
          return stretchability;
      }
  
      public int getZ() {
          return shrinkability;
      }
  }
  
  
  1.1                  xml-fop/src/java/org/apache/fop/layoutmgr/KnuthPenalty.java
  
  Index: KnuthPenalty.java
  ===================================================================
  package org.apache.fop.layoutmgr;
  
  public class KnuthPenalty extends KnuthElement {
      private int penalty;
      private boolean bFlagged; 
  
      public KnuthPenalty(int w, int p, boolean f, Position pos, boolean bAux) {
          super(KNUTH_PENALTY, w, pos, bAux);
          penalty = p;
          bFlagged = f;
      }
  
      public int getP() {
          return penalty;
      }
  
      public boolean isFlagged() {
          return bFlagged;
      }
  }
  
  
  1.1                  xml-fop/src/java/org/apache/fop/layoutmgr/KnuthPossPosIter.java
  
  Index: KnuthPossPosIter.java
  ===================================================================
  package org.apache.fop.layoutmgr;
  
  import java.util.List;
  
  public class KnuthPossPosIter extends PositionIterator {
  
      private int iterCount;
  
      /**
       * Main constructor
       * @param bpList List of break possibilities
       * @param startPos starting position
       * @param endPos ending position
       */
      public KnuthPossPosIter(List bpList, int startPos, int endPos) {
          super(bpList.listIterator(startPos));
          iterCount = endPos - startPos;
      }
  
      // Check position < endPos
      
      /**
       * @see org.apache.fop.layoutmgr.PositionIterator#checkNext()
       */
      protected boolean checkNext() {
          if (iterCount > 0) {
              return super.checkNext();
          } else {
              endIter();
              return false;
          }
      }
  
      /**
       * @see java.util.Iterator#next()
       */
      public Object next() {
          --iterCount;
          return super.next();
      }
  
      public KnuthElement getKE() {
          return (KnuthElement) peekNext();
      }
  
      protected LayoutManager getLM(Object nextObj) {
          return ((KnuthElement) nextObj).getLayoutManager();
      }
  
      protected Position getPos(Object nextObj) {
          return ((KnuthElement) nextObj).getPosition();
      }
  }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: fop-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: fop-cvs-help@xml.apache.org