Source code: com/cybertivity/powerjournal/NewJournalView.java
1 package com.cybertivity.powerjournal;
2 import java.awt.BorderLayout;
3 import java.awt.BorderLayout;
4 import java.awt.Color;
5 import java.awt.FlowLayout;
6 import java.awt.Insets;
7 import java.awt.event.ActionEvent;
8 import java.awt.event.ActionListener;
9 import java.awt.event.KeyEvent;
10 import java.awt.event.WindowAdapter;
11 import java.awt.event.WindowEvent;
12 import java.util.ArrayList;
13 import javax.swing.BorderFactory;
14 import javax.swing.BoxLayout;
15 import javax.swing.JButton;
16 import javax.swing.JLabel;
17 import javax.swing.JFrame;
18 import javax.swing.JPanel;
19 import javax.swing.JPasswordField;
20 import javax.swing.JTextField;
21 import com.cybertivity.powerjournal.framework.DialogView;
22 import com.cybertivity.powerjournal.framework.Dialogs;
23 import com.cybertivity.powerjournal.framework.ModelEvent;
24 import com.cybertivity.powerjournal.gridpanel.*;
25
26 /**
27 * Title: PowerJournal
28 * Description: $Id: NewJournalView.java,v 1.2 2001/12/04 02:35:15 arrowood Exp $
29 * Copyright: Copyright (c) 2001
30 * Company: <A HREF="http://www.cybertivity.com">Cybertivity</A>
31 *
32 * @author <A HREF="mailto:chris.arrowood@cybertivity.com">Chris Arrowood</A>
33 * @created November 30, 2001
34 * @version 1.0
35 */
36
37 public class NewJournalView extends DialogView {
38
39 /**
40 */
41 public final static String EVENT_CANCEL = "NewJournalView_Cancel";
42 /**
43 */
44 public final static String EVENT_OK = "NewJournalView_Ok";
45 private static NewJournalView instance = null;
46 private JButton okButton = null;
47 private JButton cancelButton = null;
48 private JTextField journalNameTextField = null;
49 private JPasswordField journalPasswordTextField1 = null;
50 private JPasswordField journalPasswordTextField2 = null;
51
52
53 private NewJournalView(JFrame parent) {
54 super(parent,true);
55 createWindow();
56 content.setTitle("Create New Journal");
57 content.setResizable(false);
58 content.addWindowListener(new DeadlyWindowListener());
59 content.pack();
60 moveToCenter();
61 }
62
63
64 public static NewJournalView getInstance(JFrame parent) {
65 if (instance == null) {
66 instance = new NewJournalView(parent);
67 }
68 return instance;
69 }
70
71
72 protected void cleanUp() { }
73
74
75 protected void handleModelEvent(ModelEvent event) { }
76
77
78 private void createWindow() {
79 content.getContentPane().add(createJournalPanel());
80 }
81
82
83 private JPanel createJournalPanel() {
84 JPanel panel = null;
85 try {
86 JPanel buttonPanel = createButtonPanel();
87 Insets insets = new Insets(2, 10, 0, 2);
88 GridPanelColumn leftColumn = createMainPanelLeftColumn();
89 GridPanelColumn rightColumn = createMainPanelRightColumn();
90 ArrayList columns = new ArrayList();
91 columns.add(0, leftColumn);
92 columns.add(1, rightColumn);
93 panel = GridPanelBuilder.createGridPanel(insets, columns, buttonPanel, BorderLayout.SOUTH);
94 } catch (GridPanelException ex) {
95 panel = new JPanel();
96 }
97 return panel;
98 }
99
100
101 private GridPanelColumn createMainPanelLeftColumn() {
102 GridPanelColumn column = new GridPanelColumn();
103 column.add(new JLabel("Journal Name:"), false, false);
104 column.add(new JLabel("Journal Password:"), false, false);
105 column.add(new JLabel("Confirm Password:"), false, false);
106 return column;
107 }
108
109
110 private GridPanelColumn createMainPanelRightColumn() {
111 GridPanelColumn column = new GridPanelColumn();
112 journalNameTextField = new JTextField("My Journal", 20);
113 journalPasswordTextField1 = new JPasswordField(10);
114 journalPasswordTextField2 = new JPasswordField(10);
115 column.add(journalNameTextField, false, false);
116 column.add(journalPasswordTextField1, false, false);
117 column.add(journalPasswordTextField2, false, false);
118 return column;
119 }
120
121
122 private JPanel createButtonPanel() {
123 JPanel buttonPanel = new JPanel();
124 FlowLayout layout = new FlowLayout();
125 buttonPanel.setLayout(layout);
126 okButton = makeButton("OK", EVENT_OK, null);
127 cancelButton = makeButton("Cancel", EVENT_CANCEL, null);
128 buttonPanel.add(okButton);
129 buttonPanel.add(cancelButton);
130 return buttonPanel;
131 }
132
133
134 private class DeadlyWindowListener extends WindowAdapter {
135 public void windowClosing(WindowEvent evt) {
136 fireEvent(EVENT_CANCEL);
137 }
138 }
139
140
141 private JButton makeButton(String name, final String action, Color color) {
142 JButton btn = new JButton();
143 btn.setText(name);
144 if (color != null) {
145 btn.setForeground(color);
146 }
147
148 btn.addActionListener(
149 new java.awt.event.ActionListener() {
150 public void actionPerformed(ActionEvent e) {
151 fireEvent(action);
152 }
153 });
154 return btn;
155 }
156
157
158 public String getJournalNameText() {
159 return journalNameTextField.getText();
160 }
161
162
163 public String getJournalPasswordText() {
164 return journalPasswordTextField1.getText();
165 }
166
167
168 public String getJournalPasswordConfirmText() {
169 return journalPasswordTextField2.getText();
170 }
171
172
173 public void setVisible(boolean arg) {
174 if (arg) {
175 journalPasswordTextField1.setText("");
176 journalPasswordTextField2.setText("");
177 }
178 super.setVisible(arg);
179 }
180
181 }