diff --git a/src/main/java/com/annimon/imagetagger/logic/KeyProcessor.java b/src/main/java/com/annimon/imagetagger/logic/KeyProcessor.java index 00898d8..de7d1d0 100644 --- a/src/main/java/com/annimon/imagetagger/logic/KeyProcessor.java +++ b/src/main/java/com/annimon/imagetagger/logic/KeyProcessor.java @@ -12,6 +12,8 @@ import java.util.stream.Collectors; public class KeyProcessor { + private static final boolean PREV = false, NEXT = true; + private final Set keys; private TagPanel tagPanel; private ImagePanel imagePanel; @@ -38,23 +40,18 @@ public class KeyProcessor { public void keyPressed(KeyEvent e) { switch (e.getKeyCode()) { case KeyEvent.VK_LEFT: - imageProcessor.mergeTags(tagPanel.getEnabledTags(), tagPanel.getDisabledTags()); - imageProcessor.prevImage(); - imagePanel.repaint(); - tagPanel.enableSupportedTags(imageProcessor.getTags()); - tagPanel.repaint(); + switchImage(PREV); break; case KeyEvent.VK_RIGHT: - imageProcessor.mergeTags(tagPanel.getEnabledTags(), tagPanel.getDisabledTags()); - imageProcessor.nextImage(); - imagePanel.repaint(); - tagPanel.enableSupportedTags(imageProcessor.getTags()); - tagPanel.repaint(); + switchImage(NEXT); break; case KeyEvent.VK_ENTER: imageProcessor.mergeTags(tagPanel.getEnabledTags(), tagPanel.getDisabledTags()); imageProcessor.writeTagsToFile(); break; + case KeyEvent.VK_F1: + imageInfo(); + break; case KeyEvent.VK_F3: changeBackground(); break; @@ -66,6 +63,31 @@ public class KeyProcessor { } } + private void switchImage(boolean switchTo) { + imageProcessor.mergeTags(tagPanel.getEnabledTags(), tagPanel.getDisabledTags()); + if (switchTo == PREV) { + imageProcessor.prevImage(); + } else { + imageProcessor.nextImage(); + } + imagePanel.repaint(); + tagPanel.enableSupportedTags(imageProcessor.getTags()); + tagPanel.repaint(); + } + + private void imageInfo() { + System.out.println(imageProcessor.getFilename()); + final var image = imageProcessor.getImage(); + if (image != null) { + System.out.println(image.getOriginalWidth() + "x" + image.getOriginalHeight()); + } + System.out.println(imageProcessor.getTags() + .stream() + .sorted() + .collect(Collectors.joining(", "))); + System.out.println(); + } + private void changeBackground() { // It's not necessary to convert color to gray // Just use one of it's color components