Mercurial > cgi-bin > hgweb.cgi > JpegWasher
view src/name/blackcap/exifwasher/MainFrame.kt @ 25:5a5a7de27eb4
ExifWasher -> JpegWasher
author | David Barts <n5jrn@me.com> |
---|---|
date | Thu, 16 Apr 2020 19:41:29 -0700 |
parents | aafc9c127c7b |
children | aa9ab6cbaa26 |
line wrap: on
line source
/* * The main application window. */ package name.blackcap.exifwasher import java.awt.Dimension import java.awt.datatransfer.DataFlavor import java.awt.datatransfer.Transferable import java.awt.datatransfer.UnsupportedFlavorException import java.awt.event.WindowEvent import java.awt.event.WindowListener import java.io.File import java.io.IOException import java.util.logging.Level import java.util.logging.Logger import javax.swing.* /* the main frame itself */ class MainFrame : JFrame(Application.MYNAME) { /* default size */ val WIDTH = 512 val HEIGHT = 384 /* does a system exit when needed */ private class KillIt() : WindowListener { /* events we don't care about */ override fun windowActivated(e: WindowEvent) {} override fun windowClosed(e: WindowEvent) {} override fun windowDeactivated(e: WindowEvent) {} override fun windowDeiconified(e: WindowEvent) {} override fun windowIconified(e: WindowEvent) {} override fun windowOpened(e: WindowEvent) {} /* and the one we do */ override fun windowClosing(e: WindowEvent) { LOGGER.log(Level.INFO, "execution complete") System.exit(0) } } /* acts on dragged files */ private class MyTransferHandler : TransferHandler() { override fun canImport(support: TransferHandler.TransferSupport): Boolean { return support.isDataFlavorSupported(DataFlavor.javaFileListFlavor) } override fun importData(support: TransferHandler.TransferSupport): Boolean { if (!canImport(support)) { return false } val files = try { support.transferable.getTransferData(DataFlavor.javaFileListFlavor) as List<File> } catch (e: UnsupportedFlavorException) { return false } catch (e: IOException) { return false } for (file in files) { WashDialog().wash(file) } return true } } init { contentPane.add( JLabel("Drag image files into this window or choose Fileā¦ Wash from menu.").apply { horizontalAlignment = JLabel.CENTER verticalAlignment = JLabel.CENTER }) preferredSize = Dimension(WIDTH, HEIGHT) transferHandler = MyTransferHandler() pack() addWindowListener(KillIt()) } }