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