summaryrefslogtreecommitdiff
path: root/src/main/java/cuchaz/enigma/gui/dialog
diff options
context:
space:
mode:
authorGravatar Fudge2019-12-02 15:43:23 +0200
committerGravatar modmuss502019-12-02 13:43:23 +0000
commita9e03fa0e75b5b338021de982acbbb8277e08706 (patch)
tree94233d173c5937584a3376895bf864fb24697a8c /src/main/java/cuchaz/enigma/gui/dialog
parentCorrectly decompile bridges, and add command to add bridges to mappings (#180) (diff)
downloadenigma-fork-a9e03fa0e75b5b338021de982acbbb8277e08706.tar.gz
enigma-fork-a9e03fa0e75b5b338021de982acbbb8277e08706.tar.xz
enigma-fork-a9e03fa0e75b5b338021de982acbbb8277e08706.zip
Allow attaching class, method, field, and parameter javadocs (#185)
* bring liach pr to modern enigma * bump version * fuck off vscode * switch to COMMENT and write comments before * it was already after, what do you want * oops * put inner classes at the end * remove indents and use all caps * add refreshmappings command * Update src/main/java/cuchaz/enigma/translation/mapping/serde/EnigmaMappingsWriter.java * Delete RefreshEnigmaMappingsCommand.java * Update CommandMain.java * ok
Diffstat (limited to 'src/main/java/cuchaz/enigma/gui/dialog')
-rw-r--r--src/main/java/cuchaz/enigma/gui/dialog/JavadocDialog.java88
1 files changed, 88 insertions, 0 deletions
diff --git a/src/main/java/cuchaz/enigma/gui/dialog/JavadocDialog.java b/src/main/java/cuchaz/enigma/gui/dialog/JavadocDialog.java
new file mode 100644
index 0000000..84e4d8f
--- /dev/null
+++ b/src/main/java/cuchaz/enigma/gui/dialog/JavadocDialog.java
@@ -0,0 +1,88 @@
1/*******************************************************************************
2 * Copyright (c) 2015 Jeff Martin.
3 * All rights reserved. This program and the accompanying materials
4 * are made available under the terms of the GNU Lesser General Public
5 * License v3.0 which accompanies this distribution, and is available at
6 * http://www.gnu.org/licenses/lgpl.html
7 * <p>
8 * Contributors:
9 * Jeff Martin - initial API and implementation
10 ******************************************************************************/
11
12package cuchaz.enigma.gui.dialog;
13
14import cuchaz.enigma.utils.Utils;
15
16import javax.swing.*;
17import java.awt.*;
18import java.awt.event.KeyAdapter;
19import java.awt.event.KeyEvent;
20
21public class JavadocDialog {
22
23 private static JavadocDialog instance = null;
24
25 private JFrame frame;
26
27 private JavadocDialog(JFrame parent, JTextArea text, Callback callback) {
28 // init frame
29 frame = new JFrame("Edit Javadocs");
30 final Container pane = frame.getContentPane();
31 pane.setLayout(new BorderLayout());
32
33 // editor panel
34 text.setTabSize(2);
35 pane.add(new JScrollPane(text), BorderLayout.CENTER);
36 text.addKeyListener(new KeyAdapter() {
37 @Override
38 public void keyPressed(KeyEvent event) {
39 switch (event.getKeyCode()) {
40 case KeyEvent.VK_ENTER:
41 if (event.isControlDown())
42 callback.closeUi(frame, true);
43 break;
44 case KeyEvent.VK_ESCAPE:
45 callback.closeUi(frame, false);
46 break;
47 default:
48 break;
49 }
50 }
51 });
52
53 // buttons panel
54 JPanel buttonsPanel = new JPanel();
55 FlowLayout buttonsLayout = new FlowLayout();
56 buttonsLayout.setAlignment(FlowLayout.RIGHT);
57 buttonsPanel.setLayout(buttonsLayout);
58 buttonsPanel.add(Utils.unboldLabel(new JLabel("Edit javadocs here.")));
59 JButton cancelButton = new JButton("Cancel");
60 cancelButton.addActionListener(event -> {
61 // close (hide) the dialog
62 callback.closeUi(frame, false);
63 });
64 buttonsPanel.add(cancelButton);
65 JButton saveButton = new JButton("Save");
66 saveButton.addActionListener(event -> {
67 // exit enigma
68 callback.closeUi(frame, true);
69 });
70 buttonsPanel.add(saveButton);
71 pane.add(buttonsPanel, BorderLayout.SOUTH);
72
73 // show the frame
74 frame.setSize(600, 400);
75 frame.setLocationRelativeTo(parent);
76 frame.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
77 }
78
79 public static void init(JFrame parent, JTextArea area, Callback callback) {
80 instance = new JavadocDialog(parent, area, callback);
81 instance.frame.doLayout();
82 instance.frame.setVisible(true);
83 }
84
85 public interface Callback {
86 void closeUi(JFrame frame, boolean save);
87 }
88}