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 de...@apache.org on 2005/02/12 14:04:08 UTC
cvs commit: xml-batik/test-references/samples/tests/spec/scripting visibilityOnClick.png
deweese 2005/02/12 05:04:08
Modified: resources/org/apache/batik/apps/svgbrowser/resources
GUI.properties
sources/org/apache/batik/apps/svgbrowser
JSVGViewerFrame.java
sources/org/apache/batik/dom/util SAXDocumentFactory.java
Added: test-references/samples/tests/spec/scripting
visibilityOnClick.png
Log:
1) Squiggle browser now has a 'Save As' menu item.
2) Fixed a bug with comment parsering in SAX.
Revision Changes Path
1.63 +11 -3 xml-batik/resources/org/apache/batik/apps/svgbrowser/resources/GUI.properties
Index: GUI.properties
===================================================================
RCS file: /home/cvs/xml-batik/resources/org/apache/batik/apps/svgbrowser/resources/GUI.properties,v
retrieving revision 1.62
retrieving revision 1.63
diff -u -r1.62 -r1.63
--- GUI.properties 23 Oct 2004 17:11:03 -0000 1.62
+++ GUI.properties 12 Feb 2005 13:04:08 -0000 1.63
@@ -54,6 +54,7 @@
Message.updateManagerSuspended = Update manager suspended...
Message.updateManagerResumed = Update manager resumed...
Message.updateManagerStopped = Update manager stopped...
+Message.saveAs = Saving as SVG...
Message.exportAsJPG = Exporting as JPG...
Message.exportAsPNG = Exporting as PNG...
Message.exportAsTIFF = Exporting as TIFF...
@@ -61,6 +62,7 @@
#
# Dialog Titles
#
+SaveAs.title = Save as SVG
ExportAsJPG.title = Export as JPG
ExportAsPNG.title = Export as PNG
ExportAsTIFF.title = Export as TIFF
@@ -73,7 +75,7 @@
MenuBar = File Edit View Processing Go Tools Help
# File menu ################
-File = Open OpenLocation NewWindow Reload - \
+File = Open OpenLocation NewWindow Reload SaveAs - \
Print ExportAs - Close Exit
File.type = MENU
File.text = File
@@ -107,6 +109,13 @@
Reload.action = ReloadAction
Reload.accelerator = Ctrl+R
+SaveAs.type = ITEM
+SaveAs.text = Save SVG As
+SaveAs.icon = resources/blank.gif
+SaveAs.mnemonic = S
+SaveAs.action = SaveAsAction
+SaveAs.accelerator = Ctrl+S
+
Close.type = ITEM
Close.text = Close
Close.icon = resources/blank.gif
@@ -283,7 +292,6 @@
Stop.icon = resources/stop.gif
Stop.mnemonic = S
Stop.action = StopAction
-Stop.accelerator = Ctrl+S
# Go menu ################
1.106 +82 -8 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.105
retrieving revision 1.106
diff -u -r1.105 -r1.106
--- JSVGViewerFrame.java 30 Oct 2004 16:54:53 -0000 1.105
+++ JSVGViewerFrame.java 12 Feb 2005 13:04:08 -0000 1.106
@@ -22,6 +22,7 @@
import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.Event;
+import java.awt.EventQueue;
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Rectangle;
@@ -46,7 +47,9 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.io.OutputStreamWriter;
import java.io.Reader;
+import java.io.Writer;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.net.MalformedURLException;
@@ -92,11 +95,13 @@
import org.apache.batik.bridge.RelaxedExternalResourceSecurity;
import org.apache.batik.bridge.RelaxedScriptSecurity;
import org.apache.batik.bridge.ScriptSecurity;
+import org.apache.batik.bridge.UpdateManager;
import org.apache.batik.bridge.UpdateManagerEvent;
import org.apache.batik.bridge.UpdateManagerListener;
import org.apache.batik.dom.StyleSheetProcessingInstruction;
import org.apache.batik.dom.svg.SVGOMDocument;
import org.apache.batik.dom.util.HashTable;
+import org.apache.batik.dom.util.DOMUtilities;
import org.apache.batik.ext.swing.JAffineTransformChooser;
import org.apache.batik.swing.JSVGCanvas;
import org.apache.batik.swing.gvt.GVTTreeRendererEvent;
@@ -276,6 +281,7 @@
public final static String OPEN_LOCATION_ACTION = "OpenLocationAction";
public final static String NEW_WINDOW_ACTION = "NewWindowAction";
public final static String RELOAD_ACTION = "ReloadAction";
+ public final static String SAVE_AS_ACTION = "SaveAsAction";
public final static String BACK_ACTION = "BackAction";
public final static String FORWARD_ACTION = "ForwardAction";
public final static String FULL_SCREEN_ACTION = "FullScreenAction";
@@ -392,7 +398,7 @@
/**
* The current export path.
*/
- protected File currentExportPath = new File("");
+ protected File currentSavePath = new File("");
/**
* The back action
@@ -589,6 +595,7 @@
listeners.put(OPEN_LOCATION_ACTION, new OpenLocationAction());
listeners.put(NEW_WINDOW_ACTION, new NewWindowAction());
listeners.put(RELOAD_ACTION, new ReloadAction());
+ listeners.put(SAVE_AS_ACTION, new SaveAsAction());
listeners.put(BACK_ACTION, backAction);
listeners.put(FORWARD_ACTION, forwardAction);
listeners.put(PRINT_ACTION, new PrintAction());
@@ -1229,13 +1236,80 @@
}
/**
+ * To save the current document as SVG.
+ */
+ public class SaveAsAction extends AbstractAction {
+ public SaveAsAction() {}
+
+ public void actionPerformed(ActionEvent e) {
+ JFileChooser fileChooser;
+ fileChooser = new JFileChooser(makeAbsolute(currentSavePath));
+ fileChooser.setDialogTitle(resources.getString("SaveAs.title"));
+ fileChooser.setFileHidingEnabled(false);
+ fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
+ fileChooser.addChoosableFileFilter(new ImageFileFilter(".svg"));
+
+ int choice = fileChooser.showSaveDialog(JSVGViewerFrame.this);
+ if (choice != JFileChooser.APPROVE_OPTION)
+ return;
+
+ final File f = fileChooser.getSelectedFile();
+ final SVGDocument svgDoc = svgCanvas.getSVGDocument();
+ if (svgDoc == null) return;
+
+ statusBar.setMessage(resources.getString("Message.saveAs"));
+ currentSavePath = f;
+ Writer w = null;
+ try {
+ OutputStream tos = null;
+ tos = new FileOutputStream(f);
+ tos = new BufferedOutputStream(tos);
+ w = new OutputStreamWriter(tos);
+ } catch (Exception ex) {
+ userAgent.displayError(ex);
+ return;
+ }
+
+ final Writer writer = w;
+ final Runnable doneRun = new Runnable() {
+ public void run() {
+ String doneStr = resources.getString("Message.done");
+ statusBar.setMessage(doneStr);
+ }
+ };
+ Runnable r = new Runnable() {
+ public void run() {
+ try {
+ DOMUtilities.writeDocument(svgDoc, writer);
+ writer.close();
+ if (EventQueue.isDispatchThread()) {
+ doneRun.run();
+ } else {
+ EventQueue.invokeLater(doneRun);
+ }
+ } catch (Exception ex) {
+ userAgent.displayError(ex);
+ }
+ }
+ };
+
+ UpdateManager um = svgCanvas.getUpdateManager();
+ if ((um != null) && (um.isRunning())) {
+ um.getUpdateRunnableQueue().invokeLater(r);
+ } else {
+ r.run();
+ }
+ }
+ }
+
+ /**
* To save the current document as JPG.
*/
public class ExportAsJPGAction extends AbstractAction {
public ExportAsJPGAction() {}
public void actionPerformed(ActionEvent e) {
JFileChooser fileChooser =
- new JFileChooser(makeAbsolute(currentExportPath));
+ new JFileChooser(makeAbsolute(currentSavePath));
fileChooser.setDialogTitle(resources.getString("ExportAsJPG.title"));
fileChooser.setFileHidingEnabled(false);
fileChooser.setFileSelectionMode
@@ -1273,7 +1347,7 @@
new Thread() {
public void run() {
try {
- currentExportPath = f;
+ currentSavePath = f;
OutputStream ostream =
new BufferedOutputStream(new FileOutputStream(f));
trans.writeImage(img, new TranscoderOutput(ostream));
@@ -1296,7 +1370,7 @@
public ExportAsPNGAction() {}
public void actionPerformed(ActionEvent e) {
JFileChooser fileChooser =
- new JFileChooser(makeAbsolute(currentExportPath));
+ new JFileChooser(makeAbsolute(currentSavePath));
fileChooser.setDialogTitle(resources.getString("ExportAsPNG.title"));
fileChooser.setFileHidingEnabled(false);
fileChooser.setFileSelectionMode
@@ -1341,7 +1415,7 @@
new Thread() {
public void run() {
try {
- currentExportPath = f;
+ currentSavePath = f;
OutputStream ostream =
new BufferedOutputStream(new FileOutputStream(f));
trans.writeImage(img,
@@ -1364,7 +1438,7 @@
public ExportAsTIFFAction() {}
public void actionPerformed(ActionEvent e) {
JFileChooser fileChooser =
- new JFileChooser(makeAbsolute(currentExportPath));
+ new JFileChooser(makeAbsolute(currentSavePath));
fileChooser.setDialogTitle(resources.getString("ExportAsTIFF.title"));
fileChooser.setFileHidingEnabled(false);
fileChooser.setFileSelectionMode
@@ -1394,7 +1468,7 @@
new Thread() {
public void run() {
try {
- currentExportPath = f;
+ currentSavePath = f;
OutputStream ostream = new BufferedOutputStream
(new FileOutputStream(f));
trans.writeImage
1.26 +2 -1 xml-batik/sources/org/apache/batik/dom/util/SAXDocumentFactory.java
Index: SAXDocumentFactory.java
===================================================================
RCS file: /home/cvs/xml-batik/sources/org/apache/batik/dom/util/SAXDocumentFactory.java,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- SAXDocumentFactory.java 12 Feb 2005 01:48:23 -0000 1.25
+++ SAXDocumentFactory.java 12 Feb 2005 13:04:08 -0000 1.26
@@ -721,6 +721,7 @@
*/
public void comment(char ch[], int start, int length) throws SAXException {
if (inDTD) return;
+ appendStringData();
String str = new String(ch, start, length);
if (currentNode == null) {
1.1 xml-batik/test-references/samples/tests/spec/scripting/visibilityOnClick.png
<<Binary file>>
---------------------------------------------------------------------
To unsubscribe, e-mail: batik-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-dev-help@xml.apache.org