Patch for Issue 9: Export Add the ability to export document as an image

2 views
Skip to first unread message

mw2...@googlemail.com

unread,
Sep 3, 2007, 8:59:12 AM9/3/07
to V2 Whiteboard
Here is a patch for issue 9.

Exportformats are bmp,jpg,png

--- Whiteboard.java 2007-09-03 16:46:45.000000000 +0200
+++ Whiteboard.orgi 2007-09-03 16:53:51.000000000 +0200
@@ -7,6 +7,40 @@

package com.version2software.sparkplug.whiteboard.view;

+import com.sun.image.codec.jpeg.JPEGCodec;
+import com.sun.image.codec.jpeg.JPEGImageDecoder;
+import com.version2software.sparkplug.whiteboard.SVGElement;
+import com.version2software.sparkplug.whiteboard.SVGUtil;
+import com.version2software.sparkplug.whiteboard.WhiteboardPlugin;
+import com.version2software.sparkplug.whiteboard.command.Attribute;
+import com.version2software.sparkplug.whiteboard.command.ClearAll;
+import
com.version2software.sparkplug.whiteboard.command.ClearBackground;
+import com.version2software.sparkplug.whiteboard.command.Command;
+import com.version2software.sparkplug.whiteboard.command.Configure;
+import com.version2software.sparkplug.whiteboard.command.Order;
+import com.version2software.sparkplug.whiteboard.command.Remove;
+import
com.version2software.sparkplug.whiteboard.command.SetBackground;
+import
com.version2software.sparkplug.whiteboard.extension.SVGExtension;
+import com.version2software.sparkplug.whiteboard.shape.Circle;
+import com.version2software.sparkplug.whiteboard.shape.Ellipse;
+import com.version2software.sparkplug.whiteboard.shape.Line;
+import com.version2software.sparkplug.whiteboard.shape.Path;
+import com.version2software.sparkplug.whiteboard.shape.Polygon;
+import com.version2software.sparkplug.whiteboard.shape.Polyline;
+import com.version2software.sparkplug.whiteboard.shape.Polyshape;
+import com.version2software.sparkplug.whiteboard.shape.Rectangle;
+import com.version2software.sparkplug.whiteboard.shape.SVGImage;
+import com.version2software.sparkplug.whiteboard.shape.Shape;
+import com.version2software.sparkplug.whiteboard.shape.Text;
+
+import org.jdom.Document;
+import org.jdom.Element;
+import org.jdom.input.SAXBuilder;
+import org.jivesoftware.smack.XMPPConnection;
+import org.jivesoftware.smack.packet.Message;
+import org.jivesoftware.spark.SparkManager;
+import org.jivesoftware.spark.util.log.Log;
+
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Cursor;
@@ -38,7 +72,6 @@
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;

-import javax.imageio.ImageIO;
import javax.swing.AbstractAction;
import javax.swing.BoxLayout;
import javax.swing.ImageIcon;
@@ -60,40 +93,6 @@
import javax.swing.SwingUtilities;
import javax.swing.filechooser.FileFilter;

-import org.jdom.Document;
-import org.jdom.Element;
-import org.jdom.input.SAXBuilder;
-import org.jivesoftware.smack.XMPPConnection;
-import org.jivesoftware.smack.packet.Message;
-import org.jivesoftware.spark.SparkManager;
-import org.jivesoftware.spark.util.log.Log;
-
-import com.sun.image.codec.jpeg.JPEGCodec;
-import com.sun.image.codec.jpeg.JPEGImageDecoder;
-import com.version2software.sparkplug.whiteboard.SVGElement;
-import com.version2software.sparkplug.whiteboard.SVGUtil;
-import com.version2software.sparkplug.whiteboard.WhiteboardPlugin;
-import com.version2software.sparkplug.whiteboard.command.Attribute;
-import com.version2software.sparkplug.whiteboard.command.ClearAll;
-import
com.version2software.sparkplug.whiteboard.command.ClearBackground;
-import com.version2software.sparkplug.whiteboard.command.Command;
-import com.version2software.sparkplug.whiteboard.command.Configure;
-import com.version2software.sparkplug.whiteboard.command.Order;
-import com.version2software.sparkplug.whiteboard.command.Remove;
-import
com.version2software.sparkplug.whiteboard.command.SetBackground;
-import
com.version2software.sparkplug.whiteboard.extension.SVGExtension;
-import com.version2software.sparkplug.whiteboard.shape.Circle;
-import com.version2software.sparkplug.whiteboard.shape.Ellipse;
-import com.version2software.sparkplug.whiteboard.shape.Line;
-import com.version2software.sparkplug.whiteboard.shape.Path;
-import com.version2software.sparkplug.whiteboard.shape.Polygon;
-import com.version2software.sparkplug.whiteboard.shape.Polyline;
-import com.version2software.sparkplug.whiteboard.shape.Polyshape;
-import com.version2software.sparkplug.whiteboard.shape.Rectangle;
-import com.version2software.sparkplug.whiteboard.shape.SVGImage;
-import com.version2software.sparkplug.whiteboard.shape.Shape;
-import com.version2software.sparkplug.whiteboard.shape.Text;
-
public class Whiteboard extends JFrame {
private static final int PEN = 1;
private static final int LINE = 2;
@@ -144,7 +143,6 @@
private JMenuItem openMenuItem = new JMenuItem("Open",
getImageIcon("stock_open-16.png"));
private JMenuItem saveMenuItem = new JMenuItem("Save",
getImageIcon("stock_save-16.png"));
private JMenuItem sendMenuItem = new JMenuItem("Send");
- private JMenuItem exportMenuItem = new JMenuItem("Export");
private JMenuItem printMenuItem = new JMenuItem("Print",
getImageIcon("stock_print-16.png"));
private JMenuItem exitMenuItem = new JMenuItem("Exit");

@@ -297,7 +295,6 @@

// fileMenu.add(sendMenuItem);
fileMenu.add(saveMenuItem);
- fileMenu.add(exportMenuItem);
fileMenu.addSeparator();
fileMenu.add(printMenuItem);
fileMenu.addSeparator();
@@ -363,7 +360,6 @@
newMenuItem.addActionListener(new NewMenuActionListener());
openMenuItem.addActionListener(new OpenMenuActionListener());
saveMenuItem.addActionListener(new SaveMenuActionListener());
- exportMenuItem.addActionListener(new
ExportMenuActionListener());
sendMenuItem.addActionListener(new SendMenuActionListener());
printMenuItem.addActionListener(new PrintMenuActionListener());
exitMenuItem.addActionListener(new ExitMenuActionListener());
@@ -1607,11 +1603,6 @@
}
return null;
}
-
- public String toString()
- {
- return ext;
- }
}

