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/04/18 15:51:18 UTC
cvs commit: xml-batik/sources/org/apache/batik/util SVGConstants.java
hillion 01/04/18 06:51:17
Modified: sources/org/apache/batik/apps/svgbrowser
JSVGViewerFrame.java
sources/org/apache/batik/bridge SVGUtilities.java
UserAgent.java
sources/org/apache/batik/css/parser Parser.java
sources/org/apache/batik/swing/svg JSVGComponent.java
SVGUserAgent.java
sources/org/apache/batik/transcoder/image
ImageTranscoder.java
sources/org/apache/batik/transcoder/print
PrintTranscoder.java
sources/org/apache/batik/util SVGConstants.java
Log:
- Completed the <switch> implementation.
- Fixed a CSS parser bug (infinite recursive calls on error).
Revision Changes Path
1.21 +13 -2 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.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- JSVGViewerFrame.java 2001/04/17 14:07:47 1.20
+++ JSVGViewerFrame.java 2001/04/18 13:50:59 1.21
@@ -128,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.20 2001/04/17 14:07:47 hillion Exp $
+ * @version $Id: JSVGViewerFrame.java,v 1.21 2001/04/18 13:50:59 hillion Exp $
*/
public class JSVGViewerFrame
extends JFrame
@@ -973,7 +973,10 @@
public class ResetTransformAction extends AbstractAction {
public ResetTransformAction() {}
public void actionPerformed(ActionEvent e) {
- svgCanvas.setRenderingTransform(initialTransform);
+ svgCanvas.setFragmentIdentifier(null);
+ if (initialTransform != null) {
+ svgCanvas.setRenderingTransform(initialTransform);
+ }
}
}
@@ -1586,6 +1589,14 @@
*/
public void openLink(String uri) {
application.openLink(uri);
+ }
+
+ /**
+ * Tells whether the given extension is supported by this
+ * user agent.
+ */
+ public boolean supportExtension(String s) {
+ return false;
}
}
}
1.12 +28 -7 xml-batik/sources/org/apache/batik/bridge/SVGUtilities.java
Index: SVGUtilities.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGUtilities.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- SVGUtilities.java 2001/03/30 17:18:30 1.11
+++ SVGUtilities.java 2001/04/18 13:51:01 1.12
@@ -50,7 +50,8 @@
* A collection of utility methods for SVG.
*
* @author <a href="mailto:tkormann@apache.org">Thierry Kormann</a>
- * @version $Id: SVGUtilities.java,v 1.11 2001/03/30 17:18:30 tkormann Exp $
+ * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
+ * @version $Id: SVGUtilities.java,v 1.12 2001/04/18 13:51:01 hillion Exp $
*/
public abstract class SVGUtilities implements SVGConstants, ErrorConstants {
@@ -148,21 +149,41 @@
* @param ua the user agent
*/
public static boolean matchUserAgent(Element elt, UserAgent ua) {
- if (elt.hasAttributeNS(null, SVG_SYSTEM_LANGUAGE_ATTRIBUTE)) {
- // Evaluates the system languages
+ test: if (elt.hasAttributeNS(null, SVG_SYSTEM_LANGUAGE_ATTRIBUTE)) {
+ // Tests the system languages.
String sl = elt.getAttributeNS(null, SVG_SYSTEM_LANGUAGE_ATTRIBUTE);
StringTokenizer st = new StringTokenizer(sl, ",");
while (st.hasMoreTokens()) {
String s = st.nextToken();
if (matchUserLanguage(s, ua.getLanguages())) {
- return true;
+ break test;
}
}
return false;
- } else {
- return true;
}
- // <!> FIXME TODO requiredFeatures, requiredExtensions
+ if (elt.hasAttributeNS(null, SVG_REQUIRED_FEATURES_ATTRIBUTE)) {
+ // Tests the system features.
+ String sf = elt.getAttributeNS(null, SVG_REQUIRED_FEATURES_ATTRIBUTE);
+ StringTokenizer st = new StringTokenizer(sf, " ");
+ while (st.hasMoreTokens()) {
+ String s = st.nextToken();
+ if (!ua.hasFeature(s)) {
+ return false;
+ }
+ }
+ }
+ if (elt.hasAttributeNS(null, SVG_REQUIRED_EXTENSIONS_ATTRIBUTE)) {
+ // Tests the system features.
+ String sf = elt.getAttributeNS(null, SVG_REQUIRED_EXTENSIONS_ATTRIBUTE);
+ StringTokenizer st = new StringTokenizer(sf, " ");
+ while (st.hasMoreTokens()) {
+ String s = st.nextToken();
+ if (!ua.supportExtension(s)) {
+ return false;
+ }
+ }
+ }
+ return true;
}
/**
1.13 +13 -1 xml-batik/sources/org/apache/batik/bridge/UserAgent.java
Index: UserAgent.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/UserAgent.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- UserAgent.java 2001/03/15 20:03:00 1.12
+++ UserAgent.java 2001/04/18 13:51:01 1.13
@@ -25,7 +25,7 @@
*
* @author <a href="mailto:cjolif@ilog.fr">Christophe Jolif</a>
* @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
- * @version $Id: UserAgent.java,v 1.12 2001/03/15 20:03:00 tkormann Exp $
+ * @version $Id: UserAgent.java,v 1.13 2001/04/18 13:51:01 hillion Exp $
*/
public interface UserAgent {
@@ -94,4 +94,16 @@
* client area in the UserAgent.
*/
Point getClientAreaLocationOnScreen();
+
+ /**
+ * Tells whether the given feature is supported by this
+ * user agent.
+ */
+ boolean hasFeature(String s);
+
+ /**
+ * Tells whether the given extension is supported by this
+ * user agent.
+ */
+ boolean supportExtension(String s);
}
1.10 +2 -2 xml-batik/sources/org/apache/batik/css/parser/Parser.java
Index: Parser.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/css/parser/Parser.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- Parser.java 2001/04/10 17:27:10 1.9
+++ Parser.java 2001/04/18 13:51:04 1.10
@@ -45,7 +45,7 @@
* This class implements the {@link org.w3c.css.sac.Parser} interface.
*
* @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
- * @version $Id: Parser.java,v 1.9 2001/04/10 17:27:10 hillion Exp $
+ * @version $Id: Parser.java,v 1.10 2001/04/18 13:51:04 hillion Exp $
*/
public class Parser
implements org.w3c.css.sac.Parser,
@@ -1679,7 +1679,7 @@
}
return current;
} catch (ParseException e) {
- reportError(e.getMessage());
+ errorHandler.error(createCSSParseException(e.getMessage()));
return current;
}
}
1.14 +29 -1 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.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- JSVGComponent.java 2001/04/17 14:07:55 1.13
+++ JSVGComponent.java 2001/04/18 13:51:05 1.14
@@ -19,9 +19,11 @@
import java.net.MalformedURLException;
import java.net.URL;
+import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
+import java.util.Set;
import javax.swing.JComponent;
@@ -61,7 +63,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.13 2001/04/17 14:07:55 hillion Exp $
+ * @version $Id: JSVGComponent.java,v 1.14 2001/04/18 13:51:05 hillion Exp $
*/
public class JSVGComponent extends JGVTComponent {
@@ -659,5 +661,31 @@
public Point getClientAreaLocationOnScreen() {
return getLocationOnScreen();
}
+
+ /**
+ * Tells whether the given feature is supported by this
+ * user agent.
+ */
+ public boolean hasFeature(String s) {
+ return FEATURES.contains(s);
+ }
+
+ /**
+ * Tells whether the given extension is supported by this
+ * user agent.
+ */
+ public boolean supportExtension(String s) {
+ if (svgUserAgent != null) {
+ return svgUserAgent.supportExtension(s);
+ }
+ return false;
+ }
+ }
+
+ protected final static Set FEATURES = new HashSet();
+ static {
+ FEATURES.add(SVGConstants.SVG_ORG_W3C_SVG_FEATURE);
+ FEATURES.add(SVGConstants.SVG_ORG_W3C_SVG_LANG_FEATURE);
+ FEATURES.add(SVGConstants.SVG_ORG_W3C_SVG_STATIC_FEATURE);
}
}
1.2 +6 -1 xml-batik/sources/org/apache/batik/swing/svg/SVGUserAgent.java
Index: SVGUserAgent.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/swing/svg/SVGUserAgent.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- SVGUserAgent.java 2001/03/08 01:21:10 1.1
+++ SVGUserAgent.java 2001/04/18 13:51:06 1.2
@@ -13,7 +13,7 @@
* a JSVGComponent.
*
* @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
- * @version $Id: SVGUserAgent.java,v 1.1 2001/03/08 01:21:10 hillion Exp $
+ * @version $Id: SVGUserAgent.java,v 1.2 2001/04/18 13:51:06 hillion Exp $
*/
public interface SVGUserAgent {
@@ -60,4 +60,9 @@
*/
void openLink(String uri);
+ /**
+ * Tells whether the given extension is supported by this
+ * user agent.
+ */
+ boolean supportExtension(String s);
}
1.21 +27 -1 xml-batik/sources/org/apache/batik/transcoder/image/ImageTranscoder.java
Index: ImageTranscoder.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/transcoder/image/ImageTranscoder.java,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- ImageTranscoder.java 2001/04/13 13:11:33 1.20
+++ ImageTranscoder.java 2001/04/18 13:51:09 1.21
@@ -25,6 +25,9 @@
import java.net.MalformedURLException;
import java.net.URL;
+import java.util.HashSet;
+import java.util.Set;
+
import org.apache.batik.bridge.BridgeContext;
import org.apache.batik.bridge.BridgeException;
import org.apache.batik.bridge.GVTBuilder;
@@ -96,7 +99,7 @@
* millimeter conversion factor.
*
* @author <a href="mailto:Thierry.Kormann@sophia.inria.fr">Thierry Kormann</a>
- * @version $Id: ImageTranscoder.java,v 1.20 2001/04/13 13:11:33 tkormann Exp $
+ * @version $Id: ImageTranscoder.java,v 1.21 2001/04/18 13:51:09 hillion Exp $
*/
public abstract class ImageTranscoder extends XMLAbstractTranscoder {
@@ -411,6 +414,29 @@
public Point getClientAreaLocationOnScreen() {
return new Point();
}
+
+ /**
+ * Tells whether the given feature is supported by this
+ * user agent.
+ */
+ public boolean hasFeature(String s) {
+ return FEATURES.contains(s);
+ }
+
+ /**
+ * Tells whether the given extension is supported by this
+ * user agent.
+ */
+ public boolean supportExtension(String s) {
+ return false;
+ }
+ }
+
+ protected final static Set FEATURES = new HashSet();
+ static {
+ FEATURES.add(SVGConstants.SVG_ORG_W3C_SVG_FEATURE);
+ FEATURES.add(SVGConstants.SVG_ORG_W3C_SVG_LANG_FEATURE);
+ FEATURES.add(SVGConstants.SVG_ORG_W3C_SVG_STATIC_FEATURE);
}
// --------------------------------------------------------------------
1.6 +25 -1 xml-batik/sources/org/apache/batik/transcoder/print/PrintTranscoder.java
Index: PrintTranscoder.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/transcoder/print/PrintTranscoder.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- PrintTranscoder.java 2001/04/13 13:11:34 1.5
+++ PrintTranscoder.java 2001/04/18 13:51:13 1.6
@@ -33,6 +33,8 @@
import java.io.IOException;
import java.io.OutputStream;
+import java.util.HashSet;
+import java.util.Set;
import java.util.StringTokenizer;
import java.util.Vector;
@@ -105,7 +107,7 @@
* </ul>
*
* @author <a href="mailto:vincent.hardy@eng.sun.com">Vincent Hardy</a>
- * @version $Id: PrintTranscoder.java,v 1.5 2001/04/13 13:11:34 tkormann Exp $
+ * @version $Id: PrintTranscoder.java,v 1.6 2001/04/18 13:51:13 hillion Exp $
*/
public class PrintTranscoder extends XMLAbstractTranscoder
implements Printable {
@@ -875,6 +877,28 @@
public Point getClientAreaLocationOnScreen() {
return new Point();
}
+ /**
+ * Tells whether the given feature is supported by this
+ * user agent.
+ */
+ public boolean hasFeature(String s) {
+ return FEATURES.contains(s);
+ }
+
+ /**
+ * Tells whether the given extension is supported by this
+ * user agent.
+ */
+ public boolean supportExtension(String s) {
+ return false;
+ }
+ }
+
+ protected final static Set FEATURES = new HashSet();
+ static {
+ FEATURES.add(SVGConstants.SVG_ORG_W3C_SVG_FEATURE);
+ FEATURES.add(SVGConstants.SVG_ORG_W3C_SVG_LANG_FEATURE);
+ FEATURES.add(SVGConstants.SVG_ORG_W3C_SVG_STATIC_FEATURE);
}
/**
1.48 +11 -1 xml-batik/sources/org/apache/batik/util/SVGConstants.java
Index: SVGConstants.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/util/SVGConstants.java,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -r1.47 -r1.48
--- SVGConstants.java 2001/04/01 18:05:11 1.47
+++ SVGConstants.java 2001/04/18 13:51:16 1.48
@@ -14,7 +14,7 @@
* @author <a href="mailto:tkormann@apache.org">Thierry Kormann</a>
* @author <a href="vincent.hardy@eng.sun.com">Vincent Hardy</a>
* @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
- * @version $Id: SVGConstants.java,v 1.47 2001/04/01 18:05:11 hillion Exp $
+ * @version $Id: SVGConstants.java,v 1.48 2001/04/18 13:51:16 hillion Exp $
*/
public interface SVGConstants extends CSSConstants {
@@ -33,6 +33,14 @@
"http://www.w3.org/2000/svg";
/////////////////////////////////////////////////////////////////////////
+ // SVG features
+ /////////////////////////////////////////////////////////////////////////
+
+ String SVG_ORG_W3C_SVG_FEATURE = "org.w3c.svg";
+ String SVG_ORG_W3C_SVG_LANG_FEATURE = "org.w3c.svg.lang";
+ String SVG_ORG_W3C_SVG_STATIC_FEATURE = "org.w3c.svg.static";
+
+ /////////////////////////////////////////////////////////////////////////
// SVG tags
/////////////////////////////////////////////////////////////////////////
@@ -210,6 +218,8 @@
String SVG_REF_X_ATTRIBUTE = "refX";
String SVG_REF_Y_ATTRIBUTE = "refY";
String SVG_RENDERING_INTENT_ATTRIBUTE = "rendering-intent";
+ String SVG_REQUIRED_FEATURES_ATTRIBUTE = "requiredFeatures";
+ String SVG_REQUIRED_EXTENSIONS_ATTRIBUTE = "requiredExtensions";
String SVG_RESULT_ATTRIBUTE = "result";
String SVG_RESULT_SCALE_ATTRIBUTE = "resultScale";
String SVG_RX_ATTRIBUTE = "rx";
---------------------------------------------------------------------
To unsubscribe, e-mail: batik-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-dev-help@xml.apache.org