diff options
| author | Benjamin Culkin <bjculkin@mix.wvu.edu> | 2018-04-26 06:35:16 -0700 |
|---|---|---|
| committer | Benjamin Culkin <bjculkin@mix.wvu.edu> | 2018-04-26 06:35:16 -0700 |
| commit | 43886afd0f95b90c43863f8d939246850b59560a (patch) | |
| tree | 74c242101cc26f95a31377271bcd998c233e3d71 /src/bjc/imgchain/ImgViewer.java | |
| parent | eab6df10ab8292a59a05b25d18c413dd107bb94a (diff) | |
More stages
Added a stage to load images from files, and one to execute
sub-pipelines.
Diffstat (limited to 'src/bjc/imgchain/ImgViewer.java')
| -rw-r--r-- | src/bjc/imgchain/ImgViewer.java | 57 |
1 files changed, 52 insertions, 5 deletions
diff --git a/src/bjc/imgchain/ImgViewer.java b/src/bjc/imgchain/ImgViewer.java index 06c2a1e..6876514 100644 --- a/src/bjc/imgchain/ImgViewer.java +++ b/src/bjc/imgchain/ImgViewer.java @@ -63,7 +63,7 @@ public class ImgViewer extends JInternalFrame { icon.setImage(ImageIO.read(tmp));
img = tmp;
-
+
setTitle("Image Viewer - " + img.getName());
} catch (IOException e) {
String msg = String.format("Error: Could not load image %s", img.getPath());
@@ -124,16 +124,44 @@ public class ImgViewer extends JInternalFrame { JMenu fileMenu = new JMenu("File");
fileMenu.setMnemonic('F');
- JMenuItem changeImage = new JMenuItem("Change Image");
- changeImage.setMnemonic('C');
+ JMenuItem changeImage = new JMenuItem("Load Image from Disk");
+ changeImage.setMnemonic('L');
changeImage.addActionListener(new ChangeImageListener());
JMenuItem reloadImage = new JMenuItem("Reload Image");
reloadImage.setMnemonic('R');
reloadImage.addActionListener(new ReloadImageListener(img));
- JMenuItem storeImage = new JMenuItem("Store Image");
- storeImage.setMnemonic('S');
+ JMenuItem saveImage = new JMenuItem("Save Image");
+ saveImage.setMnemonic('S');
+ saveImage.addActionListener((ev) -> {
+ JFileChooser jfc = new JFileChooser();
+ jfc.setMultiSelectionEnabled(false);
+
+ int res = jfc.showSaveDialog(ImgViewer.this);
+
+ if (res != JFileChooser.APPROVE_OPTION) {
+ return;
+ }
+
+ try {
+ File tmp = jfc.getSelectedFile();
+
+ ImageIO.write(Utils.toBuffered(icon.getImage()), "PNG", tmp);
+ } catch (IOException e) {
+ String msg = String.format("Error: Could not save image %s", img.getPath());
+
+ System.out.printf("%s\n", msg);
+
+ e.printStackTrace();
+
+ JOptionPane.showInternalMessageDialog(null, msg, "Error saving image",
+ JOptionPane.ERROR_MESSAGE);
+ }
+ });
+
+ JMenuItem storeImage = new JMenuItem("Stash Image to Memory");
+ storeImage.setMnemonic('T');
storeImage.addActionListener((ev) -> {
String inp = JOptionPane.showInternalInputDialog(this, "Enter name to store image under");
@@ -149,6 +177,25 @@ public class ImgViewer extends JInternalFrame { desktop.addImage(inp, icon.getImage());
});
+ JMenuItem recallImage = new JMenuItem("Recall Image from Memory");
+ recallImage.setMnemonic('F');
+ recallImage.addActionListener((ev) -> {
+ ImgPicker pick = new ImgPicker();
+
+ pick.pack();
+ pick.setVisible(true);
+
+ if (pick.imageName == null) {
+ System.out.println("WARN: picked null image");
+ return;
+ }
+
+ Image imag = ImgChain.chan.imageRepo.get(pick.imageName);
+
+ icon.setImage(imag);
+ lab.repaint();
+ });
+
fileMenu.add(changeImage);
fileMenu.add(reloadImage);
fileMenu.addSeparator();
|
