Mercurial > cgi-bin > hgweb.cgi > JpegWasher
diff src/name/blackcap/exifwasher/HelpDialog.kt @ 50:fb407182ba76
Add help menu item, UNTESTED.
author | David Barts <davidb@stashtea.com> |
---|---|
date | Thu, 07 May 2020 08:29:58 -0700 |
parents | |
children | 39895d44a287 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/name/blackcap/exifwasher/HelpDialog.kt Thu May 07 08:29:58 2020 -0700 @@ -0,0 +1,62 @@ +/* + * The dialog that displays the Exif data in a single file (display only, + * no changing). We do this after washing. + */ +package name.blackcap.exifwasher + +import java.awt.Color +import java.awt.Dimension +import java.awt.event.ActionEvent +import java.awt.event.ActionListener +import java.io.File +import java.io.IOException +import java.io.BufferedReader +import java.io.InputStream +import java.io.InputStreamReader +import java.util.logging.Level +import java.util.logging.Logger +import javax.swing.* +import javax.swing.table.DefaultTableModel +import javax.swing.table.TableColumn +import javax.swing.table.TableColumnModel + +import name.blackcap.exifwasher.exiv2.* + +class HelpDialog : JDialog(Application.mainFrame) { + private val BW = 9 + private val BW2 = BW * 2 + private val WIDTH = 640 + private val HEIGHT = 480 + + private val dismissButton = JButton("Dismiss").also { + it.addActionListener(ActionListener { setVisible(false) }) + } + + private val helpPane = JTextPane().also { + it.contentType = "text/html"; + it.text = ::class.java.getResourceAsStream("help.html").bufferedReader().use { it.readText() } + } + + init { + setVisible(false) + title = "Help" + contentPane.apply { + layout = BoxLayout(this, BoxLayout.Y_AXIS) + add(JScrollPane(helpPane).apply { + alignmentX = JScrollPane.CENTER_ALIGNMENT + border = BorderFactory.createEmptyBorder(BW2, BW2, BW, BW2) + verticalScrollBarPolicy = ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS + horizontalScrollBarPolicy = ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER + preferredSize = Dimension(WIDTH, HEIGHT) + background = Application.mainFrame.background + }) + add(Box(BoxLayout.X_AXIS).apply { + alignmentX = Box.CENTER_ALIGNMENT + border = BorderFactory.createEmptyBorder(BW, BW2, BW2, BW2) + add(Box.createHorizontalGlue()) + add(dismissButton) + }) + } + pack() + } +}