1 32 33 package it.businesslogic.ireport.gui.library.objects; 34 import it.businesslogic.ireport.gui.library.CustomExpression; 35 import it.businesslogic.ireport.gui.*; 36 import it.businesslogic.ireport.*; 37 import javax.swing.tree.*; 38 import it.businesslogic.ireport.util.I18n; 39 40 44 public class TotalObjectDialog extends javax.swing.JDialog { 45 46 int dialogResult = 0; 47 DefaultMutableTreeNode fieldsNode = null; 48 DefaultMutableTreeNode variablesNode = null; 49 DefaultMutableTreeNode parametersNode = null; 50 51 private boolean onlyFields = false; 52 53 private JReportFrame jrf = null; 54 private Object selectedObject = null; 55 56 public TotalObjectDialog(java.awt.Frame parent, boolean modal) { 57 super(parent, modal); 58 initComponents(); 59 60 this.setSize(400, 450); 61 62 this.setModal(true); 63 64 65 org.syntax.jedit.SyntaxDocument sd = new org.syntax.jedit.SyntaxDocument(); 66 sd.setTokenMarker(new org.syntax.jedit.tokenmarker.JavaTokenMarker() ); 67 68 this.jRTextExpressionAreaDefaultExpression.setDocument( sd ); 69 70 jTree1.setCellRenderer( new it.businesslogic.ireport.gui.library.LibraryTreeCellRenderer()); 71 updateAllTree(); 72 73 this.dialogResult = javax.swing.JOptionPane.CANCEL_OPTION; 74 75 it.businesslogic.ireport.util.Misc.centerFrame(this); 76 77 javax.swing.KeyStroke escape = javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_ESCAPE, 0, false); 78 javax.swing.Action escapeAction = new javax.swing.AbstractAction () { 79 public void actionPerformed(java.awt.event.ActionEvent e) { 80 jButtonCancelActionPerformed(e); 81 } 82 }; 83 84 getRootPane().getInputMap(javax.swing.JComponent.WHEN_IN_FOCUSED_WINDOW).put(escape, "ESCAPE"); 85 getRootPane().getActionMap().put("ESCAPE", escapeAction); 86 87 applyI18n(); 88 this.getRootPane().setDefaultButton(this.jButtonOK); 90 } 91 92 93 public void updateAllTree() 94 { 95 DefaultMutableTreeNode root = new DefaultMutableTreeNode("Libs"); 96 97 DefaultTreeModel dtm = new DefaultTreeModel(root); 98 99 jTree1.setModel( dtm ); 100 jTree1.setDragEnabled(true); 101 jTree1.setRootVisible( false ); 102 103 jTree1.expandPath( new TreePath(root)); 104 105 fieldsNode = new DefaultMutableTreeNode( it.businesslogic.ireport.util.I18n.getString("gui.library.fields","Fields"),true); 106 root.add( fieldsNode ); 107 108 if (!isOnlyFields()) 109 { 110 variablesNode = new DefaultMutableTreeNode( it.businesslogic.ireport.util.I18n.getString("gui.library.variables","Variables"),true); 111 root.add( variablesNode ); 112 113 parametersNode = new DefaultMutableTreeNode( it.businesslogic.ireport.util.I18n.getString("gui.library.parameters","Parameters"),true); 114 root.add( parametersNode ); 115 root.add( new DefaultMutableTreeNode( new it.businesslogic.ireport.gui.library.CustomExpression( it.businesslogic.ireport.util.I18n.getString("gui.library.customexpression","Custom expression")), true)); 116 } 117 jLabelTitle.setText( it.businesslogic.ireport.util.I18n.getString("gui.library.totalobject.title","Select object to sum") ); 118 119 } 120 121 122 123 128 private void initComponents() { 130 java.awt.GridBagConstraints gridBagConstraints; 131 132 jLabelTitle = new javax.swing.JLabel (); 133 jScrollPane1 = new javax.swing.JScrollPane (); 134 jTree1 = new javax.swing.JTree (); 135 jRTextExpressionAreaDefaultExpression = new it.businesslogic.ireport.gui.JRTextExpressionArea(); 136 jPanel1 = new javax.swing.JPanel (); 137 jPanel2 = new javax.swing.JPanel (); 138 jButtonOK = new javax.swing.JButton (); 139 jButtonCancel = new javax.swing.JButton (); 140 141 getContentPane().setLayout(new java.awt.GridBagLayout ()); 142 143 setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); 144 jLabelTitle.setText("Select object to sum"); 145 gridBagConstraints = new java.awt.GridBagConstraints (); 146 gridBagConstraints.gridx = 0; 147 gridBagConstraints.gridy = 0; 148 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 149 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 150 gridBagConstraints.weightx = 1.0; 151 gridBagConstraints.insets = new java.awt.Insets (4, 4, 0, 4); 152 getContentPane().add(jLabelTitle, gridBagConstraints); 153 154 jScrollPane1.setPreferredSize(new java.awt.Dimension (81, 180)); 155 jTree1.addTreeSelectionListener(new javax.swing.event.TreeSelectionListener () { 156 public void valueChanged(javax.swing.event.TreeSelectionEvent evt) { 157 jTree1ValueChanged(evt); 158 } 159 }); 160 161 jScrollPane1.setViewportView(jTree1); 162 163 gridBagConstraints = new java.awt.GridBagConstraints (); 164 gridBagConstraints.gridx = 0; 165 gridBagConstraints.gridy = 1; 166 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 167 gridBagConstraints.weightx = 1.0; 168 gridBagConstraints.weighty = 1.0; 169 gridBagConstraints.insets = new java.awt.Insets (4, 4, 0, 4); 170 getContentPane().add(jScrollPane1, gridBagConstraints); 171 172 jRTextExpressionAreaDefaultExpression.setBorder(javax.swing.BorderFactory.createEtchedBorder()); 173 jRTextExpressionAreaDefaultExpression.setElectricScroll(0); 174 jRTextExpressionAreaDefaultExpression.setMinimumSize(new java.awt.Dimension (0, 60)); 175 jRTextExpressionAreaDefaultExpression.setPreferredSize(new java.awt.Dimension (310, 60)); 176 gridBagConstraints = new java.awt.GridBagConstraints (); 177 gridBagConstraints.gridx = 0; 178 gridBagConstraints.gridy = 2; 179 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 180 gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; 181 gridBagConstraints.weighty = 0.2; 182 gridBagConstraints.insets = new java.awt.Insets (4, 4, 4, 4); 183 getContentPane().add(jRTextExpressionAreaDefaultExpression, gridBagConstraints); 184 185 jPanel1.setLayout(new java.awt.GridBagLayout ()); 186 187 jPanel1.setMinimumSize(new java.awt.Dimension (10, 30)); 188 jPanel1.setPreferredSize(new java.awt.Dimension (10, 30)); 189 gridBagConstraints = new java.awt.GridBagConstraints (); 190 gridBagConstraints.gridx = 0; 191 gridBagConstraints.gridy = 0; 192 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 193 gridBagConstraints.weightx = 1.0; 194 jPanel1.add(jPanel2, gridBagConstraints); 195 196 jButtonOK.setText("OK"); 197 jButtonOK.addActionListener(new java.awt.event.ActionListener () { 198 public void actionPerformed(java.awt.event.ActionEvent evt) { 199 jButtonOKActionPerformed(evt); 200 } 201 }); 202 203 jPanel1.add(jButtonOK, new java.awt.GridBagConstraints ()); 204 205 jButtonCancel.setText("Cancel"); 206 jButtonCancel.addActionListener(new java.awt.event.ActionListener () { 207 public void actionPerformed(java.awt.event.ActionEvent evt) { 208 jButtonCancelActionPerformed(evt); 209 } 210 }); 211 212 gridBagConstraints = new java.awt.GridBagConstraints (); 213 gridBagConstraints.insets = new java.awt.Insets (0, 4, 0, 0); 214 jPanel1.add(jButtonCancel, gridBagConstraints); 215 216 gridBagConstraints = new java.awt.GridBagConstraints (); 217 gridBagConstraints.gridx = 0; 218 gridBagConstraints.gridy = 3; 219 gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; 220 gridBagConstraints.insets = new java.awt.Insets (0, 4, 4, 4); 221 getContentPane().add(jPanel1, gridBagConstraints); 222 223 pack(); 224 } 226 private void jButtonCancelActionPerformed(java.awt.event.ActionEvent evt) { this.dialogResult = javax.swing.JOptionPane.CANCEL_OPTION; 228 this.setVisible(false); 229 dispose(); } 232 private void jButtonOKActionPerformed(java.awt.event.ActionEvent evt) { 234 if (selectedObject == null) 235 { 236 javax.swing.JOptionPane.showMessageDialog(this,it.businesslogic.ireport.util.I18n.getString("gui.library.totalobject.selectanobject","Select an object to sum first")); 237 return; 238 } 239 240 this.dialogResult = javax.swing.JOptionPane.OK_OPTION; 241 this.setVisible(false); 242 dispose(); 243 244 245 } 247 private void jTree1ValueChanged(javax.swing.event.TreeSelectionEvent evt) { 250 selectedObject = null; 251 252 if (jTree1.getLastSelectedPathComponent() != null) 253 { 254 DefaultMutableTreeNode dmtn = (DefaultMutableTreeNode)jTree1.getLastSelectedPathComponent(); 255 Object obj = dmtn.getUserObject(); 256 if (!dmtn.isLeaf()) 257 { 258 return; 259 } 260 261 if (obj instanceof CustomExpression) 262 { 263 jRTextExpressionAreaDefaultExpression.setEditable( true ); 265 jRTextExpressionAreaDefaultExpression.setBackground(java.awt.Color.WHITE); 266 jRTextExpressionAreaDefaultExpression.setOpaque(true); 267 } 268 else 269 { 270 if (obj instanceof JRParameter) jRTextExpressionAreaDefaultExpression.setText("$P{" + obj + "}"); 271 if (obj instanceof JRVariable) jRTextExpressionAreaDefaultExpression.setText("$V{" + obj + "}"); 272 if (obj instanceof JRField) jRTextExpressionAreaDefaultExpression.setText("$F{" + obj + "}"); 273 jRTextExpressionAreaDefaultExpression.setEditable(false); 274 275 jRTextExpressionAreaDefaultExpression.setBackground(java.awt.Color.GRAY); 276 jRTextExpressionAreaDefaultExpression.setOpaque(true); 277 } 278 selectedObject = obj; 279 280 } 281 282 } 284 287 public static void main(String args[]) { 288 java.awt.EventQueue.invokeLater(new Runnable () { 289 public void run() { 290 new TotalObjectDialog(new javax.swing.JFrame (), true).setVisible(true); 291 } 292 }); 293 } 294 295 299 public JReportFrame getJrf() { 300 301 return this.jrf; 302 } 303 304 308 public void setJrf(JReportFrame jrf) { 309 310 this.jrf = jrf; 311 jRTextExpressionAreaDefaultExpression.getTokenMarker().setKeywordLookup( 312 jrf.getReport().getKeywordLookup()); 313 314 this.fieldsNode.removeAllChildren(); 315 this.parametersNode.removeAllChildren(); 316 this.variablesNode.removeAllChildren(); 317 318 319 if (jrf == null) { 320 321 jTree1.updateUI(); 322 return; 323 } 324 325 java.util.Enumeration e = jrf.getReport().getFields().elements(); 326 while (e.hasMoreElements()) 327 { 328 fieldsNode.add(new DefaultMutableTreeNode(e.nextElement())); 329 } 330 331 if (!isOnlyFields()) 332 { 333 e = jrf.getReport().getParameters().elements(); 334 while (e.hasMoreElements()) 335 { 336 parametersNode.add(new DefaultMutableTreeNode(e.nextElement())); 337 } 338 339 e = jrf.getReport().getVariables().elements(); 340 while (e.hasMoreElements()) 341 { 342 variablesNode.add(new DefaultMutableTreeNode(e.nextElement())); 343 } 344 } 345 346 jTree1.updateUI(); 347 } 348 349 353 public int getDialogResult() { 354 355 return this.dialogResult; 356 } 357 358 362 public void setDialogResult(int dialogResult) { 363 364 this.dialogResult = dialogResult; 365 } 366 367 371 public Object getSelectedObject() { 372 373 return this.selectedObject; 374 } 375 376 380 public void setSelectedObject(Object selectedObject) { 381 382 this.selectedObject = selectedObject; 383 } 384 385 public boolean isOnlyFields() { 386 return onlyFields; 387 } 388 389 public void setOnlyFields(boolean onlyFields) { 390 this.onlyFields = onlyFields; 391 updateAllTree(); 392 } 393 394 private javax.swing.JButton jButtonCancel; 396 private javax.swing.JButton jButtonOK; 397 private javax.swing.JLabel jLabelTitle; 398 private javax.swing.JPanel jPanel1; 399 private javax.swing.JPanel jPanel2; 400 private it.businesslogic.ireport.gui.JRTextExpressionArea jRTextExpressionAreaDefaultExpression; 401 private javax.swing.JScrollPane jScrollPane1; 402 private javax.swing.JTree jTree1; 403 405 public void applyI18n(){ 406 jButtonCancel.setText(I18n.getString("totalObjectDialog.buttonCancel","Cancel")); 408 jButtonOK.setText(I18n.getString("totalObjectDialog.buttonOK","OK")); 409 } 411 } 412 | Popular Tags |