Make File menu appear sans Open item when used as part of OR app

This commit is contained in:
bkuker 2014-01-12 12:34:33 -05:00
parent 2dd457b245
commit 8e98ab42f6

View File

@ -85,19 +85,20 @@ public class PhotoFrame extends JFrame {
}; };
} }
private JMenuBar getMenu(final boolean showFileMenu) { private JMenuBar getMenu(final boolean showOpen) {
JMenuBar menubar = new JMenuBar(); JMenuBar menubar = new JMenuBar();
JMenu menu; JMenu menu;
JMenuItem item; JMenuItem item;
// // File // // File
if (showFileMenu) {
menu = new JMenu(trans.get("main.menu.file"));
menu.setMnemonic(KeyEvent.VK_F);
// // File-handling related tasks
menu.getAccessibleContext().setAccessibleDescription(trans.get("main.menu.file.desc"));
menubar.add(menu);
menu = new JMenu(trans.get("main.menu.file"));
menu.setMnemonic(KeyEvent.VK_F);
// // File-handling related tasks
menu.getAccessibleContext().setAccessibleDescription(trans.get("main.menu.file.desc"));
menubar.add(menu);
if (showOpen) {
item = new JMenuItem(trans.get("main.menu.file.open"), KeyEvent.VK_O); item = new JMenuItem(trans.get("main.menu.file.open"), KeyEvent.VK_O);
item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, SHORTCUT_KEY)); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, SHORTCUT_KEY));
// // Open a rocket design // // Open a rocket design
@ -122,7 +123,8 @@ public class PhotoFrame extends JFrame {
if (option == JFileChooser.APPROVE_OPTION) { if (option == JFileChooser.APPROVE_OPTION) {
File file = chooser.getSelectedFile(); File file = chooser.getSelectedFile();
log.debug("Opening File " + file.getAbsolutePath()); log.debug("Opening File " + file.getAbsolutePath());
((SwingPreferences) Application.getPreferences()).setDefaultDirectory(chooser.getCurrentDirectory()); ((SwingPreferences) Application.getPreferences()).setDefaultDirectory(chooser
.getCurrentDirectory());
GeneralRocketLoader grl = new GeneralRocketLoader(file); GeneralRocketLoader grl = new GeneralRocketLoader(file);
try { try {
OpenRocketDocument doc = grl.load(); OpenRocketDocument doc = grl.load();
@ -134,61 +136,63 @@ public class PhotoFrame extends JFrame {
} }
}); });
menu.add(item); menu.add(item);
}
item = new JMenuItem("Save Image...", KeyEvent.VK_S); //TODO Trans
item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, SHORTCUT_KEY));
// // Open a rocket design
item.getAccessibleContext().setAccessibleDescription("Save Image"); //TODO Trans
item.setIcon(Icons.FILE_OPEN);
item.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
log.info(Markers.USER_MARKER, "Save... selected");
photoPanel.addImageCallback(new PhotoPanel.ImageCallback() {
@Override
public void performAction(final BufferedImage image) {
log.info("Got image {} to save...", image);
final FileFilter png = new SimpleFileFilter("PNG Image", ".png"); //TODO Trans
final JFileChooser chooser = new JFileChooser();
chooser.addChoosableFileFilter(png); item = new JMenuItem("Save Image...", KeyEvent.VK_S); // TODO Trans
chooser.setFileFilter(png); item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, SHORTCUT_KEY));
chooser.setFileSelectionMode(JFileChooser.FILES_ONLY); // // Open a rocket design
item.getAccessibleContext().setAccessibleDescription("Save Image"); // TODO
// Trans
item.setIcon(Icons.FILE_OPEN);
item.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
log.info(Markers.USER_MARKER, "Save... selected");
photoPanel.addImageCallback(new PhotoPanel.ImageCallback() {
@Override
public void performAction(final BufferedImage image) {
log.info("Got image {} to save...", image);
chooser.setCurrentDirectory(((SwingPreferences) Application.getPreferences()).getDefaultDirectory()); final FileFilter png = new SimpleFileFilter("PNG Image", ".png"); // TODO
final int option = chooser.showSaveDialog(PhotoFrame.this); // Trans
if (option != JFileChooser.APPROVE_OPTION) {
log.info(Markers.USER_MARKER, "User decided not to save, option=" + option);
return;
}
final File file = FileHelper.forceExtension(chooser.getSelectedFile(), "png");
if (file == null) {
log.info(Markers.USER_MARKER, "User did not select a file");
return;
}
((SwingPreferences) Application.getPreferences()).setDefaultDirectory(chooser.getCurrentDirectory()); final JFileChooser chooser = new JFileChooser();
log.info(Markers.USER_MARKER, "User chose to save image as {}", file);
chooser.addChoosableFileFilter(png);
if ( FileHelper.confirmWrite(file, PhotoFrame.this) ){ chooser.setFileFilter(png);
try { chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
ImageIO.write(image, "png", file);
} catch (IOException e) { chooser.setCurrentDirectory(((SwingPreferences) Application.getPreferences())
throw new Error(e); .getDefaultDirectory());
} final int option = chooser.showSaveDialog(PhotoFrame.this);
if (option != JFileChooser.APPROVE_OPTION) {
log.info(Markers.USER_MARKER, "User decided not to save, option=" + option);
return;
}
final File file = FileHelper.forceExtension(chooser.getSelectedFile(), "png");
if (file == null) {
log.info(Markers.USER_MARKER, "User did not select a file");
return;
}
((SwingPreferences) Application.getPreferences()).setDefaultDirectory(chooser
.getCurrentDirectory());
log.info(Markers.USER_MARKER, "User chose to save image as {}", file);
if (FileHelper.confirmWrite(file, PhotoFrame.this)) {
try {
ImageIO.write(image, "png", file);
} catch (IOException e) {
throw new Error(e);
} }
} }
}); }
} });
}); }
menu.add(item); });
menu.add(item);
}
// // Edit // // Edit
menu = new JMenu(trans.get("main.menu.edit")); menu = new JMenu(trans.get("main.menu.edit"));
@ -205,7 +209,8 @@ public class PhotoFrame extends JFrame {
public void performAction(final BufferedImage image) { public void performAction(final BufferedImage image) {
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new Transferable() { Toolkit.getDefaultToolkit().getSystemClipboard().setContents(new Transferable() {
@Override @Override
public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException, IOException { public Object getTransferData(DataFlavor flavor) throws UnsupportedFlavorException,
IOException {
if (flavor.equals(DataFlavor.imageFlavor) && image != null) { if (flavor.equals(DataFlavor.imageFlavor) && image != null) {
return image; return image;
} else { } else {
@ -325,8 +330,9 @@ public class PhotoFrame extends JFrame {
pa.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); pa.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pa.setTitle("OpenRocket - Photo Studio Alpha"); pa.setTitle("OpenRocket - Photo Studio Alpha");
pa.setVisible(true); pa.setVisible(true);
GeneralRocketLoader grl = new GeneralRocketLoader(new File("C:/Users/bkuker/git/openrocket/swing/resources/datafiles/examples/A simple model rocket.ork")); GeneralRocketLoader grl = new GeneralRocketLoader(new File(
"C:/Users/bkuker/git/openrocket/swing/resources/datafiles/examples/A simple model rocket.ork"));
OpenRocketDocument doc = grl.load(); OpenRocketDocument doc = grl.load();
pa.photoPanel.setDoc(doc); pa.photoPanel.setDoc(doc);
} }