Class |
Line # |
Actions |
|||
---|---|---|---|---|---|
EditNameDialog | 38 | 23 | 7 |
1 | /* | |
2 | * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) | |
3 | * Copyright (C) $$Year-Rel$$ The Jalview Authors | |
4 | * | |
5 | * This file is part of Jalview. | |
6 | * | |
7 | * Jalview is free software: you can redistribute it and/or | |
8 | * modify it under the terms of the GNU General Public License | |
9 | * as published by the Free Software Foundation, either version 3 | |
10 | * of the License, or (at your option) any later version. | |
11 | * | |
12 | * Jalview is distributed in the hope that it will be useful, but | |
13 | * WITHOUT ANY WARRANTY; without even the implied warranty | |
14 | * of MERCHANTABILITY or FITNESS FOR A PARTICULAR | |
15 | * PURPOSE. See the GNU General Public License for more details. | |
16 | * | |
17 | * You should have received a copy of the GNU General Public License | |
18 | * along with Jalview. If not, see <http://www.gnu.org/licenses/>. | |
19 | * The Jalview Authors are detailed in the 'AUTHORS' file. | |
20 | */ | |
21 | package jalview.gui; | |
22 | ||
23 | import java.awt.FlowLayout; | |
24 | import java.awt.Font; | |
25 | ||
26 | import javax.swing.BoxLayout; | |
27 | import javax.swing.JButton; | |
28 | import javax.swing.JComponent; | |
29 | import javax.swing.JLabel; | |
30 | import javax.swing.JPanel; | |
31 | import javax.swing.JTextField; | |
32 | ||
33 | import jalview.util.MessageManager; | |
34 | ||
35 | /** | |
36 | * A dialog where a name and description may be edited | |
37 | */ | |
38 | public class EditNameDialog | |
39 | { | |
40 | private static final Font COURIER_12 = new Font("Courier", Font.PLAIN, | |
41 | 12); | |
42 | ||
43 | JTextField id; | |
44 | ||
45 | JTextField description; | |
46 | ||
47 | JButton ok = new JButton(MessageManager.getString("action.accept")); | |
48 | ||
49 | JButton cancel = new JButton(MessageManager.getString("action.cancel")); | |
50 | ||
51 | private JPanel panel; | |
52 | ||
53 | 0 | public String getName() |
54 | { | |
55 | 0 | return id.getText(); |
56 | } | |
57 | ||
58 | 0 | public String getDescription() |
59 | { | |
60 | 0 | if (description.getText().length() < 1) |
61 | { | |
62 | 0 | return null; |
63 | } | |
64 | else | |
65 | { | |
66 | 0 | return description.getText(); |
67 | } | |
68 | } | |
69 | ||
70 | /** | |
71 | * Constructor | |
72 | * | |
73 | * @param name | |
74 | * @param desc | |
75 | * @param label1 | |
76 | * @param label2 | |
77 | */ | |
78 | 0 | public EditNameDialog(String name, String desc, String label1, |
79 | String label2) | |
80 | { | |
81 | 0 | panel = new JPanel(); |
82 | 0 | panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); |
83 | 0 | JPanel namePanel = new JPanel(new FlowLayout(FlowLayout.RIGHT)); |
84 | 0 | JPanel descriptionPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT)); |
85 | 0 | panel.add(namePanel); |
86 | 0 | panel.add(descriptionPanel); |
87 | ||
88 | 0 | JLabel nameLabel = new JLabel(label1); |
89 | // nameLabel.setFont(COURIER_12); | |
90 | 0 | namePanel.add(nameLabel); |
91 | ||
92 | 0 | id = new JTextField(name, 40); |
93 | 0 | namePanel.add(id); |
94 | ||
95 | 0 | description = new JTextField(desc, 40); |
96 | ||
97 | /* | |
98 | * optionally add field for description | |
99 | */ | |
100 | 0 | if (desc != null || label2 != null) |
101 | { | |
102 | 0 | JLabel descLabel = new JLabel(label2); |
103 | // descLabel.setFont(COURIER_12); | |
104 | 0 | descriptionPanel.add(descLabel); |
105 | 0 | descriptionPanel.add(description); |
106 | } | |
107 | } | |
108 | ||
109 | /** | |
110 | * Shows the dialog, and runs the response action if OK is selected | |
111 | * | |
112 | * @param action | |
113 | */ | |
114 | 0 | public void showDialog(JComponent parent, String title, Runnable action) |
115 | { | |
116 | 0 | String ok = MessageManager.getString("action.ok"); |
117 | 0 | String cancel = MessageManager.getString("action.cancel"); |
118 | 0 | String[] options = new String[] { ok, cancel }; |
119 | ||
120 | 0 | JvOptionPane.newOptionDialog(parent) |
121 | .setResponseHandler(JvOptionPane.OK_OPTION, action) | |
122 | .showInternalDialog(panel, title, JvOptionPane.OK_CANCEL_OPTION, | |
123 | JvOptionPane.PLAIN_MESSAGE, null, options, ok); | |
124 | ||
125 | /* | |
126 | List<Runnable> actions = new ArrayList<>(); | |
127 | actions.add(action); | |
128 | actions.add(JvOptionPane.NULLCALLABLE); | |
129 | ||
130 | JvOptionPane.frameDialog(panel, title, JvOptionPane.PLAIN_MESSAGE, | |
131 | options, ok, actions, false); | |
132 | */ | |
133 | } | |
134 | } |