Main Page   Packages   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members  

AssertionBrowser.java

00001 package edu.ksu.cis.bandera.bui;
00002 
00003 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
00004  * Bandera, a Java(TM) analysis and transformation toolkit           *
00005  * Copyright (C) 2000   Robby (robby@cis.ksu.edu)                    *
00006  * All rights reserved.                                              *
00007  *                                                                   *
00008  * This work was done as a project in the SAnToS Laboratory,         *
00009  * Department of Computing and Information Sciences, Kansas State    *
00010  * University, USA (http://www.cis.ksu.edu/santos).                  *
00011  * It is understood that any modification not identified as such is  *
00012  * not covered by the preceding statement.                           *
00013  *                                                                   *
00014  * This work is free software; you can redistribute it and/or        *
00015  * modify it under the terms of the GNU Library General Public       *
00016  * License as published by the Free Software Foundation; either      *
00017  * version 2 of the License, or (at your option) any later version.  *
00018  *                                                                   *
00019  * This work is distributed in the hope that it will be useful,      *
00020  * but WITHOUT ANY WARRANTY; without even the implied warranty of    *
00021  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU *
00022  * Library General Public License for more details.                  *
00023  *                                                                   *
00024  * You should have received a copy of the GNU Library General Public *
00025  * License along with this toolkit; if not, write to the             *
00026  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,      *
00027  * Boston, MA  02111-1307, USA.                                      *
00028  *                                                                   *
00029  * Java is a trademark of Sun Microsystems, Inc.                     *
00030  *                                                                   *
00031  * To submit a bug report, send a comment, or get the latest news on *
00032  * this project and other SAnToS projects, please visit the web-site *
00033  *                http://www.cis.ksu.edu/santos                      *
00034  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
00035 import edu.ksu.cis.bandera.specification.datastructure.*;
00036 import edu.ksu.cis.bandera.jjjc.*;
00037 import edu.ksu.cis.bandera.annotation.*;
00038 import edu.ksu.cis.bandera.specification.assertion.datastructure.*;
00039 import java.awt.*;
00040 import java.util.*;
00041 import javax.swing.*;
00042 import javax.swing.tree.*;
00043 public class AssertionBrowser extends JFrame {
00044     private JLabel ivjConstraintLabel = null;
00045     private JTextField ivjConstraintTextField = null;
00046     private JLabel ivjDescriptionLabel = null;
00047     private JScrollPane ivjDescriptionScrollPane = null;
00048     private JTextArea ivjDescriptionTextArea = null;
00049     private JButton ivjGotoButton = null;
00050     private JLabel ivjNameLabel = null;
00051     private JTextField ivjNameTextField = null;
00052     private JButton ivjOkButton = null;
00053     private JLabel ivjTypeLabel = null;
00054     private JTextField ivjTypeTextField = null;
00055     private JButton ivjErrorMessageButton = null;
00056     IvjEventHandler ivjEventHandler = new IvjEventHandler();
00057     private JTree ivjAssertionTree = null;
00058     private JPanel ivjAssertionBrowserContentPane = null;
00059     private JSplitPane ivjAssertionBrowserSplitPane = null;
00060     private JPanel ivjAssertionPanel = null;
00061     private JScrollPane ivjAssertionScrollPane = null;
00062 
00063 class IvjEventHandler implements java.awt.event.ActionListener, javax.swing.event.TreeSelectionListener {
00064         public void actionPerformed(java.awt.event.ActionEvent e) {
00065             if (e.getSource() == AssertionBrowser.this.getOkButton()) 
00066                 connEtoM1(e);
00067             if (e.getSource() == AssertionBrowser.this.getErrorMessageButton()) 
00068                 connEtoC2();
00069             if (e.getSource() == AssertionBrowser.this.getGotoButton()) 
00070                 connEtoC3();
00071             if (e.getSource() == AssertionBrowser.this.getAddButton()) 
00072                 connEtoC4();
00073         };
00074         public void valueChanged(javax.swing.event.TreeSelectionEvent e) {
00075             if (e.getSource() == AssertionBrowser.this.getAssertionTree()) 
00076                 connEtoC1();
00077         };
00078     };
00079     private JButton ivjAddButton = null;
00080 /**
00081  * PredicateBrowser constructor comment.
00082  */
00083 public AssertionBrowser() {
00084     super();
00085     initialize();
00086 }
00087 /**
00088  * PredicateBrowser constructor comment.
00089  * @param title java.lang.String
00090  */
00091 public AssertionBrowser(String title) {
00092     super(title);
00093 }
00094 /**
00095  * Comment
00096  */
00097 public void addButton_ActionEvents() {
00098     Object o = ((DefaultMutableTreeNode) getAssertionTree().getLastSelectedPathComponent()).getUserObject();
00099     if (o instanceof Assertion) {
00100         Assertion a = (Assertion) o;
00101         AssertionProperty ap = (AssertionProperty) BUI.property.getActivatedAssertionProperties().iterator().next();
00102         ap.addAssertion(a.getName());
00103         BUI.propertyManager.updateEnabledAssertionList();
00104         BUI.propertyManager.getEnabledAssertionList().setSelectedValue(a, true);
00105         BUI.propertyManager.setVisible(true);
00106         BUI.propertyManager.requestFocus();
00107         BUI.propertyManager.getPropertyManagerTabbedPane().setSelectedIndex(2);
00108     }
00109 }
00110 /**
00111  * Comment
00112  */
00113 public void assertionTree_TreeSelectionEvents() {
00114     Object o = ((DefaultMutableTreeNode) getAssertionTree().getLastSelectedPathComponent()).getUserObject();
00115     if (o instanceof Assertion) {
00116         Assertion a = (Assertion) o;
00117         getNameTextField().setText(a.getName().toString());
00118         if (a instanceof LocationAssertion) {
00119             getTypeTextField().setText("Location Assertion on label '" + ((LocationAssertion) a).getLabel() + "'");
00120         } else if (a instanceof PostAssertion) {
00121             getTypeTextField().setText("Post-condition Assertion");
00122         } else if (a instanceof PreAssertion) {
00123             getTypeTextField().setText("Pre-condition Assertion");
00124         }
00125         getConstraintTextField().setText(a.getConstraint().toString().trim());
00126         getDescriptionTextArea().setText("".equals(a.getDescription().trim()) ? "none" : a.getDescription());
00127         getErrorMessageButton().setEnabled(!a.isValid());
00128         getGotoButton().setEnabled(true);
00129         getAddButton().setEnabled(a.isValid() && (BUI.property.getActivatedAssertionProperties().size() == 1));
00130     } else {
00131         getErrorMessageButton().setEnabled(false);
00132         getGotoButton().setEnabled(false);
00133         getAddButton().setEnabled(false);
00134         getNameTextField().setText("");
00135         getTypeTextField().setText("");
00136         getConstraintTextField().setText("");
00137         getDescriptionTextArea().setText("");
00138     }
00139 }
00140 /**
00141  * 
00142  * @return javax.swing.tree.DefaultMutableTreeNode
00143  * @param root javax.swing.tree.DefaultMutableTreeNode
00144  * @param object java.lang.Object
00145  */
00146 private DefaultMutableTreeNode buildTree(DefaultMutableTreeNode root, Object object) {
00147     if (object instanceof Hashtable) {
00148         Hashtable table = (Hashtable) object;
00149         TreeSet ts = new TreeSet();
00150         for (Enumeration e = table.keys(); e.hasMoreElements();) {
00151             ts.add(e.nextElement());
00152         }
00153         
00154         for (Iterator i = ts.iterator(); i.hasNext();) {
00155             Object key = i.next();
00156             Object value = table.get(key);
00157             root.add(buildTree(new DefaultMutableTreeNode(key.toString()), value));
00158         }
00159     } else if (object instanceof AssertionSet) {
00160         AssertionSet set = (AssertionSet) object;
00161         Hashtable table = set.getAssertionTable();
00162         TreeSet ts = new TreeSet();
00163         for (Enumeration e = table.keys(); e.hasMoreElements();) {
00164             ts.add(e.nextElement());
00165         }
00166         for (Iterator i = ts.iterator(); i.hasNext();) {
00167             root.add(new DefaultMutableTreeNode(table.get(i.next())));
00168         }
00169     }
00170     return root;
00171 }
00172 /**
00173  * connEtoC1:  (AssertionTree.treeSelection. --> AssertionBrowser.assertionTree_TreeSelectionEvents()V)
00174  */
00175 /* WARNING: THIS METHOD WILL BE REGENERATED. */
00176 private void connEtoC1() {
00177     try {
00178         // user code begin {1}
00179         // user code end
00180         this.assertionTree_TreeSelectionEvents();
00181         // user code begin {2}
00182         // user code end
00183     } catch (java.lang.Throwable ivjExc) {
00184         // user code begin {3}
00185         // user code end
00186         handleException(ivjExc);
00187     }
00188 }
00189 /**
00190  * connEtoC2:  (ErrorMessageButton.action. --> PredicateBrowser.errorMessageButton_ActionEvents()V)
00191  */
00192 /* WARNING: THIS METHOD WILL BE REGENERATED. */
00193 private void connEtoC2() {
00194     try {
00195         // user code begin {1}
00196         // user code end
00197         this.errorMessageButton_ActionEvents();
00198         // user code begin {2}
00199         // user code end
00200     } catch (java.lang.Throwable ivjExc) {
00201         // user code begin {3}
00202         // user code end
00203         handleException(ivjExc);
00204     }
00205 }
00206 /**
00207  * connEtoC3:  (GotoButton.action. --> AssertionBrowser.gotoButton_ActionEvents()V)
00208  */
00209 /* WARNING: THIS METHOD WILL BE REGENERATED. */
00210 private void connEtoC3() {
00211     try {
00212         // user code begin {1}
00213         // user code end
00214         this.gotoButton_ActionEvents();
00215         // user code begin {2}
00216         // user code end
00217     } catch (java.lang.Throwable ivjExc) {
00218         // user code begin {3}
00219         // user code end
00220         handleException(ivjExc);
00221     }
00222 }
00223 /**
00224  * connEtoC4:  (AddButton.action. --> AssertionBrowser.addButton_ActionEvents()V)
00225  */
00226 /* WARNING: THIS METHOD WILL BE REGENERATED. */
00227 private void connEtoC4() {
00228     try {
00229         // user code begin {1}
00230         // user code end
00231         this.addButton_ActionEvents();
00232         // user code begin {2}
00233         // user code end
00234     } catch (java.lang.Throwable ivjExc) {
00235         // user code begin {3}
00236         // user code end
00237         handleException(ivjExc);
00238     }
00239 }
00240 /**
00241  * connEtoM1:  (OkButton.action.actionPerformed(java.awt.event.ActionEvent) --> PredicateBrowser.setVisible(Z)V)
00242  * @param arg1 java.awt.event.ActionEvent
00243  */
00244 /* WARNING: THIS METHOD WILL BE REGENERATED. */
00245 private void connEtoM1(java.awt.event.ActionEvent arg1) {
00246     try {
00247         // user code begin {1}
00248         // user code end
00249         this.setVisible(false);
00250         // user code begin {2}
00251         // user code end
00252     } catch (java.lang.Throwable ivjExc) {
00253         // user code begin {3}
00254         // user code end
00255         handleException(ivjExc);
00256     }
00257 }
00258 /**
00259  * Comment
00260  */
00261 public void errorMessageButton_ActionEvents() {
00262     StringBuffer buffer = new StringBuffer();
00263     Assertion a = (Assertion) ((DefaultMutableTreeNode) getAssertionTree().getLastSelectedPathComponent()).getUserObject();
00264     for (Enumeration e = a.getExceptions().elements(); e.hasMoreElements();) {
00265         Exception ex = (Exception) e.nextElement();
00266         buffer.append(ex.getMessage() + "\n");
00267     }
00268     JOptionPane.showMessageDialog(this, buffer.toString(), "Information", JOptionPane.INFORMATION_MESSAGE);
00269 }
00270 /**
00271  * Return the AddButton property value.
00272  * @return javax.swing.JButton
00273  */
00274 /* WARNING: THIS METHOD WILL BE REGENERATED. */
00275 private javax.swing.JButton getAddButton() {
00276     if (ivjAddButton == null) {
00277         try {
00278             ivjAddButton = new javax.swing.JButton();
00279             ivjAddButton.setName("AddButton");
00280             ivjAddButton.setMnemonic('a');
00281             ivjAddButton.setText("Add to property");
00282             ivjAddButton.setBackground(new java.awt.Color(204,204,255));
00283             ivjAddButton.setEnabled(false);
00284             // user code begin {1}
00285             // user code end
00286         } catch (java.lang.Throwable ivjExc) {
00287             // user code begin {2}
00288             // user code end
00289             handleException(ivjExc);
00290         }
00291     }
00292     return ivjAddButton;
00293 }
00294 /**
00295  * Return the PredicateBrowserContentPane property value.
00296  * @return javax.swing.JPanel
00297  */
00298 /* WARNING: THIS METHOD WILL BE REGENERATED. */
00299 private javax.swing.JPanel getAssertionBrowserContentPane() {
00300     if (ivjAssertionBrowserContentPane == null) {
00301         try {
00302             ivjAssertionBrowserContentPane = new javax.swing.JPanel();
00303             ivjAssertionBrowserContentPane.setName("AssertionBrowserContentPane");
00304             ivjAssertionBrowserContentPane.setBorder(new javax.swing.border.EtchedBorder());
00305             ivjAssertionBrowserContentPane.setLayout(new java.awt.BorderLayout());
00306             ivjAssertionBrowserContentPane.setBackground(new java.awt.Color(204,204,255));
00307             getAssertionBrowserContentPane().add(getOkButton(), "South");
00308             getAssertionBrowserContentPane().add(getAssertionBrowserSplitPane(), "Center");
00309             // user code begin {1}
00310             // user code end
00311         } catch (java.lang.Throwable ivjExc) {
00312             // user code begin {2}
00313             // user code end
00314             handleException(ivjExc);
00315         }
00316     }
00317     return ivjAssertionBrowserContentPane;
00318 }
00319 /**
00320  * Return the PredicateBrowserSplitPane property value.
00321  * @return javax.swing.JSplitPane
00322  */
00323 /* WARNING: THIS METHOD WILL BE REGENERATED. */
00324 private javax.swing.JSplitPane getAssertionBrowserSplitPane() {
00325     if (ivjAssertionBrowserSplitPane == null) {
00326         try {
00327             ivjAssertionBrowserSplitPane = new javax.swing.JSplitPane(javax.swing.JSplitPane.HORIZONTAL_SPLIT);
00328             ivjAssertionBrowserSplitPane.setName("AssertionBrowserSplitPane");
00329             getAssertionBrowserSplitPane().add(getAssertionScrollPane(), "left");
00330             getAssertionBrowserSplitPane().add(getAssertionPanel(), "right");
00331             // user code begin {1}
00332             // user code end
00333         } catch (java.lang.Throwable ivjExc) {
00334             // user code begin {2}
00335             // user code end
00336             handleException(ivjExc);
00337         }
00338     }
00339     return ivjAssertionBrowserSplitPane;
00340 }
00341 /**
00342  * Return the PredicatePanel property value.
00343  * @return javax.swing.JPanel
00344  */
00345 /* WARNING: THIS METHOD WILL BE REGENERATED. */
00346 private javax.swing.JPanel getAssertionPanel() {
00347     if (ivjAssertionPanel == null) {
00348         try {
00349             ivjAssertionPanel = new javax.swing.JPanel();
00350             ivjAssertionPanel.setName("AssertionPanel");
00351             ivjAssertionPanel.setBorder(new javax.swing.border.EtchedBorder());
00352             ivjAssertionPanel.setLayout(new java.awt.GridBagLayout());
00353             ivjAssertionPanel.setBackground(new java.awt.Color(204,204,255));
00354 
00355             java.awt.GridBagConstraints constraintsNameLabel = new java.awt.GridBagConstraints();
00356             constraintsNameLabel.gridx = 0; constraintsNameLabel.gridy = 0;
00357             constraintsNameLabel.fill = java.awt.GridBagConstraints.BOTH;
00358             constraintsNameLabel.insets = new java.awt.Insets(10, 10, 0, 0);
00359             getAssertionPanel().add(getNameLabel(), constraintsNameLabel);
00360 
00361             java.awt.GridBagConstraints constraintsNameTextField = new java.awt.GridBagConstraints();
00362             constraintsNameTextField.gridx = 1; constraintsNameTextField.gridy = 0;
00363             constraintsNameTextField.gridwidth = 4;
00364             constraintsNameTextField.fill = java.awt.GridBagConstraints.HORIZONTAL;
00365             constraintsNameTextField.weightx = 1.0;
00366             constraintsNameTextField.insets = new java.awt.Insets(10, 10, 0, 10);
00367             getAssertionPanel().add(getNameTextField(), constraintsNameTextField);
00368 
00369             java.awt.GridBagConstraints constraintsTypeLabel = new java.awt.GridBagConstraints();
00370             constraintsTypeLabel.gridx = 0; constraintsTypeLabel.gridy = 1;
00371             constraintsTypeLabel.fill = java.awt.GridBagConstraints.BOTH;
00372             constraintsTypeLabel.insets = new java.awt.Insets(10, 10, 0, 0);
00373             getAssertionPanel().add(getTypeLabel(), constraintsTypeLabel);
00374 
00375             java.awt.GridBagConstraints constraintsTypeTextField = new java.awt.GridBagConstraints();
00376             constraintsTypeTextField.gridx = 1; constraintsTypeTextField.gridy = 1;
00377             constraintsTypeTextField.gridwidth = 4;
00378             constraintsTypeTextField.fill = java.awt.GridBagConstraints.HORIZONTAL;
00379             constraintsTypeTextField.weightx = 1.0;
00380             constraintsTypeTextField.insets = new java.awt.Insets(10, 10, 0, 10);
00381             getAssertionPanel().add(getTypeTextField(), constraintsTypeTextField);
00382 
00383             java.awt.GridBagConstraints constraintsConstraintLabel = new java.awt.GridBagConstraints();
00384             constraintsConstraintLabel.gridx = 0; constraintsConstraintLabel.gridy = 2;
00385             constraintsConstraintLabel.fill = java.awt.GridBagConstraints.BOTH;
00386             constraintsConstraintLabel.insets = new java.awt.Insets(10, 10, 0, 0);
00387             getAssertionPanel().add(getConstraintLabel(), constraintsConstraintLabel);
00388 
00389             java.awt.GridBagConstraints constraintsConstraintTextField = new java.awt.GridBagConstraints();
00390             constraintsConstraintTextField.gridx = 1; constraintsConstraintTextField.gridy = 2;
00391             constraintsConstraintTextField.gridwidth = 4;
00392             constraintsConstraintTextField.fill = java.awt.GridBagConstraints.HORIZONTAL;
00393             constraintsConstraintTextField.weightx = 1.0;
00394             constraintsConstraintTextField.insets = new java.awt.Insets(10, 10, 0, 10);
00395             getAssertionPanel().add(getConstraintTextField(), constraintsConstraintTextField);
00396 
00397             java.awt.GridBagConstraints constraintsDescriptionLabel = new java.awt.GridBagConstraints();
00398             constraintsDescriptionLabel.gridx = 0; constraintsDescriptionLabel.gridy = 3;
00399             constraintsDescriptionLabel.gridwidth = 5;
00400             constraintsDescriptionLabel.fill = java.awt.GridBagConstraints.BOTH;
00401             constraintsDescriptionLabel.insets = new java.awt.Insets(15, 10, 0, 10);
00402             getAssertionPanel().add(getDescriptionLabel(), constraintsDescriptionLabel);
00403 
00404             java.awt.GridBagConstraints constraintsDescriptionScrollPane = new java.awt.GridBagConstraints();
00405             constraintsDescriptionScrollPane.gridx = 0; constraintsDescriptionScrollPane.gridy = 4;
00406             constraintsDescriptionScrollPane.gridwidth = 5;
00407             constraintsDescriptionScrollPane.fill = java.awt.GridBagConstraints.BOTH;
00408             constraintsDescriptionScrollPane.weightx = 1.0;
00409             constraintsDescriptionScrollPane.weighty = 1.0;
00410             constraintsDescriptionScrollPane.insets = new java.awt.Insets(5, 10, 0, 10);
00411             getAssertionPanel().add(getDescriptionScrollPane(), constraintsDescriptionScrollPane);
00412 
00413             java.awt.GridBagConstraints constraintsGotoButton = new java.awt.GridBagConstraints();
00414             constraintsGotoButton.gridx = 2; constraintsGotoButton.gridy = 5;
00415             constraintsGotoButton.fill = java.awt.GridBagConstraints.HORIZONTAL;
00416             constraintsGotoButton.weightx = 1.0;
00417             constraintsGotoButton.insets = new java.awt.Insets(15, 10, 10, 10);
00418             getAssertionPanel().add(getGotoButton(), constraintsGotoButton);
00419 
00420             java.awt.GridBagConstraints constraintsErrorMessageButton = new java.awt.GridBagConstraints();
00421             constraintsErrorMessageButton.gridx = 4; constraintsErrorMessageButton.gridy = 5;
00422             constraintsErrorMessageButton.fill = java.awt.GridBagConstraints.BOTH;
00423             constraintsErrorMessageButton.weightx = 1.0;
00424             constraintsErrorMessageButton.insets = new java.awt.Insets(15, 0, 10, 10);
00425             getAssertionPanel().add(getErrorMessageButton(), constraintsErrorMessageButton);
00426 
00427             java.awt.GridBagConstraints constraintsAddButton = new java.awt.GridBagConstraints();
00428             constraintsAddButton.gridx = 0; constraintsAddButton.gridy = 5;
00429             constraintsAddButton.gridwidth = 2;
00430             constraintsAddButton.fill = java.awt.GridBagConstraints.HORIZONTAL;
00431             constraintsAddButton.weightx = 1.0;
00432             constraintsAddButton.insets = new java.awt.Insets(15, 10, 10, 0);
00433             getAssertionPanel().add(getAddButton(), constraintsAddButton);
00434             // user code begin {1}
00435             // user code end
00436         } catch (java.lang.Throwable ivjExc) {
00437             // user code begin {2}
00438             // user code end
00439             handleException(ivjExc);
00440         }
00441     }
00442     return ivjAssertionPanel;
00443 }
00444 /**
00445  * Return the PredicateScrollPane property value.
00446  * @return javax.swing.JScrollPane
00447  */
00448 /* WARNING: THIS METHOD WILL BE REGENERATED. */
00449 private javax.swing.JScrollPane getAssertionScrollPane() {
00450     if (ivjAssertionScrollPane == null) {
00451         try {
00452             ivjAssertionScrollPane = new javax.swing.JScrollPane();
00453             ivjAssertionScrollPane.setName("AssertionScrollPane");
00454             ivjAssertionScrollPane.setBorder(BorderFactory.createLoweredBevelBorder());
00455             getAssertionScrollPane().setViewportView(getAssertionTree());
00456             // user code begin {1}
00457             // user code end
00458         } catch (java.lang.Throwable ivjExc) {
00459             // user code begin {2}
00460             // user code end
00461             handleException(ivjExc);
00462         }
00463     }
00464     return ivjAssertionScrollPane;
00465 }
00466 /**
00467  * Return the PredicateTree property value.
00468  * @return javax.swing.JTree
00469  */
00470 /* WARNING: THIS METHOD WILL BE REGENERATED. */
00471 private javax.swing.JTree getAssertionTree() {
00472     if (ivjAssertionTree == null) {
00473         try {
00474             ivjAssertionTree = new javax.swing.JTree();
00475             ivjAssertionTree.setName("AssertionTree");
00476             ivjAssertionTree.setBackground(new java.awt.Color(204,204,204));
00477             ivjAssertionTree.setBounds(0, 0, 526, 299);
00478             // user code begin {1}
00479             ivjAssertionTree.setUI(new javax.swing.plaf.metal.MetalTreeUI() {
00480                 public javax.swing.plaf.metal.MetalTreeUI setAngledColor() {
00481                     setHashColor(Color.black);
00482                     return this;
00483                 }
00484             }.setAngledColor());
00485             ivjAssertionTree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
00486             ivjAssertionTree.setCellRenderer(new DefaultTreeCellRenderer() {
00487                 public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) {
00488                     super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
00489                     setIcon(null);
00490                     Object o = ((DefaultMutableTreeNode) value).getUserObject();
00491                     if (o instanceof AssertionSet) {
00492                         setText(((AssertionSet) o).getName().toString());
00493                     } else if (o instanceof Assertion) {
00494                         Assertion a = (Assertion) o;
00495                         setText(a.getName().getLastIdentifier());
00496                         if (!a.isValid())
00497                             setIcon(IconLibrary.errorIcon);
00498                     }
00499                     return this;
00500                 }
00501             });
00502             ((DefaultTreeCellRenderer) ivjAssertionTree.getCellRenderer()).setBackgroundNonSelectionColor(new Color(204, 204, 204));
00503             ivjAssertionTree.putClientProperty("JTree.lineStyle", "Angled");
00504             // user code end
00505         } catch (java.lang.Throwable ivjExc) {
00506             // user code begin {2}
00507             // user code end
00508             handleException(ivjExc);
00509         }
00510     }
00511     return ivjAssertionTree;
00512 }
00513 /**
00514  * 
00515  */
00516 /* WARNING: THIS METHOD WILL BE REGENERATED. */
00517 private static void getBuilderData() {
00518 /*V1.1
00519 **start of data**
00520     D0CB838494G88G88GD58429A8GGGGGGGGGGGG8CGGGE2F5E9ECE4E5F2A0E4E1F4E135DD8DDCD4D55A17184AAD5A342830ACA951ACA9B1292C282C5844DD6AF5DBF7575FAE3D6B6E3A1B3FDDEBE9234D5E652D4B17222260C64917B9AA6AD004DF08042820FC0C00C2C1CA653EB1B297989DE646190B8CAE627B1CF36EF3664E1DBBFC389B3F5F631D73BF67B967F91E731C2F671E99056C4D21E9C94959021014A648FF871284E159F9C1387970437FC0ECC9D7C01220785B8234C178784BD4
00521     F846C3DE7CCF831232045F1426C3BA35BBA0A9716500240D707983E1E96972EE7860271DE8483B79FFA72E9D3E1D280F301DD5B45D3CBA831E6B0152212DE2A0F7B7E93FFBF50E0C37C0FA3D7C19D0D232A0947610B23F7ABCC701C74965D640B38372D3AD244CB52B8B64FCABE0BA20F9C00BFAD8596570DCCD253B50DC0E75244F904C7FD82BDBC75AD2540F54E4E13C8E79A9ACF9A41098A2C5583029841E15AD673B8F0B663E12732E3E12CE0B2B642C49E6961D261233FD160A0A9627E836F41AA47128535E
00522     6F921D40CE6594AA52E99D02B0835256F384F3D7905B944267CA2036F3A86B9BA7AAE5D9BADEFFD450BF136DD75608F3CC46C567BC32D66EBD182CBBCF6A1FC9EDCF7832A15D844474D819BC329E55AE90DE3258EDAABD5EDA0DFA441CC7BD42CBC9BB02B5A0A987E83795F157FE029BA15D81643622FE3FBB027AD9FB1E9016E6666AB27D68B7414A741AEB7568E7ACBE181CCBFD4B18C37CA301345B8B3E85548264G1AG14CFFDBAE563A7702CBEAB9D3377765AED558E47D12B59F942EE962D709974BCAB49
00523     5817E2275DE996846637E995459A72A04D687576D9C2CC3753827AD9C87243027B7DED3AB48D5DEA6A5E8D0C126BD8586B512D40C66C16FE1058AD9E70A4AA0BA0B0BC17629DB68F4E7AF9087A91C987C1DE0E9D6D9CECC0D9B2EE8993A657276AD6E94852F23FDE97E6E7B2C459BD32B09BEF4DA3B6DE86F82AA3A029G2894288DC8F2200DCFEC5CB7120D0F5BA451E9B3D9DB7B4EBACCCE69E81F458A3EA65BFA766A61EC2DC50C6F59B173B13B4C58276C2395F726EB5A45B1B9DBB741416CB14361318BEBFB
00524     055F36E39C3E3E311E77211E0E09B8876B43940EFFC271658A1C756DA3F4EC11F4A264F5DC00BE2065DF236523AF3072EBF9BDEFD3FC2982E7758CD01C24D31D81C9BDC02CFF67651379B396524B008497788FD0B9D09BD00F8B7BB8E4632ED10E2396C57FB25EAFF2BE022768161C2663B617E432F50A27CCCE0B692CD5F489F219EFF208DD4FFA71FDC747F7A734D1AF5AE0E6A2539154EE6A954119DC2CCCCF8E717BCE27C8F35BAC3DA2B4506B9030DEC74E8770341ADC52D78EB3CC4B1E92AC5F1DC3FC6222
00525     6994548895406739AEE22F82BADF0F074FE1AE34556B8584CB04F43604F6F9AB07AC3C0D605C223522224652C944B0B98750C7579F544353G65C300043E00A4B3D08C506E0B81C921C08997793C5F0EFE39628F8F8BB13727E97AA51DBF7A190F1D69D77B65E65A1E8E70B020E82025C0296E0024C2209AA0339B57E6DD45B8622FFD3E7ECAE4D3E302C6B9C2899AE515E4D671054A6509BD08DD18AC77D3D956EA702F5340D679E9EB43B0F26078D726B365E71ABC46D8BFFF7BB199ABBA30D3A850BCB776F5C9
00526     2E1E0D0123A61708DE5F6C8407954D1E1EE7E5BF4DA3F50B97C51BD4A3BAC4D8D9ED12CB76393DF92BBD63214B4EFD351C62E4FEBC868E6B6278613C8D8C07BA14238B736BE83EC9121C1633FD1258AACA1245566D61BFC9E5F1F9CD3DAED957FFEEA63AAE869D63010481547517F99FA87C3A49EEBF5F67E8A3A3D69E9F19EB48D848067245835807BB76133DDF8BCF6F26E9CF7E5C5276917A07700EE5BE77DD93FEBAE29BA9D7D93F270D57774366180E4BB459E7D6493E45727FCE732D20CBB0D09450D2200C
00527     CBE807AB7B5B854F38CED3708F57F66E18E48C21ED24A85AA075EB0D2F510CABB5B19F79F13EFF9F7FE93E360F7FB2DF5B47DF4D9F5E077F102F6543ACEFF9BE514F5EEFD30C09B773493C5CE93759C4BAB0B90BBC565FE8A3FAD8EC966934455CADCA2D16CBA24C271708EF6F23F3FFA9FCB6DE423939FF9B4E4D66D38F883B7F79F620563EEE421B1BF42117188FC7DE724C4DCC263F961031A6DA45DEB054B1FB1FCDE2788A3A2E4838AB05E26D2BBA6129B7B41FBF5AA7C9F6DB31092AD1429EAD22334B6E6C
00528     954D06F3260B2692D33FD4C23B21241AE657124FC57A4FBEBB2CD71FC70ADD22F44A623240C8B6FCD3F42AE837405A3BF743B734BDDE3E4DA90A45927C538A02313635ABF4A8B93EEBD3F2D0B9DC86E8E60FA037232FBBC55B29F5BA6D4E93224BE56A963DB554EEC574A97FDD352A0D3D58460D6923EAC3FD4499D39B0FE5FFCB5B6015783317CFABA6A507DFFB6D155BF9F47BFF468FFC44706387BBB75751766A6D12FDB4B66B6665FCEC358FEDF5F3C58D331559BC1AAACDD84C2746D236E6CD5013F1348846
00529     57B2A061DF38E6C91BC8BE2ED97242FC4CEE152D8BF96D7FA2637B7441EC45184D79970BCB2C677901DE7921F27EF2F8327C54CA2DFCE190732F554C4F6679AB8FE9659BF87E75070617EF0EA6FFA567AFBD2C155FB208F6B2FD1CC566D271C21F88DBF13228B70A83381F7E789F2A3CD3A6EB1FE71F6E78182CA1D645FE00611D1B3567B64BE63287B84F6B6F5D3CD2A07BEDD6A71B0BA3CC24CE0753528B5BA732411163BFBB56A863BFE6101F440A4643F3B290732D466DC497358F99AF937E5DE5989B0A0472
00530     31C04B8759FE2578B233E75690A917404B85839E8E94FB193535442B5CC387305C99C8CBC041C32CDC441032DCCFB916DB826995C0B9D7D83962AB4AF2DBBE47F2ED00DB010264F221F23918AB24DC830F9D6D621809E2FF0185FBC1AA1EEBCFE4A9E3DCE7E6E7EB469E88E50CE3756B47294F7BBF5AC26A2D823CE59C7A4BEB1B15FBC130353D53C20FDBF25F5F2ED72EDF8C3BCB3F861EDD96278B4E7EE6510D7EF32F1E48CA4EE3B2AC7BC0CB3DD68C2156EC116CCE5CEA9F6B27D341B13E281F32087D326EF7
00531     6ED5464C86AB5F89DC6BC7F7332C33CE217B32520349CC0E191F9E9A2D9CED76E3F0B4B542D0D0C9043132A78FE23FC5C3DB8CBBD809D8A24722B8D69A005821C308D9B976A70E05F16C7CE1446282B03E77AE0D5950789ED9965CA52EFE58CBD5D4B4541133B3631BC0776FE43F17FD8D466B7EA7030C61A6C81B018601D86C606BB20CC1848396FB8D4EB3DF9B1473CCEAA078B7D0CBA00E4DF9E530DC8AE3DF3050A75652FA3D97AA74755FFDD4A5379BDE93A1AC3CED0BE68CB16B993D4E9C487AB9A8D091C3
00532     7CDBD77299A0265F268399329FAE02B299BA546F0613EA7DEAA02FC7077A698E2C7268A74BFC17EDAB998BA36EA4D08F21C529C77B1AB51AFA449ECF518D6A187CE1BA0F9E712F4DCB0E3B8F633D3F60FA44C399433528479F8714FAF4G2E831AF1AD6AF1281C605EFB976C03A7AA8A090E235833B099A616238CD1D0FF8217617085ADDB96DF07B22CA87735652C56BCF87A5FE1E0EC2B61F3EC338A6AF3DF07ED7EF729D61B913C4D591F7B36E97D164C03FE37A0820F736E751AEBDF5D6BF72E0D3E0E755762
00533     6B54F36D3B5B4898CCGBC7DFA1CEB8B3610F3904E35DF020DCD36EED8E57919EB8B119D56D3B97D729652AEDDCF850CDF14EDA7FA97C01D65C0ADC0BDC063F99BDFED9DB1DEDB6B9EA6DE7B6C413144DDE7DC0F675E2A4A3170C5F13E6746443710739DBDB4963E251C6FAFE362DB41799C07474217B19E79EEDBC378746335E39F25AA5CB89EE34036F5446F4F0CD747125D94370ED7471205F5B80F8FC25E925E7EF7E5A349DD7383EF9998DF6F08FCBDAABEB646B2DB091FEA2CCFEC4C89787EEF56BA657EEF
00534     5C8F585EAD8C1EF3FF006B5F848399C3E4CCAE7C8146E903F610FDD57A8D81C905C015C06DC003C0A1C0D1B760B8183A7560086300AD74EC96B8260EA648F658F6C0ED07389B3C7556365F9E9F3E9235EF296AE1F6F9A5C7ED172C9B8312CA010CB722DD1EBBC96CC276C09DB722DDD28C44AEA1100E840A85DA86149184EB85D0D3905AA5E12B569EC84BAE3E9BA0CFEC126998F71536795308363186E979D6C45BC6ED5FA20B16EC3FD43752FE3AA0E63F88F8C687217DB6DDCA176B0C8B42F1F2C7795569B24D
00535     07CF2DCB76CD5EFCCC063E8B580745B7218CAD1FDF1D8C7F67432716412CA943077BD106411B500F0E9591AC925251B7214FFC310D4469F15DEA31DBEC1200EB56FB5B48194F6E34F4DBEC082594922C536E24C1BBB94E3D5DFFBC31F63BF6BC31F13BF6BC710B6D43474C3F5E6EAF5E48625B3F20FB77C520DFBC9043CED7A2167AC34496F3AC07E3DF9FC22C18E3AB8FA3D645316BB9564631F03AAF6F01F49047D25692AC1424B9F6CD864162A09D7FC3748DE99DB9EBA7727490CD13BDB9CB2FDCB7D2ECDCCD
00536     242E5116155FBF0D390D314463B751722FC99F8A9A315D13F03891B066F4FB59EA39CC2DE4BF31C74079612DA2BFE7239693F8AE73795756611AD2F8B31E0D6E5BC957DAC8CBC0C1B773355B209ED7E110B797A896E8494D3E76134F4CBB7C7B7A5DBB34FDFD6A8EB246DC76BEE72728766787F76470BC4FECFCDC92FB09D9D819B914DFB2B93BC51F7170A465E7F97E78DF5861EF4C30FED970D1A69DF3F0D8F051852246A419647E78660022BF0E11F3A11B0B5FEBD54E4589B733B3E4410400245D93F0AEDE13
00537     0B7DE11C007DB130157447B8C807GC5CC407EF871243ABFE2A0AF8EA89EA8F5A20C53095EFD42F4DBE7705F9F59866D7E48B3786F0FAD06117B6393037F7E58E39839BFAA8C7E7A03597C03F2254DBDE3203BF6137698E86DF45A2DD6B292841C7FAB5D388E96CFC45B6F99A036B7C3FA90A8F8A25AFE6BA5FF7B41F0A8B3EF226FD8E0F23E6CA567BEBE17DC3A202EEF9154318CA891A86B96585F5D62DDA72B6F7A4F157515727A72762B6BAB877EA6208EA089E87CADDA3EE1ACA27BE8B7CFB75174G3727D8
00538     3D1E77D52D4DACAFFEACCE77BADDC77ECB9EA38C3351B5E397B05F150C58DFA8B69BA66C2FD290F350F5E4G9A5B46F9B751B5E3BB14B94D4B5DC33159C98CE3B6F8E18D19A34DE217294F8ACB235DA5B6BB64AB94440E375073719A6C5B4937E06CE8F6BFD96B3B1C26DEF009D60758A9045FCA4A662D45F11A8369E220A6A0ABD0502DF81E1E14C16A10AC92BD2FA65CCA6E87F6111025AC1350C16C270E5502F7CBF411862FE37D34FC1D321F4A03212DE056AF9D701402FD7D081DFBBEB2903F9C9F4C4EBDE9
00539     9C5FC271498A1C1D07E66C4438C18464E55F4657E0FA26F0C3BA08E3EFD3AC9452919C7B066E0322A03D08E3F3DAF12DDEF69B5A742E1282BF634DE135D04559D8ABEB43D8DE766DB856CE7453189C244DC0033763D84B4CD55AA8987099374BF738603970F6FFB67AEC9B3D9FF4BB3345C60ED7D33C608E8F4EECF4054E33A45D86F9D9A128672B74FC918B69A59C5B51CC639910CE1D04580D944B023401E30D7B50C6159C3B1E5EC78D02F468A454315A2D54B1F21237CEB1137C69B80D4ECFF113546762D994
00540     DFBEC9FDAEBEB0406FD8C1DE471DA85367748C908D69B80E5D3691E50F6758448B68AF59F7A176EDBF7A0B01E3D17D68AF259CBB540F7599B9D6F292ED914231BDF49F9E8E69F99C3BC431C510DE4A315FD0AC9E526913911B4A6DDD403196EAEFAB2447CD46717BB60DC3A8DC34643445E636774388A53736A4D7C94D71561666565A6F1ACFFEF72C89BE30D858EF85E5ACCC187C295FD8D870E479BE1D7CDC715697014C772B689E1770AC013C1C3B89963BD6993FA3B2CEC9E66796167F1ED7BED98B0B84E57E
00541     6E8CE5BE11F5DB2AB27F2CD7FE1A021F6975693778CE212D6CC941501964779EEE475D72BB8579997646970191F14713D9BD3B4A1576097C5FF782137C5493A573475C6D09954AE70075746E99117B9E6C4372ACFACF8152C60EBD3E81FD4C4AB147CE6C7FF1776058AA2073D998A943311D94A36F4948F918E18F6F545A4F931E316C715594A67333B666EB361176EF540F7E6259933CC0F56B35093DF61B25132DFF3F2258EF08196F41B110D1C44ECC92EC76587A3501EC1BF01F32013C53BAEB6ABC5F6D3477
00542     594C380E8652F5A09E6AC8842A1CC2309F376A07114DB0C5297F1FAF8E97C753CD71B74FBDC7570610A96A75AE166261D3546BDDEBBF2EF773A02FB0144F5B3968DB63B9961A073E954E313C82742D059C5B3E99FDEBE9A87A4C3EEDC41F2CFBE16E832A81BA8364868A860A84DA8814G14F19F6CA56EC33EFA4AD783E9B3108EA88CA89AE8A9D06AD410F9AAFB1FCA5E511277250C6F5A2D919AF6F34BEDAB5BA1ED2F17E53B9A1FB248FC4132CEA315DFB8CC99A6FB24266CEB65FC725E156C63487A0BF7952F
00543     767E9A0EA7B2070DF457EC3DB07CDDCAB69E92CE7A0E2935F43D7F8910F1AAFF3F546CBD265ED30C297B1A35475413341EF628438C34F8AA1D2F7755486DCF182AFD7FFE2DDCAFFDC78AE56682FDA827E327327110445B2EBDC9ECAC5A48B586335CEEC4A92EC37AB07471F6B70E0FD20E0539516FEB42508FE78E90BD9DBC7DA8CD13FB82ACFDE8E02C3191A4D267C8E5D89B272E3A0D51789533DB4BA56DBE6B217B25A010B584081D9B42B76239A19A3045C0AB00F22685A4158349FDFD814FC86D00B19F79BB
00544     899148757E016E11FAA0CF1A063E50560F3E90BA4D57B6E9AADF0804B2B15318AF50186EB40FAF30B64E1C44FEDFB68D7D56385F573F3F23588B449FF839097B3D7DFB49BE0FFF7FED3F362D561711FAB22603AD2623CECFF27F2E196E2B935E67473B4A6DD046BA5D23533869EA7F6EAE75756FA16E5FC153B11EFB9345C2A19DB59D6339B3F7FD8A4FD326F33EB7A0GECF15A61B4A98DB0145E90127DEF6A5A2B7BCE462AB65CEB854F1AA634B72D70FBFFA3CE36CD227C5C3D640BC072E43A3C331F78DB717D
00545     30A78232826900C200A26EC75D7E3A0B48C85EE200785512E46A6C21B7D77065863944610149A118551DF700C8AA5F555E3D5D1FFD20068658C3B71FBDA7F6CAED26EE5E9FF96BC94C7B2C5DC983BD15B3683EFEBD9F9FA0DF9CD0966005B3D89C0C71B5E791BE2BE9405EA7A1DFD7967269A0BD99A89AE8314C477A7A0FF4AF988FD8A2106181FA4E5A1923E1D36F713D311670610DC306851A098D54E7F7FE00653CEF9A48F327FD27FC7EFF305CB396E634EE0627CD6C57734B9F476CD63B5330F7F7E9B1257D
00546     7B0B64322F35921FEE850DFB380F143851C71657078B31D211EE039F9FF1BC40FCE372831EFDB4F93239BB191F3996BE00F373FC0AA5C23A60C144DE219839ABC16E8DB06C6B7E2B1DDF574B752BB1521E779C6E7C375A501A4715FBE966BF4D396887658FB23FEB012779C126ABAB33A08F4B8C829E8C948534D0AE43FC6C985D93AE83AC8148B813468CB76BE5BE7DCCDFFDCBE50C7573BD6924EFC9CC3349F4D634F2BC3FF21D0C37413CDAE7912DE61EF75FD94253B660D071BC5438CE46FDF99AEA497E091E
00547     E41DA60BCDE21CAC6F56028F3C72BC5CACBF32065CB12C91DD1DCE0B03F8BFE5E6F9B50E8F3D733CE2282CCC4F963286F8EE54A23E40C16EDA7A5ED2467C8374FC4DEF4D8AF87F731AED4AF36B04192CBFA2E7623D17EA23B2BFC64E0F6779179A3478D343B1FFCE1D96FF8E4F3F2BCA0B3F18679F2E54622F6279E70EE87137C1BEFBA710F3C57DFE165E3B027C41F01C9337B653F9C644F96607958237F7553E514CB3AC6EF06BBE0C0186C35D1B853667A6987B0BBF620B7158A639BEA04FCD85AE655CE4FE7A
00548     839D0959EA4DCD31614C7F8B9E724CCD7A134FA7B359671792D93ACCD697711F718F9199835CE4FF5176900E2F275CB83EE29F729DDFCB9ED20E2F3F1612B161F5CB1D4BBF3D52E3339BB60EE4335D25E833D7B6224D629F42D84D1A9CF52C6634D72C26B2C79D2BA13671645BF254311ACDDE311A509CF52C8679197C277B29BFF423BFCCB96451EDEF7F687D615AFE544D7070D87D217F3027CD57C9E5BFB26C62FEAA2389E50CBC62A99FB2861F7DB377590EB14B98D465E973B6AFDFE37B1ADBCA09FD79BBA5
00549     36351373A6517BF464BBB3961355F2093ECCE8050236EE36BFBAD3CD72C3C026C82045C04B0104D9386F5A341F5C0DA45F94755DF3551A3BC50CB3E2FBC2197FF7F22B4AC67ECEE9D6995DFB5BE1726CA575A37ED199D9E7A53B03028C4B276F0B1D166E9E09954577F8F41FEE953BA84C62A8191998AFAEG5D5AE6E11CBFCDCF76046AB8FF895B70D5D454CA1DBD2279283C7D137B72F4A65F0F4F42187F35347EE8C84781A54C426FA0DDCA41B9A63168B1417A47824DF8E441DDEBF59991725EB842B3471CA9
00550     46FB22BF4C425F8530C2FED8844A7F4712FC257C4489ABAA183CCDEC7349E47EC5964A9C9701B227EEA0F5E64F06F5G28E6B61E63B20FF97CCD5CB99A9FE73A3EDC261CCF097C7EE22FE7E6B39D474D765E6BB11FBCD2230767BC480B83929E01798A28982886289D4871887A679B6586417F1907994233CBE0F13E5CFE3D06CCC8C10FA86762B95B491864F331E227407213F72DD766539B89983B6B4FC51F8B05BA97BF026F461F4D453E481A03FD71BAADEB04F48710FB8E5E63FEB38F7BFD82E0B1F3305F77
00551     F4F83D1FE27DDE6F34180F1A3AD9473336BE4F473604C8EC2BBB1F54D98E6996201EC86C7727EBBD7D1E37F974F31BF9B34EED63A2F12DBF3BB58D4726006B6D658C25FF4C0D4A75FB96189B497AE0E92437FF4877C13A7C5C8721FBBCA653935B702EFC4123E8336D86BF6F74786611713A0D485B76A876596C864402B87627BA4422B976CA95E2099C6B2BC42C74B144EEBD021815E3ADD778F7859E433E1AFD193E9703F482D04663F826895927BC339782DE7E787071A6B6367EDAC76295CDD03687A888A88C
00552     E8AE50C22025C0AB00B266423E8E28922885488C64869A8FB499A8E2AE0FB99CAC9AE67C498E6999005C3F6EF013F14B46E71D2993F886CA68AF8208CD76FE729D30233006D8D93E2108794F78FD4AF7B2CB0BD2F5A9FE7CA7FA2E7C9BABF3556F2CFE4F6FC624BE013E1ACFE3FEE43DE0367D65C625EDAB21DC4B93435B16715D502F64B3830FFBD4FC71DEFD9984BC21A370B15B1B2B7D2F35672BC7DEEB25EA7A9DA0D8A349790BE18355745EDFD717CB64EB7AD0F596470E3BDA6CAE8B196A186C9FE60E94BB
00553     0AD469A25F3F9D116FE3CDDB1D9911CFCD6C7D4A3BF4FDDE7804A75E4670E43A2E46A9F0B66F5E1809736EB248EBFA9263EEBFB51239A7825231C0CB0192018A1E027177940E098F0E6E96C6380B5BE6F7B49187D7DCF3E47A85E7DD5D6F2A5CF715FC3F9EB31FFCDF1D6E9D1A1ED25BB300626DCF296D39E6835A538CF9B1CF21BDBFED20313FA8B8A781D901F4C0A1C091D1E84FD374FE113FB966CB3B1D0633481D9418E2144B3D6C3F8DB57E474997B523781D139A6DBDE9C70D6F1ED42C515E131E2FD16EC9
00554     656FE54A75BA79C5C806DF2CA17BA696BBBCE132193A695E134DD5E57DE4FC9E9349EF73E09FDE4E3D3AB1F86308FC5AE3B0FAC4BEED1FB1513DCCF4145AE74ED1FCE1145AE75E4AC51F09033C2A27F16DFBA76F6AFCBDAD7F6A788E0F190F6975EB3A4F8AFBDA2D6FD20AC7BC2D5637B79F750D02BC7DB3286F2E2D4A76F50007BCB31A357E3AC6BDBC4321EC8C50F22054E7E1AF8D349B2886684C33B846126B06FBF740E3460A3145E4FBE61B16ED5C4F4A5F5F03E76833DA3EF75968F5CFC8D5A68652F11AFC
00555     0FB5E83597AF17CD1D877A4D53627BCB1D122FD8D5268A52ED1AFC3F2C52EA2FC7AEBB884F891AFC173C3E7F9426AAB39752311AFCA1C7345ADBA217CD00E77AF3DAFCDFDD994EC78B1E737597660B5B07084F6DFECEFD6FEA97452B1ED35F3BFA7CB21EE9DAA0AF72B9FC37BA0B46B7F21EE7659996C9315DB2467CECE53D7F39F8DD7D48F371C7755AF3F1C13D6FDC3C25DEFBAE5ED96FBB97975713BDE1B76CD75BF939BD9C7B1AE3E534CE021D361869FB8E06D7D23988EE9459210761C729DC7D94EB1731FA
00556     8576B55ECF2DA773BA285CE3675F2D78221E6CCB3BACD62B7C9DC0DA46E203ED18E7ED22B2DA9CA6055C5FF10C484D660239CD242E26677939391E44F57C0DF7729DA196A5C27FDA66F52F2F836A111E9FFE8EE2BE7046C6748B929BE458DB9B51AFC83C11E177767B7A4F74FE257FB0ECD529EF390CD2E5B9F62FFD5E876B282D2C96B2E951DFA363E365FD6202726774AC4F6709197F4EBB1C512DA58FFE2FED303E7D15517F987B2DD17BDE7CEBC66D6F643CEE9C7EB7FE5EB67A7F0D1FC42372B7FE646F37EC
00557     70587BFA45672C8D5F3F6D0B3E57B6184E258D7EEDFF30E164792D26C1FBFEEBE8701D5F1A9B3467372F9A14739B533DBB4FE3EB0762733B395F3F5D7F11777D37715BFC0FCEFFD2FCF665FF7FED87FD2FED30B92EEEAB4EFB2694449A37623C774FE46C7B090D7E7DAF24F1E47F3B37D15B7F6EEF74753F70C6ED7FFB2451F7FDFD1C566B943BADF61B722C73F42356D907697773EDF89FFB7C73384FA8AB44FBG419CCB25770016C2BA11E341C6FE77768544169811D74F310F69D8F1C0DA4731179A305D900E
00558     15B4A2EF98476A6B305D840E2D2C47F65323917B329EF9F3B8D6D3056D76F06C0DAAECF710E34D5548BB1EE32F9C44F697F3ECE2A5363B1CE32FD6A2EFA247520EE03BCDBF62FB37A358EE8747322A10574A3170A1ECB70AE356AB7CDE460F703C72699059EB68DF4474FE1A2E626927AF374B795F5F187C45E565EF697D27094513CDBB48DED8FE37C637038CAFF02F7360389D147DBD2A096C61DC725E0A5970FDB70E6DB43EC7CA9DD00EED961F7F59890084F66F6CC4A15EBB6B50302372CE99219845DDBA12
00559     16DED45FBB4BBFC9FF7B478EA3546B4E5BBEBA3646C179A0A076EE7BE9A3694F7097718E5CBBC614E50906AC9823DDADFFCEF8517BDEDF7AFC35AC7B9BD8DC52A2112909495154006FB13267637B0A19A7BD7628EDC4998C73356D11A27837C725C286561E238E75B64EC73DF7517DF84FFC545BD20FEDCE56E8935BC23DA366FB6B9D6D53E6EF956A38106B183B5523E3D7B53637540F0EE902FF9DD7783477770328E3EA8C6A78E4A55131B086F5CC2844B65BE334F5445F29243FFB94632D633898F51BA5C778
00560     3B53985471CD050EBB2B789DD10D76889F995FF8CFD42DE324CFFBBF9FC29D67F11D822FF0FF75530672DEF28214C9DF60E923E0015ADFFF5BCB5E91AA6E931177C955CE51A45F7D699AD25E03B0ACE0F762DB9660FB1F21C2FCA7E1DE00B6D9C02E2248637E8D72F3BEF2DBBB69BDA16FF7F2A5E72D264E73AC7FE746313CD7E16D9B0EE37B1397E85FCDE0F23C385DA3C7E703729E822B67E2A35633086BF14F8E8F4F243A61E52F2D9F3B6CF756E31B99BF9ECE76EBF6FA6450D5794AFEC7B556D373E3147D9B
00561     03072730F2F85997D60EDD766D07304D41E1E55FDB64112376082F6C6DD5D8CFA417FD4DA79E1E77067C494E78A32FA07FF2BFF27817EDA7899B4A734ECB173D6EA2F83FDF25630135F7B79D13743B7ABF41BDC1E021B23EF086F047CFC6736E6C3363DE31D1608999955F3F9A15FC6140B3EFD4FCD36A15FC0B00E7592878A6D7AB799201A7ABF6B4FC1FF87D2ED1A170140F0A6F1FDEF14BA6606998955F93DEF1C489F8460F0A6F3EA1A55FE485CF84FC0E86DA2C2A076DF36EAC740D67CCA9740D7B549C77AD
00562     F77C38EF39DB9AFD4B5D5168DB6E31FA5FF2CF557B161BD36DDBEEEE35EF396AC33E656A8E7916132AFC4B8DD47916DBF845375C4F2F7816FBE2086F7BE3799E1F16A35F79CA64580BF65C27E73D0458EB8EBC8B143E046B7F6F68DE5D78925E95AE21F58D127C17707BA12F5A712EE7A4E0B1C04B0052DF8EC8B23C0CFCD997F01DB73E4CFFAFEEE8ACF3A41BDF74442D64F96CA97B686FBB26B8307DB3AF63FD47BD8E75FD47B78565FD45CE4770779DEFF3286FBBD6A7A97367BB063F6F387302F26E16630F0E
00563     313EDBE27F6F4F3616BF4039A07CF5A1CD92B6706BC7FA790E3FA4A4B71F17048FDBFB6C7DFAFAD9D9AF5FD6B6380AA4A1135CEB565708DD740CE23781D2EDB66B81F348DF92F1B905755EC6CE1A36B1B06B66FDFD49424ABAE1A5A86168B19D9752682F58B589491DAEC948EFA2AC3B00E5D7A7E159C599DB9D26CE716037426AAEE777D9DA9C247B366EDB280426AE88C3422AA6E10D54C3DF6142D2A1899BBDB5351017CDF246C1B779CFA20477E3E35FF7401F0B3026F9A1CEA1130BFD1C864A17DC5CD71172
00564     7B29A949C26AF1E1A58BEC9C97D2C9F4824427410B63C20AE4F7503A49A1C8101F19DE75477AE911A0EBE50EB51A1C5A6504E14AF9A11210C682A69570A457B460395673968ED2990A0DE785EFC6D0AA2328148CF825B802C224B543F07FE74BFA0C24C653FC0DAE607D3128DA657D1F020435FE3F33DE7A8ADBEB0C2F28FF3F71C37ADB8FBA40C3DF41F7A162171F897E3F97545AEB32DAA51375FC354DCC3EA3F4F4C092BD716F3CD6D23F8B4B4819727B27D6A277B9854F7F83D0CB8788DD77B86571A2GG90
00565     ECGGD0CB818294G94G88G88GD58429A8DD77B86571A2GG90ECGG8CGGGGGGGGGGGGGGGGGE2F5E9ECE4E5F2A0E4E1F4E1D0CB8586GGGG81G81GBAGGGABA3GGGG
00566 **end of data**/
00567 }
00568 /**
00569  * Return the ConstraintLabel property value.
00570  * @return javax.swing.JLabel
00571  */
00572 /* WARNING: THIS METHOD WILL BE REGENERATED. */
00573 private javax.swing.JLabel getConstraintLabel() {
00574     if (ivjConstraintLabel == null) {
00575         try {
00576             ivjConstraintLabel = new javax.swing.JLabel();
00577             ivjConstraintLabel.setName("ConstraintLabel");
00578             ivjConstraintLabel.setText("Constraint:");
00579             ivjConstraintLabel.setForeground(java.awt.Color.black);
00580             // user code begin {1}
00581             // user code end
00582         } catch (java.lang.Throwable ivjExc) {
00583             // user code begin {2}
00584             // user code end
00585             handleException(ivjExc);
00586         }
00587     }
00588     return ivjConstraintLabel;
00589 }
00590 /**
00591  * Return the ConstraintTextField property value.
00592  * @return javax.swing.JTextField
00593  */
00594 /* WARNING: THIS METHOD WILL BE REGENERATED. */
00595 private javax.swing.JTextField getConstraintTextField() {
00596     if (ivjConstraintTextField == null) {
00597         try {
00598             ivjConstraintTextField = new javax.swing.JTextField();
00599             ivjConstraintTextField.setName("ConstraintTextField");
00600             ivjConstraintTextField.setBorder(BorderFactory.createLoweredBevelBorder());
00601             ivjConstraintTextField.setEditable(false);
00602             // user code begin {1}
00603             // user code end
00604         } catch (java.lang.Throwable ivjExc) {
00605             // user code begin {2}
00606             // user code end
00607             handleException(ivjExc);
00608         }
00609     }
00610     return ivjConstraintTextField;
00611 }
00612 /**
00613  * Return the DescriptionLabel property value.
00614  * @return javax.swing.JLabel
00615  */
00616 /* WARNING: THIS METHOD WILL BE REGENERATED. */
00617 private javax.swing.JLabel getDescriptionLabel() {
00618     if (ivjDescriptionLabel == null) {
00619         try {
00620             ivjDescriptionLabel = new javax.swing.JLabel();
00621             ivjDescriptionLabel.setName("DescriptionLabel");
00622             ivjDescriptionLabel.setText("Description:");
00623             ivjDescriptionLabel.setForeground(java.awt.Color.black);
00624             // user code begin {1}
00625             // user code end
00626         } catch (java.lang.Throwable ivjExc) {
00627             // user code begin {2}
00628             // user code end
00629             handleException(ivjExc);
00630         }
00631     }
00632     return ivjDescriptionLabel;
00633 }
00634 /**
00635  * Return the DescriptionScrollPane property value.
00636  * @return javax.swing.JScrollPane
00637  */
00638 /* WARNING: THIS METHOD WILL BE REGENERATED. */
00639 private javax.swing.JScrollPane getDescriptionScrollPane() {
00640     if (ivjDescriptionScrollPane == null) {
00641         try {
00642             ivjDescriptionScrollPane = new javax.swing.JScrollPane();
00643             ivjDescriptionScrollPane.setName("DescriptionScrollPane");
00644             getDescriptionScrollPane().setViewportView(getDescriptionTextArea());
00645             // user code begin {1}
00646             // user code end
00647         } catch (java.lang.Throwable ivjExc) {
00648             // user code begin {2}
00649             // user code end
00650             handleException(ivjExc);
00651         }
00652     }
00653     return ivjDescriptionScrollPane;
00654 }
00655 /**
00656  * Return the DescriptionTextArea property value.
00657  * @return javax.swing.JTextArea
00658  */
00659 /* WARNING: THIS METHOD WILL BE REGENERATED. */
00660 private javax.swing.JTextArea getDescriptionTextArea() {
00661     if (ivjDescriptionTextArea == null) {
00662         try {
00663             ivjDescriptionTextArea = new javax.swing.JTextArea();
00664             ivjDescriptionTextArea.setName("DescriptionTextArea");
00665             ivjDescriptionTextArea.setBorder(BorderFactory.createLoweredBevelBorder());
00666             ivjDescriptionTextArea.setBackground(new java.awt.Color(204,204,204));
00667             ivjDescriptionTextArea.setBounds(0, 0, 160, 120);
00668             ivjDescriptionTextArea.setEditable(false);
00669             // user code begin {1}
00670             // user code end
00671         } catch (java.lang.Throwable ivjExc) {
00672             // user code begin {2}
00673             // user code end
00674             handleException(ivjExc);
00675         }
00676     }
00677     return ivjDescriptionTextArea;
00678 }
00679 /**
00680  * Return the ErrorMessageButton property value.
00681  * @return javax.swing.JButton
00682  */
00683 /* WARNING: THIS METHOD WILL BE REGENERATED. */
00684 private javax.swing.JButton getErrorMessageButton() {
00685     if (ivjErrorMessageButton == null) {
00686         try {
00687             ivjErrorMessageButton = new javax.swing.JButton();
00688             ivjErrorMessageButton.setName("ErrorMessageButton");
00689             ivjErrorMessageButton.setMnemonic('e');
00690             ivjErrorMessageButton.setText("Show Error Message(s)");
00691             ivjErrorMessageButton.setBackground(new java.awt.Color(204,204,255));
00692             ivjErrorMessageButton.setEnabled(false);
00693             // user code begin {1}
00694             // user code end
00695         } catch (java.lang.Throwable ivjExc) {
00696             // user code begin {2}
00697             // user code end
00698             handleException(ivjExc);
00699         }
00700     }
00701     return ivjErrorMessageButton;
00702 }
00703 /**
00704  * Return the GotoButton property value.
00705  * @return javax.swing.JButton
00706  */
00707 /* WARNING: THIS METHOD WILL BE REGENERATED. */
00708 private javax.swing.JButton getGotoButton() {
00709     if (ivjGotoButton == null) {
00710         try {
00711             ivjGotoButton = new javax.swing.JButton();
00712             ivjGotoButton.setName("GotoButton");
00713             ivjGotoButton.setMnemonic('g');
00714             ivjGotoButton.setText("Goto Definition");
00715             ivjGotoButton.setBackground(new java.awt.Color(204,204,255));
00716             ivjGotoButton.setEnabled(false);
00717             // user code begin {1}
00718             // user code end
00719         } catch (java.lang.Throwable ivjExc) {
00720             // user code begin {2}
00721             // user code end
00722             handleException(ivjExc);
00723         }
00724     }
00725     return ivjGotoButton;
00726 }
00727 /**
00728  * Return the NameLabel property value.
00729  * @return javax.swing.JLabel
00730  */
00731 /* WARNING: THIS METHOD WILL BE REGENERATED. */
00732 private javax.swing.JLabel getNameLabel() {
00733     if (ivjNameLabel == null) {
00734         try {
00735             ivjNameLabel = new javax.swing.JLabel();
00736             ivjNameLabel.setName("NameLabel");
00737             ivjNameLabel.setText("Name:");
00738             ivjNameLabel.setForeground(java.awt.Color.black);
00739             // user code begin {1}
00740             // user code end
00741         } catch (java.lang.Throwable ivjExc) {
00742             // user code begin {2}
00743             // user code end
00744             handleException(ivjExc);
00745         }
00746     }
00747     return ivjNameLabel;
00748 }
00749 /**
00750  * Return the NameTextField property value.
00751  * @return javax.swing.JTextField
00752  */
00753 /* WARNING: THIS METHOD WILL BE REGENERATED. */
00754 private javax.swing.JTextField getNameTextField() {
00755     if (ivjNameTextField == null) {
00756         try {
00757             ivjNameTextField = new javax.swing.JTextField();
00758             ivjNameTextField.setName("NameTextField");
00759             ivjNameTextField.setBorder(BorderFactory.createLoweredBevelBorder());
00760             ivjNameTextField.setEditable(false);
00761             // user code begin {1}
00762             // user code end
00763         } catch (java.lang.Throwable ivjExc) {
00764             // user code begin {2}
00765             // user code end
00766             handleException(ivjExc);
00767         }
00768     }
00769     return ivjNameTextField;
00770 }
00771 /**
00772  * Return the OkButton property value.
00773  * @return javax.swing.JButton
00774  */
00775 /* WARNING: THIS METHOD WILL BE REGENERATED. */
00776 private javax.swing.JButton getOkButton() {
00777     if (ivjOkButton == null) {
00778         try {
00779             ivjOkButton = new javax.swing.JButton();
00780             ivjOkButton.setName("OkButton");
00781             ivjOkButton.setMnemonic('o');
00782             ivjOkButton.setText("Ok");
00783             ivjOkButton.setBackground(new java.awt.Color(204,204,255));
00784             // user code begin {1}
00785             // user code end
00786         } catch (java.lang.Throwable ivjExc) {
00787             // user code begin {2}
00788             // user code end
00789             handleException(ivjExc);
00790         }
00791     }
00792     return ivjOkButton;
00793 }
00794 /**
00795  * Return the TypeLabel property value.
00796  * @return javax.swing.JLabel
00797  */
00798 /* WARNING: THIS METHOD WILL BE REGENERATED. */
00799 private javax.swing.JLabel getTypeLabel() {
00800     if (ivjTypeLabel == null) {
00801         try {
00802             ivjTypeLabel = new javax.swing.JLabel();
00803             ivjTypeLabel.setName("TypeLabel");
00804             ivjTypeLabel.setText("Type:");
00805             ivjTypeLabel.setForeground(java.awt.Color.black);
00806             // user code begin {1}
00807             // user code end
00808         } catch (java.lang.Throwable ivjExc) {
00809             // user code begin {2}
00810             // user code end
00811             handleException(ivjExc);
00812         }
00813     }
00814     return ivjTypeLabel;
00815 }
00816 /**
00817  * Return the TypeTextField property value.
00818  * @return javax.swing.JTextField
00819  */
00820 /* WARNING: THIS METHOD WILL BE REGENERATED. */
00821 private javax.swing.JTextField getTypeTextField() {
00822     if (ivjTypeTextField == null) {
00823         try {
00824             ivjTypeTextField = new javax.swing.JTextField();
00825             ivjTypeTextField.setName("TypeTextField");
00826             ivjTypeTextField.setBorder(BorderFactory.createLoweredBevelBorder());
00827             ivjTypeTextField.setEditable(false);
00828             // user code begin {1}
00829             // user code end
00830         } catch (java.lang.Throwable ivjExc) {
00831             // user code begin {2}
00832             // user code end
00833             handleException(ivjExc);
00834         }
00835     }
00836     return ivjTypeTextField;
00837 }
00838 /**
00839  * Comment
00840  */
00841 public void gotoButton_ActionEvents() {
00842     Assertion p = (Assertion) ((DefaultMutableTreeNode) getAssertionTree().getLastSelectedPathComponent()).getUserObject();
00843     Annotation a = p.getAnnotation();
00844     if (a instanceof LabeledStmtAnnotation) {
00845         a = CompilationManager.getAnnotationManager().getMethodAnnotationContainingAnnotation(a);
00846     }
00847     BUI.sessionPane.select(a, p);
00848 }
00849 /**
00850  * Called whenever the part throws an exception.
00851  * @param exception java.lang.Throwable
00852  */
00853 private void handleException(java.lang.Throwable exception) {
00854 
00855     /* Uncomment the following lines to print uncaught exceptions to stdout */
00856     // System.out.println("--------- UNCAUGHT EXCEPTION ---------");
00857     // exception.printStackTrace(System.out);
00858 }
00859 /**
00860  * Initializes connections
00861  * @exception java.lang.Exception The exception description.
00862  */
00863 /* WARNING: THIS METHOD WILL BE REGENERATED. */
00864 private void initConnections() throws java.lang.Exception {
00865     // user code begin {1}
00866     // user code end
00867     getOkButton().addActionListener(ivjEventHandler);
00868     getErrorMessageButton().addActionListener(ivjEventHandler);
00869     getAssertionTree().addTreeSelectionListener(ivjEventHandler);
00870     getGotoButton().addActionListener(ivjEventHandler);
00871     getAddButton().addActionListener(ivjEventHandler);
00872 }
00873 /**
00874  * Initialize the class.
00875  */
00876 /* WARNING: THIS METHOD WILL BE REGENERATED. */
00877 private void initialize() {
00878     try {
00879         // user code begin {1}
00880         // user code end
00881         setName("AssertionBrowser");
00882         setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
00883         setSize(529, 335);
00884         setTitle("Assertion Browser");
00885         setContentPane(getAssertionBrowserContentPane());
00886         initConnections();
00887     } catch (java.lang.Throwable ivjExc) {
00888         handleException(ivjExc);
00889     }
00890     // user code begin {2}
00891     updateTree();
00892     // user code end
00893 }
00894 /**
00895  * main entrypoint - starts the part when it is run as an application
00896  * @param args java.lang.String[]
00897  */
00898 public static void main(java.lang.String[] args) {
00899     try {
00900         PredicateBrowser aPredicateBrowser;
00901         aPredicateBrowser = new PredicateBrowser();
00902         aPredicateBrowser.addWindowListener(new java.awt.event.WindowAdapter() {
00903             public void windowClosing(java.awt.event.WindowEvent e) {
00904                 System.exit(0);
00905             };
00906         });
00907         aPredicateBrowser.setVisible(true);
00908     } catch (Throwable exception) {
00909         System.err.println("Exception occurred in main() of javax.swing.JFrame");
00910         exception.printStackTrace(System.out);
00911     }
00912 }
00913 /**
00914  * 
00915  */
00916 public void updateTree() {
00917     getAssertionTree().setModel(new DefaultTreeModel(buildTree(new DefaultMutableTreeNode("Assertion"), AssertionSet.getAssertionSetTable())));
00918     getAssertionScrollPane().validate();
00919     getAssertionScrollPane().repaint();
00920     //getAssertionBrowserSplitPane().resetToPreferredSizes();
00921 }
00922 }

Generated at Thu Feb 7 06:39:45 2002 for Bandera by doxygen1.2.10 written by Dimitri van Heesch, © 1997-2001