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()
+    }
+}