1 27 package com.genimen.djeneric.tools.common; 28 29 import java.awt.BorderLayout ; 30 import java.awt.Component ; 31 import java.awt.Dimension ; 32 import java.awt.Toolkit ; 33 import java.awt.event.ActionEvent ; 34 import java.awt.event.KeyEvent ; 35 import java.awt.event.MouseEvent ; 36 import java.io.File ; 37 import java.io.FileInputStream ; 38 import java.io.FileOutputStream ; 39 import java.io.InputStream ; 40 import java.io.OutputStream ; 41 42 import javax.swing.DefaultComboBoxModel ; 43 import javax.swing.JButton ; 44 import javax.swing.JDialog ; 45 import javax.swing.JList ; 46 import javax.swing.JPanel ; 47 import javax.swing.JScrollPane ; 48 import javax.swing.ListSelectionModel ; 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 59 { 60 private static final long serialVersionUID = 1L; 61 private final static String VIEW = "logon.view"; 62 63 DjProperties _props = new DjProperties(); 64 65 JPanel panel1 = new JPanel (); 66 BorderLayout borderLayout1 = new BorderLayout (); 67 JPanel jPanel3 = new JPanel (); 68 BorderLayout borderLayout2 = new BorderLayout (); 69 JPanel jPanel4 = new JPanel (); 70 JButton _butOk = new JButton (); 71 JButton _butCancel = new JButton (); 72 boolean _wasCancelled = true; 73 JScrollPane jScrollPane1 = new JScrollPane (); 74 JList _lstModelView = new JList (); 75 76 public ModelViewDialog(Component 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 (Messages.getString("ModelViewDialog.NoAccess")); 84 jbInit(); 85 DefaultComboBoxModel mdl = new DefaultComboBoxModel (views); 86 _lstModelView.setModel(mdl); 87 pack(); 88 setSize(220, 250); 89 Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 90 Dimension frameSize = getSize(); 91 setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2); 92 93 loadProps(); 94 String 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 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 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 129 { 130 panel1.setLayout(borderLayout1); 131 jPanel3.setLayout(borderLayout2); 132 _butOk.setText(Messages.getString("global.Ok")); 133 _butOk.addKeyListener(new java.awt.event.KeyAdapter () 134 { 135 public void keyPressed(KeyEvent e) 136 { 137 _butOk_keyPressed(e); 138 } 139 }); 140 _butOk.addActionListener(new java.awt.event.ActionListener () 141 { 142 public void actionPerformed(ActionEvent e) 143 { 144 _butOk_actionPerformed(e); 145 } 146 }); 147 _butCancel.setText(Messages.getString("global.Cancel")); 148 _butCancel.addKeyListener(new java.awt.event.KeyAdapter () 149 { 150 public void keyPressed(KeyEvent e) 151 { 152 _butCancel_keyPressed(e); 153 } 154 }); 155 _butCancel.addActionListener(new java.awt.event.ActionListener () 156 { 157 public void actionPerformed(ActionEvent e) 158 { 159 _butCancel_actionPerformed(e); 160 } 161 }); 162 _lstModelView.addKeyListener(new java.awt.event.KeyAdapter () 163 { 164 public void keyPressed(KeyEvent e) 165 { 166 _lstModelView_keyPressed(e); 167 } 168 }); 169 _lstModelView.addMouseListener(new java.awt.event.MouseAdapter () 170 { 171 public void mouseClicked(MouseEvent 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 e) 188 { 189 if (e.getClickCount() > 1) _butOk_actionPerformed(null); 190 } 191 192 void _butOk_actionPerformed(ActionEvent e) 193 { 194 _wasCancelled = false; 195 saveProps(); 196 setVisible(false); 197 } 198 199 void _butCancel_actionPerformed(ActionEvent e) 200 { 201 setVisible(false); 202 } 203 204 private void loadProps() 205 { 206 String absFileName = new File (LoginDialog._propertiesFileName).getAbsoluteFile().toString(); 207 208 try 209 { 210 InputStream ios = new FileInputStream (absFileName); 211 _props.load(ios); 212 ios.close(); 213 214 } 215 catch (Exception x) 216 { 217 DjLogger.log(x); 218 } 219 } 220 221 private void saveProps() 222 { 223 String absFileName = new File (LoginDialog._propertiesFileName).getAbsoluteFile().toString(); 224 225 try 226 { 227 OutputStream os = new FileOutputStream (absFileName); 228 229 _props.setProperty(VIEW, getView().getCode()); 230 231 _props.store(os, Messages.getString("global.CachedLoginCredentials")); 232 os.close(); 233 } 234 catch (Exception x) 235 { 236 System.err.println(Messages.getString("global.WarningCouldNotWrite", absFileName)); 237 } 238 } 239 240 void _lstModelView_keyPressed(KeyEvent 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 e) 247 { 248 _lstModelView_keyPressed(e); 249 } 250 251 void _butOk_keyPressed(KeyEvent e) 252 { 253 _lstModelView_keyPressed(e); 254 } 255 } | Popular Tags |