cvs commit: xml-fop/src/org/apache/fop/fo/flow RetrieveMarker.java

2003-02-24 Thread pietsch
pietsch 2003/02/24 12:42:20

  Modified:src/org/apache/fop/fo/flow Tag: fop-0_20_2-maintain
RetrieveMarker.java
  Log:
  Fixed thinko regarding check for retrieve-boundary=PAGE
  
  Revision  ChangesPath
  No   revision
  
  
  No   revision
  
  
  1.6.2.8   +2 -2  xml-fop/src/org/apache/fop/fo/flow/RetrieveMarker.java
  
  Index: RetrieveMarker.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/flow/RetrieveMarker.java,v
  retrieving revision 1.6.2.7
  retrieving revision 1.6.2.8
  diff -u -r1.6.2.7 -r1.6.2.8
  --- RetrieveMarker.java   17 Feb 2003 00:09:43 -  1.6.2.7
  +++ RetrieveMarker.java   24 Feb 2003 20:42:19 -  1.6.2.8
  @@ -79,7 +79,7 @@
   }
   } else if (retrieveBoundary == RetrieveBoundary.DOCUMENT) {
   return layoutBestMarker(areaTree.getDocumentMarkers(),area);
  -} else {
  +} else if (retrieveBoundary != RetrieveBoundary.PAGE) {
   throw new FOPException(Illegal 'retrieve-boundary' value);
   }
   } else if (bestMarker != null) {
  
  
  

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



cvs commit: xml-fop/src/org/apache/fop/fo/flow RetrieveMarker.java

2003-02-18 Thread keiron
keiron  2003/02/18 21:54:15

  Modified:src/org/apache/fop/fo/flow RetrieveMarker.java
  Log:
  add retrieve marker layout manager
  
  Revision  ChangesPath
  1.12  +31 -10xml-fop/src/org/apache/fop/fo/flow/RetrieveMarker.java
  
  Index: RetrieveMarker.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/flow/RetrieveMarker.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- RetrieveMarker.java   20 Jun 2002 09:14:13 -  1.11
  +++ RetrieveMarker.java   19 Feb 2003 05:54:15 -  1.12
  @@ -1,6 +1,6 @@
   /*
* $Id$
  - * Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
  + * Copyright (C) 2001-2003 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
* LICENSE file included with these sources.
*/
  @@ -8,27 +8,39 @@
   package org.apache.fop.fo.flow;
   
   // FOP
  -import org.apache.fop.fo.*;
  -import org.apache.fop.fo.properties.*;
  -import org.apache.fop.layout.*;
  -import org.apache.fop.datatypes.*;
   import org.apache.fop.apps.FOPException;
  -
  -// Java
  -import java.util.Vector;
  -
  +import org.apache.fop.fo.FONode;
  +import org.apache.fop.fo.FObjMixed;
  +import org.apache.fop.layoutmgr.RetrieveMarkerLayoutManager;
   import org.xml.sax.Attributes;
   
  +import java.util.List;
  +
  +/**
  + * The retrieve-marker formatting object.
  + * This will create a layout manager that will retrieve
  + * a marker based on the information.
  + */
   public class RetrieveMarker extends FObjMixed {
   
   private String retrieveClassName;
   private int retrievePosition;
   private int retrieveBoundary;
   
  +/**
  + * Create a retrieve marker object.
  + *
  + * @see org.apache.fop.fo.FONode#FONode(FONode)
  + */
   public RetrieveMarker(FONode parent) {
   super(parent);
   }
   
  +/**
  + * Handle the attributes for the retrieve-marker.
  + *
  + * @see org.apache.fop.fo.FONode#handleAttrs(Attributes)
  + */
   public void handleAttrs(Attributes attlist) throws FOPException {
   super.handleAttrs(attlist);
   this.retrieveClassName =
  @@ -39,4 +51,13 @@
   this.properties.get(retrieve-boundary).getEnum();
   }
   
  +public void addLayoutManager(List lms) {
  +RetrieveMarkerLayoutManager rmlm;
  +rmlm = new RetrieveMarkerLayoutManager(retrieveClassName,
  +retrievePosition,
  +retrieveBoundary);
  +rmlm.setUserAgent(getUserAgent());
  +rmlm.setFObj(this);
  +lms.add(rmlm);
  +}
   }
  
  
  

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




cvs commit: xml-fop/src/org/apache/fop/fo/flow RetrieveMarker.java

2002-07-18 Thread pietsch

pietsch 2002/07/18 17:30:14

  Modified:src/org/apache/fop/apps Tag: fop-0_20_2-maintain
StreamRenderer.java
   src/org/apache/fop/fo/flow Tag: fop-0_20_2-maintain
RetrieveMarker.java
  Log:
  Fixed marker retrival to a large degree. It works
  now for arbitrary retrival boundaries as long as
  the referenced page is still in the renderer queue
  (could be enforced by forward referencing page
  number citation)
  Markers which are immediate children of a flow
  still don't work.
  
  Revision  ChangesPath
  No   revision
  
  
  No   revision
  
  
  1.6.2.6   +46 -33xml-fop/src/org/apache/fop/apps/Attic/StreamRenderer.java
  
  Index: StreamRenderer.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/apps/Attic/StreamRenderer.java,v
  retrieving revision 1.6.2.5
  retrieving revision 1.6.2.6
  diff -u -r1.6.2.5 -r1.6.2.6
  --- StreamRenderer.java   18 Jul 2002 22:47:41 -  1.6.2.5
  +++ StreamRenderer.java   19 Jul 2002 00:30:13 -  1.6.2.6
  @@ -318,42 +318,55 @@
   }
   }
   
  -   public Page getNextPage(Page current, boolean isWithinPageSequence,
  -boolean isFirstCall) {
  -Page nextPage = null;
  -int pageIndex = 0;
  -if (isFirstCall)
  -pageIndex = renderQueue.size();
  -else
  -pageIndex = renderQueue.indexOf(current);
  -if ((pageIndex + 1)  renderQueue.size()) {
  -nextPage = ((RenderQueueEntry)renderQueue
  -.elementAt(pageIndex + 1)).getPage();
  -if (isWithinPageSequence
  -
!nextPage.getPageSequence().equals(current.getPageSequence())) {
  -nextPage = null;
  -}
  -}
  -return nextPage;
  -}
  +  // unused and broken
  +//  public Page getNextPage(Page current, boolean isWithinPageSequence,
  +//  boolean isFirstCall) {
  +//  Page nextPage = null;
  +//  int pageIndex = 0;
  +//  if (isFirstCall)
  +//  pageIndex = renderQueue.size();
  +//  else
  +//  pageIndex = renderQueue.indexOf(current);
  +//  if ((pageIndex + 1)  renderQueue.size()) {
  +//  nextPage = ((RenderQueueEntry)renderQueue
  +//  .elementAt(pageIndex + 1)).getPage();
  +//  if (isWithinPageSequence
  +//  
