hillion     01/11/14 05:34:52

  Modified:    sources/org/apache/batik/apps/svgbrowser AboutDialog.java
                        Main.java
  Added:       resources/org/apache/batik/apps/svgbrowser/resources
                        init.svg
  Log:
  The browser now has an initialization window.
  
  Revision  Changes    Path
  1.1                  
xml-batik/resources/org/apache/batik/apps/svgbrowser/resources/init.svg
  
  Index: init.svg
  ===================================================================
  <?xml version="1.0" standalone="no"?>
  
  <!-- =================================================================== -->
  <!-- A dummy document used to preload classes.                           -->
  <!-- =================================================================== -->
  
  <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.0//EN"
     "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd";>
  
  <svg width="100" height="100" viewBox="0 0 100 100">
  
      <defs>
          <pattern id="backgroundPattern" patternUnits="userSpaceOnUse"
                   x="0" y="0" width="20" height="10" style="overflow:hidden">
              <rect x="0" y="0" width="10" height="10" fill="rgb(110, 200, 255)" 
fill-opacity=".5" />
              <rect x="0" y="-5" width="8" height="20" fill="none" stroke="rgb(204, 
102, 53)" stroke-width="1"/>
          </pattern>
  
          <g id="batik">
                <path id="Batik_B" 
d="M50.037,12.141l0.463,3.236c0,1.465-0.039,2.484-0.115,3.063s-0.344,1.213-0.803,1.906l-1.834,3.234l-2.521,3.814c4.395,6.24,7.326,10.824,8.791,13.75l3.008,6.355l1.967,6.701c0.848,3.16,1.271,6.279,1.271,9.361
                        
c0,5.008-0.869,9.57-2.604,13.691s-4.145,7.453-7.229,9.996c-3.086,2.543-6.998,4.449-11.74,5.719s-9.543,1.906-14.4,1.906c-3.855,0-7.096-0.27-9.717-0.809c-3.238-0.461-5.688-1.193-7.346-2.195c-1.658-1-3.123-2.195-4.395-3.582
                        
C1.561,86.902,0.617,85.055,0,82.742c0-5.082,1.117-10.436,3.355-16.061l6.709-17.68c2.234-6.086,3.354-11.748,3.354-16.986c-0.232-2.156-0.617-4.197-1.156-6.123l-1.852-6.471c-0.695-2.311-2.121-5.008-4.279-8.09l-0.115-0.924V9.715
                        
c0-3.158,1.309-5.238,3.928-6.24c4.775-1.232,9.859-1.85,15.252-1.85c6.316,0,11.746,0.828,16.291,2.484s7.395,4.334,8.551,8.031z
 
M29.518,12.625c-0.846,0.461-1.268,1.189-1.268,2.186c0,0.691,0.326,1.668,0.979,2.934s1.096,2.434,1.326,3.506
                        
c1.074-0.383,1.938-1.148,2.59-2.299s0.98-2.416,0.98-3.797c-0.23-0.842-0.787-1.512-1.67-2.012s-1.863-0.672-2.938-0.518z
 
M30.537,33.979L29.496,45.66c0,0.617,0.203,1.119,0.609,1.504l1.826,0.463l2.193-0.463c0.645-0.23,1.363-1.039,2.152-2.428
                        
c0.645-1.387,0.969-3.045,0.969-4.975V38.49c0-0.539-0.078-1.041-0.232-1.504c0-0.617-0.502-1.389-1.504-2.314c-1.004-0.77-1.967-1.156-2.891-1.156c-0.771,0-1.465,0.154-2.082,0.463z"/>
          </g>
  
          <filter id="shadow" filterRes="200" x="-.2" y="-.1">
              <feGaussianBlur stdDeviation="3 3" />
              <feOffset dx="-10" dy="10" />
          </filter>
  
          <filter id="innerShadow" filterRes="500" x="-.2" y="0">
              <feGaussianBlur stdDeviation="3 4" in="SourceAlpha"/>
              <feOffset dx="-10" dy="15" result="offsetShadow"/>
              <feComposite in2="SourceGraphic" in="offsetShadow" operator="out" />
          </filter>
  
  
            <path id="Outer_Ellipse" style="stroke:none;" 
