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 fo...@locus.apache.org on 2000/01/25 14:51:18 UTC

cvs commit: xml-fop/src/org/apache/fop/apps AWTCommandLine.java CommandLine.java

fotis       00/01/25 05:51:18

  Modified:    src/org/apache/fop/apps AWTCommandLine.java CommandLine.java
  Log:
  changes (made by Stanislav Gorkhover):
  - previewer is internationalized
  - translations included
  - support for printing
  
  Revision  Changes    Path
  1.3       +123 -58   xml-fop/src/org/apache/fop/apps/AWTCommandLine.java
  
  Index: AWTCommandLine.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/apps/AWTCommandLine.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- AWTCommandLine.java	1999/12/03 12:27:12	1.2
  +++ AWTCommandLine.java	2000/01/25 13:51:17	1.3
  @@ -29,11 +29,12 @@
   import java.io.PrintWriter;
   import java.io.IOException;
   import java.io.FileNotFoundException;
  +import java.io.FileInputStream;
   import java.net.URL;
  +import java.util.*;
   
   
   
  -
   /**
    * initialize AWT previewer
    */
  @@ -41,34 +42,85 @@
   public class AWTCommandLine {
   
   
  -  public AWTCommandLine(AWTRenderer aRenderer) {
  +  public static String DEFAULT_TRANSLATION_PATH
  +                               = "../viewer/resources/resources." +
  +                                 System.getProperty("user.language");
   
  -    PreviewDialog frame = new PreviewDialog(aRenderer);
  -    frame.validate();
   
  -    // center window
  -    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
  -    Dimension frameSize = frame.getSize();
  -    if (frameSize.height > screenSize.height)
  -      frameSize.height = screenSize.height;
  -    if (frameSize.width > screenSize.width)
  -      frameSize.width = screenSize.width;
  -    frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
  -    frame.setVisible(true);
  +  private Translator resource;
  +
  +
  +
  +  public AWTCommandLine(String srcFile, String translationPath) {
  +
  +    resource = getResourceBundle(translationPath);
  +
  +    String messPath = new File(translationPath).getAbsoluteFile().getParent();
  +    if (!messPath.endsWith(System.getProperty("file.separator")))
  +      messPath += System.getProperty("file.separator");
  +    messPath += "messages." + System.getProperty("user.language");
  +    System.out.println("Set messages resource: " + messPath);
  +    UserMessage.setTranslator(getResourceBundle(messPath));
  +
  +    resource.setMissingEmphasized(false);
  +
  +    if (!resource.isSourceFound())
  +      UserMessage.show("TRANSLATION_SOURCE_NOT_FOUND",
  +                       new File(translationPath).getAbsolutePath());
  +
  +    AWTRenderer renderer = new AWTRenderer(resource);
  +    PreviewDialog frame = createPreviewDialog(renderer, resource);
  +    renderer.setProgressListener(frame);
  +
  +
  +//init parser
  +    frame.progress(resource.getString("Init parser") + " ...");
  +    Parser parser = createParser();
  +
  +
  +	if (parser == null) {
  +	    System.err.println("ERROR: Unable to create SAX parser");
  +	    System.exit(1);
  +	}
  +
  +
  +	try {
  +	    Driver driver = new Driver();
  +	    driver.setRenderer(renderer);
  +
  +// init mappings: time
  +        frame.progress(resource.getString("Init mappings") + " ...");
  +
  +	    driver.addElementMapping("org.apache.fop.fo.StandardElementMapping");
  +	    driver.addElementMapping("org.apache.fop.svg.SVGElementMapping");
  +
  +// build FO tree: time
  +        frame.progress(resource.getString("Build FO tree") + " ...");
  +	    driver.buildFOTree(parser, fileInputSource(srcFile));
  +
  +// layout FO tree: time
  +        frame.progress(resource.getString("Layout FO tree") + " ...");
  +	    driver.format();
  +
  +// render: time
  +        frame.progress(resource.getString("Render") + " ...");
  +        driver.render();
  +        
  +        frame.progress(resource.getString("Show"));
  +
  +	} catch (Exception e) {
  +	    System.err.println("FATAL ERROR: " + e.getMessage());
  +        e.printStackTrace();
  +	    System.exit(1);
  +	}
     }
   
  - /**
  -     * creates a SAX parser, using the value of org.xml.sax.parser
  -     * defaulting to org.apache.xerces.parsers.SAXParser
  -     *
  -     * @return the created SAX parser
  -     */
   
       static Parser createParser() {
   	String parserClassName =
   	    System.getProperty("org.xml.sax.parser");
   	if (parserClassName == null) {
  -	    parserClassName = "org.apache.xerces.parsers.SAXParser";
  +	    parserClassName = "com.jclark.xml.sax.Driver";
   	}
   	System.err.println("using SAX parser " + parserClassName);
   
  @@ -88,6 +140,26 @@
   	return null;
       }
   
  +
  +
  +  protected PreviewDialog createPreviewDialog(AWTRenderer renderer, Translator res) {
  +    PreviewDialog frame = new PreviewDialog(renderer, res);
  +    frame.validate();
  +
  +    // center window
  +    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
  +    Dimension frameSize = frame.getSize();
  +    if (frameSize.height > screenSize.height)
  +      frameSize.height = screenSize.height;
  +    if (frameSize.width > screenSize.width)
  +      frameSize.width = screenSize.width;
  +    frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
  +    frame.setVisible(true);
  +    return frame;
  +  }
  +
  +
  +
     /**
      * create an InputSource from a file name
      *
  @@ -114,7 +186,18 @@
     }
   
   
  +  private SecureResourceBundle getResourceBundle(String path) {
  +    FileInputStream in = null;
  +    try {
  +    in = new FileInputStream(path);
  +    } catch(Exception ex) {
  +      System.out.println("Abgefangene Exception: " + ex.getMessage());
  +    }
  +    return new SecureResourceBundle(in);
  +  }
  +
   
  +
     /* main
      */
     public static void main(String[] args) {
  @@ -125,52 +208,34 @@
       }
   
       String srcPath = null;
  +    String translationFile = null;
  +    String imageDir = null;
   
       System.err.println(Version.getVersion());
  -    if (args.length == 1) {
  -      srcPath = args[0];
  -    }
  -    else {
  -      System.err.println("usage: java " +
  -                         "AWTCommandLine " +
  -                         "formatting-object-file");
  -
  +    if (args.length < 1 || args.length > 3) {
  +      System.err.println("usage: java AWTCommandLine " +
  +                         "formatting-object-file [translation-file] " +
  +                         "[image-dir]");
         System.exit(1);
       }
  -
  -
  -    AWTRenderer renderer = new AWTRenderer();
  -    new AWTCommandLine(renderer);
  -
  -//init parser
  -    Parser parser = createParser();
  -
  -	if (parser == null) {
  -	    System.err.println("ERROR: Unable to create SAX parser");
  -	    System.exit(1);
  -	}
  -
  -	try {
  -	    Driver driver = new Driver();
  -	    driver.setRenderer(renderer);
  -
  -// init mappings: time
  -	    driver.addElementMapping("org.apache.fop.fo.StandardElementMapping");
  -	    driver.addElementMapping("org.apache.fop.svg.SVGElementMapping");
   
  -// build FO tree: time
  -	    driver.buildFOTree(parser, fileInputSource(srcPath));
  +    srcPath = args[0];
  +    if (args.length > 1) {
  +      translationFile = args[1];
  +    }
  +    if (args.length > 2) {
  +      imageDir = args[2];
  +      if (!imageDir.endsWith(System.getProperty("file.separator")))
  +        imageDir += System.getProperty("file.separator");
  +        
  +      Command.IMAGE_DIR = imageDir;
  +    }
   
  -// layout FO tree: time
  -	    driver.format();
  +    if (translationFile == null)
  +      translationFile = DEFAULT_TRANSLATION_PATH;
   
  -// render: time
  -        driver.render();
   
  -	} catch (Exception e) {
  -	    System.err.println("FATAL ERROR: " + e.getMessage());
  -	    System.exit(1);
  -	}
  +    new AWTCommandLine(srcPath, translationFile);
   
     }  // main
   }  // AWTCommandLine
  
  
  
  1.7       +2 -2      xml-fop/src/org/apache/fop/apps/CommandLine.java
  
  Index: CommandLine.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/apps/CommandLine.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- CommandLine.java	1999/12/03 12:27:12	1.6
  +++ CommandLine.java	2000/01/25 13:51:17	1.7
  @@ -1,4 +1,4 @@
  -/*-- $Id: CommandLine.java,v 1.6 1999/12/03 12:27:12 fotis Exp $ -- 
  +/*-- $Id: CommandLine.java,v 1.7 2000/01/25 13:51:17 fotis Exp $ -- 
   
    ============================================================================
                      The Apache Software License, Version 1.1
  @@ -69,7 +69,7 @@
    * mainline class.
    *
    * Gets input and output filenames from the command line.
  - * Creates a SAX Parser (defaulting to XP).
  + * Creates a SAX Parser (defaulting to Xerces).
    * 
    */
   public class CommandLine {