Mercurial > cgi-bin > hgweb.cgi > JpegWasher
annotate src/name/blackcap/exifwasher/HelpDialog.kt @ 53:61a06e050bac
Fix help dialog.
author | David Barts <n5jrn@me.com> |
---|---|
date | Thu, 07 May 2020 12:33:52 -0700 |
parents | 39895d44a287 |
children | 40911898ed23 |
rev | line source |
---|---|
50
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
1 /* |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
2 * The dialog that displays the Exif data in a single file (display only, |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
3 * no changing). We do this after washing. |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
4 */ |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
5 package name.blackcap.exifwasher |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
6 |
53 | 7 import java.awt.Color |
50
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
8 import java.awt.Dimension |
53 | 9 import java.awt.Font |
50
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
10 import java.awt.event.ActionEvent |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
11 import java.awt.event.ActionListener |
53 | 12 import java.io.BufferedReader |
50
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
13 import java.io.File |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
14 import java.io.IOException |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
15 import java.io.InputStream |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
16 import java.io.InputStreamReader |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
17 import java.util.logging.Level |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
18 import java.util.logging.Logger |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
19 import javax.swing.* |
53 | 20 import javax.swing.UIManager |
21 import javax.swing.text.html.HTMLEditorKit | |
22 import javax.swing.text.html.StyleSheet | |
50
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
23 |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
24 import name.blackcap.exifwasher.exiv2.* |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
25 |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
26 class HelpDialog : JDialog(Application.mainFrame) { |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
27 private val BW = 9 |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
28 private val BW2 = BW * 2 |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
29 private val WIDTH = 640 |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
30 private val HEIGHT = 480 |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
31 |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
32 private val dismissButton = JButton("Dismiss").also { |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
33 it.addActionListener(ActionListener { setVisible(false) }) |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
34 } |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
35 |
53 | 36 /* |
37 * The stock HTMLEditorKit shares all style sheet data between all its | |
38 * instances. How unbelievably braindamaged. Correct that. | |
39 */ | |
40 private class MyEditorKit: HTMLEditorKit() { | |
41 private var _styleSheet: StyleSheet = defaultStyleSheet | |
42 override fun getStyleSheet() = _styleSheet | |
43 override fun setStyleSheet(value: StyleSheet) { | |
44 _styleSheet = value | |
45 } | |
46 | |
47 /** | |
48 * Return the default style sheet that all HTMLEditorKit's come with. | |
49 */ | |
50 val defaultStyleSheet: StyleSheet | |
51 get() { | |
52 return super.getStyleSheet() | |
53 } | |
54 } | |
55 | |
52 | 56 private val helpPane = JScrollPane(JTextPane().also { |
53 | 57 UIManager.getFont("Panel.font")?.let { pFont -> |
58 it.editorKit = MyEditorKit().also { ek -> | |
59 ek.styleSheet = StyleSheet().apply { | |
60 addRule("body { font-family: \"${pFont.family}\"; font-size: ${pFont.size}; }") | |
61 addStyleSheet(ek.defaultStyleSheet) | |
62 } | |
63 } | |
64 } | |
52 | 65 it.text = this::class.java.getResourceAsStream("help.html").bufferedReader().use { it.readText() } |
53 | 66 it.setEditable(false) |
52 | 67 }).apply { |
68 alignmentX = JScrollPane.CENTER_ALIGNMENT | |
53 | 69 border = BorderFactory.createCompoundBorder( |
70 BorderFactory.createEmptyBorder(BW2, BW2, BW, BW2), | |
71 UIManager.getBorder("ScrollPane.border") ?: BorderFactory.createLineBorder(Color.GRAY)) | |
52 | 72 verticalScrollBarPolicy = ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS |
73 horizontalScrollBarPolicy = ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER | |
74 preferredSize = Dimension(WIDTH, HEIGHT) | |
75 background = Application.mainFrame.background | |
76 } | |
77 | |
78 override fun setVisible(vis: Boolean) { | |
79 if (vis) | |
80 helpPane.verticalScrollBar.run { value = minimum } | |
81 super.setVisible(vis) | |
50
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
82 } |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
83 |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
84 init { |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
85 setVisible(false) |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
86 title = "Help" |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
87 contentPane.apply { |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
88 layout = BoxLayout(this, BoxLayout.Y_AXIS) |
52 | 89 add(helpPane) |
50
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
90 add(Box(BoxLayout.X_AXIS).apply { |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
91 alignmentX = Box.CENTER_ALIGNMENT |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
92 border = BorderFactory.createEmptyBorder(BW, BW2, BW2, BW2) |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
93 add(Box.createHorizontalGlue()) |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
94 add(dismissButton) |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
95 }) |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
96 } |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
97 pack() |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
98 } |
fb407182ba76
Add help menu item, UNTESTED.
David Barts <davidb@stashtea.com>
parents:
diff
changeset
|
99 } |