arved       01/07/16 03:43:40

  Modified:    src/org/apache/fop/fo/flow Marker.java
  Log:
  AHS: initial marker support
  
  Revision  Changes    Path
  1.2       +68 -23    xml-fop/src/org/apache/fop/fo/flow/Marker.java
  
  Index: Marker.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/flow/Marker.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- Marker.java       2001/07/13 12:36:09     1.1
  +++ Marker.java       2001/07/16 10:43:40     1.2
  @@ -1,4 +1,5 @@
  -/*-- $Id: Marker.java,v 1.1 2001/07/13 12:36:09 keiron Exp $ --
  +/*-- $Id: Marker.java,v 1.2 2001/07/16 10:43:40 arved Exp $-- */
  +/*
    * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
    * For details on use and redistribution please refer to the
    * LICENSE file included with these sources.
  @@ -9,30 +10,74 @@
   // FOP
   import org.apache.fop.fo.*;
   import org.apache.fop.messaging.MessageHandler;
  -import org.apache.fop.fo.flow.*;
   import org.apache.fop.fo.properties.*;
  -import org.apache.fop.layout.AreaTree;
  +import org.apache.fop.layout.*;
  +import org.apache.fop.datatypes.*;
   import org.apache.fop.apps.FOPException;
   
  -/**
  - */
  -public class Marker extends ToBeImplementedElement {
  -
  -    public static class Maker extends FObj.Maker {
  -        public FObj make(FObj parent,
  -                         PropertyList propertyList) throws FOPException {
  -            return new Marker(parent, propertyList);
  -        }
  -    }
  -
  -    public static FObj.Maker maker() {
  -        return new Marker.Maker();
  -    }
  -
  -    protected Marker(FObj parent,
  -                   PropertyList propertyList) throws FOPException {
  -        super(parent, propertyList);
  -        this.name = "fo:marker";
  -    }
  +public class Marker extends FObjMixed {
   
  +     private String markerClassName;
  +     private Area registryArea;
  +     
  +     public static class Maker extends FObj.Maker {
  +             public FObj make(FObj parent, PropertyList propertyList) throws 
FOPException {
  +                             return new Marker(parent, propertyList);
  +             }
  +     }
  +
  +     public static FObj.Maker maker() {
  +             return new Marker.Maker();
  +     }
  +
  +     public Marker(FObj parent, PropertyList propertyList) {
  +             super(parent, propertyList);
  +             this.name = "fo:marker";
  +             
  +             // do check to see that 'this' is under fo:flow
  +             
  +             this.markerClassName = 
this.properties.get("marker-class-name").getString();
  +             
  +             // check to ensure that no other marker with same parent
  +             // has this 'marker-class-name' is in addMarker() method
  +             try {
  +                     parent.addMarker(this);
  +             } catch (FOPException fopex) {
  +                     MessageHandler.error("marker cannot be added to '" + parent + 
"'");
  +             }
  +     }
  +
  +       public Status layout(Area area) throws FOPException {
  +             // no layout action desired
  +             this.registryArea = area;
  +             area.getPage().registerMarker(this);
  +             // System.out.println("Marker being registered in area '" + area + 
"'");
  +             return new Status(Status.OK);
  +       }
  +
  +     public Status layoutMarker(Area area) throws FOPException {
  +             if (this.marker == START)
  +                     this.marker = 0;
  +                     
  +             int numChildren = this.children.size();
  +             for (int i = this.marker; i < numChildren; i++) {
  +                     FONode fo = (FONode) children.elementAt(i);
  +     
  +                     Status status;
  +                     if ((status = fo.layout(area)).isIncomplete()) {
  +                     this.marker = i;
  +                     return status;
  +                     }
  +             }
  +     
  +             return new Status(Status.OK);
  +     }
  +
  +     public String getMarkerClassName() {
  +             return markerClassName;
  +     }
  +     
  +     public Area getRegistryArea() {
  +             return registryArea;
  +     }
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to