1 32 33 package it.businesslogic.ireport.gui.subdataset; 34 35 import javax.swing.table.*; 36 import javax.swing.*; 37 import javax.swing.event.*; 38 import it.businesslogic.ireport.*; 39 import it.businesslogic.ireport.gui.ConnectionDialog; 40 import it.businesslogic.ireport.gui.MainFrame; 41 import it.businesslogic.ireport.gui.ValuesDialog; 42 import it.businesslogic.ireport.util.Misc; 43 import it.businesslogic.ireport.gui.event.ReportSubDatasetChangedEvent; 44 45 import java.util.*; 46 import it.businesslogic.ireport.util.I18n; 47 48 52 public class SubDatasetsDialog extends javax.swing.JDialog { 53 54 55 public SubDatasetsDialog(java.awt.Frame parent, boolean modal) { 56 super(parent, modal); 57 initComponents(); 58 applyI18n(); 59 this.setSize(490, 250); 60 63 69 DefaultListSelectionModel dlsm = (DefaultListSelectionModel)this.jTableParameters.getSelectionModel(); 70 dlsm.addListSelectionListener(new javax.swing.event.ListSelectionListener () { 71 public void valueChanged(ListSelectionEvent e) { 72 jTableParametersListSelectionValueChanged(e); 73 } 74 }); 75 76 it.businesslogic.ireport.util.Misc.centerFrame(this); 78 79 DefaultTableModel dtm = (DefaultTableModel)jTableParameters.getModel(); 80 81 Enumeration e = it.businesslogic.ireport.gui.MainFrame.getMainInstance().getActiveReportFrame().getReport().getSubDatasets().elements(); 82 while (e.hasMoreElements()) 83 { 84 SubDataset dataset = (SubDataset)e.nextElement(); 85 dtm.addRow( new Object []{dataset}); 86 } 87 88 javax.swing.KeyStroke escape = javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_ESCAPE, 0, false); 89 javax.swing.Action escapeAction = new javax.swing.AbstractAction () { 90 public void actionPerformed(java.awt.event.ActionEvent e) { 91 setVisible(false); 92 } 93 }; 94 95 getRootPane().getInputMap(javax.swing.JComponent.WHEN_IN_FOCUSED_WINDOW).put(escape, "ESCAPE"); 96 getRootPane().getActionMap().put("ESCAPE", escapeAction); 97 98 99 } 100 101 102 public void jTableParametersListSelectionValueChanged(javax.swing.event.ListSelectionEvent e) 103 { 104 if (this.jTableParameters.getSelectedRowCount() > 0) { 105 this.jButtonModify.setEnabled(true); 106 this.jButtonDelete.setEnabled(true); 107 } 108 else { 109 this.jButtonModify.setEnabled(false); 110 this.jButtonDelete.setEnabled(false); 111 } 112 } 113 114 115 120 private void initComponents() { 122 java.awt.GridBagConstraints gridBagConstraints; 123 124 jPanelParameters = new javax.swing.JPanel (); 125 jScrollPane1 = new javax.swing.JScrollPane (); 126 jTableParameters = new javax.swing.JTable (); 127 jPanelButtons = new javax.swing.JPanel (); 128 jButtonNew = new javax.swing.JButton (); 129 jButtonModify = new javax.swing.JButton (); 130 jButtonDelete = new javax.swing.JButton (); 131 132 setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); 133 setTitle("SubDatasets"); 134 addWindowListener(new java.awt.event.WindowAdapter () { 135 public void windowClosing(java.awt.event.WindowEvent evt) { 136 closeDialog(evt); 137 } 138 }); 139 140 jPanelParameters.setLayout(new java.awt.BorderLayout (2, 2)); 141 142 jScrollPane1.setBackground(new java.awt.Color (255, 255, 255)); 143 jTableParameters.setModel(new javax.swing.table.DefaultTableModel ( 144 new Object [][] { 145 146 }, 147 new String [] { 148 "Name" 149 } 150 ) { 151 boolean[] canEdit = new boolean [] { 152 false 153 }; 154 155 public boolean isCellEditable(int rowIndex, int columnIndex) { 156 return canEdit [columnIndex]; 157 } 158 }); 159 jTableParameters.addMouseListener(new java.awt.event.MouseAdapter () { 160 public void mouseClicked(java.awt.event.MouseEvent evt) { 161 jTableParametersMouseClicked(evt); 162 } 163 }); 164 165 jScrollPane1.setViewportView(jTableParameters); 166 167 jPanelParameters.add(jScrollPane1, java.awt.BorderLayout.CENTER); 168 169 jPanelButtons.setLayout(new java.awt.GridBagLayout ()); 170 171 jPanelButtons.setMinimumSize(new java.awt.Dimension (100, 10)); 172 jPanelButtons.setPreferredSize(new java.awt.Dimension (100, 10)); 173 jButtonNew.setText("New"); 174 jButtonNew.addActionListener(new java.awt.event.ActionListener () { 175 public void actionPerformed(java.awt.event.ActionEvent evt) { 176 jButtonNewActionPerformed(evt); 177 } 178 }); 179 180 gridBagConstraints = new java.awt.GridBagConstraints (); 181 gridBagConstraints.gridx = 0; 182 gridBagConstraints.gridy = 0; 183 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 184 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 185 gridBagConstraints.insets = new java.awt.Insets (3, 3, 3, 3); 186 jPanelButtons.add(jButtonNew, gridBagConstraints); 187 188 jButtonModify.setText("Modify"); 189 jButtonModify.setEnabled(false); 190 jButtonModify.addActionListener(new java.awt.event.ActionListener () { 191 public void actionPerformed(java.awt.event.ActionEvent evt) { 192 jButtonModifyActionPerformed(evt); 193 } 194 }); 195 196 gridBagConstraints = new java.awt.GridBagConstraints (); 197 gridBagConstraints.gridx = 0; 198 gridBagConstraints.gridy = 1; 199 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 200 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 201 gridBagConstraints.insets = new java.awt.Insets (0, 3, 5, 3); 202 jPanelButtons.add(jButtonModify, gridBagConstraints); 203 204 jButtonDelete.setText("Delete"); 205 jButtonDelete.setEnabled(false); 206 jButtonDelete.addActionListener(new java.awt.event.ActionListener () { 207 public void actionPerformed(java.awt.event.ActionEvent evt) { 208 jButtonDeleteActionPerformed(evt); 209 } 210 }); 211 212 gridBagConstraints = new java.awt.GridBagConstraints (); 213 gridBagConstraints.gridx = 0; 214 gridBagConstraints.gridy = 2; 215 gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; 216 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 217 gridBagConstraints.weightx = 1.0; 218 gridBagConstraints.weighty = 1.0; 219 gridBagConstraints.insets = new java.awt.Insets (0, 3, 5, 3); 220 jPanelButtons.add(jButtonDelete, gridBagConstraints); 221 222 jPanelParameters.add(jPanelButtons, java.awt.BorderLayout.EAST); 223 224 getContentPane().add(jPanelParameters, java.awt.BorderLayout.CENTER); 225 226 pack(); 227 } 229 private void jTableParametersMouseClicked(java.awt.event.MouseEvent evt) { if (evt.getClickCount() == 2 && evt.getButton() == evt.BUTTON1) 231 { 232 jButtonModifyActionPerformed(null); 233 } 234 } 236 private void jButtonDeleteActionPerformed(java.awt.event.ActionEvent evt) { if (jTableParameters.getSelectedRowCount() > 0) 239 { 240 SubDataset irc = null; 241 try { 242 irc = (SubDataset)jTableParameters.getModel().getValueAt(jTableParameters.getSelectedRow(), 0); 243 } catch (Exception ex) { return; } 244 245 246 if (javax.swing.JOptionPane.showConfirmDialog(this, 247 I18n.getString("messages.subDatasetsDialog.removingSubDataset","Do you want really remove this subdataset?"), 248 "", 249 javax.swing.JOptionPane.YES_NO_CANCEL_OPTION, 250 javax.swing.JOptionPane.QUESTION_MESSAGE) == javax.swing.JOptionPane.YES_OPTION) 251 { 252 MainFrame.getMainInstance().getActiveReportFrame().getReport().removeSubDataset( irc ); 253 254 ((DefaultTableModel)jTableParameters.getModel()).removeRow(jTableParameters.getSelectedRow()); 255 jTableParameters.updateUI(); 256 257 } 258 } 259 260 } 262 private void jButtonModifyActionPerformed(java.awt.event.ActionEvent evt) { java.awt.Frame parent = Misc.frameFromComponent(this); 264 SubDatasetDialog cd = new SubDatasetDialog(this,true); 265 266 if (jTableParameters.getSelectedRow() < 0) return; 268 SubDataset irc = null; 269 try { 270 irc = (SubDataset)jTableParameters.getModel().getValueAt(jTableParameters.getSelectedRow(), 0); 271 } catch (Exception ex) { return; } 272 273 if (irc == null) return; 274 275 cd.setSubDataset( irc ); 276 277 cd.setVisible(true); 278 279 if (cd.getDialogResult() == JOptionPane.OK_OPTION) 280 { 281 SubDataset sub = cd.getSubDataset(); 282 try { 285 jTableParameters.getModel().setValueAt(sub ,jTableParameters.getSelectedRow(), 0); 286 } catch (Exception ex) { return; } 287 } 288 } 290 private void jButtonNewActionPerformed(java.awt.event.ActionEvent evt) { java.awt.Frame parent = Misc.frameFromComponent(this); 292 SubDatasetDialog cd = new SubDatasetDialog(this,true); 293 cd.setVisible(true); 294 } 296 297 public void addSubDataset(SubDataset sub) 298 { 299 DefaultTableModel dtm = (DefaultTableModel)jTableParameters.getModel(); 300 dtm.addRow( new Object []{sub}); 301 303 } 304 305 306 private void closeDialog(java.awt.event.WindowEvent evt) { setVisible(false); 308 } 310 private javax.swing.JButton jButtonDelete; 312 private javax.swing.JButton jButtonModify; 313 private javax.swing.JButton jButtonNew; 314 private javax.swing.JPanel jPanelButtons; 315 private javax.swing.JPanel jPanelParameters; 316 private javax.swing.JScrollPane jScrollPane1; 317 private javax.swing.JTable jTableParameters; 318 320 public void applyI18n(){ 321 jButtonDelete.setText(I18n.getString("subDatasetsDialog.buttonDelete","Delete")); 323 jButtonModify.setText(I18n.getString("subDatasetsDialog.buttonModify","Modify")); 324 jButtonNew.setText(I18n.getString("subDatasetsDialog.buttonNew","New")); 325 327 jTableParameters.getColumnModel().getColumn(0).setHeaderValue( I18n.getString("subDatasetsDialog.tablecolumn.name","Name") ); 328 329 } 330 } 331 | Popular Tags |