keiron      2002/11/06 06:30:16

  Modified:    src/org/apache/fop/apps AWTStarter.java
               src/org/apache/fop/render/awt AWTRenderer.java
               src/org/apache/fop/viewer Command.java GoToPageDialog.java
                        PreviewDialog.java PreviewDialogAboutBox.java
                        Translator.java
  Added:       src/org/apache/fop/viewer/Images fop.gif reload.gif
               src/org/apache/fop/viewer/resources Viewer.properties
                        Viewer_cs.properties Viewer_de.properties
                        Viewer_fi.properties Viewer_fr.properties
                        Viewer_it.properties Viewer_ja.properties
                        Viewer_pl.properties Viewer_ru.properties
  Removed:     src/org/apache/fop/viewer IconToolBar.java
                        LoadableProperties.java MessageException.java
                        MessagesDialog.java ProgressListener.java
                        SecureResourceBundle.java UserMessage.java
               src/org/apache/fop/viewer/resources messages.de messages.en
                        resources.de resources.en resources.fi resources.fr
                        resources.it resources.pl resources.ru
  Log:
  awt viewer improvements
  uses java PropertyResourceBundle for locale strings
  cleaned up code and removed old classes
  other small improvements
  Submitted by: Oleg Tkachenko <[EMAIL PROTECTED]>
  
  Revision  Changes    Path
  1.16      +41 -109   xml-fop/src/org/apache/fop/apps/AWTStarter.java
  
  Index: AWTStarter.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/apps/AWTStarter.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- AWTStarter.java   25 Oct 2002 09:29:39 -0000      1.15
  +++ AWTStarter.java   6 Nov 2002 14:30:15 -0000       1.16
  @@ -6,136 +6,84 @@
    */
   
   package org.apache.fop.apps;
  -/*
  - * originally contributed by
  - * Juergen Verwohlt: [EMAIL PROTECTED],
  - * Rainer Steinkuhle: [EMAIL PROTECTED],
  - * Stanislav Gorkhover: [EMAIL PROTECTED]
  - * Modified to use streaming API by Mark Lillywhite, [EMAIL PROTECTED]
  - */
  -import org.apache.fop.viewer.*;
  -import org.apache.fop.render.awt.*;
   
  +//FOP
  +import org.apache.fop.render.awt.AWTRenderer;
  +import org.apache.fop.viewer.PreviewDialog;
  +import org.apache.fop.viewer.Translator;
   
  +//Java
   import javax.swing.UIManager;
   import java.awt.*;
   import java.awt.event.WindowAdapter;
   import java.awt.event.WindowEvent;
  +import java.util.Locale;
   
   // SAX
   import org.xml.sax.XMLReader;
  -import org.xml.sax.InputSource;
  -import org.xml.sax.SAXException;
  -import org.xml.sax.SAXParseException;
  -
  -
  -
  -// Java
  -import java.io.FileReader;
  -import java.io.File;
  -import java.io.FileWriter;
  -import java.io.PrintWriter;
  -import java.io.IOException;
  -import java.io.FileNotFoundException;
  -import java.io.FileInputStream;
  -import java.io.InputStream;
  -import java.net.URL;
  -import java.util.*;
  -
   
   /**
  - * initialize AWT previewer
  + * AWT Viewer starter.
  + * Originally contributed by:
  + * Juergen Verwohlt: [EMAIL PROTECTED],
  + * Rainer Steinkuhle: [EMAIL PROTECTED],
  + * Stanislav Gorkhover: [EMAIL PROTECTED]
  + * Modified to use streaming API by Mark Lillywhite, [EMAIL PROTECTED]
    */
   public class AWTStarter extends CommandLineStarter {
  +    private PreviewDialog frame;
  +    private Translator translator;
  +    private Driver driver;
  +    private XMLReader parser;
   
  -    PreviewDialog frame;
  -    AWTRenderer renderer;
  -    public static String TRANSLATION_PATH =
  -        "/org/apache/fop/viewer/resources/";
  -
  -    private Translator resource;
  -
  -    public AWTStarter(CommandLineOptions commandLineOptions)
  -    throws FOPException {
  +    public AWTStarter(CommandLineOptions commandLineOptions) throws FOPException {
           super(commandLineOptions);
           init();
       }
   
  -    private void init() {
  -        try {
  -            UIManager.setLookAndFeel(new javax.swing.plaf.metal.MetalLookAndFeel());
  -        } catch (Exception e) {
  -            e.printStackTrace();
  -        }
  -
  +    private void init() throws FOPException {
  +        //Creates Translator according to the language
           String language = commandLineOptions.getLanguage();
  -
  -        if (language == null) {
  -            try {
  -                language = System.getProperty("user.language");
  -            } catch(SecurityException se) {
  -                // if this is running in a secure place
  -            }
  -        }
  -        resource = getResourceBundle(TRANSLATION_PATH + "resources."
  -                                     + language);
  -
  -        UserMessage.setTranslator(getResourceBundle(TRANSLATION_PATH
  -                                  + "messages."
  -                                  + language));
  -
  -        resource.setMissingEmphasized(false);
  -        renderer = new AWTRenderer(resource);
  -        frame = createPreviewDialog(renderer, resource);
  -        //renderer.setProgressListener(frame);
  +        if (language == null)
  +            translator = new Translator(Locale.getDefault());
  +        else
  +            translator = new Translator(new Locale(language, ""));
  +        AWTRenderer renderer = new AWTRenderer(translator);
  +        frame = createPreviewDialog(renderer, translator);
           renderer.setComponent(frame);
  -    }
  -
  -
  -    public void run() throws FOPException {
  -        Driver driver = new Driver();
  -        setupLogger(driver);
  -
  -        // init parser
  -        frame.progress(resource.getString("Init parser") + " ...");
  -        XMLReader parser = inputHandler.getParser();
  -
  +        driver = new Driver();
  +        driver.setRenderer(renderer);
  +        parser = inputHandler.getParser();
           if (parser == null) {
               throw new FOPException("Unable to create SAX parser");
           }
  +    }
   
  -        setParserFeatures(parser);
  -
  +    /**
  +     * Runs formatting.
  +     */
  +    public void run() throws FOPException {
  +        driver.reset();
           try {
  -            driver.setRenderer(renderer);
  -
  -            // build FO tree: time
  -            frame.progress(resource.getString("Build FO tree") + " ...");
  +            frame.setStatus(translator.getString("Status.Build.FO.tree"));
               driver.render(parser, inputHandler.getInputSource());
  -
  -            frame.progress(resource.getString("Show"));
  +            frame.setStatus(translator.getString("Status.Show"));
               frame.showPage();
  -
           } catch (Exception e) {
  -            if (e instanceof FOPException) {
  -                throw (FOPException)e;
  -            }
  -            throw new FOPException(e);
  +            frame.reportException(e);
           }
  -
       }
   
  -    protected PreviewDialog createPreviewDialog(AWTRenderer renderer,
  +    private PreviewDialog createPreviewDialog(AWTRenderer renderer,
               Translator res) {
  -        PreviewDialog frame = new PreviewDialog(renderer, res);
  -        frame.validate();
  +        PreviewDialog frame = new PreviewDialog(this, renderer, res);
           frame.addWindowListener(new WindowAdapter() {
               public void windowClosed(WindowEvent we) {
                   System.exit(0);
               }
           });
   
  -        // center window
  +        //Centers the window
           Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
           Dimension frameSize = frame.getSize();
           if (frameSize.height > screenSize.height) {
  @@ -149,21 +97,5 @@
           frame.setVisible(true);
           return frame;
       }
  -
  -
  -
  -    private SecureResourceBundle getResourceBundle(String path) {
  -        InputStream in = null;
  -
  -        try {
  -            URL url = getClass().getResource(path);
  -            in = url.openStream();
  -        } catch (Exception ex) {
  -            getLogger().error("Can't find URL to: <" + path + "> "
  -                                 + ex.getMessage(), ex);
  -        }
  -        return new SecureResourceBundle(in);
  -    }
  -
   }
   
  
  
  
  1.43      +2 -2      xml-fop/src/org/apache/fop/render/awt/AWTRenderer.java
  
  Index: AWTRenderer.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/render/awt/AWTRenderer.java,v
  retrieving revision 1.42
  retrieving revision 1.43
  diff -u -r1.42 -r1.43
  --- AWTRenderer.java  9 Jul 2002 09:43:14 -0000       1.42
  +++ AWTRenderer.java  6 Nov 2002 14:30:15 -0000       1.43
  @@ -60,7 +60,7 @@
       protected double scaleFactor = 100.0;
       protected int pageNumber = 0;
       protected Vector pageList = new Vector();
  -    protected ProgressListener progressListener = null;
  +    //protected ProgressListener progressListener = null;
       protected Translator res = null;
   
       protected Hashtable fontNames = new Hashtable();
  
  
  
  1.8       +33 -33    xml-fop/src/org/apache/fop/viewer/Command.java
  
  Index: Command.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/viewer/Command.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- Command.java      22 Nov 2001 07:11:41 -0000      1.7
  +++ Command.java      6 Nov 2002 14:30:15 -0000       1.8
  @@ -6,60 +6,60 @@
    */
   
   package org.apache.fop.viewer;
  -/*
  - * Juergen Verwohlt: [EMAIL PROTECTED],
  - * Rainer Steinkuhle: [EMAIL PROTECTED],
  - * Stanislav Gorkhover: [EMAIL PROTECTED]
  - */
   
  +//Java
   import java.awt.event.ActionEvent;
   import javax.swing.AbstractAction;
   import javax.swing.ImageIcon;
  -import java.net.*;
  -
  +import java.net.URL;
   
   /**
  - * Klasse für UI-Kommandos. Die Kommandos können in das Menüsystem oder
  - * in eine Toolbar eingefügt werden.<br>
  - * <code>Commands</code> unterstützen mehrsprachigkeit.<br>
  - * Durch überschreiben der Methode <code>doit<code> kann die Klasse customisiert 
werden.
  - * Über die Methode <code>undoit</code> kann Undo-Funktionalität unterstützt 
werden.<br>
  - *
  - * @author [EMAIL PROTECTED]
  - * @version 1.0 18.03.99
  + * This class represents UI-commands, which can be used as menu or toolbar
  + * items<br>.
  + * When the <code>Command</code> object receives action event, that object's
  + * <code>doit</code> method is invoked. <code>doit</code> method by default
  + * does nothing and the class customer have to override it to implement
  + * any action handling logic.
  + * Originally contributed by:
  + * Juergen Verwohlt: [EMAIL PROTECTED],
  + * Rainer Steinkuhle: [EMAIL PROTECTED],
  + * Stanislav Gorkhover: [EMAIL PROTECTED]
    */
   public class Command extends AbstractAction {
   
  -    public static String IMAGE_DIR = "/org/apache/fop/viewer/Images/";
  +    private static String IMAGE_DIR = "Images/";
   
  +    /**
  +     * Creates <code>Command</code> object with a given name and
  +     * sets the name as a tooltip text. No associated icon image.
  +     */
       public Command(String name) {
  -        this(name, (ImageIcon)null);
  -    }
  -
  -    public Command(String name, ImageIcon anIcon) {
  -        super(name, anIcon);
  +        super(name);
  +        putValue(SHORT_DESCRIPTION, name);
       }
   
  +    /**
  +     * Creates <code>Command</code> object with a given name, the same
  +     * tooltip text and icon image if appropriate image file is found.
  +     */
       public Command(String name, String iconName) {
           super(name);
  -        String path = IMAGE_DIR + iconName + ".gif";
  -        URL url = getClass().getResource(path);
  -        if (url == null) {
  -            //log.error("Icon not found: " + path);
  -        } else
  +        putValue(SHORT_DESCRIPTION, name);
  +        URL url = getClass().getResource(IMAGE_DIR + iconName + ".gif");
  +        if (url != null) {
               putValue(SMALL_ICON, new ImageIcon(url));
  +        }
       }
   
       public void actionPerformed(ActionEvent e) {
           doit();
       }
   
  +    /**
  +     * Action handler, have to be overrided by subclasses.
  +     */
       public void doit() {
  -        //log.error("Not implemented.");
  +        //Do nothing
       }
  -
  -    public void undoit() {
  -        //log.error("Not implemented.");
  -    }
  -
   }
  +
  
  
  
  1.4       +40 -46    xml-fop/src/org/apache/fop/viewer/GoToPageDialog.java
  
  Index: GoToPageDialog.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/viewer/GoToPageDialog.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- GoToPageDialog.java       22 Nov 2001 07:11:41 -0000      1.3
  +++ GoToPageDialog.java       6 Nov 2002 14:30:15 -0000       1.4
  @@ -5,62 +5,53 @@
    * LICENSE file included with these sources.
    */
   
  -/*
  - * originally contributed by
  - * Juergen Verwohlt: [EMAIL PROTECTED],
  - * Rainer Steinkuhle: [EMAIL PROTECTED],
  - * Stanislav Gorkhover: [EMAIL PROTECTED]
  - */
  -
   package org.apache.fop.viewer;
   
   import java.awt.*;
   import javax.swing.*;
  -import java.awt.event.*;
  +import java.awt.event.ActionEvent;
  +import java.awt.event.ActionListener;
   
  +/**
  + * Go to Page Dialog.
  + * Originally contributed by:
  + * Juergen Verwohlt: [EMAIL PROTECTED],
  + * Rainer Steinkuhle: [EMAIL PROTECTED],
  + * Stanislav Gorkhover: [EMAIL PROTECTED]
  + */
   public class GoToPageDialog extends JDialog {
  -    JPanel panel1 = new JPanel();
  -    GridBagLayout gridBagLayout1 = new GridBagLayout();
  -    JLabel pgNbLabel = new JLabel();
  -    JTextField pgNbField = new JTextField();
  -    JButton okButton = new JButton();
  -    JButton cancelButton = new JButton();
  -
  -    int pageNumber = -1;
  -
  -    public GoToPageDialog(Frame frame, String title, boolean modal) {
  -        super(frame, title, modal);
  -        try {
  -            jbInit();
  -            pack();
  -        } catch (Exception ex) {
  -            //log.error("GoToPageDialog: Konstruktor: "
  -            //                       + ex.getMessage(), ex);
  -        }
  -    }
  -
  -    public GoToPageDialog() {
  -        this(null, "", false);
  -    }
  -
  -    void jbInit() throws Exception {
  +    private JTextField pgNbField;
  +    private int pageNumber = -1;
  + 
  +    /**
  +     * Creates modal dialog with a given title, attached to a given frame.
  +     */
  +    public GoToPageDialog(Frame frame, String title, Translator translator) {
  +        super(frame, title, true);
  +        jbInit(translator);
  +        pack();
  +    }
  +
  +    private void jbInit(Translator translator) {
  +        JPanel panel1 = new JPanel();
  +        GridBagLayout gridBagLayout1 = new GridBagLayout();
  +        JLabel pgNbLabel = new JLabel();
  +        pgNbField = new JTextField();
  +        JButton okButton = new JButton();
  +        JButton cancelButton = new JButton();
           panel1.setLayout(gridBagLayout1);
  -        pgNbLabel.setText("Page number");
  -        okButton.setText("Ok");
  -        okButton.addActionListener(new java.awt.event.ActionListener() {
  -
  +        pgNbLabel.setText(translator.getString("Label.Page.number"));
  +        okButton.setText(translator.getString("Button.Ok"));
  +        okButton.addActionListener(new ActionListener() {
               public void actionPerformed(ActionEvent e) {
                   okButton_actionPerformed(e);
               }
  -
           });
  -        cancelButton.setText("Cancel");
  +        cancelButton.setText(translator.getString("Button.Cancel"));
           cancelButton.addActionListener(new java.awt.event.ActionListener() {
  -
               public void actionPerformed(ActionEvent e) {
                   cancelButton_actionPerformed(e);
               }
  -
           });
           panel1.setMinimumSize(new Dimension(250, 78));
           getContentPane().add(panel1);
  @@ -86,23 +77,26 @@
                                             new Insets(0, 10, 10, 10), 0, 0));
       }
   
  -    void okButton_actionPerformed(ActionEvent e) {
  +    private void okButton_actionPerformed(ActionEvent e) {
           try {
               pageNumber = Integer.parseInt(pgNbField.getText());
               dispose();
  -        } catch (Exception ex) {
  +        } catch (NumberFormatException nfe) {
               pgNbField.setText("???");
           }
   
       }
   
  -    void cancelButton_actionPerformed(ActionEvent e) {
  +    private void cancelButton_actionPerformed(ActionEvent e) {
           pageNumber = -1;
           dispose();
       }
   
  +    /**
  +     * Returns page number, entered by user.
  +     */
       public int getPageNumber() {
           return pageNumber;
       }
  -
   }
  +
  
  
  
  1.12      +219 -338  xml-fop/src/org/apache/fop/viewer/PreviewDialog.java
  
  Index: PreviewDialog.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/viewer/PreviewDialog.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- PreviewDialog.java        20 Feb 2002 10:29:40 -0000      1.11
  +++ PreviewDialog.java        6 Nov 2002 14:30:15 -0000       1.12
  @@ -4,346 +4,298 @@
    * For details on use and redistribution please refer to the
    * LICENSE file included with these sources.
    */
  -
  + 
   package org.apache.fop.viewer;
  -
  -/*
  - * originally contributed by
  - * Juergen Verwohlt: [EMAIL PROTECTED],
  - * Rainer Steinkuhle: [EMAIL PROTECTED],
  - * Stanislav Gorkhover: [EMAIL PROTECTED]
  - * Doro Wiarda ([EMAIL PROTECTED]:
  - * added  MessageListener support and made
  - * the showing of the progress and error
  - * messages Swing thread safe.
  - * This is needed as xml parse errors do not
  - * necessarily occur in the
  - * EventDispatchThread.
  - */
  -
  + 
  +//Java
   import java.awt.*;
  -import java.awt.print.*;
  -import java.awt.event.*;
  -import java.awt.image.BufferedImage;
  -import java.util.StringTokenizer;
  -import java.util.ArrayList;
  -
   import javax.swing.*;
  +import java.awt.event.ActionEvent;
  +import java.awt.event.ActionListener;
  +import java.awt.print.PrinterJob;
  +import java.awt.print.PrinterException;
  +import java.awt.image.BufferedImage;
   
  -import org.apache.fop.layout.*;
  -import org.apache.fop.render.awt.*;
  +//FOP
  +import org.apache.fop.apps.AWTStarter;
  +import org.apache.fop.apps.FOPException;
  +import org.apache.fop.render.awt.AWTRenderer;
   
   /**
  - * Frame and User Interface for Preview
  + * AWT Viewer main window.
  + * Originally contributed by:
  + * Juergen Verwohlt: [EMAIL PROTECTED],
  + * Rainer Steinkuhle: [EMAIL PROTECTED],
  + * Stanislav Gorkhover: [EMAIL PROTECTED]
    */
  -public class PreviewDialog extends JFrame implements ProgressListener {
  -
  -    protected Translator res;
  -
  -    protected int currentPage = 0;
  -    protected int pageCount = 0;
  -
  +public class PreviewDialog extends JFrame {
  +    protected Translator translator;
       protected AWTRenderer renderer;
  +    protected AWTStarter starter;
   
  -    protected IconToolBar toolBar = new IconToolBar();
  +    private int currentPage = 0;
  +    private int pageCount = 0;
  +    private Reloader reloader;
  +    private JComboBox scale;
  +    private JLabel processStatus;
  +    private JLabel pageLabel;
  +    private JLabel infoStatus;
   
  -    protected Command printAction;
  -    protected Command firstPageAction;
  -    protected Command previousPageAction;
  -    protected Command nextPageAction;
  -    protected Command lastPageAction;
  -
  -    protected JLabel zoomLabel =
  -        new JLabel();    // {public float getAlignmentY() { return 0.0f; }};
  -    protected JComboBox scale = new JComboBox() {
  -        public float getAlignmentY() {
  -            return 0.5f;
  -        }
  -
  -    };
  -
  -    protected JScrollPane previewArea = new JScrollPane();
  -    // protected JLabel statusBar = new JLabel();
  -    protected JPanel statusBar = new JPanel();
  -    protected GridBagLayout statusBarLayout = new GridBagLayout();
  -
  -    protected JLabel statisticsStatus = new JLabel();
  -    protected JLabel processStatus = new JLabel();
  -    protected JLabel infoStatus = new JLabel();
  -    protected JLabel previewImageLabel = new JLabel();
  +    /**
  +     *  Creates a new PreviewDialog that uses the given starter, renderer and 
translator.
  +     *  @param aStarter the to use starter
  +     *  @param aRenderer the to use renderer
  +     *  @param aRes the to use translator
  +     */
  +    public PreviewDialog(AWTStarter aStarter, AWTRenderer aRenderer, Translator 
aRes) {
  +        this(aRenderer, aRes);
  +        starter = aStarter;
  +    }
   
       /**
  -     * Create a new PreviewDialog that uses the given renderer and translator.
  -     *
  +     * Creates a new PreviewDialog that uses the given renderer and translator.
        * @param aRenderer the to use renderer
        * @param aRes the to use translator
        */
       public PreviewDialog(AWTRenderer aRenderer, Translator aRes) {
  -        res = aRes;
  +        translator = aRes;
           renderer = aRenderer;
   
  -        printAction = new Command(res.getString("Print"), "Print") {
  +        //Commands aka Actions
  +        Command printAction = new Command(translator.getString("Menu.Print"), 
"Print") {
               public void doit() {
                   print();
               }
  -
           };
  -        firstPageAction = new Command(res.getString("First page"),
  +        Command firstPageAction = new 
Command(translator.getString("Menu.First.page"),
                                         "firstpg") {
               public void doit() {
  -                goToFirstPage(null);
  +                goToFirstPage();
               }
  -
           };
  -        previousPageAction = new Command(res.getString("Previous page"),
  +        Command previousPageAction = new 
Command(translator.getString("Menu.Prev.page"),
                                            "prevpg") {
               public void doit() {
  -                goToPreviousPage(null);
  +                goToPreviousPage();
               }
  -
           };
  -        nextPageAction = new Command(res.getString("Next page"), "nextpg") {
  +        Command nextPageAction = new 
Command(translator.getString("Menu.Next.page"), "nextpg") {
               public void doit() {
  -                goToNextPage(null);
  +                goToNextPage();
               }
   
           };
  -        lastPageAction = new Command(res.getString("Last page"), "lastpg") {
  +        Command lastPageAction = new 
Command(translator.getString("Menu.Last.page"), "lastpg") {
               public void doit() {
  -                goToLastPage(null);
  +                goToLastPage();
  +            }
  +        };
  +        Command reloadAction = new Command(translator.getString("Menu.Reload"), 
"reload") {
  +            public void doit() {
  +                reload();
               }
  -
           };
   
  +        setTitle("FOP: AWT-" + translator.getString("Title.Preview"));
           setDefaultCloseOperation(DISPOSE_ON_CLOSE);
  -        this.setSize(new Dimension(379, 476));
  -        previewArea.setMinimumSize(new Dimension(50, 50));
   
  -        this.setTitle("FOP: AWT-" + res.getString("Preview"));
  -
  -        scale.addItem("25");
  -        scale.addItem("50");
  -        scale.addItem("75");
  -        scale.addItem("100");
  -        scale.addItem("150");
  -        scale.addItem("200");
  +        //Sets size to be 61%x90% of the screen size
  +        Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
  +        //Rather frivolous size - fits A4 page width in 1024x768 screen on my 
desktop
  +        setSize(screen.width*61/100, screen.height*9/10);
  +
  +        //Page view stuff
  +        pageLabel = new JLabel();
  +        JScrollPane previewArea = new JScrollPane(pageLabel);
  +        previewArea.getViewport().setBackground(Color.gray);
  +        previewArea.setMinimumSize(new Dimension(50, 50));
  +        getContentPane().add(previewArea, BorderLayout.CENTER);
   
  +        //Scaling combobox
  +        scale = new JComboBox();
  +        scale.addItem("25%");
  +        scale.addItem("50%");
  +        scale.addItem("75%");
  +        scale.addItem("100%");
  +        scale.addItem("150%");
  +        scale.addItem("200%");
           scale.setMaximumSize(new Dimension(80, 24));
           scale.setPreferredSize(new Dimension(80, 24));
  -
  -        scale.addActionListener(new java.awt.event.ActionListener() {
  +        scale.addActionListener(new ActionListener() {
               public void actionPerformed(ActionEvent e) {
                   scale_actionPerformed(e);
               }
  -
           });
  -
  -        scale.setSelectedItem("100");
  +        scale.setSelectedItem("100%");
           renderer.setScaleFactor(100.0);
   
  -        zoomLabel.setText(res.getString("Zoom"));
  -
  -        this.setJMenuBar(setupMenue());
  -
  -        this.getContentPane().add(toolBar, BorderLayout.NORTH);
  +        //Menu
  +        setJMenuBar(setupMenu());
   
  +        //Toolbar
  +        JToolBar toolBar = new JToolBar();
           toolBar.add(printAction);
  +        toolBar.add(reloadAction);
           toolBar.addSeparator();
           toolBar.add(firstPageAction);
           toolBar.add(previousPageAction);
           toolBar.add(nextPageAction);
           toolBar.add(lastPageAction);
           toolBar.addSeparator();
  -        toolBar.add(zoomLabel, null);
  +        toolBar.add(new JLabel(translator.getString("Menu.Zoom")));
           toolBar.addSeparator();
  -        toolBar.add(scale, null);
  -
  -        this.getContentPane().add(previewArea, BorderLayout.CENTER);
  -        this.getContentPane().add(statusBar, BorderLayout.SOUTH);
  +        toolBar.add(scale);
  +        getContentPane().add(toolBar, BorderLayout.NORTH);
  +        //Status bar
  +        JPanel statusBar = new JPanel();
  +        processStatus = new JLabel();
  +        processStatus.setBorder(BorderFactory.createCompoundBorder(
  +                BorderFactory.createEtchedBorder(), 
BorderFactory.createEmptyBorder(0,3,0,0)));
  +        infoStatus = new JLabel();
  +        infoStatus.setBorder(BorderFactory.createCompoundBorder(
  +                BorderFactory.createEtchedBorder(), 
BorderFactory.createEmptyBorder(0,3,0,0)));
   
  -        statisticsStatus.setBorder(BorderFactory.createEtchedBorder());
  -        processStatus.setBorder(BorderFactory.createEtchedBorder());
  -        infoStatus.setBorder(BorderFactory.createEtchedBorder());
  -
  -        statusBar.setLayout(statusBarLayout);
  +        statusBar.setLayout(new GridBagLayout());
   
           processStatus.setPreferredSize(new Dimension(200, 21));
  -        statisticsStatus.setPreferredSize(new Dimension(100, 21));
  -        infoStatus.setPreferredSize(new Dimension(100, 21));
           processStatus.setMinimumSize(new Dimension(200, 21));
  -        statisticsStatus.setMinimumSize(new Dimension(100, 21));
  +
  +        infoStatus.setPreferredSize(new Dimension(100, 21));
           infoStatus.setMinimumSize(new Dimension(100, 21));
           statusBar.add(processStatus,
  -                      new GridBagConstraints(0, 0, 2, 1, 2.0, 0.0,
  +                      new GridBagConstraints(0, 0, 1, 0, 2.0, 0.0,
                                                GridBagConstraints.CENTER,
                                                GridBagConstraints.HORIZONTAL,
  -                                             new Insets(0, 0, 0, 5), 0, 0));
  -        statusBar.add(statisticsStatus,
  -                      new GridBagConstraints(2, 0, 1, 2, 1.0, 0.0,
  -                                             GridBagConstraints.CENTER,
  -                                             GridBagConstraints.HORIZONTAL,
  -                                             new Insets(0, 0, 0, 5), 0, 0));
  +                                             new Insets(0, 0, 0, 3), 0, 0));
           statusBar.add(infoStatus,
  -                      new GridBagConstraints(3, 0, 1, 1, 1.0, 0.0,
  +                      new GridBagConstraints(1, 0, 1, 0, 1.0, 0.0,
                                                GridBagConstraints.CENTER,
                                                GridBagConstraints.HORIZONTAL,
                                                new Insets(0, 0, 0, 0), 0, 0));
  -
  -        previewArea.getViewport().add(previewImageLabel);
  -        showPage();
  +        getContentPane().add(statusBar, BorderLayout.SOUTH);
       }
   
       /**
  -     * Create a new menubar to be shown in this window.
  -     *
  +     * Creates a new menubar to be shown in this window.
        * @return the newly created menubar
        */
  -    private JMenuBar setupMenue() {
  -        JMenuBar menuBar;
  -        JMenuItem menuItem;
  -        JMenu menu;
  -        JMenu subMenu;
  -
  -        menuBar = new JMenuBar();
  -        menu = new JMenu(res.getString("File"));
  -        subMenu = new JMenu("OutputFormat");
  -        subMenu.add(new Command("mHTML"));
  -        subMenu.add(new Command("mPDF"));
  -        subMenu.add(new Command("mRTF"));
  -        subMenu.add(new Command("mTEXT"));
  -        // menu.add(subMenu);
  -        // menu.addSeparator();
  -        menu.add(new Command(res.getString("Print")) {
  +    private JMenuBar setupMenu() {
  +        JMenuBar menuBar = new JMenuBar();
  +        JMenu menu = new JMenu(translator.getString("Menu.File"));
  +
  +        //Adds mostly the same actions, but without icons
  +        menu.add(new Command(translator.getString("Menu.Print")) {
               public void doit() {
                   print();
               }
  -
  +        });
  +        menu.add(new Command(translator.getString("Menu.Reload")) {
  +            public void doit() {
  +                reload();
  +            }
           });
           menu.addSeparator();
  -        menu.add(new Command(res.getString("Exit")) {
  +        menu.add(new Command(translator.getString("Menu.Exit")) {
               public void doit() {
                   dispose();
               }
  -
           });
           menuBar.add(menu);
  -        menu = new JMenu(res.getString("View"));
  -        menu.add(new Command(res.getString("First page")) {
  +        menu = new JMenu(translator.getString("Menu.View"));
  +        menu.add(new Command(translator.getString("Menu.First.page")) {
               public void doit() {
  -                goToFirstPage(null);
  +                goToFirstPage();
               }
  -
           });
  -        menu.add(new Command(res.getString("Previous page")) {
  +        menu.add(new Command(translator.getString("Menu.Prev.page")) {
               public void doit() {
  -                goToPreviousPage(null);
  +                goToPreviousPage();
               }
  -
           });
  -        menu.add(new Command(res.getString("Next page")) {
  +        menu.add(new Command(translator.getString("Menu.Next.page")) {
               public void doit() {
  -                goToNextPage(null);
  +                goToNextPage();
               }
  -
           });
  -        menu.add(new Command(res.getString("Last page")) {
  +        menu.add(new Command(translator.getString("Menu.Last.page")) {
               public void doit() {
  -                goToLastPage(null);
  +                goToLastPage();
               }
  -
           });
  -        menu.add(new Command(res.getString("Go to Page") + " ...") {
  +        menu.add(new Command(translator.getString("Menu.Go.to.Page") + " ...") {
               public void doit() {
  -                goToPage(null);
  +                showGoToPageDialog();
               }
  -
           });
           menu.addSeparator();
  -        subMenu = new JMenu(res.getString("Zoom"));
  +        JMenu subMenu = new JMenu(translator.getString("Menu.Zoom"));
           subMenu.add(new Command("25%") {
               public void doit() {
                   setScale(25.0);
               }
  -
           });
           subMenu.add(new Command("50%") {
               public void doit() {
                   setScale(50.0);
               }
  -
           });
           subMenu.add(new Command("75%") {
               public void doit() {
                   setScale(75.0);
               }
  -
           });
           subMenu.add(new Command("100%") {
               public void doit() {
                   setScale(100.0);
               }
  -
           });
           subMenu.add(new Command("150%") {
               public void doit() {
                   setScale(150.0);
               }
  -
           });
           subMenu.add(new Command("200%") {
               public void doit() {
                   setScale(200.0);
               }
  -
           });
           menu.add(subMenu);
           menu.addSeparator();
  -        menu.add(new Command(res.getString("Default zoom")) {
  +        menu.add(new Command(translator.getString("Menu.Default.zoom")) {
               public void doit() {
                   setScale(100.0);
               }
  -
           });
           menuBar.add(menu);
  -        menu = new JMenu(res.getString("Help"));
  -        menu.add(new Command(res.getString("Index")));
  -        menu.addSeparator();
  -        menu.add(new Command(res.getString("Introduction")));
  -        menu.addSeparator();
  -        menu.add(new Command(res.getString("About")) {
  +        menu = new JMenu(translator.getString("Menu.Help"));
  +        menu.add(new Command(translator.getString("Menu.About")) {
               public void doit() {
  -                startHelpAbout(null);
  +                startHelpAbout();
               }
  -
           });
           menuBar.add(menu);
           return menuBar;
       }
   
  -    // Aktion Hilfe | Info durchgeführt
  -
       /**
  -     * Show the About box
  -     *
  -     * @param e a value of type 'ActionEvent'
  +     * Shows the About box
        */
  -    public void startHelpAbout(ActionEvent e) {
  -        PreviewDialogAboutBox dlg = new PreviewDialogAboutBox(this);
  +    private void startHelpAbout() {
  +        PreviewDialogAboutBox dlg = new PreviewDialogAboutBox(this, translator);
  +        //Centers the box
           Dimension dlgSize = dlg.getPreferredSize();
           Dimension frmSize = getSize();
           Point loc = getLocation();
           dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x,
                           (frmSize.height - dlgSize.height) / 2 + loc.y);
  -        dlg.setModal(true);
  -        dlg.show();
  +        dlg.setVisible(true);
       }
   
       /**
  -     * Change the current visible page
  -     *
  +     * Changes the current visible page
        * @param number the page number to go to
        */
  -    private void goToPage(int number) {
  +      private void goToPage(int number) {
           currentPage = number;
           renderer.setPageNumber(number);
           showPage();
  @@ -352,7 +304,7 @@
       /**
        * Shows the previous page.
        */
  -    private void goToPreviousPage(ActionEvent e) {
  +    private void goToPreviousPage() {
           if (currentPage <= 0)
               return;
           currentPage--;
  @@ -363,7 +315,7 @@
       /**
        * Shows the next page.
        */
  -    private void goToNextPage(ActionEvent e) {
  +    private void goToNextPage() {
           if (currentPage >= pageCount - 1)
               return;
           currentPage++;
  @@ -373,52 +325,75 @@
       /**
        * Shows the last page.
        */
  -    private void goToLastPage(ActionEvent e) {
  -
  +    private void goToLastPage() {
           if (currentPage == pageCount - 1)
               return;
           currentPage = pageCount - 1;
  -
           goToPage(currentPage);
       }
   
       /**
  -     * Shows a page by number.
  +     * Reloads and reformats document.
        */
  -    private void goToPage(ActionEvent e) {
  +    private synchronized void reload() {
  +        if (reloader == null || !reloader.isAlive()) {
  +            reloader = new Reloader();
  +            reloader.start();
  +        }
  +    }
   
  +    /**
  +     * This class is used to reload document  in
  +     * a thread safe way.
  +     */
  +    private class Reloader extends Thread {
  +        public void run() {
  +            pageLabel.setIcon(null);
  +            infoStatus.setText("");
  +            currentPage = 0;
  +            //Cleans up renderer - to be done
  +            //while (renderer.getPageCount() != 0)
  +            //    renderer.removePage(0);
  +            try {
  +                starter.run();
  +            } catch (FOPException e) {
  +                reportException(e);
  +            }
  +        }
  +    }
  +
  +    /**
  +     * Shows "go to page" dialog and then goes to the selected page
  +     */
  +    private void showGoToPageDialog() {
           GoToPageDialog d = new GoToPageDialog(this,
  -                                              res.getString("Go to Page"),
  -                                              true);
  +            translator.getString("Menu.Go.to.Page"), translator);
           d.setLocation((int)getLocation().getX() + 50,
                         (int)getLocation().getY() + 50);
  -        d.show();
  +        d.setVisible(true);
           currentPage = d.getPageNumber();
  -
           if (currentPage < 1 || currentPage > pageCount)
               return;
  -
           currentPage--;
  -
           goToPage(currentPage);
       }
   
       /**
        * Shows the first page.
        */
  -    private void goToFirstPage(ActionEvent e) {
  +    private void goToFirstPage() {
           if (currentPage == 0)
               return;
           currentPage = 0;
           goToPage(currentPage);
       }
   
  +    /**
  +     * Prints the document
  +     */
       private void print() {
           PrinterJob pj = PrinterJob.getPrinterJob();
  -        // Nicht nötig, Pageable get a Printable.
  -        // pj.setPrintable(renderer);
           pj.setPageable(renderer);
  -
           if (pj.printDialog()) {
               try {
                   pj.print();
  @@ -428,8 +403,10 @@
           }
       }
   
  -    public void setScale(double scaleFactor) {
  -
  +    /**
  +     * Scales page image
  +     */
  +    private void setScale(double scaleFactor) {
           if (scaleFactor == 25.0)
               scale.setSelectedIndex(0);
           else if (scaleFactor == 50.0)
  @@ -442,74 +419,47 @@
               scale.setSelectedIndex(4);
           else if (scaleFactor == 200.0)
               scale.setSelectedIndex(5);
  -
           renderer.setScaleFactor(scaleFactor);
           showPage();
       }
   
  -    void scale_actionPerformed(ActionEvent e) {
  -        setScale(new Double((String)scale.getSelectedItem()).doubleValue());
  -    }
  -
  -    public void progress(int percentage) {
  -        progress(new String(percentage + "%"));
  -    }
  -
  -    public void progress(int percentage, String message) {
  -        progress(new String(message + " " + percentage + "%"));
  +    private void scale_actionPerformed(ActionEvent e) {
  +        String item = (String)scale.getSelectedItem();
  +        setScale(Double.parseDouble(item.substring(0, item.indexOf('%'))));
       }
   
  -
       /**
  -     * Setting the text  of a JLabel is not thread save, it
  -     * needs to be done in  the EventThread. Here we make sure
  -     * it is done.
  +     * Sets message to be shown in the status bar in a thread safe way.
        */
  -    public void progress(String message) {
  -        SwingUtilities.invokeLater(new showProgress(message, false));
  +    public void setStatus(String message) {
  +        SwingUtilities.invokeLater(new ShowStatus(message));
       }
   
  -
       /**
  -     * This class is used to show status and error messages in
  -     * a thread safe way.
  +     * This class is used to show status in a thread safe way.
        */
  -    class showProgress implements Runnable {
  -
  +    private class ShowStatus implements Runnable {
           /**
            * The message to display
            */
  -        Object message;
  -
  +        String message;
           /**
  -         * Is this an errorMessage, i.e. should it be shown in
  -         * an JOptionPane or in the status bar.
  -         */
  -        boolean isErrorMessage = false;
  -
  -        /**
  -         * Constructs  showProgress thread
  +         * Constructs  ShowStatus thread
            * @param message message to display
  -         * @param isErrorMessage show in status bar or in JOptionPane
            */
  -        public showProgress(Object message, boolean isErrorMessage) {
  +        public ShowStatus(String message) {
               this.message = message;
  -            this.isErrorMessage = isErrorMessage;
           }
  -
           public void run() {
  -            if (isErrorMessage) {
  -                JOptionPane.showMessageDialog(null, message, "Error",
  -                                              JOptionPane.ERROR_MESSAGE);
  -            } else
  -                processStatus.setText(message.toString());
  +            processStatus.setText(message.toString());
           }
  -
       }
   
  +    /**
  +     * Starts rendering process and shows the current page.
  +     */
       public void showPage() {
  -        showPageImage viewer = new showPageImage();
  -
  +        ShowPageImage viewer = new ShowPageImage();
           if (SwingUtilities.isEventDispatchThread()) {
               viewer.run();
           } else
  @@ -521,108 +471,39 @@
        * This class is used to update the page image
        * in a thread safe way.
        */
  -    class showPageImage implements Runnable {
  -
  +    private class ShowPageImage implements Runnable {
           /**
  -         * The run method that does the actuall updating
  +         * The run method that does the actual updating
            */
           public void run() {
  -            BufferedImage pageImage = null;
  -            Graphics graphics = null;
  -
  -            //renderer.render(currentPage);
  -            pageImage = renderer.getLastRenderedPage();
  +            //Rendering a page - to be done
  +            /*
  +            renderer.render(currentPage);
  +            BufferedImage pageImage = renderer.getLastRenderedPage();
               if (pageImage == null)
                   return;
  -            graphics = pageImage.getGraphics();
  -            graphics.setColor(Color.black);
  -            graphics.drawRect(0, 0, pageImage.getWidth() - 1,
  -                              pageImage.getHeight() - 1);
  -
  -            previewImageLabel.setIcon(new ImageIcon(pageImage));
  -
  +            pageLabel.setIcon(new ImageIcon(pageImage));
               pageCount = renderer.getPageCount();
  -
  -            statisticsStatus.setText(res.getString("Page") + " "
  -                                     + (currentPage + 1) + " "
  -                                     + res.getString("of") + " " + pageCount);
  +            //Updates status bar
  +            infoStatus.setText(translator.getString("Status.Page") + " "
  +                + (currentPage + 1) + " "
  +                + translator.getString("Status.of") + " " + pageCount);
  +            */
           }
  -
       }
   
  -
       /**
  -     * Called by logger if an error message or a
  -     * log message is received.
  +     * Opens standard Swing error dialog box and reports given exception details.
        */
  -    public void processMessage() {
  -/*        String error = event.getMessage();
  -        String text = processStatus.getText();
  -        FontMetrics fmt =
  -            processStatus.getFontMetrics(processStatus.getFont());
  -        int width = processStatus.getWidth() - fmt.stringWidth("...");
  -        showProgress showIt;
  -
  -        if (event.getMessageType() == event.LOG) {
  -            if (!text.endsWith("\n")) {
  -                text = text + error;
  -                while (fmt.stringWidth(text) > width) {
  -                    text = text.substring(1);
  -                    width = processStatus.getWidth() - fmt.stringWidth("...");
  -                }
  -            } else
  -                text = error;
  -            progress(text);
  -        } else {
  -            error = error.trim();
  -            if (error.equals(">")) {
  -                text = text + error;
  -                while (fmt.stringWidth(text) > width) {
  -                    text = text.substring(1);
  -                    width = processStatus.getWidth() - fmt.stringWidth("...");
  -                }
  -                progress(processStatus.getText() + error);
  -                return;
  -            }
  -            if (error.equals(""))
  -                return;
  -            if (error.length() < 60) {
  -                showIt = new showProgress(error, true);
  -            } else {
  -                StringTokenizer tok = new StringTokenizer(error, " ");
  -                ArrayList labels = new ArrayList();
  -                StringBuffer buffer = new StringBuffer();
  -                String tmp, list[];
  -
  -                while (tok.hasMoreTokens()) {
  -                    tmp = tok.nextToken();
  -                    if ((buffer.length() + tmp.length() + 1) < 60) {
  -                        buffer.append(" ").append(tmp);
  -                    } else {
  -                        labels.add(buffer.toString());
  -                        buffer = new StringBuffer();
  -                        buffer.append(tmp);
  -                    }
  -                }
  -                labels.add(buffer.toString());
  -                list = new String[labels.size()];
  -                for (int i = 0; i < labels.size(); i++) {
  -                    list[i] = labels.get(i).toString();
  -                }
  -                showIt = new showProgress(list, true);
  -            }
  -            if (SwingUtilities.isEventDispatchThread()) {
  -                showIt.run();
  -            } else {
  -                try {
  -                    SwingUtilities.invokeAndWait(showIt);
  -                } catch (Exception e) {
  -                    e.printStackTrace();
  -                    progress(event.getMessage());
  -                }
  -            }
  -        }*/
  +    public void reportException(Exception e) {
  +        String msg = translator.getString("Exception.Occured");
  +        setStatus(msg);
  +        JOptionPane.showMessageDialog(
  +                 getContentPane(),
  +            "<html><b>" + msg + ":</b><br>"
  +                  + e.getClass().getName() + "<br>" + e.getMessage() + "</html>", 
translator.getString("Exception.Error"),
  +             JOptionPane.ERROR_MESSAGE
  +             );
       }
  -
  -}    // class PreviewDialog
  +}
   
  
  
  
  1.4       +46 -62    xml-fop/src/org/apache/fop/viewer/PreviewDialogAboutBox.java
  
  Index: PreviewDialogAboutBox.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/viewer/PreviewDialogAboutBox.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- PreviewDialogAboutBox.java        30 Jul 2001 20:29:35 -0000      1.3
  +++ PreviewDialogAboutBox.java        6 Nov 2002 14:30:15 -0000       1.4
  @@ -7,80 +7,65 @@
   
   package org.apache.fop.viewer;
   
  -/*
  - * originally contributed by
  - * Juergen Verwohlt: [EMAIL PROTECTED],
  - * Rainer Steinkuhle: [EMAIL PROTECTED],
  - * Stanislav Gorkhover: [EMAIL PROTECTED]
  - */
  -
  -
  +//Java
   import java.awt.*;
  -import java.awt.event.*;
   import javax.swing.*;
  -import javax.swing.border.*;
  +import javax.swing.border.EmptyBorder;
  +import java.awt.event.ActionListener;
  +import java.awt.event.WindowEvent;
  +import java.awt.event.ActionEvent;
   
  +//FOP
   import org.apache.fop.apps.Version;
   
  -
  -
  +/**
  + * AWT Viewer's "About" dialog.
  + * Originally contributed by:
  + * Juergen Verwohlt: [EMAIL PROTECTED],
  + * Rainer Steinkuhle: [EMAIL PROTECTED],
  + * Stanislav Gorkhover: [EMAIL PROTECTED]
  + */
   public class PreviewDialogAboutBox extends Dialog implements ActionListener {
  +    private JButton okButton;
   
  -    JPanel panel1 = new JPanel();
  -    JPanel panel2 = new JPanel();
  -    JPanel insetsPanel1 = new JPanel();
  -    JPanel insetsPanel2 = new JPanel();
  -    JPanel insetsPanel3 = new JPanel();
  -    JButton button1 = new JButton();
  -    JLabel imageControl1 = new JLabel();
  -    ImageIcon imageIcon;
  -    JLabel label1 = new JLabel();
  -    JLabel label2 = new JLabel();
  -    JLabel label3 = new JLabel();
  -    JLabel label4 = new JLabel();
  -    BorderLayout borderLayout1 = new BorderLayout();
  -    BorderLayout borderLayout2 = new BorderLayout();
  -    FlowLayout flowLayout1 = new FlowLayout();
  -    FlowLayout flowLayout2 = new FlowLayout();
  -    GridLayout gridLayout1 = new GridLayout();
  -    String product = "FOP AWT-Preview";
  -    String version = "Version: " + Version.getVersion();
  -    String copyright = "See xml.apache.org";
  -    String comments = "";    // "Print Preview";
  -
  -    public PreviewDialogAboutBox(Frame parent) {
  -        super(parent);
  +    /**
  +     * Creates modal "About" dialog, attached to a given parent frame.
  +     */
  +    public PreviewDialogAboutBox(Frame parent, Translator translator) {
  +        super(parent, true);
           enableEvents(AWTEvent.WINDOW_EVENT_MASK);
  -
  -        // imageIcon = new ImageIcon(getClass().getResource("Hier der Grafikname"));
  -        this.setTitle("Info");
  +        setTitle(translator.getString("About.Title"));
           setResizable(false);
  -        panel1.setLayout(borderLayout1);
  -        panel2.setLayout(borderLayout2);
  -        insetsPanel1.setLayout(flowLayout1);
  -        insetsPanel2.setLayout(flowLayout1);
  +        JPanel panel1 = new JPanel();
  +        JPanel panel2 = new JPanel();
  +        JPanel insetsPanel1 = new JPanel();
  +        JPanel insetsPanel2 = new JPanel();
  +        JPanel insetsPanel3 = new JPanel();
  +        okButton = new JButton();
  +        JLabel imageControl1 = new JLabel();
  +        imageControl1.setIcon(new 
ImageIcon(getClass().getResource("Images/fop.gif")));
  +        JLabel label1 = new JLabel(translator.getString("About.Product"));
  +        JLabel label2 = new JLabel(translator.getString("About.Version") + " " + 
Version.getVersion());
  +        JLabel label3 = new JLabel(translator.getString("About.Copyright"));
  +        panel1.setLayout(new BorderLayout());
  +        panel2.setLayout(new BorderLayout());
  +        insetsPanel1.setLayout(new FlowLayout());
  +        insetsPanel2.setLayout(new FlowLayout());
           insetsPanel2.setBorder(new EmptyBorder(10, 10, 10, 10));
  -        gridLayout1.setRows(4);
  -        gridLayout1.setColumns(1);
  -        label1.setText(product);
  -        label2.setText(version);
  -        label3.setText(copyright);
  -        label4.setText(comments);
  -        insetsPanel3.setLayout(gridLayout1);
  -        insetsPanel3.setBorder(new EmptyBorder(10, 60, 10, 10));
  -        button1.setText("OK");
  -        button1.addActionListener(this);
  +        insetsPanel3.setLayout(new GridLayout(3, 1));
  +        insetsPanel3.setBorder(new EmptyBorder(10, 10, 10, 10));
  +        okButton.setText(translator.getString("Button.Ok"));
  +        okButton.addActionListener(this);
           insetsPanel2.add(imageControl1, null);
           panel2.add(insetsPanel2, BorderLayout.WEST);
  -        this.add(panel1, null);
  -        insetsPanel3.add(label1, null);
  -        insetsPanel3.add(label2, null);
  -        insetsPanel3.add(label3, null);
  -        insetsPanel3.add(label4, null);
  +        insetsPanel3.add(label1);
  +        insetsPanel3.add(label2);
  +        insetsPanel3.add(label3);
           panel2.add(insetsPanel3, BorderLayout.CENTER);
  -        insetsPanel1.add(button1, null);
  +        insetsPanel1.add(okButton);
           panel1.add(insetsPanel1, BorderLayout.SOUTH);
           panel1.add(panel2, BorderLayout.NORTH);
  +        add(panel1);
           pack();
       }
   
  @@ -96,10 +81,9 @@
       }
   
       public void actionPerformed(ActionEvent e) {
  -        if (e.getSource() == button1) {
  +        if (e.getSource() == okButton) {
               cancel();
           }
       }
  -
   }
   
  
  
  
  1.4       +29 -23    xml-fop/src/org/apache/fop/viewer/Translator.java
  
  Index: Translator.java
  ===================================================================
  RCS file: /home/cvs/xml-fop/src/org/apache/fop/viewer/Translator.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Translator.java   30 Jul 2001 20:29:35 -0000      1.3
  +++ Translator.java   6 Nov 2002 14:30:15 -0000       1.4
  @@ -5,35 +5,41 @@
    * LICENSE file included with these sources.
    */
   
  -package org.apache.fop.viewer;
  +package org.apache.fop.viewer; 
   
  -
  -/**
  - * Definition für die Übersetzer-Klassen.
  - *
  - * @version 03.12.99
  - * @author [EMAIL PROTECTED]
  - *
  +//Java
  +import java.util.ResourceBundle; 
  +import java.util.Locale;
  +import java.util.MissingResourceException;
  +
  +/** 
  + * AWT Viewer's localization class, backed up by 
<code>java.util.ResourceBundle</code>.
  + * Originally contributed by:
  + * [EMAIL PROTECTED]
    */
  -public interface Translator {
  +public class Translator {
  +    private ResourceBundle bundle;
  +    private static String bundleBaseName = "org/apache/fop/viewer/resources/Viewer";
   
       /**
  -     * Übersetzt ein Wort.
  +     * Default constructor, default <code>Locale</code> is used.
        */
  -    public String getString(String key);
  -
  -    /**
  -     * Ein Translator soll die fehlenden keys hervorheben können.
  +    public Translator() {
  +        this(Locale.getDefault()); 
  +    }
  + 
  +    /** 
  +     * Constructor for a given <code>Locale</code>.
        */
  -    public void setMissingEmphasized(boolean b);
  +    public Translator(Locale locale) {
  +        bundle = ResourceBundle.getBundle(bundleBaseName, locale);
  +    }
   
       /**
  -     * Gibt an ob die Übersetzungsquelle gefunden ist.
  +     * Returns localized <code>String</code> for a given key.
        */
  -    public boolean isSourceFound();
  -
  -    /**
  -     * Gibt an ob ein Key in der Übersetzungsquelle vorhanden ist.
  -     */
  -    public boolean contains(String key);
  +    public String getString(String key) {
  +        return bundle.getString(key);
  +    }
   }
  +
  
  
  
  1.1                  xml-fop/src/org/apache/fop/viewer/Images/fop.gif
  
        <<Binary file>>
  
  
  1.2       +4 -0      xml-fop/src/org/apache/fop/viewer/Images/reload.gif
  
        <<Binary file>>
  
  
  1.1                  xml-fop/src/org/apache/fop/viewer/resources/Viewer.properties
  
  Index: Viewer.properties
  ===================================================================
  #############################################################################
  # Copyright (C) The Apache Software Foundation. All rights reserved.        #
  # ------------------------------------------------------------------------- #
  # This software is published under the terms of the Apache Software License #
  # version 1.1, a copy of which has been included with this distribution in  #
  # the LICENSE file.                                                         #
  #############################################################################
  #
  # AWT viewer's GUI resources. Default bundle.
  #
  Menu.File=File
  Menu.Exit=Exit
  Menu.View=View
  Menu.First.page=First page
  Menu.Prev.page=Previous page
  Menu.Next.page=Next page
  Menu.Last.page=Last page
  Menu.Go.to.Page=Go to Page
  Menu.Help=Help
  Menu.Default.zoom=Default zoom
  Menu.About=About
  Menu.Print=Print
  Menu.Zoom=Zoom
  Menu.Reload=Reload
  
  Title.Preview=Preview
  
  Status.Show=Show
  Status.Page=Page
  Status.of=of
  Status.Build.FO.tree=Build FO tree...
  
  Exception.Occured=An exception has occured
  Exception.Error=Fatal error
  
  Label.Page.number=Page number
  Button.Ok=Ok
  Button.Cancel=Cancel
  
  About.Product=FOP AWT Viewer
  About.Version=Version:
  About.Copyright=See http://xml.apache.org/fop
  About.Title=About
  
  
  1.1                  xml-fop/src/org/apache/fop/viewer/resources/Viewer_cs.properties
  
  Index: Viewer_cs.properties
  ===================================================================
  #############################################################################
  # Copyright (C) The Apache Software Foundation. All rights reserved.        #
  # ------------------------------------------------------------------------- #
  # This software is published under the terms of the Apache Software License #
  # version 1.1, a copy of which has been included with this distribution in  #
  # the LICENSE file.                                                         #
  #############################################################################
  #
  # AWT viewer's GUI resources. Czech bundle.
  #
  Menu.File=Soubor
  Menu.Print=Tisk
  Menu.Exit=Konec
  Menu.View=Zobrazit
  Menu.First.page=Prvn\u00ed strana
  Menu.Prev.page=P\u0159edchoz\u00ed strana
  Menu.Next.page=Dal\u0161\u00ed strana
  Menu.Last.page=Posledn\u00ed strana
  Menu.Zoom=Lupa
  Menu.Default.zoom=Standardn\u00ed lupa
  Menu.Help=N\u00e1pov\u011bda
  Menu.About=O aplikaci
  Menu.Reload=Obnovit
  Menu.Go.to.Page=Jdi na stranu
  
  Title.Preview=N\u00e1hled
  
  Status.Show=Zobrazen\u00ed
  Status.Page=Strana
  Status.of=z
  Status.Build.FO.tree=Vytv\u00e1\u0159\u00edm strom FO...
  
  Label.Page.number=Strana \u010d\u00edslo
  Button.Cancel=Zru\u0161it
  
  
  
  1.1                  xml-fop/src/org/apache/fop/viewer/resources/Viewer_de.properties
  
  Index: Viewer_de.properties
  ===================================================================
  #############################################################################
  # Copyright (C) The Apache Software Foundation. All rights reserved.        #
  # ------------------------------------------------------------------------- #
  # This software is published under the terms of the Apache Software License #
  # version 1.1, a copy of which has been included with this distribution in  #
  # the LICENSE file.                                                         #
  #############################################################################
  #
  # AWT viewer's GUI resources. German bundle.
  #
  Menu.File=Datei
  Menu.Exit=Beenden
  Menu.View=Anzeige
  Menu.First.page=Erste Seite
  Menu.Prev.page=Vorherige Seite
  Menu.Next.page=N\u00e4chste Seite
  Menu.Last.page=Letzte Seite
  Menu.Help=Hilfe
  Menu.Default.zoom=Standardzoom
  Menu.About=\u00dcber
  Menu.Print=Drucken
  Menu.Go.to.Page=Gehe zur Seite
  
  Title.Preview=Vorschau
  
  Status.Show=Anzeigen
  Status.Page=Seite
  Status.of=von
  Status.Build.FO.tree=Baue FO-Baum
  
  Button.Cancel=Abbrechen
  Label.Page.number=Seitennummer
  
  
  1.1                  xml-fop/src/org/apache/fop/viewer/resources/Viewer_fi.properties
  
  Index: Viewer_fi.properties
  ===================================================================
  #############################################################################
  # Copyright (C) The Apache Software Foundation. All rights reserved.        #
  # ------------------------------------------------------------------------- #
  # This software is published under the terms of the Apache Software License #
  # version 1.1, a copy of which has been included with this distribution in  #
  # the LICENSE file.                                                         #
  #############################################################################
  #
  # AWT viewer's GUI resources. Finnish bundle.
  #
  Menu.File=Tiedosto
  Menu.Print=Tulosta
  Menu.Exit=Poistu
  Menu.View=N\u00e4yt\u00e4
  Menu.First.page=Ensimm\u00e4inen sivu
  Menu.Prev.page=Edellinen sivu
  Menu.Next.page=Seuraava sivu
  Menu.Last.page=Viimeinen sivu
  Menu.Default.zoom=Normaali zoom
  Menu.Help=Ohje
  Menu.About=Tietoja
  
  Status.Page=Sivu
  
  
  
  1.1                  xml-fop/src/org/apache/fop/viewer/resources/Viewer_fr.properties
  
  Index: Viewer_fr.properties
  ===================================================================
  #############################################################################
  # Copyright (C) The Apache Software Foundation. All rights reserved.        #
  # ------------------------------------------------------------------------- #
  # This software is published under the terms of the Apache Software License #
  # version 1.1, a copy of which has been included with this distribution in  #
  # the LICENSE file.                                                         #
  #############################################################################
  #
  # AWT viewer's GUI resources. French bundle.
  #
  Menu.File=Fichier
  Menu.Print=Imprimer
  Menu.Exit=Quitter
  Menu.View=Affichage
  Menu.First.page=Premi\u00e8re page
  Menu.Prev.page=Page pr\u00e9c\u00e9dente
  Menu.Next.page=Page suivante
  Menu.Last.page=Derni\u00e8re page
  Menu.Help=Aide
  Menu.Default.zoom=Zoom par d\u00e9faut
  Menu.About=A propos
  
  
  
  1.1                  xml-fop/src/org/apache/fop/viewer/resources/Viewer_it.properties
  
  Index: Viewer_it.properties
  ===================================================================
  #############################################################################
  # Copyright (C) The Apache Software Foundation. All rights reserved.        #
  # ------------------------------------------------------------------------- #
  # This software is published under the terms of the Apache Software License #
  # version 1.1, a copy of which has been included with this distribution in  #
  # the LICENSE file.                                                         #
  #############################################################################
  #
  # AWT viewer's GUI resources. Italian bundle.
  #
  Menu.File=File
  Menu.Exit=Esci
  Menu.View=Vista
  Menu.First.page=Prima pagina
  Menu.Prev.page=Pagina precedente
  Menu.Next.page=Pagina seguente
  Menu.Last.page=Ultima pagina
  Menu.Help=Aiuto
  Menu.Default.zoom=Zoom di default
  Menu.About=Riguardo a...
  Menu.Print=Stampa
  
  
  
  1.1                  xml-fop/src/org/apache/fop/viewer/resources/Viewer_ja.properties
  
  Index: Viewer_ja.properties
  ===================================================================
  #############################################################################
  # Copyright (C) The Apache Software Foundation. All rights reserved.        #
  # ------------------------------------------------------------------------- #
  # This software is published under the terms of the Apache Software License #
  # version 1.1, a copy of which has been included with this distribution in  #
  # the LICENSE file.                                                         #
  #############################################################################
  #
  # AWT viewer's GUI resources. Japanese bundle.
  #
  Menu.File=\u30d5\u30a1\u30a4\u30eb
  Menu.Print=\u5370\u5237
  Menu.Exit=\u7d42\u4e86
  Menu.View=\u8868\u793a
  Menu.First.page=\u958b\u59cb\u30da\u30fc\u30b8
  Menu.Prev.page=\u524d\u30da\u30fc\u30b8
  Menu.Next.page=\u6b21\u30da\u30fc\u30b8
  Menu.Last.page=\u6700\u7d42\u30da\u30fc\u30b8
  Menu.Go.to.Page=\u30da\u30fc\u30b8\u6307\u5b9a
  Menu.Zoom=\u30ba\u30fc\u30e0
  Menu.Default.zoom=\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u30ba\u30fc\u30e0
  Menu.Help=\u30d8\u30eb\u30d7
  Menu.About=\u30d0\u30fc\u30b8\u30e7\u30f3\u60c5\u5831
  
  Status.Page=\u30da\u30fc\u30b8
  Status.of=/
  Status.Build.FO.tree=FO\u30c4\u30ea\u30fc\u69cb\u7bc9\u4e2d
  Status.Show=\u5b8c\u4e86
  
  
  
  1.1                  xml-fop/src/org/apache/fop/viewer/resources/Viewer_pl.properties
  
  Index: Viewer_pl.properties
  ===================================================================
  #############################################################################
  # Copyright (C) The Apache Software Foundation. All rights reserved.        #
  # ------------------------------------------------------------------------- #
  # This software is published under the terms of the Apache Software License #
  # version 1.1, a copy of which has been included with this distribution in  #
  # the LICENSE file.                                                         #
  #############################################################################
  #
  # AWT viewer's GUI resources. Polish bundle.
  #
  Menu.File=Plik
  Menu.Print=Drukuj
  Menu.Exit=Zako\u00f1cz
  Menu.View=Widok
  Menu.First.page=Pierwsza strona
  Menu.Prev.page=Poprzednia strona
  Menu.Next.page=Nast\u00eapna strona
  Menu.Last.page=Ostatnia strona
  Menu.Zoom=Powi\u00eakszenie
  Menu.Default.zoom=Domy\u00b6lne powiekszenie
  Menu.Help=Pomoc
  Menu.About=O programie
  
  Status.Page=Strona
  
  
  
  1.1                  xml-fop/src/org/apache/fop/viewer/resources/Viewer_ru.properties
  
  Index: Viewer_ru.properties
  ===================================================================
  #############################################################################
  # Copyright (C) The Apache Software Foundation. All rights reserved.        #
  # ------------------------------------------------------------------------- #
  # This software is published under the terms of the Apache Software License #
  # version 1.1, a copy of which has been included with this distribution in  #
  # the LICENSE file.                                                         #
  #############################################################################
  #
  # AWT viewer's GUI resources. Russain bundle.
  #
  Menu.File=\u0424\u0430\u0439\u043b
  Menu.Exit=\u0412\u044b\u0445\u043e\u0434
  Menu.View=\u0412\u0438\u0434
  Menu.First.page=\u041f\u0435\u0440\u0432\u0430\u044f 
\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430
  Menu.Prev.page=\u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0430\u044f 
\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430
  Menu.Next.page=\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f 
\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430
  Menu.Last.page=\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f 
\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430
  Menu.Go.to.Page=\u041f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a 
\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435
  Menu.Help=\u041f\u043e\u043c\u043e\u0449\u044c
  Menu.Default.zoom=\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 
\u0440\u0430\u0437\u043c\u0435\u0440
  Menu.About=\u041e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0435
  Menu.Print=\u041f\u0435\u0447\u0430\u0442\u044c
  Menu.Zoom=\u0420\u0430\u0437\u043c\u0435\u0440
  Menu.Reload=\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c
  
  Title.Preview=\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440
  
  Status.Show=\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435
  Status.Page=\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430
  Status.of=\u0438\u0437
  Status.Build.FO.tree=\u041f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0435 FO 
\u0434\u0435\u0440\u0435\u0432\u0430...
  
  Exception.Occured=\u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 
\u043e\u0448\u0438\u0431\u043a\u0430
  Exception.Error=\u041a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f 
\u043e\u0448\u0438\u0431\u043a\u0430
  
  Label.Page.number=\u041d\u043e\u043c\u0435\u0440 
\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b
  Button.Ok=Ok
  Button.Cancel=\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c
  
  About.Product=FOP AWT Viewer
  About.Version=\u0412\u0435\u0440\u0441\u0438\u044f:
  About.Copyright=\u0421\u043c\u043e\u0442\u0440\u0438 http://xml.apache.org/fop
  About.Title=\u041e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0435
  
  
  

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

Reply via email to