Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: com/cybertivity/powerjournal/ChooseJournalView.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.ItemEvent;
10  import java.awt.event.ItemListener;
11  import java.awt.event.KeyAdapter;
12  import java.awt.event.KeyEvent;
13  import java.awt.event.KeyEvent;
14  import java.awt.event.KeyListener;
15  import java.awt.event.WindowAdapter;
16  import java.awt.event.WindowEvent;
17  import java.util.ArrayList;
18  import javax.swing.BorderFactory;
19  import javax.swing.BoxLayout;
20  import javax.swing.JButton;
21  import javax.swing.JCheckBox;
22  import javax.swing.JComboBox;
23  import javax.swing.JFrame;
24  import javax.swing.JLabel;
25  import javax.swing.JPanel;
26  import javax.swing.JPasswordField;
27  import javax.swing.JTextField;
28  import com.cybertivity.powerjournal.framework.*;
29  import com.cybertivity.powerjournal.framework.DialogView;
30  import com.cybertivity.powerjournal.framework.Dialogs;
31  import com.cybertivity.powerjournal.framework.ModelEvent;
32  import com.cybertivity.powerjournal.gridpanel.*;
33  
34  /**
35   * Title:        PowerJournal
36   * Description:  $Id: ChooseJournalView.java,v 1.6 2001/12/12 02:41:10 arrowood Exp $
37   * Copyright:    Copyright (c) 2001
38   * Company:      <A HREF="http://www.cybertivity.com">Cybertivity</A>
39   *
40   * @author <A HREF="mailto:chris.arrowood@cybertivity.com">Chris Arrowood</A>
41   * @created December 1, 2001
42   * @version 1.0
43   */
44  
45  public class ChooseJournalView extends DialogView {
46  
47    public final static String EVENT_CANCEL = "ChooseJournalView_Cancel";
48    public final static String EVENT_OK = "ChooseJournalView_Ok";
49    public final static String EVENT_NEW_JOURNAL = "ChooseJournalView_New";
50    private JButton okButton = null;
51    private JButton cancelButton = null;
52    private JButton newButton = null;
53    private JPasswordField journalPasswordTextField = null;
54    private JComboBox journalsCombo = null;
55    private ArrayList journals = null;
56    private JCheckBox isGuest = null;
57  
58  
59    public ChooseJournalView(JFrame parent, ArrayList journalsArg) {
60      super(parent, true);
61      journals = journalsArg;
62      createWindow();
63      content.setTitle("Choose a Journal");
64      content.setResizable(false);
65      content.addWindowListener(new DeadlyWindowListener());
66      content.pack();
67      moveToCenter();
68    }
69  
70  
71    private void createWindow() {
72      content.getContentPane().add(createMainPanel());
73    }
74  
75  
76    public void setVisible(boolean arg) {
77      if (arg) {
78        journalPasswordTextField.setText("");
79      }
80      super.setVisible(arg);
81    }
82  
83  
84    private JPanel createMainPanel() {
85      JPanel panel = null;
86      try {
87        JPanel buttonPanel = createButtonPanel();
88        Insets insets = new Insets(2, 10, 0, 2);
89        GridPanelColumn leftColumn = createMainPanelLeftColumn();
90        GridPanelColumn rightColumn = createMainPanelRightColumn();
91        ArrayList columns = new ArrayList();
92        columns.add(0, leftColumn);
93        columns.add(1, rightColumn);
94        panel = GridPanelBuilder.createGridPanel(insets, columns, buttonPanel, BorderLayout.SOUTH);
95      } catch (GridPanelException ex) {
96        panel = new JPanel();
97      }
98      return panel;
99    }
100 
101 
102 
103   private GridPanelColumn createMainPanelLeftColumn() {
104     GridPanelColumn column = new GridPanelColumn();
105     column.add(new JLabel("Journal Name:"), false, false);
106     column.add(new JLabel("Journal Password:"), false, false);
107     JLabel labelGuest = new JLabel("View as Guest:");
108     labelGuest.setToolTipText("Guests have read-only access to public entries");
109     column.add(labelGuest, false, false);
110     return column;
111   }
112 
113 
114   private GridPanelColumn createMainPanelRightColumn() {
115     GridPanelColumn column = new GridPanelColumn();
116     journalsCombo = new JComboBox(journals.toArray());
117     journalsCombo.setMaximumRowCount(3);
118     journalPasswordTextField = new JPasswordField(10);
119     journalPasswordTextField.addKeyListener(new KeyPressListener());
120     isGuest = new JCheckBox("", false);
121     isGuest.addItemListener(new CheckboxListener());
122     isGuest.setToolTipText("Guests have read-only access to public entries");
123     column.add(journalsCombo, false, false);
124     column.add(journalPasswordTextField, false, false);
125     column.add(isGuest, false, false);
126     return column;
127   }
128 
129 
130   private JPanel createButtonPanel() {
131     JPanel buttonPanel = new JPanel();
132     FlowLayout layout = new FlowLayout();
133     buttonPanel.setLayout(layout);
134     okButton = makeButton("OK", EVENT_OK, null);
135     cancelButton = makeButton("Cancel", EVENT_CANCEL, null);
136     newButton = makeButton("New", EVENT_NEW_JOURNAL, null);
137     buttonPanel.add(okButton);
138     buttonPanel.add(newButton);
139     buttonPanel.add(cancelButton);
140     return buttonPanel;
141   }
142 
143 
144   private JButton makeButton(String name, final String action, Color color) {
145     JButton btn = new JButton();
146     btn.setText(name);
147     if (color != null) {
148       btn.setForeground(color);
149     }
150 
151     btn.addActionListener(
152       new java.awt.event.ActionListener() {
153         public void actionPerformed(ActionEvent e) {
154           fireEvent(action);
155         }
156       });
157     return btn;
158   }
159 
160 
161   private class DeadlyWindowListener extends WindowAdapter {
162     public void windowClosing(WindowEvent evt) {
163       fireEvent(EVENT_CANCEL);
164     }
165   }
166 
167 
168   class CheckboxListener implements ItemListener {
169     public void itemStateChanged(ItemEvent e) {
170       if (e.getItem() == isGuest) {
171         if ((e.getStateChange() == ItemEvent.SELECTED)) {
172           journalPasswordTextField.disable();
173           journalPasswordTextField.setBackground(Color.lightGray);
174         } else {
175           journalPasswordTextField.enable();
176           journalPasswordTextField.setBackground(Color.white);
177         }
178       }
179     }
180   }
181 
182 
183   public boolean isGuest() {
184     return isGuest.isSelected();
185   }
186 
187 
188   public String getJournalName() {
189     return (String) journalsCombo.getSelectedItem();
190   }
191 
192 
193   public String getJournalPassword() {
194     return journalPasswordTextField.getText();
195   }
196 
197 
198   protected void cleanUp() { }
199 
200 
201   protected void handleModelEvent(ModelEvent event) { }
202 
203 
204   public ArrayList getJournals() {
205     return journals;
206   }
207 
208 
209   public void setJournals(ArrayList _journals) {
210     journals = _journals;
211   }
212 
213 
214   class KeyPressListener extends KeyAdapter implements KeyListener {
215     public void keyPressed(KeyEvent event) {
216       int keyCode = event.getKeyCode();
217       if (event.getModifiers() == 0) {
218         if (keyCode == KeyEvent.VK_ENTER) {
219           fireEvent(EVENT_OK);
220         }
221       }
222       event.consume();
223     }
224   }
225 }