d="M453.747,104.22C333.581-15.897,157.944-35.015,61.45,61.516c-96.493,96.533-77.301,272.161,42.866,392.278C224.48,573.911,400.117,593.031,496.61,496.498c96.493-96.533,77.302-272.161-42.863-392.278z
                         
M461.486,454.618c-74.193,74.224-222.251,46.516-330.696-61.886C22.343,284.329-5.426,136.283,68.766,62.059c74.193-74.222,222.251-46.516,330.698,61.887c108.445,108.402,136.214,256.449,62.021,330.672z"/>
  
        <clipPath id="textClip">
         <text x="0" y="0" text-anchor="middle" font-size="80%" font-family="Serif" 
id="text">batik <tspan dx="10 20 30" dy="10 20 30" 
style="stroke:#CC4">SVG</tspan></text>
        </clipPath>
         <g id="words">
           <use xlink:href="#text"/>
           <g clip-path="url(#textClip)">
               <use xlink:href="#text" transform="scale(0.9) rotate(20) 
translate(-20,-15)" filter="url(#shadow)" fill="black" opacity="0.4"/>
           </g>
         </g>
          <g opacity="1.0" transform="translate(225, 250) rotate(-260)" 
id="rotatedText">
          <g  transform="scale(0.9) rotate(20)">
          <use xlink:href="#words"/>
          </g></g>
            <path id="Inner_Ellipse" style="stroke:none;" 
d="M399.464,123.946C291.018,15.543,142.959-12.163,68.766,62.059c-74.192,74.224-46.423,222.27,62.023,330.672c108.445,108.402,256.503,136.11,330.696,61.886c74.192-74.223,46.424-222.27-62.021-330.672z
                         
M410.417,397.331c-58.115,58.14-179.371,31.157-270.832-60.267C48.124,245.64,21.092,124.396,79.207,66.256c58.116-58.139,179.372-31.157,270.833,60.267c91.46,91.424,118.493,212.668,60.377,270.808z"/>
        </defs>
  
      <rect x="0" y="0" width="100%" height="100%" fill="rgb(13, 97, 160)" />
      <g fill="rgb(255, 255, 20)">
          <circle cx="50" cy="50" r="50"/>
      </g>
      <rect x="0" y="0" width="100%" height="100%" style="overflow:hidden; 
fill:url(#backgroundPattern)" />
  
      <g filter="url(#innerShadow)" opacity=".5">
          <use xlink:href="#Outer_Ellipse" fill-opacity="1"/>
      </g>
  
      <use xlink:href="#Outer_Ellipse" fill="rgb(13, 97, 160)" fill-opacity=".75"/>
      <use xlink:href="#Inner_Ellipse" fill="rgb(255, 255, 20)" fill-opacity=".75" />
  
      <g transform="translate(50, 154) scale(1.5, 1.5)">
      <use x="0" y="0" xlink:href="#batik" 
           fill="black" fill-opacity=".5" filter="url(#shadow)"/>
  
      <use x="0" y="0" xlink:href="#batik" 
           fill="none" stroke-width="8" stroke="rgb(13, 97, 160)"/>
  
      <use x="0" y="0" xlink:href="#batik" 
           fill="rgb(255, 255, 20)" stroke="rgb(204, 102, 53)" stroke-width="1"/>
      </g>
  
          <use xlink:href="#rotatedText" fill="white" stroke-width="2" stroke="black"/>
          <g  transform="translate(50, 50) scale(0.254) rotate(30)">
          <use xlink:href="#text" fill="black" filter="url(#shadow)" opacity="0.4" 
transform="translate(-10, 8)"/>
          <use xlink:href="#text" stroke="black" stroke-width="16" fill="none"/>
          <use xlink:href="#text" stroke="none" fill="white"/>
          </g>
  </svg>
  
  
  
  1.5       +18 -29    
xml-batik/sources/org/apache/batik/apps/svgbrowser/AboutDialog.java
  
  Index: AboutDialog.java
  ===================================================================
  RCS file: 
/home/cvs/xml-batik/sources/org/apache/batik/apps/svgbrowser/AboutDialog.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- AboutDialog.java  2001/05/15 00:04:07     1.4
  +++ AboutDialog.java  2001/11/14 13:34:52     1.5
  @@ -43,7 +43,7 @@
    * The dialog can be dismissed by click or by escaping.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Vincent Hardy</a>
  - * @version $Id: AboutDialog.java,v 1.4 2001/05/15 00:04:07 vhardy Exp $
  + * @version $Id: AboutDialog.java,v 1.5 2001/11/14 13:34:52 hillion Exp $
    */
   public class AboutDialog extends JWindow
       implements GridBagConstants{
  @@ -74,7 +74,22 @@
       public AboutDialog(Frame owner){
           super(owner);
           buildGUI();
  -        setLocationRelativeTo(owner);
  +
  +        addKeyListener(new KeyAdapter(){
  +                public void keyPressed(KeyEvent e){
  +                    if(e.getKeyCode() == KeyEvent.VK_ESCAPE){
  +                        setVisible(false);
  +                        dispose();
  +                    }
  +                }
  +            });
  +
  +        addMouseListener(new MouseAdapter(){
  +                public void mousePressed(MouseEvent e){
  +                    setVisible(false);
  +                    dispose();
  +                }
  +            });
       }
   
       public void setLocationRelativeTo(Frame f) {
  @@ -147,22 +162,6 @@
           setBackground(Color.white);
           getContentPane().setBackground(Color.white);
   
  -        addKeyListener(new KeyAdapter(){
  -                public void keyPressed(KeyEvent e){
  -                    if(e.getKeyCode() == KeyEvent.VK_ESCAPE){
  -                        setVisible(false);
  -                        dispose();
  -                    }
  -                }
  -            });
  -
  -        addMouseListener(new MouseAdapter(){
  -                public void mousePressed(MouseEvent e){
  -                    setVisible(false);
  -                    dispose();
  -                }
  -            });
  -
           JPanel p = new JPanel(new BorderLayout());
           p.setBackground(Color.white);
           p.add(panel, BorderLayout.CENTER);
  @@ -176,7 +175,7 @@
   
           p.add(contributors,
                 BorderLayout.SOUTH);
  -        p.setBorder
  +        ((JComponent)getContentPane()).setBorder
               (BorderFactory.createCompoundBorder
                (BorderFactory.createBevelBorder(BevelBorder.RAISED, Color.gray, 
Color.black),
                 BorderFactory.createCompoundBorder
  @@ -185,16 +184,6 @@
                  BorderFactory.createLineBorder(Color.black)),
                 BorderFactory.createEmptyBorder(10, 10, 10, 10))));
           
  -        // getContentPane().setLayout(new FlowLayout());
           getContentPane().add(p);
  -
  -        // pack();
  -        // pack(); // This is not a mistake but a work-around.
  -        // The layout is not done properly on the first pack();
  -    }
  -
  -    public static void main(String args[]){
  -        AboutDialog dlg = new AboutDialog();
  -        dlg.setVisible(true);
       }
   }
  
  
  
  1.22      +57 -2     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.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- Main.java 2001/10/24 14:52:35     1.21
  +++ Main.java 2001/11/14 13:34:52     1.22
  @@ -8,6 +8,7 @@
   
   package org.apache.batik.apps.svgbrowser;
   
  +import java.awt.Dimension;
   import java.awt.Font;
   
   import java.awt.event.ActionEvent;
  @@ -30,12 +31,21 @@
   import javax.swing.Action;
   import javax.swing.ImageIcon;
   import javax.swing.JOptionPane;
  +import javax.swing.JProgressBar;
   import javax.swing.UIManager;
   
   import javax.swing.plaf.FontUIResource;
   
   import org.apache.batik.css.CSSDocumentHandler;
   
  +import org.apache.batik.swing.JSVGCanvas;
  +import org.apache.batik.swing.gvt.GVTTreeRendererAdapter;
  +import org.apache.batik.swing.gvt.GVTTreeRendererEvent;
  +import org.apache.batik.swing.svg.GVTTreeBuilderAdapter;
  +import org.apache.batik.swing.svg.SVGDocumentLoaderAdapter;
  +import org.apache.batik.swing.svg.SVGDocumentLoaderEvent;
  +import org.apache.batik.swing.svg.GVTTreeBuilderEvent;
  +
   import org.apache.batik.util.PreferenceManager;
   import org.apache.batik.util.XMLResourceDescriptor;
   
  @@ -45,7 +55,7 @@
    * This class contains the main method of an SVG viewer.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Stephane Hillion</a>
  - * @version $Id: Main.java,v 1.21 2001/10/24 14:52:35 tkormann Exp $
  + * @version $Id: Main.java,v 1.22 2001/11/14 13:34:52 hillion Exp $
    */
   public class Main implements Application {
   
  @@ -54,7 +64,7 @@
        * @param args The command-line arguments.
        */
       public static void main(String[] args) {
  -        new Main(args).run();
  +        new Main(args);
       }
   
       /**
  @@ -125,6 +135,8 @@
           CSSDocumentHandler.setParserClassName
           (resources.getString(CSS_PARSER_CLASS_NAME_KEY));
   
  +        // Preferences
  +        //
           Map defaults = new HashMap(11);
   
           defaults.put(PreferenceDialog.PREFERENCE_KEY_LANGUAGES,
  @@ -159,6 +171,49 @@
               setPreferences();
           } catch (Exception e) {
           }
  +
  +        // Initialization
  +        //
  +        final AboutDialog initDialog = new AboutDialog();
  +        final JProgressBar pb = new JProgressBar(0, 4);
  +        initDialog.getContentPane().add("South", pb);
  +
  +        // Work around pack() bug on some platforms
  +        Dimension ss = initDialog.getToolkit().getScreenSize();
  +        Dimension ds = initDialog.getPreferredSize();
  +
  +        initDialog.setLocation((ss.width  - ds.width) / 2,
  +                               (ss.height - ds.height) / 2);
  +
  +        initDialog.setSize(ds);
  +        initDialog.setVisible(true);
  +
  +        final JSVGViewerFrame v = new JSVGViewerFrame(this);
  +        JSVGCanvas c = v.getJSVGCanvas();
  +        c.addSVGDocumentLoaderListener(new SVGDocumentLoaderAdapter() {
  +            public void documentLoadingStarted(SVGDocumentLoaderEvent e) {
  +                pb.setValue(1);
  +            }
  +            public void documentLoadingCompleted(SVGDocumentLoaderEvent e) {
  +                pb.setValue(2);
  +            }
  +        });
  +        c.addGVTTreeBuilderListener(new GVTTreeBuilderAdapter() {
  +            public void gvtBuildCompleted(GVTTreeBuilderEvent e) {
  +                pb.setValue(3);
  +            }
  +        });
  +        c.addGVTTreeRendererListener(new GVTTreeRendererAdapter() {
  +            public void gvtRenderingCompleted(GVTTreeRendererEvent e) {
  +                pb.setValue(4);
  +                initDialog.dispose();
  +                v.dispose();
  +                System.gc();
  +                run();
  +            }
  +        });
  +        c.setSize(100, 100);
  +        c.loadSVGDocument(Main.class.getResource("resources/init.svg").toString());
       }
   
       /**
  
  
  

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

Reply via email to