1 package osm.jp.gpx.matchtime.gui;
3 import java.awt.BorderLayout;
4 import java.awt.Dimension;
5 import java.awt.event.ActionEvent;
6 import java.util.ArrayList;
7 import javax.swing.Box;
8 import javax.swing.BoxLayout;
9 import javax.swing.JButton;
10 import javax.swing.JComponent;
11 import javax.swing.JPanel;
12 import javax.swing.JTabbedPane;
13 import static osm.jp.gpx.matchtime.gui.AdjustTime.i18n;
15 public class Card extends JPanel {
17 public JPanel mainPanel;
21 public JButton nextButton; // [次へ]ボタン
22 public JButton backButton; // [戻る]ボタン
24 public Card(JTabbedPane tabbe, String title, int backNumber, int nextNumber) {
28 this.backNumber = backNumber;
29 this.nextNumber = nextNumber;
32 this.setLayout(new BorderLayout());
35 mainPanel = new JPanel();
36 mainPanel.setLayout(new BorderLayout());
37 this.add(mainPanel, BorderLayout.CENTER);
40 JPanel buttonPanel = new JPanel(new BorderLayout());
41 buttonPanel.add(Box.createVerticalStrut(10), BorderLayout.SOUTH);
42 buttonPanel.add(Box.createVerticalStrut(10), BorderLayout.NORTH);
43 this.add(buttonPanel, BorderLayout.SOUTH);
45 //{{REGISTER_LISTENERS
46 SymAction lSymAction = new SymAction();
47 if (nextNumber >= 0) {
48 nextButton = new JButton(i18n.getString("button.next"));
49 nextButton.setEnabled(false);
50 buttonPanel.add(nextButton, BorderLayout.EAST);
51 nextButton.addActionListener(lSymAction);
54 if (backNumber >= 0) {
55 backButton = new JButton(i18n.getString("button.previous"));
56 backButton.setEnabled(false);
57 buttonPanel.add(backButton, BorderLayout.WEST);
58 backButton.addActionListener(lSymAction);
63 public static JPanel packLine(JComponent[] components, JPanel panel) {
64 panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
66 for (JComponent component : components) {
68 Dimension size = component.getMaximumSize();
69 if (max < size.height) {
73 Dimension size = new Dimension();
74 size.width = Short.MAX_VALUE;
76 panel.setMaximumSize(size);
80 public static JPanel packLine(JComponent component, JPanel panel) {
81 ArrayList<JComponent> array = new ArrayList<>();
83 return packLine(array.toArray(new JComponent[array.size()]), panel);
87 public void setEnabled(boolean enabled) {
88 this.tabbe.setEnabledAt(nextNumber - 1, enabled);
91 public String getTitle() {
95 class SymAction implements java.awt.event.ActionListener {
97 public void actionPerformed(java.awt.event.ActionEvent event) {
98 Object object = event.getSource();
99 if (object == nextButton) {
100 nextButton_Action(event);
102 else if (object == backButton) {
103 backButton_Action(event);
112 void nextButton_Action(ActionEvent event) {
113 this.tabbe.setSelectedIndex(this.nextNumber);
120 void backButton_Action(ActionEvent event) {
121 this.tabbe.setSelectedIndex(this.backNumber);