[Polycasso-commit] SF.net SVN: polycasso:[152] trunk/polycasso/src/com/mebigfatguy/polycasso/ Paint
Brought to you by:
dbrosius
|
From: <dbr...@us...> - 2009-12-07 05:06:55
|
Revision: 152
http://polycasso.svn.sourceforge.net/polycasso/?rev=152&view=rev
Author: dbrosius
Date: 2009-12-07 05:06:44 +0000 (Mon, 07 Dec 2009)
Log Message:
-----------
add saver menus
Modified Paths:
--------------
trunk/polycasso/src/com/mebigfatguy/polycasso/PainterFrame.java
Modified: trunk/polycasso/src/com/mebigfatguy/polycasso/PainterFrame.java
===================================================================
--- trunk/polycasso/src/com/mebigfatguy/polycasso/PainterFrame.java 2009-12-07 05:06:19 UTC (rev 151)
+++ trunk/polycasso/src/com/mebigfatguy/polycasso/PainterFrame.java 2009-12-07 05:06:44 UTC (rev 152)
@@ -27,6 +27,7 @@
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.IOException;
+import java.text.MessageFormat;
import javax.swing.JFrame;
import javax.swing.JMenu;
@@ -43,6 +44,10 @@
private PainterPanel panel;
private JMenuItem paintImage;
private JMenuItem completeImage;
+ private JMenu saveAsMenu;
+ private JMenuItem saveAsPNGItem;
+ private JMenuItem saveAsSVGItem;
+ private JMenuItem saveAsJavaItem;
private JMenuItem quitItem;
private JMenuItem aboutItem;
private JMenuItem settingsItem;
@@ -85,6 +90,16 @@
completeImage.setEnabled(false);
fileMenu.add(completeImage);
fileMenu.addSeparator();
+ saveAsMenu = new JMenu(PolycassoBundle.getString(PolycassoBundle.Key.SaveAs));
+ fileMenu.add(saveAsMenu);
+ saveAsPNGItem = new JMenuItem(PolycassoBundle.getString(PolycassoBundle.Key.PNG));
+ saveAsMenu.add(saveAsPNGItem);
+ saveAsSVGItem = new JMenuItem(PolycassoBundle.getString(PolycassoBundle.Key.SVG));
+ saveAsMenu.add(saveAsSVGItem);
+ saveAsJavaItem = new JMenuItem(PolycassoBundle.getString(PolycassoBundle.Key.JAVA));
+ saveAsMenu.add(saveAsJavaItem);
+ saveAsMenu.setEnabled(false);
+ fileMenu.addSeparator();
quitItem = new JMenuItem(PolycassoBundle.getString(PolycassoBundle.Key.Quit));
fileMenu.add(quitItem);
mb.add(fileMenu);
@@ -137,6 +152,7 @@
generator.addImageGeneratedListener(PainterFrame.this);
generator.startGenerating();
completeImage.setEnabled(true);
+ saveAsMenu.setEnabled(true);
} catch (IOException ioe) {
JOptionPane.showMessageDialog(null, ioe.getMessage());
@@ -154,6 +170,27 @@
}
});
+ saveAsPNGItem.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent ae) {
+ saveImage(FileType.PNG);
+ }
+ });
+
+ saveAsSVGItem.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent ae) {
+ saveImage(FileType.SVG);
+ }
+ });
+
+ saveAsJavaItem.addActionListener(new ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent ae) {
+ saveImage(FileType.Java);
+ }
+ });
+
quitItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent ae) {
@@ -201,4 +238,22 @@
public void imageGenerated(ImageGeneratedEvent event) {
panel.setImage(event.getImage());
}
+
+ /**
+ * save the image to what ever format was chosen
+ *
+ * @param type the chosen file type to save as
+ */
+ public void saveImage(FileType type) {
+ try {
+ FileSelector selector = new FileSelector(type);
+ String fileName = selector.getFileName();
+ if (fileName != null) {
+ type.getSaver().save(fileName, generator.getImageSize(), generator.getBestData());
+ }
+ } catch (IOException ioe) {
+ String message = MessageFormat.format(PolycassoBundle.getString(PolycassoBundle.Key.SaveFailure), ioe.getMessage());
+ JOptionPane.showMessageDialog(PainterFrame.this, message);
+ }
+ }
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|