private class PrintMenuActionListener implements ActionListener {
@@ -1627,38 +1618,7 @@
}
}
}
-
- private class ExportMenuActionListener implements ActionListener {
- public void actionPerformed(ActionEvent ae) {
- JFileChooser chooser = new JFileChooser(lastDir);
- chooser.setAcceptAllFileFilterUsed(false);
- chooser.addChoosableFileFilter(new
WhiteboardFileFilter("jpg", "JPEG Files (*.jpg)"));
- chooser.addChoosableFileFilter(new
WhiteboardFileFilter("png", "PNG Files (*.png)"));
- chooser.addChoosableFileFilter(new
WhiteboardFileFilter("bmp", "BMP Files (*.bmp)"));
- int returnVal = chooser.showSaveDialog(Whiteboard.this);
- if (returnVal == JFileChooser.APPROVE_OPTION) {
- File file = validateFileName(chooser.getSelectedFile(),
chooser.getFileFilter() );
- lastDir = file.getParentFile();
- saveImage(chooser.getFileFilter().toString(),file);
- }
- }
-
- public void saveImage(String type, File file)
- {
- try {
- int width = drawCanvas.getWidth();
- int height = drawCanvas.getHeight();
- BufferedImage image = new BufferedImage(width, height,
BufferedImage.TYPE_INT_RGB);
- Graphics2D g2 = image.createGraphics();
- drawCanvas.paint(g2);
- g2.dispose();
- ImageIO.write( image,type,file);
- } catch (IOException e) {
- Log.error(e.getMessage());
- }
- }
- }
-
+
private class SaveMenuActionListener implements ActionListener {
public void actionPerformed(ActionEvent ae) {

@@ -1667,8 +1627,7 @@
chooser.setFileFilter(filter);
int returnVal = chooser.showSaveDialog(Whiteboard.this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
- //File file = chooser.getSelectedFile();
- File file = validateFileName(chooser.getSelectedFile(),
chooser.getFileFilter() );
+ File file = chooser.getSelectedFile();
lastDir = file.getParentFile();
try {
StringBuilder sb = new StringBuilder();
@@ -2089,28 +2048,4 @@
private String id() {
return (String.valueOf(System.currentTimeMillis()) + "/" +
participant);
}
-
- /**
- * Checks if the file name ends with the extension of the given
filter
- * @param file
- * @param filter
- * @return
- */
- private File validateFileName(File file, FileFilter filter )
- {
- if (filter.accept(file))
- {
- return file;
- }
-
- String fileName = file.getAbsolutePath();
- int index = fileName.lastIndexOf(".");
- if (index > 0)
- {
- fileName = fileName.substring(0,index);
- }
-
- String extension = filter.toString();
- return new File(fileName + "." + extension);
- }
}

Larry Sherrill

unread,
Sep 3, 2007, 10:34:51 PM9/3/07
to v2whit...@googlegroups.com
Very cool. I'll take a look at it Monday afternoon.

Thanks a lot!

larry sherrill

unread,
Sep 8, 2007, 9:51:08 PM9/8/07
to V2 Whiteboard
(Looks like my post last week didn't actually post.)

I took care of this issue on the trunk. Thanks for the code!

Larry

Reply all
Reply to author
Forward
0 new messages