comparison src/name/blackcap/exifwasher/HelpDialog.kt @ 52:39895d44a287

Get help working on Linux.
author David Barts <n5jrn@me.com>
date Thu, 07 May 2020 09:59:28 -0700
parents fb407182ba76
children 61a06e050bac
comparison
equal deleted inserted replaced
51:d4ccc5ccdc6d 52:39895d44a287
2 * The dialog that displays the Exif data in a single file (display only, 2 * The dialog that displays the Exif data in a single file (display only,
3 * no changing). We do this after washing. 3 * no changing). We do this after washing.
4 */ 4 */
5 package name.blackcap.exifwasher 5 package name.blackcap.exifwasher
6 6
7 import java.awt.Color
8 import java.awt.Dimension 7 import java.awt.Dimension
9 import java.awt.event.ActionEvent 8 import java.awt.event.ActionEvent
10 import java.awt.event.ActionListener 9 import java.awt.event.ActionListener
11 import java.io.File 10 import java.io.File
12 import java.io.IOException 11 import java.io.IOException
14 import java.io.InputStream 13 import java.io.InputStream
15 import java.io.InputStreamReader 14 import java.io.InputStreamReader
16 import java.util.logging.Level 15 import java.util.logging.Level
17 import java.util.logging.Logger 16 import java.util.logging.Logger
18 import javax.swing.* 17 import javax.swing.*
19 import javax.swing.table.DefaultTableModel
20 import javax.swing.table.TableColumn
21 import javax.swing.table.TableColumnModel
22 18
23 import name.blackcap.exifwasher.exiv2.* 19 import name.blackcap.exifwasher.exiv2.*
24 20
25 class HelpDialog : JDialog(Application.mainFrame) { 21 class HelpDialog : JDialog(Application.mainFrame) {
26 private val BW = 9 22 private val BW = 9
30 26
31 private val dismissButton = JButton("Dismiss").also { 27 private val dismissButton = JButton("Dismiss").also {
32 it.addActionListener(ActionListener { setVisible(false) }) 28 it.addActionListener(ActionListener { setVisible(false) })
33 } 29 }
34 30
35 private val helpPane = JTextPane().also { 31 private val helpPane = JScrollPane(JTextPane().also {
36 it.contentType = "text/html"; 32 it.contentType = "text/html";
37 it.text = ::class.java.getResourceAsStream("help.html").bufferedReader().use { it.readText() } 33 it.text = this::class.java.getResourceAsStream("help.html").bufferedReader().use { it.readText() }
34 }).apply {
35 alignmentX = JScrollPane.CENTER_ALIGNMENT
36 border = BorderFactory.createEmptyBorder(BW2, BW2, BW, BW2)
37 verticalScrollBarPolicy = ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS
38 horizontalScrollBarPolicy = ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER
39 preferredSize = Dimension(WIDTH, HEIGHT)
40 background = Application.mainFrame.background
41 }
42
43 override fun setVisible(vis: Boolean) {
44 if (vis)
45 helpPane.verticalScrollBar.run { value = minimum }
46 super.setVisible(vis)
38 } 47 }
39 48
40 init { 49 init {
41 setVisible(false) 50 setVisible(false)
42 title = "Help" 51 title = "Help"
43 contentPane.apply { 52 contentPane.apply {
44 layout = BoxLayout(this, BoxLayout.Y_AXIS) 53 layout = BoxLayout(this, BoxLayout.Y_AXIS)
45 add(JScrollPane(helpPane).apply { 54 add(helpPane)
46 alignmentX = JScrollPane.CENTER_ALIGNMENT
47 border = BorderFactory.createEmptyBorder(BW2, BW2, BW, BW2)
48 verticalScrollBarPolicy = ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS
49 horizontalScrollBarPolicy = ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER
50 preferredSize = Dimension(WIDTH, HEIGHT)
51 background = Application.mainFrame.background
52 })
53 add(Box(BoxLayout.X_AXIS).apply { 55 add(Box(BoxLayout.X_AXIS).apply {
54 alignmentX = Box.CENTER_ALIGNMENT 56 alignmentX = Box.CENTER_ALIGNMENT
55 border = BorderFactory.createEmptyBorder(BW, BW2, BW2, BW2) 57 border = BorderFactory.createEmptyBorder(BW, BW2, BW2, BW2)
56 add(Box.createHorizontalGlue()) 58 add(Box.createHorizontalGlue())
57 add(dismissButton) 59 add(dismissButton)