Author: vsiveton
Date: Fri Jun 5 11:35:01 2009
New Revision: 781989
URL: http://svn.apache.org/viewvc?rev=781989&view=rev
Log:
o refactored writeCover*() to use object as parameter instead of list of string
Modified:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoAggregateSink.java
Modified:
maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoAggregateSink.java
URL:
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoAggregateSink.java?rev=781989&r1=781988&r2=781989&view=diff
==============================================================================
---
maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoAggregateSink.java
(original)
+++
maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoAggregateSink.java
Fri Jun 5 11:35:01 2009
@@ -21,9 +21,8 @@
import java.io.Writer;
-import java.text.DateFormat;
-import java.text.SimpleDateFormat;
import java.util.Calendar;
+import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
@@ -68,9 +67,6 @@
*/
public class FoAggregateSink extends FoSink
{
- /** ISO 8601 date format, i.e. <code>yyyy-MM-dd</code> **/
- private static final DateFormat ISO_8601_FORMAT = new SimpleDateFormat(
"yyyy-MM-dd", Locale.US );
-
/** The document model to be used by this sink. */
private DocumentModel docModel;
@@ -927,42 +923,6 @@
return; // no information for cover page: ignore
}
- String title = null;
- String subtitle = null;
- String version = null;
- String type = null;
- String date = null;
- // TODO: implement
- //String author = null;
- //String projName = null;
- String projLogo = null;
- String compName = null;
- String compLogo = null;
-
- if ( cover == null )
- {
- // aleady checked that meta != null
- title = meta.getTitle();
- compName = meta.getAuthor();
- }
- else
- {
- title = cover.getCoverTitle();
- subtitle = cover.getCoverSubTitle();
- version = cover.getCoverVersion();
- type = cover.getCoverType();
- date = cover.getCoverdate();
- if ( date == null && cover.getCoverDate() != null )
- {
- date = ISO_8601_FORMAT.format( cover.getCoverdate() );
- }
- //author = cover.getAuthor();
- //projName = cover.getProjectName();
- projLogo = cover.getProjectLogo();
- compName = cover.getCompanyName();
- compLogo = cover.getCompanyLogo();
- }
-
// TODO: remove hard-coded settings
writeStartTag( PAGE_SEQUENCE_TAG, "master-reference", "cover-page" );
@@ -973,9 +933,9 @@
writeEmptyTag( TABLE_COLUMN_TAG, "column-width", "3.125in" );
writeStartTag( TABLE_BODY_TAG );
- writeCoverHead( compLogo, projLogo );
- writeCoverBody( title, version, subtitle, type );
- writeCoverFooter( compName, date );
+ writeCoverHead( cover );
+ writeCoverBody( cover, meta );
+ writeCoverFooter( cover );
writeEndTag( TABLE_BODY_TAG );
writeEndTag( TABLE_TAG );
@@ -984,8 +944,77 @@
writeEndTag( PAGE_SEQUENCE_TAG );
}
- private void writeCoverBody( String title, String version, String
subtitle, String type )
+ private void writeCoverHead( DocumentCover cover )
+ {
+ if ( cover == null )
+ {
+ return;
+ }
+
+ String compLogo = cover.getCompanyLogo();
+ String projLogo = cover.getProjectLogo();
+
+ writeStartTag( TABLE_ROW_TAG, "height", "1.5in" );
+ writeStartTag( TABLE_CELL_TAG );
+
+ if ( StringUtils.isNotEmpty( compLogo ) )
+ {
+ SinkEventAttributeSet atts = new SinkEventAttributeSet();
+ atts.addAttribute( "text-align", "left" );
+ atts.addAttribute( "vertical-align", "top" );
+ writeStartTag( BLOCK_TAG, atts );
+ atts = new SinkEventAttributeSet();
+ atts.addAttribute( SinkEventAttributes.HEIGHT, "1.5in" );
+ figureGraphics( compLogo, atts );
+ writeEndTag( BLOCK_TAG );
+ }
+
+ writeSimpleTag( BLOCK_TAG );
+ writeEndTag( TABLE_CELL_TAG );
+ writeStartTag( TABLE_CELL_TAG );
+
+ if ( StringUtils.isNotEmpty( projLogo ) )
+ {
+ SinkEventAttributeSet atts = new SinkEventAttributeSet();
+ atts.addAttribute( "text-align", "right" );
+ atts.addAttribute( "vertical-align", "top" );
+ writeStartTag( BLOCK_TAG, atts );
+ atts = new SinkEventAttributeSet();
+ atts.addAttribute( SinkEventAttributes.HEIGHT, "1.5in" );
+ figureGraphics( projLogo, atts );
+ writeEndTag( BLOCK_TAG );
+ }
+
+ writeSimpleTag( BLOCK_TAG );
+ writeEndTag( TABLE_CELL_TAG );
+ writeEndTag( TABLE_ROW_TAG );
+ }
+
+ private void writeCoverBody( DocumentCover cover, DocumentMeta meta )
{
+ if ( cover == null && meta == null )
+ {
+ return;
+ }
+
+ String subtitle = null;
+ String title = null;
+ String type = null;
+ String version = null;
+ if ( cover == null )
+ {
+ // aleady checked that meta != null
+ getLog().debug( "The DocumentCover is not defined, using the
DocumentMeta title." );
+ title = meta.getTitle();
+ }
+ else
+ {
+ subtitle = cover.getCoverSubTitle();
+ title = cover.getCoverTitle();
+ type = cover.getCoverType();
+ version = cover.getCoverVersion();
+ }
+
writeln( "<fo:table-row keep-with-previous=\"always\"
height=\"0.014in\">" );
writeStartTag( TABLE_CELL_TAG, "number-columns-spanned", "2" );
writeStartTag( BLOCK_TAG, "line-height", "0.014in" );
@@ -1018,7 +1047,6 @@
writeStartTag( TABLE_CELL_TAG, "number-columns-spanned", "2",
"cover.border.left" );
writeStartTag( BLOCK_TAG, "cover.title" );
write( title == null ? "" : title );
- write( version == null ? "" : " v. " + version );
writeEndTag( BLOCK_TAG );
writeEndTag( TABLE_CELL_TAG );
writeEndTag( TABLE_ROW_TAG );
@@ -1031,7 +1059,8 @@
writeStartTag( TABLE_CELL_TAG, "number-columns-spanned", "2",
"cover.border.left.bottom" );
writeStartTag( BLOCK_TAG, "cover.subtitle" );
- write( subtitle == null ? "" : subtitle );
+ write( subtitle == null ? " v. " + ( version == null ? "" : version )
+ : subtitle );
writeEndTag( BLOCK_TAG );
writeStartTag( BLOCK_TAG, "cover.subtitle" );
write( type == null ? "" : type );
@@ -1061,8 +1090,26 @@
writeEndTag( TABLE_ROW_TAG );
}
- private void writeCoverFooter( String compName, String date )
+ private void writeCoverFooter( DocumentCover cover )
{
+ if ( cover == null )
+ {
+ return;
+ }
+
+ String date = null;
+ String compName = cover.getCompanyName();
+ if ( cover.getCoverDate_() == null )
+ {
+ cover.setCoverDate( new Date() );
+ date = cover.getCoverDate_();
+ cover.setCoverDate( null );
+ }
+ else
+ {
+ date = cover.getCoverDate_();
+ }
+
writeStartTag( TABLE_ROW_TAG, "height", "0.3in" );
writeStartTag( TABLE_CELL_TAG );
@@ -1079,51 +1126,13 @@
att.addAttribute( "height", "0.3in" );
att.addAttribute( "text-align", "right" );
writeStartTag( BLOCK_TAG, att );
- write( date == null ? ISO_8601_FORMAT.format(
Calendar.getInstance().getTime() ) : date );
+ write( date == null ? "" : date );
writeEndTag( BLOCK_TAG );
writeEndTag( TABLE_CELL_TAG );
writeEndTag( TABLE_ROW_TAG );
}
- private void writeCoverHead( String compLogo, String projLogo )
- {
- writeStartTag( TABLE_ROW_TAG, "height", "1.5in" );
- writeStartTag( TABLE_CELL_TAG );
-
- if ( compLogo != null )
- {
- SinkEventAttributeSet atts = new SinkEventAttributeSet();
- atts.addAttribute( "text-align", "left" );
- atts.addAttribute( "vertical-align", "top" );
- writeStartTag( BLOCK_TAG, atts );
- atts = new SinkEventAttributeSet();
- atts.addAttribute( SinkEventAttributes.HEIGHT, "1.5in" );
- figureGraphics( compLogo, atts );
- writeEndTag( BLOCK_TAG );
- }
-
- writeSimpleTag( BLOCK_TAG );
- writeEndTag( TABLE_CELL_TAG );
- writeStartTag( TABLE_CELL_TAG );
-
- if ( projLogo != null )
- {
- SinkEventAttributeSet atts = new SinkEventAttributeSet();
- atts.addAttribute( "text-align", "right" );
- atts.addAttribute( "vertical-align", "top" );
- writeStartTag( BLOCK_TAG, atts );
- atts = new SinkEventAttributeSet();
- atts.addAttribute( SinkEventAttributes.HEIGHT, "1.5in" );
- figureGraphics( projLogo, atts );
- writeEndTag( BLOCK_TAG );
- }
-
- writeSimpleTag( BLOCK_TAG );
- writeEndTag( TABLE_CELL_TAG );
- writeEndTag( TABLE_ROW_TAG );
- }
-
private ResourceBundle getBundle( Locale locale )
{
return ResourceBundle.getBundle( "doxia-fo", locale,
this.getClass().getClassLoader() );