!nextPage.getPageSequence().equals(current.getPageSequence())) {
  +//  nextPage = null;
  +//  }
  +//  }
  +//  return nextPage;
  +//  }
   
   public Page getPreviousPage(Page current, boolean isWithinPageSequence,
   boolean isFirstCall) {
  -Page previousPage = null;
  -int pageIndex = 0;
  -if (isFirstCall)
  -pageIndex = renderQueue.size();
  -else
  -pageIndex = renderQueue.indexOf(current);
  -if ((pageIndex - 1) = 0) {
  -previousPage = ((RenderQueueEntry)renderQueue
  -.elementAt(pageIndex - 1)).getPage();
  -PageSequence currentPS = current.getPageSequence();
  -PageSequence previousPS = previousPage.getPageSequence();
  -if (isWithinPageSequence !previousPS.equals(currentPS)) {
  -previousPage = null;
  +if (isFirstCall) {
  +int pageIndex = renderQueue.size();
  +if (pageIndex  0) {
  +Page previousPage = ((RenderQueueEntry)renderQueue
  + .elementAt(pageIndex - 1)).getPage();
  +PageSequence currentPS = current.getPageSequence();
  +PageSequence previousPS = previousPage.getPageSequence();
  +if (!isWithinPageSequence || previousPS.equals(currentPS)) {
  +   return previousPage;
  +}
  +}
  +} else {
  +for (int pageIndex=renderQueue.size()-1;pageIndex0;pageIndex--) {
  +Page page = ((RenderQueueEntry)renderQueue
  + .elementAt(pageIndex)).getPage();
  +if (current.equals(page)) {
  +Page previousPage = ((RenderQueueEntry)renderQueue
  + .elementAt(pageIndex - 1)).getPage();
  +PageSequence currentPS = current.getPageSequence();
  +PageSequence previousPS = previousPage.getPageSequence();
  +if (!isWithinPageSequence || previousPS.equals(currentPS)) {
  +return previousPage;
  +}
  +return null;
  +}
   }
   }
  -

cvs commit: xml-fop/src/org/apache/fop/fo/flow RetrieveMarker.java

2001-07-22 Thread arved

arved   01/07/22 18:58:56

  Modified:src/org/apache/fop/fo/flow RetrieveMarker.java
  Log:
  AHS: continued work on fo:marker support
  
  Revision  ChangesPath
  1.3   +54 -19xml-fop/src/org/apache/fop/fo/flow/RetrieveMarker.java
  
  Index: RetrieveMarker.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/flow/RetrieveMarker.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- RetrieveMarker.java   2001/07/16 10:43:51 1.2
  +++ RetrieveMarker.java   2001/07/23 01:58:56 1.3
  @@ -1,4 +1,4 @@
  -/*-- $Id: RetrieveMarker.java,v 1.2 2001/07/16 10:43:51 arved Exp $-- */
  +/*-- $Id: RetrieveMarker.java,v 1.3 2001/07/23 01:58:56 arved Exp $-- */
   /*
* Copyright (C) 2001 The Apache Software Foundation. All rights reserved.
* For details on use and redistribution please refer to the
  @@ -48,44 +48,72 @@
// 'retrieve-boundary'. Initially we will always check
// the containing page
Page containingPage = area.getPage();
  - Marker bestMarker = searchPage(containingPage);
  + Marker bestMarker = searchPage(containingPage, true);

// if marker not yet found, and 'retrieve-boundary' permits,
// search forward by Page
  - /* insert code for searching forward by Page, if allowed */
  + if ((null == bestMarker)  (retrieveBoundary != 
RetrieveBoundary.PAGE)) {
  + // System.out.println(Null bestMarker and searching...);
  + Page currentPage = containingPage;
  + boolean isFirstCall = true;
  + while (bestMarker == null) {
  + Page previousPage =
  + locatePreviousPage(currentPage, 
retrieveBoundary, isFirstCall);
  + isFirstCall = false;
  + // System.out.println(Previous page = ' + 
previousPage + ');
  + bestMarker = searchPage(previousPage, false);
  + currentPage = previousPage;
  + }
  + }

Status status = new Status(Status.AREA_FULL_NONE);
if (null != bestMarker) {
  - // System.out.println(Laying out marker in area ' + area + 
');
  + // System.out.println(Laying out marker ' + bestMarker + ' 
in area ' + area + ');
  + // the 'markers' referred to in this method are internal; they 
have
  + // nothing to do with fo:marker
  + bestMarker.resetMarker();
status = bestMarker.layoutMarker(area);
}

return status;
}

  - private Marker searchPage(Page page) throws FOPException {
  + private Marker searchPage(Page page, boolean isContainingPage)
  + throws FOPException {
Vector pageMarkers = page.getMarkers();
  - if (pageMarkers.isEmpty())
  + if (pageMarkers.isEmpty()) {
  + // System.out.println(No markers on page);
return null;
  - 
  + }
  + 
  + // if no longer the containing page (fo:retrieve-marker, or the page
  + // being processed), grab the last qualifying marker on this one
  + if (!isContainingPage) {
  + for (int c = pageMarkers.size(); c  0; c--) {
  + Marker currentMarker = 
(Marker)pageMarkers.elementAt(c-1);
  + if 
(currentMarker.getMarkerClassName().equals(retrieveClassName)) {
  + return currentMarker;
  + }
  + }   
  + }
  + 
// search forward if 'first-starting-within-page' or
// 'first-including-carryover'
  - Marker fallback = null;
if (retrievePosition == RetrievePosition.FIC) {
for (int c = 0; c  pageMarkers.size(); c++) {
Marker currentMarker = 
(Marker)pageMarkers.elementAt(c);
  - if 
(currentMarker.getMarkerClassName().equals(retrieveClassName))
  + if 
(currentMarker.getMarkerClassName().equals(retrieveClassName)) {
return currentMarker;
  + }
}

} else if (retrievePosition == RetrievePosition.FSWP) {
for (int c = 0; c  pageMarkers.size(); c++) {
Marker 

cvs commit: xml-fop/src/org/apache/fop/fo/flow RetrieveMarker.java

2001-07-16 Thread arved

arved   01/07/16 03:43:51

  Modified:src/org/apache/fop/fo/flow RetrieveMarker.java
  Log:
  AHS: initial marker support
  
  Revision  ChangesPath
  1.2   +103 -22   xml-fop/src/org/apache/fop/fo/flow/RetrieveMarker.java
  
  Index: RetrieveMarker.java
  ===
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/fo/flow/RetrieveMarker.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- RetrieveMarker.java   2001/07/13 12:36:16 1.1
  +++ RetrieveMarker.java   2001/07/16 10:43:51 1.2
  @@ -1,4 +1,5 @@
  -/*-- $Id: RetrieveMarker.java,v 1.1 2001/07/13 12:36:16 keiron Exp $ --
  +/*-- $Id: RetrieveMarker.java,v 1.2 2001/07/16 10:43:51 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,110 @@
   // 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 RetrieveMarker extends ToBeImplementedElement {
  +// Java
  +import java.util.Vector;
   
  -public static class Maker extends FObj.Maker {
  -public FObj make(FObj parent,
  - PropertyList propertyList) throws FOPException {
  -return new RetrieveMarker(parent, propertyList);
  -}
  -}
  -
  -public static FObj.Maker maker() {
  -return new RetrieveMarker.Maker();
  -}
  -
  -protected RetrieveMarker(FObj parent,
  -   PropertyList propertyList) throws FOPException {
  -super(parent, propertyList);
  -this.name = fo:retrieve-marker;
  -}
  +public class RetrieveMarker extends FObjMixed {
   
  + private String retrieveClassName;
  + private int retrievePosition;
  + private int retrieveBoundary;
  + 
  + public static class Maker extends FObj.Maker {
  + public FObj make(FObj parent, PropertyList propertyList) throws 
FOPException {
  + return new RetrieveMarker(parent, propertyList);
  + }
  + }
  +
  + public static FObj.Maker maker() {
  + return new RetrieveMarker.Maker();
  + }
  +
  + public RetrieveMarker(FObj parent, PropertyList propertyList) {
  + super(parent, propertyList);
  + this.name = fo:retrieve-marker;
  + 
  + this.retrieveClassName = 
this.properties.get(retrieve-class-name).getString();
  + this.retrievePosition = 
this.properties.get(retrieve-position).getEnum();
  + this.retrieveBoundary = 
this.properties.get(retrieve-boundary).getEnum();
  + }
  +
  + public Status layout(Area area) throws FOPException {
  + // locate qualifying areas by 'marker-class-name' and
  + // 'retrieve-boundary'. Initially we will always check
  + // the containing page
  + Page containingPage = area.getPage();
  + Marker bestMarker = searchPage(containingPage);
  + 
  + // if marker not yet found, and 'retrieve-boundary' permits,
  + // search forward by Page
  + /* insert code for searching forward by Page, if allowed */
  + 
  + Status status = new Status(Status.AREA_FULL_NONE);
  + if (null != bestMarker) {
  + // System.out.println(Laying out marker in area ' + area + 
');
  + status = bestMarker.layoutMarker(area);
  + }
  + 
  + return status;
  + }
  + 
  + private Marker searchPage(Page page) throws FOPException {
  + Vector pageMarkers = page.getMarkers();
  + if (pageMarkers.isEmpty())
  + return null;
  + 
  + // search forward if 'first-starting-within-page' or
  + // 'first-including-carryover'
  + Marker fallback = null;
  + if (retrievePosition == RetrievePosition.FIC) {
  + for (int c = 0; c  pageMarkers.size(); c++) {
  + Marker currentMarker = 
(Marker)pageMarkers.elementAt(c);
  + if 
(currentMarker.getMarkerClassName().equals(retrieveClassName))
  + return currentMarker;
  + }
  + 
  + } else if (retrievePosition == RetrievePosition.FSWP) {
  + for (int c = 0; c  pageMarkers.size(); c++) {
  + Marker currentMarker =