KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > genimen > djeneric > tools > common > ModelViewDialog


1 /*
2  * Copyright (c) 2001-2005 by Genimen BV (www.genimen.com) All rights reserved.
3  * Redistribution and use in source and binary forms, with or without
4  * modification, is permitted provided that the following conditions are met: -
5  * Redistributions of source code must retain the above copyright notice, this
6  * list of conditions and the following disclaimer. - Redistributions in binary
7  * form must reproduce the above copyright notice, this list of conditions and
8  * the following disclaimer in the documentation and/or other materials
9  * provided with the distribution. - All advertising materials mentioning
10  * features or use of this software must display the following acknowledgment:
11  * "This product includes Djeneric." - Products derived from this software may
12  * not be called "Djeneric" nor may "Djeneric" appear in their names without
13  * prior written permission of Genimen BV. - Redistributions of any form
14  * whatsoever must retain the following acknowledgment: "This product includes
15  * Djeneric." THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND
16  * CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT
17  * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
18  * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GENIMEN BV,
19  * DJENERIC.ORG, OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
20  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
21  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
22  * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
23  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
24  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
25  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26  */

27 package com.genimen.djeneric.tools.common;
28
29 import java.awt.BorderLayout JavaDoc;
30 import java.awt.Component JavaDoc;
31 import java.awt.Dimension JavaDoc;
32 import java.awt.Toolkit JavaDoc;
33 import java.awt.event.ActionEvent JavaDoc;
34 import java.awt.event.KeyEvent JavaDoc;
35 import java.awt.event.MouseEvent JavaDoc;
36 import java.io.File JavaDoc;
37 import java.io.FileInputStream JavaDoc;
38 import java.io.FileOutputStream JavaDoc;
39 import java.io.InputStream JavaDoc;
40 import java.io.OutputStream JavaDoc;
41
42 import javax.swing.DefaultComboBoxModel JavaDoc;
43 import javax.swing.JButton JavaDoc;
44 import javax.swing.JDialog JavaDoc;
45 import javax.swing.JList JavaDoc;
46 import javax.swing.JPanel JavaDoc;
47 import javax.swing.JScrollPane JavaDoc;
48 import javax.swing.ListSelectionModel JavaDoc;
49
50 import com.genimen.djeneric.language.Messages;
51 import com.genimen.djeneric.repository.DjModelView;
52 import com.genimen.djeneric.repository.DjUser;
53 import com.genimen.djeneric.repository.exceptions.DjenericException;
54 import com.genimen.djeneric.ui.Util;
55 import com.genimen.djeneric.util.DjLogger;
56 import com.genimen.djeneric.util.DjProperties;
57
58 public class ModelViewDialog extends JDialog JavaDoc
59 {
60   private static final long serialVersionUID = 1L;
61   private final static String JavaDoc VIEW = "logon.view";
62
63   DjProperties _props = new DjProperties();
64
65   JPanel JavaDoc panel1 = new JPanel JavaDoc();
66   BorderLayout JavaDoc borderLayout1 = new BorderLayout JavaDoc();
67   JPanel JavaDoc jPanel3 = new JPanel JavaDoc();
68   BorderLayout JavaDoc borderLayout2 = new BorderLayout JavaDoc();
69   JPanel JavaDoc jPanel4 = new JPanel JavaDoc();
70   JButton JavaDoc _butOk = new JButton JavaDoc();
71   JButton JavaDoc _butCancel = new JButton JavaDoc();
72   boolean _wasCancelled = true;
73   JScrollPane JavaDoc jScrollPane1 = new JScrollPane JavaDoc();
74   JList JavaDoc _lstModelView = new JList JavaDoc();
75
76   public ModelViewDialog(Component JavaDoc comp, DjUser user) throws DjenericException
77   {
78     super(Util.findFrame(comp), Messages.getString("ModelViewDialog.SelectView"), true);
79     try
80     {
81       DjModelView[] views = user.getViews();
82
83       if (views.length == 0) throw new Exception JavaDoc(Messages.getString("ModelViewDialog.NoAccess"));
84       jbInit();
85       DefaultComboBoxModel JavaDoc mdl = new DefaultComboBoxModel JavaDoc(views);
86       _lstModelView.setModel(mdl);
87       pack();
88       setSize(220, 250);
89       Dimension JavaDoc screenSize = Toolkit.getDefaultToolkit().getScreenSize();
90       Dimension JavaDoc frameSize = getSize();
91       setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
92
93       loadProps();
94       String JavaDoc viewName = _props.getProperty(VIEW, "");
95
96       _lstModelView.setSelectedIndex(0);
97       for (int i = 0; i < mdl.getSize(); i++)
98       {
99         DjModelView r = (DjModelView) mdl.getElementAt(i);
100         if (r.getCode().equals(viewName))
101         {
102           _lstModelView.setSelectedIndex(i);
103           break;
104         }
105       }
106
107       // Don't bother to show the dialog if there's only one view
108
if (views.length == 1)
109       {
110         _wasCancelled = false;
111       }
112       else setVisible(true);
113
114       if (_wasCancelled) throw new DjenericException(Messages.getString("ModelViewDialog.ViewSelectionCancelled"));
115     }
116     catch (Exception JavaDoc ex)
117     {
118       throw new DjenericException(ex);
119     }
120   }
121
122   public DjModelView getView()
123   {
124     if (_lstModelView.getSelectedIndex() == -1) return null;
125     return (DjModelView) _lstModelView.getSelectedValue();
126   }
127
128   void jbInit() throws Exception JavaDoc
129   {
130     panel1.setLayout(borderLayout1);
131     jPanel3.setLayout(borderLayout2);
132     _butOk.setText(Messages.getString("global.Ok"));
133     _butOk.addKeyListener(new java.awt.event.KeyAdapter JavaDoc()
134     {
135       public void keyPressed(KeyEvent JavaDoc e)
136       {
137         _butOk_keyPressed(e);
138       }
139     });
140     _butOk.addActionListener(new java.awt.event.ActionListener JavaDoc()
141     {
142       public void actionPerformed(ActionEvent JavaDoc e)
143       {
144         _butOk_actionPerformed(e);
145       }
146     });
147     _butCancel.setText(Messages.getString("global.Cancel"));
148     _butCancel.addKeyListener(new java.awt.event.KeyAdapter JavaDoc()
149     {
150       public void keyPressed(KeyEvent JavaDoc e)
151       {
152         _butCancel_keyPressed(e);
153       }
154     });
155     _butCancel.addActionListener(new java.awt.event.ActionListener JavaDoc()
156     {
157       public void actionPerformed(ActionEvent JavaDoc e)
158       {
159         _butCancel_actionPerformed(e);
160       }
161     });
162     _lstModelView.addKeyListener(new java.awt.event.KeyAdapter JavaDoc()
163     {
164       public void keyPressed(KeyEvent JavaDoc e)
165       {
166         _lstModelView_keyPressed(e);
167       }
168     });
169     _lstModelView.addMouseListener(new java.awt.event.MouseAdapter JavaDoc()
170     {
171       public void mouseClicked(MouseEvent JavaDoc e)
172       {
173         _lstModelView_mouseClicked(e);
174       }
175     });
176     _lstModelView.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
177     getContentPane().add(panel1);
178     panel1.add(jPanel3, BorderLayout.SOUTH);
179     jPanel3.add(jPanel4, BorderLayout.EAST);
180     jPanel4.add(_butCancel, null);
181     jPanel4.add(_butOk, null);
182     panel1.add(jScrollPane1, BorderLayout.CENTER);
183     jScrollPane1.getViewport().add(_lstModelView, null);
184     Util.sizeButtons(jPanel4);
185   }
186
187   protected void _lstModelView_mouseClicked(MouseEvent JavaDoc e)
188   {
189     if (e.getClickCount() > 1) _butOk_actionPerformed(null);
190   }
191
192   void _butOk_actionPerformed(ActionEvent JavaDoc e)
193   {
194     _wasCancelled = false;
195     saveProps();
196     setVisible(false);
197   }
198
199   void _butCancel_actionPerformed(ActionEvent JavaDoc e)
200   {
201     setVisible(false);
202   }
203
204   private void loadProps()
205   {
206     String JavaDoc absFileName = new File JavaDoc(LoginDialog._propertiesFileName).getAbsoluteFile().toString();
207
208     try
209     {
210       InputStream JavaDoc ios = new FileInputStream JavaDoc(absFileName);
211       _props.load(ios);
212       ios.close();
213
214     }
215     catch (Exception JavaDoc x)
216     {
217       DjLogger.log(x);
218     }
219   }
220
221   private void saveProps()
222   {
223     String JavaDoc absFileName = new File JavaDoc(LoginDialog._propertiesFileName).getAbsoluteFile().toString();
224
225     try
226     {
227       OutputStream JavaDoc os = new FileOutputStream JavaDoc(absFileName);
228
229       _props.setProperty(VIEW, getView().getCode());
230
231       _props.store(os, Messages.getString("global.CachedLoginCredentials"));
232       os.close();
233     }
234     catch (Exception JavaDoc x)
235     {
236       System.err.println(Messages.getString("global.WarningCouldNotWrite", absFileName));
237     }
238   }
239
240   void _lstModelView_keyPressed(KeyEvent JavaDoc e)
241   {
242     if (e.getKeyCode() == KeyEvent.VK_ENTER) _butOk_actionPerformed(null);
243     if (e.getKeyCode() == KeyEvent.VK_ESCAPE) _butCancel_actionPerformed(null);
244   }
245
246   void _butCancel_keyPressed(KeyEvent JavaDoc e)
247   {
248     _lstModelView_keyPressed(e);
249   }
250
251   void _butOk_keyPressed(KeyEvent JavaDoc e)
252   {
253     _lstModelView_keyPressed(e);
254   }
255 }
Popular Tags