You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-dev@xmlgraphics.apache.org by hi...@apache.org on 2001/03/30 17:13:16 UTC

cvs commit: xml-batik/sources/org/apache/batik/swing/svg GVTTreeBuilder.java JSVGComponent.java

hillion     01/03/30 07:13:15

  Modified:    sources/org/apache/batik/apps/svgbrowser
                        JSVGViewerFrame.java Main.java
               sources/org/apache/batik/swing/gvt GVTTreeRenderer.java
               sources/org/apache/batik/swing/svg GVTTreeBuilder.java
                        JSVGComponent.java
  Log:
  - Added a dialog to display errors.
  - NoClassDefFoundError now catched in GVTTreeRenderer (TextLayout interruption
    bug on Solaris).
  - Refactored option handling.
  - Prepared for Thierry JSVGComponent, GVTTreeBuilder and JSVGViewerFrame to
    display documents in error.
  
  Revision  Changes    Path
  1.15      +11 -3     xml-batik/sources/org/apache/batik/apps/svgbrowser/JSVGViewerFrame.java
  
  Index: JSVGViewerFrame.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/apps/svgbrowser/JSVGViewerFrame.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- JSVGViewerFrame.java	2001/03/28 09:24:12	1.14
  +++ JSVGViewerFrame.java	2001/03/30 15:13:06	1.15
  @@ -63,6 +63,7 @@
   import javax.swing.BorderFactory;
   import javax.swing.JCheckBoxMenuItem;
   import javax.swing.JComponent;
  +import javax.swing.JDialog;
   import javax.swing.JFileChooser;
   import javax.swing.JFrame;
   import javax.swing.JMenuBar;
  @@ -127,7 +128,7 @@
    * This class represents a SVG viewer swing frame.
    *
    * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
  - * @version $Id: JSVGViewerFrame.java,v 1.14 2001/03/28 09:24:12 hillion Exp $
  + * @version $Id: JSVGViewerFrame.java,v 1.15 2001/03/30 15:13:06 hillion Exp $
    */
   public class JSVGViewerFrame
       extends    JFrame
  @@ -1305,6 +1306,9 @@
           statusBar.setMessage(resources.getString("Message.treeFailed"));
           stopAction.update(false);
           svgCanvas.setCursor(DEFAULT_CURSOR);
  +        if (autoAdjust) {
  +            pack();
  +        }
       }
   
       // GVTTreeRendererListener /////////////////////////////////////////////
  @@ -1391,14 +1395,18 @@
            * Displays an error message.
            */
           public void displayError(String message) {
  -            System.err.println(message);
  +            JOptionPane pane;
  +            pane = new JOptionPane(message, JOptionPane.ERROR_MESSAGE);
  +            JDialog dialog = pane.createDialog(JSVGViewerFrame.this, "ERROR");
  +            dialog.setModal(false);
  +            dialog.show(); // Safe to be called from any thread
           }
   
           /**
            * Displays an error resulting from the specified Exception.
            */
           public void displayError(Exception ex) {
  -            ex.printStackTrace(System.err);
  +            displayError(ex.getMessage());
           }
   
           /**
  
  
  
  1.5       +16 -19    xml-batik/sources/org/apache/batik/apps/svgbrowser/Main.java
  
  Index: Main.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/apps/svgbrowser/Main.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- Main.java	2001/03/29 13:52:32	1.4
  +++ Main.java	2001/03/30 15:13:08	1.5
  @@ -37,7 +37,7 @@
    * This class contains the main method of an SVG viewer.
    *
    * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
  - * @version $Id: Main.java,v 1.4 2001/03/29 13:52:32 deweese Exp $
  + * @version $Id: Main.java,v 1.5 2001/03/30 15:13:08 hillion Exp $
    */
   public class Main implements Application {
   
  @@ -97,11 +97,6 @@
       protected String[] arguments;
   
       /**
  -     * The current index.
  -     */
  -    protected int index;
  -
  -    /**
        * The option handlers.
        */
       protected Map handlers = new HashMap();
  @@ -134,22 +129,22 @@
        */
       public void run() {
           try {
  -            while (index < arguments.length) {
  -                OptionHandler oh = (OptionHandler)handlers.get(arguments[index]);
  +            int i = 0;
  +            for (; i < arguments.length; i++) {
  +                OptionHandler oh = (OptionHandler)handlers.get(arguments[i]);
                   if (oh == null) {
                       break;
                   }
  -                oh.handleOption();
  -                index++;
  +                i = oh.handleOption(i);
               }
               JSVGViewerFrame frame = createAndShowJSVGViewerFrame();
  -            while (index < arguments.length) {
  -                if (arguments[index].length() == 0) {
  -                    index++;
  +            while (i < arguments.length) {
  +                if (arguments[i].length() == 0) {
  +                    i++;
                       continue;
                   }
   
  -                File file = new File(arguments[index]);
  +                File file = new File(arguments[i]);
                   if (file.canRead()) {
                       if (frame == null) 
                           frame = createAndShowJSVGViewerFrame();
  @@ -161,7 +156,7 @@
                       // Should let the user know that we are
                       // skipping this file...
                   }
  -                index++;
  +                i++;
               }
           } catch (Exception e) {
               e.printStackTrace();
  @@ -192,8 +187,9 @@
       protected interface OptionHandler {
           /**
            * Handles the current option.
  +         * @return the index of argument just before the next one to handle.
            */
  -        void handleOption();
  +        int handleOption(int i);
   
           /**
            * Returns the option description.
  @@ -205,9 +201,8 @@
        * To handle the '-font-size' option.
        */
       protected class FontSizeHandler implements OptionHandler {
  -        public void handleOption() {
  -            index++;
  -            int size = Integer.parseInt(arguments[index++]);
  +        public int handleOption(int i) {
  +            int size = Integer.parseInt(arguments[++i]);
   
               Font font = new Font("Dialog", Font.PLAIN, size);
               FontUIResource fontRes = new FontUIResource(font);
  @@ -242,6 +237,8 @@
               UIManager.put("Label.font", fontRes);
               UIManager.put("InternalFrameTitlePane.font", fontRes);
               UIManager.put("CheckBoxMenuItem.font", fontRes);
  +
  +            return i;
           }
           public String getDescription() {
               return resources.getString("Command.font-size");
  
  
  
  1.3       +4 -1      xml-batik/sources/org/apache/batik/swing/gvt/GVTTreeRenderer.java
  
  Index: GVTTreeRenderer.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/swing/gvt/GVTTreeRenderer.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- GVTTreeRenderer.java	2001/03/26 15:46:19	1.2
  +++ GVTTreeRenderer.java	2001/03/30 15:13:11	1.3
  @@ -26,7 +26,7 @@
    * a GVT tree.
    *
    * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
  - * @version $Id: GVTTreeRenderer.java,v 1.2 2001/03/26 15:46:19 hillion Exp $
  + * @version $Id: GVTTreeRenderer.java,v 1.3 2001/03/30 15:13:11 hillion Exp $
    */
   public class GVTTreeRenderer extends Thread {
       
  @@ -109,6 +109,9 @@
               }
   
               fireCompletedEvent(renderer.getOffScreen());
  +        } catch (NoClassDefFoundError e) {
  +            // This error was reported to happen when the rendering
  +            // is interrupted with JDK1.3.0rc1 Solaris.
           } catch (Exception e) {
               e.printStackTrace();
               fireFailedEvent();
  
  
  
  1.3       +7 -4      xml-batik/sources/org/apache/batik/swing/svg/GVTTreeBuilder.java
  
  Index: GVTTreeBuilder.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/swing/svg/GVTTreeBuilder.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- GVTTreeBuilder.java	2001/03/08 12:39:43	1.2
  +++ GVTTreeBuilder.java	2001/03/30 15:13:13	1.3
  @@ -28,7 +28,7 @@
    * a GVT tree.
    *
    * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
  - * @version $Id: GVTTreeBuilder.java,v 1.2 2001/03/08 12:39:43 tkormann Exp $
  + * @version $Id: GVTTreeBuilder.java,v 1.3 2001/03/30 15:13:13 hillion Exp $
    */
   public class GVTTreeBuilder extends Thread {
   
  @@ -74,9 +74,12 @@
               fireCompletedEvent(gvtRoot);
           } catch (InterruptedBridgeException e) {
               fireCancelledEvent();
  +        } catch (BridgeException e) {
  +            exception = e;
  +            fireFailedEvent(e.getGraphicsNode());
           } catch (Exception e) {
               exception = e;
  -            fireFailedEvent();
  +            fireFailedEvent(null);
           }
       }
   
  @@ -158,11 +161,11 @@
       /**
        * Fires a GVTTreeBuilderEvent.
        */
  -    protected void fireFailedEvent() {
  +    protected void fireFailedEvent(GraphicsNode root) {
           final Object[] dll = listeners.toArray();
   
           if (dll.length > 0) {
  -            final GVTTreeBuilderEvent ev = new GVTTreeBuilderEvent(this, null);
  +            final GVTTreeBuilderEvent ev = new GVTTreeBuilderEvent(this, root);
   
               if (EventQueue.isDispatchThread()) {
                   for (int i = 0; i < dll.length; i++) {
  
  
  
  1.6       +14 -3     xml-batik/sources/org/apache/batik/swing/svg/JSVGComponent.java
  
  Index: JSVGComponent.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/swing/svg/JSVGComponent.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- JSVGComponent.java	2001/03/30 14:31:13	1.5
  +++ JSVGComponent.java	2001/03/30 15:13:14	1.6
  @@ -35,6 +35,8 @@
   import org.apache.batik.dom.svg.SVGDOMImplementation;
   import org.apache.batik.dom.svg.SVGOMDocument;
   
  +import org.apache.batik.gvt.GraphicsNode;
  +
   import org.apache.batik.gvt.event.EventDispatcher;
   
   import org.apache.batik.swing.gvt.GVTTreeRendererEvent;
  @@ -55,7 +57,7 @@
    * This class represents a Swing component which can display SVG.
    *
    * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
  - * @version $Id: JSVGComponent.java,v 1.5 2001/03/30 14:31:13 tkormann Exp $
  + * @version $Id: JSVGComponent.java,v 1.6 2001/03/30 15:13:14 hillion Exp $
    */
   public class JSVGComponent extends JGVTComponent {
   
  @@ -368,8 +370,17 @@
               loader = null;
   
               gvtTreeBuilder = null;
  -            image = null;
  -            repaint();
  +            GraphicsNode gn = e.getGVTRoot();
  +            Dimension2D dim = bridgeContext.getDocumentSize();
  +            if (gn == null || dim == null) {
  +                image = null;
  +                repaint();
  +            } else {
  +                setGraphicsNode(gn, false);
  +                setPreferredSize(new Dimension((int)dim.getWidth(),
  +                                               (int)dim.getHeight()));
  +                invalidate();
  +            }
               userAgent.displayError(((GVTTreeBuilder)e.getSource()).getException());
           }
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: batik-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-dev-help@xml.apache.org