Program: 50562
Project: 50562
Buggy source:
private void initGUI(){
  try {
    this.setSize(600,532);
    this.addWindowListener(new WindowAdapter(){
      public void windowClosed(      WindowEvent evt){
        System.exit(1);
      }
    }
);
{
      pnlMain=new JPanel();
      GridBagLayout jPanel2Layout=new GridBagLayout();
      jPanel2Layout.columnWeights=new double[]{0.1};
      jPanel2Layout.columnWidths=new int[]{7};
      jPanel2Layout.rowWeights=new double[]{0.1,0.1,0.9,0.1};
      jPanel2Layout.rowHeights=new int[]{7,7,7,7};
      pnlMain.setLayout(jPanel2Layout);
      this.getContentPane().add(pnlMain,BorderLayout.CENTER);
{
        jPanel1=new JPanel();
        pnlMain.add(jPanel1,new GridBagConstraints(0,0,1,1,0.0,0.0,GridBagConstraints.WEST,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
        FlowLayout jPanel1Layout=new FlowLayout();
        jPanel1Layout.setAlignment(FlowLayout.LEFT);
        jPanel1.setLayout(jPanel1Layout);
{
          lblName=new JLabel();
          jPanel1.add(lblName);
          lblName.setText("String_Node_Str");
        }
{
          txtName=new JTextField();
          jPanel1.add(txtName);
          txtName.setText("String_Node_Str");
          txtName.setPreferredSize(new java.awt.Dimension(179,20));
          txtName.addActionListener(this);
          txtName.addFocusListener(this);
        }
      }
{
        jTabbedPane1=new JTabbedPane();
        pnlMain.add(jTabbedPane1,new GridBagConstraints(0,1,1,1,0.1,0.1,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,0,0,0),0,0));
{
          pnlDetails=new JPanel();
          GridBagLayout pnlDetailsLayout=new GridBagLayout();
          pnlDetailsLayout.columnWeights=new double[]{0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1};
          pnlDetailsLayout.columnWidths=new int[]{7,7,7,7,7,7,7,7,7,7};
          pnlDetailsLayout.rowWeights=new double[]{0.1,0.1,0.1,0.1,0.1,0.1,0.1};
          pnlDetailsLayout.rowHeights=new int[]{7,7,7,7,7,7,7};
          pnlDetails.setLayout(pnlDetailsLayout);
          jTabbedPane1.addTab("String_Node_Str",null,pnlDetails,null);
          pnlDetails.setPreferredSize(new java.awt.Dimension(20,16));
{
            lblBrewer=new JLabel();
            pnlDetails.add(lblBrewer,new GridBagConstraints(0,0,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            lblBrewer.setText("String_Node_Str");
          }
{
            brewerNameText=new JTextField();
            pnlDetails.add(brewerNameText,new GridBagConstraints(1,0,2,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
            brewerNameText.setPreferredSize(new java.awt.Dimension(69,20));
            brewerNameText.addFocusListener(this);
            brewerNameText.addActionListener(this);
            brewerNameText.setText("String_Node_Str");
          }
{
            lblDate=new JLabel();
            pnlDetails.add(lblDate,new GridBagConstraints(0,1,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            lblDate.setText("String_Node_Str");
          }
{
            lblStyle=new JLabel();
            pnlDetails.add(lblStyle,new GridBagConstraints(0,2,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            lblStyle.setText("String_Node_Str");
          }
{
            lblYeast=new JLabel();
            pnlDetails.add(lblYeast,new GridBagConstraints(0,3,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            lblYeast.setText("String_Node_Str");
          }
{
            lblPreBoil=new JLabel();
            pnlDetails.add(lblPreBoil,new GridBagConstraints(0,4,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            lblPreBoil.setText("String_Node_Str");
          }
{
            lblPostBoil=new JLabel();
            pnlDetails.add(lblPostBoil,new GridBagConstraints(0,5,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            lblPostBoil.setText("String_Node_Str");
          }
{
            lblEffic=new JLabel();
            pnlDetails.add(lblEffic,new GridBagConstraints(3,0,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            lblEffic.setText("String_Node_Str");
            lblEffic.setPreferredSize(new java.awt.Dimension(31,14));
          }
{
            lblAtten=new JLabel();
            pnlDetails.add(lblAtten,new GridBagConstraints(3,1,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            lblAtten.setText("String_Node_Str");
            lblAtten.setPreferredSize(new java.awt.Dimension(34,14));
          }
{
            lblOG=new JLabel();
            pnlDetails.add(lblOG,new GridBagConstraints(5,0,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            lblOG.setText("String_Node_Str");
          }
{
            lblFG=new JLabel();
            pnlDetails.add(lblFG,new GridBagConstraints(5,1,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            lblFG.setText("String_Node_Str");
          }
{
            lblIBU=new JLabel();
            pnlDetails.add(lblIBU,new GridBagConstraints(7,1,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            lblIBU.setText("String_Node_Str");
          }
{
            lblAlc=new JLabel();
            pnlDetails.add(lblAlc,new GridBagConstraints(7,0,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            lblAlc.setText("String_Node_Str");
          }
{
            lblColour=new JLabel();
            pnlDetails.add(lblColour,new GridBagConstraints(7,2,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            lblColour.setText("String_Node_Str");
          }
{
            txtDate=new JFormattedTextField();
            pnlDetails.add(txtDate,new GridBagConstraints(1,1,2,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
            txtDate.setText("String_Node_Str");
            txtDate.setPreferredSize(new java.awt.Dimension(73,20));
            txtDate.addFocusListener(this);
            txtDate.addActionListener(this);
          }
{
            cmbStyleModel=new ComboModel();
            cmbStyle=new JComboBox();
            pnlDetails.add(cmbStyle,new GridBagConstraints(1,2,5,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
            cmbStyle.setModel(cmbStyleModel);
            cmbStyle.setMaximumSize(new java.awt.Dimension(100,32767));
            cmbStyle.setPreferredSize(new java.awt.Dimension(190,20));
            cmbStyle.addActionListener(new ActionListener(){
              public void actionPerformed(              ActionEvent evt){
                Style s=(Style)cmbStyleModel.getSelectedItem();
                if (myRecipe != null && s != myRecipe.getStyleObj()) {
                  myRecipe.setStyle(s);
                  stylePanel.setStyle(s);
                }
                cmbStyle.setToolTipText(SBStringUtils.multiLineToolTip(50,s.getDescription()));
              }
            }
);
          }
{
            txtPreBoil=new JFormattedTextField();
            pnlDetails.add(txtPreBoil,new GridBagConstraints(1,4,1,1,0.0,0.0,GridBagConstraints.WEST,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
            txtPreBoil.setText("String_Node_Str");
            txtPreBoil.setPreferredSize(new java.awt.Dimension(37,20));
            txtPreBoil.addFocusListener(this);
            txtPreBoil.addActionListener(this);
          }
{
            postBoilText=new JFormattedTextField();
            pnlDetails.add(postBoilText,new GridBagConstraints(1,5,1,1,0.0,0.0,GridBagConstraints.WEST,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
            postBoilText.setText("String_Node_Str");
            postBoilText.setPreferredSize(new java.awt.Dimension(46,20));
            postBoilText.addFocusListener(new FocusAdapter(){
              public void focusLost(              FocusEvent evt){
                myRecipe.setPostBoil(Double.parseDouble(postBoilText.getText().toString()));
                displayRecipe();
              }
            }
);
            postBoilText.addActionListener(new ActionListener(){
              public void actionPerformed(              ActionEvent evt){
                myRecipe.setPostBoil(Double.parseDouble(postBoilText.getText().toString()));
                displayRecipe();
              }
            }
);
          }
{
            lblComments=new JLabel();
            pnlDetails.add(lblComments,new GridBagConstraints(6,4,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            lblComments.setText("String_Node_Str");
          }
{
            SpinnerNumberModel spnEfficModel=new SpinnerNumberModel(75.0,0.0,100.0,1.0);
            spnEffic=new JSpinner();
            pnlDetails.add(spnEffic,new GridBagConstraints(4,0,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
            spnEffic.setModel(spnEfficModel);
            spnEffic.setMaximumSize(new java.awt.Dimension(70,32767));
            spnEffic.addChangeListener(new ChangeListener(){
              public void stateChanged(              ChangeEvent evt){
                myRecipe.setEfficiency(Double.parseDouble(spnEffic.getValue().toString()));
                displayRecipe();
              }
            }
);
            spnEffic.setEditor(new JSpinner.NumberEditor(spnEffic,"String_Node_Str"));
            spnEffic.getEditor().setPreferredSize(new java.awt.Dimension(28,16));
            spnEffic.setPreferredSize(new java.awt.Dimension(53,18));
          }
{
            SpinnerNumberModel spnAttenModel=new SpinnerNumberModel(75.0,0.0,100.0,1.0);
            spnAtten=new JSpinner();
            pnlDetails.add(spnAtten,new GridBagConstraints(4,1,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
            spnAtten.setModel(spnAttenModel);
            spnAtten.addChangeListener(new ChangeListener(){
              public void stateChanged(              ChangeEvent evt){
                myRecipe.setAttenuation(Double.parseDouble(spnAtten.getValue().toString()));
                displayRecipe();
              }
            }
);
            spnAtten.setEditor(new JSpinner.NumberEditor(spnAtten,"String_Node_Str"));
            spnAtten.setPreferredSize(new java.awt.Dimension(49,20));
          }
{
            SpinnerNumberModel spnOgModel=new SpinnerNumberModel(1.000,0.900,2.000,0.001);
            spnOG=new JSpinner();
            pnlDetails.add(spnOG,new GridBagConstraints(6,0,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
            spnOG.setModel(spnOgModel);
            spnOG.addChangeListener(new ChangeListener(){
              public void stateChanged(              ChangeEvent evt){
                myRecipe.setEstOg(Double.parseDouble(spnOG.getValue().toString()));
                displayRecipe();
              }
            }
);
            spnOG.setEditor(new JSpinner.NumberEditor(spnOG,"String_Node_Str"));
            spnOG.getEditor().setPreferredSize(new java.awt.Dimension(20,16));
            spnOG.setPreferredSize(new java.awt.Dimension(67,18));
          }
{
            SpinnerNumberModel spnFgModel=new SpinnerNumberModel(1.000,0.900,2.000,0.001);
            spnFG=new JSpinner();
            pnlDetails.add(spnFG,new GridBagConstraints(6,1,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
            spnFG.setModel(spnFgModel);
            spnFG.setEditor(new JSpinner.NumberEditor(spnFG,"String_Node_Str"));
            spnFG.setPreferredSize(new java.awt.Dimension(69,20));
            spnFG.addChangeListener(new ChangeListener(){
              public void stateChanged(              ChangeEvent evt){
                myRecipe.setEstFg(Double.parseDouble(spnFG.getValue().toString()));
                displayRecipe();
              }
            }
);
          }
{
            lblIBUvalue=new JLabel();
            pnlDetails.add(lblIBUvalue,new GridBagConstraints(8,1,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            lblIBUvalue.setText("String_Node_Str");
          }
{
            lblColourValue=new JLabel();
            pnlDetails.add(lblColourValue,new GridBagConstraints(8,2,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            lblColourValue.setText("String_Node_Str");
          }
{
            lblAlcValue=new JLabel();
            pnlDetails.add(lblAlcValue,new GridBagConstraints(8,0,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            lblAlcValue.setText("String_Node_Str");
          }
{
            scpComments=new JScrollPane();
            pnlDetails.add(scpComments,new GridBagConstraints(7,4,3,2,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.BOTH,new Insets(0,0,0,0),0,0));
{
              txtComments=new JTextArea();
              scpComments.setViewportView(txtComments);
              txtComments.setText("String_Node_Str");
              txtComments.setWrapStyleWord(true);
              txtComments.setLineWrap(true);
              txtComments.setPreferredSize(new java.awt.Dimension(263,40));
              txtComments.addFocusListener(new FocusAdapter(){
                public void focusLost(                FocusEvent evt){
                  if (!txtComments.getText().equals(myRecipe.getComments())) {
                    myRecipe.setComments(txtComments.getText());
                  }
                }
              }
);
            }
          }
{
            cmbYeastModel=new ComboModel();
            cmbYeast=new JComboBox();
            pnlDetails.add(cmbYeast,new GridBagConstraints(1,3,5,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
            cmbYeast.setModel(cmbYeastModel);
            cmbYeast.setPreferredSize(new java.awt.Dimension(193,20));
            cmbYeast.addActionListener(new ActionListener(){
              public void actionPerformed(              ActionEvent evt){
                Yeast y=(Yeast)cmbYeastModel.getSelectedItem();
                if (myRecipe != null && y != myRecipe.getYeastObj()) {
                  myRecipe.setYeast(y);
                }
                String st=SBStringUtils.multiLineToolTip(40,y.getDescription());
                cmbYeast.setToolTipText(st);
              }
            }
);
          }
{
            cmbSizeUnitsModel=new ComboModel();
            cmbSizeUnits=new JComboBox();
            pnlDetails.add(cmbSizeUnits,new GridBagConstraints(2,4,2,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
            cmbSizeUnits.setModel(cmbSizeUnitsModel);
            cmbSizeUnits.addActionListener(new ActionListener(){
              public void actionPerformed(              ActionEvent evt){
                String q=(String)cmbSizeUnits.getSelectedItem();
                if (myRecipe != null && q != myRecipe.getVolUnits()) {
                  myRecipe.setVolUnits(q);
                  displayRecipe();
                }
              }
            }
);
          }
{
            lblSizeUnits=new JLabel();
            pnlDetails.add(lblSizeUnits,new GridBagConstraints(2,5,2,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
            lblSizeUnits.setText("String_Node_Str");
          }
{
            boilTimeLable=new JLabel();
            pnlDetails.add(boilTimeLable,new GridBagConstraints(4,4,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            boilTimeLable.setText("String_Node_Str");
          }
{
            evapLabel=new JLabel();
            pnlDetails.add(evapLabel,new GridBagConstraints(4,5,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            evapLabel.setText("String_Node_Str");
          }
{
            boilMinText=new JTextField();
            pnlDetails.add(boilMinText,new GridBagConstraints(5,4,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
            boilMinText.setText("String_Node_Str");
            boilMinText.setPreferredSize(new java.awt.Dimension(22,20));
            boilMinText.addFocusListener(this);
            boilMinText.addActionListener(this);
          }
{
            evapText=new JTextField();
            pnlDetails.add(evapText,new GridBagConstraints(5,5,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
            evapText.setText("String_Node_Str");
            evapText.setPreferredSize(new java.awt.Dimension(23,20));
            evapText.addFocusListener(this);
            evapText.addActionListener(this);
          }
{
            alcMethodComboModel=new DefaultComboBoxModel(new String[]{"String_Node_Str","String_Node_Str"});
            alcMethodCombo=new JComboBox(alcMethodComboModel);
            pnlDetails.add(alcMethodCombo,new GridBagConstraints(9,0,1,1,0.0,0.0,GridBagConstraints.WEST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            alcMethodCombo.setPreferredSize(new java.awt.Dimension(58,20));
            alcMethodCombo.addActionListener(new ActionListener(){
              public void actionPerformed(              ActionEvent evt){
                recipeSettingsActionPerformed(evt);
              }
            }
);
          }
{
            ibuMethodComboModel=new DefaultComboBoxModel(new String[]{"String_Node_Str","String_Node_Str","String_Node_Str"});
            ibuMethodCombo=new JComboBox(ibuMethodComboModel);
            pnlDetails.add(ibuMethodCombo,new GridBagConstraints(9,1,1,1,0.0,0.0,GridBagConstraints.WEST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            ibuMethodCombo.setPreferredSize(new java.awt.Dimension(59,20));
            ibuMethodCombo.addActionListener(new ActionListener(){
              public void actionPerformed(              ActionEvent evt){
                recipeSettingsActionPerformed(evt);
              }
            }
);
          }
{
            colourMethodComboModel=new DefaultComboBoxModel(new String[]{"String_Node_Str","String_Node_Str"});
            colourMethodCombo=new JComboBox(colourMethodComboModel);
            pnlDetails.add(colourMethodCombo,new GridBagConstraints(9,2,1,1,0.0,0.0,GridBagConstraints.WEST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            colourMethodCombo.setPreferredSize(new java.awt.Dimension(44,20));
            colourMethodCombo.addActionListener(new ActionListener(){
              public void actionPerformed(              ActionEvent evt){
                recipeSettingsActionPerformed(evt);
              }
            }
);
          }
          ComboBoxModel evapMethodComboModel=new DefaultComboBoxModel(new String[]{"String_Node_Str","String_Node_Str"});
          evapMethodCombo=new JComboBox();
          pnlDetails.add(evapMethodCombo,new GridBagConstraints(6,5,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
          evapMethodCombo.setModel(evapMethodComboModel);
          evapMethodCombo.setPreferredSize(new java.awt.Dimension(64,20));
          colourPanel=new JPanel();
          pnlDetails.add(colourPanel,new GridBagConstraints(8,3,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,0,0,0),0,0));
          colourPanel.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
          colourPanel2=new JPanel();
          pnlDetails.add(colourPanel2,new GridBagConstraints(9,3,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,0,0,0),0,0));
          colourPanel2.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
          evapMethodCombo.addActionListener(new ActionListener(){
            public void actionPerformed(            ActionEvent evt){
              recipeSettingsActionPerformed(evt);
            }
          }
);
        }
{
          SBNotifier sbn=new SBNotifier();
          stylePanel=new StylePanel(sbn);
          jTabbedPane1.addTab("String_Node_Str",null,stylePanel,null);
        }
{
          miscPanel=new MiscPanel(myRecipe);
          jTabbedPane1.addTab("String_Node_Str",null,miscPanel,null);
        }
{
          notesPanel=new NotesPanel();
          jTabbedPane1.addTab("String_Node_Str",null,notesPanel,null);
        }
{
          dilutionPanel=new DilutionPanel();
          jTabbedPane1.addTab("String_Node_Str",null,dilutionPanel,null);
        }
{
          SBNotifier sbn=new SBNotifier();
          settingsPanel=new SettingsPanel(sbn);
          jTabbedPane1.addTab("String_Node_Str",null,settingsPanel,null);
        }
      }
{
        pnlTables=new JPanel();
        BoxLayout pnlMaltsLayout=new BoxLayout(pnlTables,javax.swing.BoxLayout.Y_AXIS);
        pnlMain.add(pnlTables,new GridBagConstraints(0,2,1,1,0.5,0.5,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,0,0,0),0,0));
        pnlTables.setLayout(pnlMaltsLayout);
{
          pnlMalt=new JPanel();
          pnlTables.add(pnlMalt);
          BorderLayout pnlMaltLayout1=new BorderLayout();
          pnlMalt.setBorder(BorderFactory.createTitledBorder(new LineBorder(new java.awt.Color(0,0,0),1,false),"String_Node_Str",TitledBorder.LEADING,TitledBorder.TOP,new java.awt.Font("String_Node_Str",1,12),new java.awt.Color(51,51,51)));
          pnlMalt.setLayout(pnlMaltLayout1);
{
            jScrollPane1=new JScrollPane();
            pnlMalt.add(jScrollPane1,BorderLayout.CENTER);
{
              maltTableModel=new MaltTableModel(this);
              maltTable=new JTable(){
                public String getToolTipText(                MouseEvent e){
                  java.awt.Point p=e.getPoint();
                  int rowIndex=rowAtPoint(p);
                  return SBStringUtils.multiLineToolTip(40,maltTableModel.getDescriptionAt(rowIndex));
                }
              }
;
              jScrollPane1.setViewportView(maltTable);
              maltTable.setModel(maltTableModel);
              maltTable.getTableHeader().setReorderingAllowed(false);
              TableColumn maltColumn=maltTable.getColumnModel().getColumn(0);
              JComboBox maltComboBox=new JComboBox();
              cmbMaltModel=new ComboModel();
              maltComboBox.setModel(cmbMaltModel);
              maltColumn.setCellEditor(new DefaultCellEditor(maltComboBox));
              maltComboBox.addActionListener(new ActionListener(){
                public void actionPerformed(                ActionEvent evt){
                  Fermentable f=(Fermentable)cmbMaltModel.getSelectedItem();
                  int i=maltTable.getSelectedRow();
                  if (myRecipe != null && i != -1) {
                    Fermentable f2=myRecipe.getFermentable(i);
                    if (f2 != null) {
                      f2.setLov(f.getLov());
                      f2.setPppg(f.getPppg());
                      f2.setDescription(f.getDescription());
                      f2.setMashed(f.getMashed());
                      f2.setSteep(f.getSteep());
                    }
                  }
                }
              }
);
              JComboBox maltUnitsComboBox=new JComboBox();
              cmbMaltUnitsModel=new ComboModel();
              maltUnitsComboBox.setModel(cmbMaltUnitsModel);
              maltColumn=maltTable.getColumnModel().getColumn(2);
              maltColumn.setCellEditor(new DefaultCellEditor(maltUnitsComboBox));
              maltUnitsComboBox.addActionListener(new ActionListener(){
                public void actionPerformed(                ActionEvent evt){
                  String u=(String)cmbMaltUnitsModel.getSelectedItem();
                  int i=maltTable.getSelectedRow();
                  if (myRecipe != null && i != -1) {
                    Fermentable f2=myRecipe.getFermentable(i);
                    if (f2 != null) {
                      f2.setUnitsFull(u);
                      myRecipe.calcMaltTotals();
                      displayRecipe();
                    }
                  }
                }
              }
);
            }
          }
{
            tblMaltTotalsModel=new DefaultTableModel(new String[][]{{"String_Node_Str"}},new String[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"});
            tblMaltTotals=new JTable();
            pnlMalt.add(tblMaltTotals,BorderLayout.SOUTH);
            tblMaltTotals.setModel(tblMaltTotalsModel);
            tblMaltTotals.getTableHeader().setEnabled(false);
            tblMaltTotals.setAutoCreateColumnsFromModel(false);
          }
        }
{
          pnlMaltButtons=new JPanel();
          pnlTables.add(pnlMaltButtons);
          FlowLayout pnlMaltButtonsLayout=new FlowLayout();
          pnlMaltButtonsLayout.setAlignment(FlowLayout.LEFT);
          pnlMaltButtonsLayout.setVgap(0);
          pnlMaltButtons.setLayout(pnlMaltButtonsLayout);
          pnlMaltButtons.setPreferredSize(new java.awt.Dimension(592,27));
{
            tlbMalt=new JToolBar();
            pnlMaltButtons.add(tlbMalt);
            tlbMalt.setPreferredSize(new java.awt.Dimension(55,20));
            tlbMalt.setFloatable(false);
{
              btnAddMalt=new JButton();
              tlbMalt.add(btnAddMalt);
              btnAddMalt.setText("String_Node_Str");
              btnAddMalt.addActionListener(new ActionListener(){
                public void actionPerformed(                ActionEvent evt){
                  if (myRecipe != null) {
                    Fermentable f=new Fermentable(myRecipe.getMaltUnits());
                    myRecipe.addMalt(f);
                    maltTable.updateUI();
                    displayRecipe();
                  }
                }
              }
);
            }
{
              btnDelMalt=new JButton();
              tlbMalt.add(btnDelMalt);
              btnDelMalt.setText("String_Node_Str");
              btnDelMalt.addActionListener(new ActionListener(){
                public void actionPerformed(                ActionEvent evt){
                  if (myRecipe != null) {
                    int i=maltTable.getSelectedRow();
                    myRecipe.delMalt(i);
                    maltTable.updateUI();
                    displayRecipe();
                  }
                }
              }
);
            }
          }
        }
{
          pnlHops=new JPanel();
          BorderLayout pnlHopsLayout=new BorderLayout();
          pnlHops.setBorder(BorderFactory.createTitledBorder(new LineBorder(new java.awt.Color(0,0,0),1,false),"String_Node_Str",TitledBorder.LEADING,TitledBorder.TOP,new java.awt.Font("String_Node_Str",1,12),new java.awt.Color(51,51,51)));
          pnlHops.setLayout(pnlHopsLayout);
          pnlTables.add(pnlHops);
{
            tblHopsTotalsModel=new DefaultTableModel(new String[][]{{"String_Node_Str"}},new String[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"});
            tblHopsTotals=new JTable();
            pnlHops.add(tblHopsTotals,BorderLayout.SOUTH);
            tblHopsTotals.setModel(tblHopsTotalsModel);
            tblHopsTotals.setAutoCreateColumnsFromModel(false);
          }
{
            jScrollPane2=new JScrollPane();
            pnlHops.add(jScrollPane2,BorderLayout.CENTER);
{
              hopsTableModel=new HopsTableModel(this);
              hopsTable=new JTable(){
                public String getToolTipText(                MouseEvent e){
                  java.awt.Point p=e.getPoint();
                  int rowIndex=rowAtPoint(p);
                  return SBStringUtils.multiLineToolTip(40,hopsTableModel.getDescriptionAt(rowIndex));
                }
              }
;
              jScrollPane2.setViewportView(hopsTable);
              hopsTable.setModel(hopsTableModel);
              hopsTable.getTableHeader().setReorderingAllowed(false);
              TableColumn hopColumn=hopsTable.getColumnModel().getColumn(0);
              JComboBox hopComboBox=new JComboBox();
              cmbHopsModel=new ComboModel();
              hopComboBox.setModel(cmbHopsModel);
              hopColumn.setCellEditor(new DefaultCellEditor(hopComboBox));
              hopComboBox.addActionListener(new ActionListener(){
                public void actionPerformed(                ActionEvent evt){
                  Hop h=(Hop)cmbHopsModel.getSelectedItem();
                  int i=hopsTable.getSelectedRow();
                  if (myRecipe != null && i != -1) {
                    Hop h2=myRecipe.getHop(i);
                    h2.setAlpha(h.getAlpha());
                    h2.setDescription(h.getDescription());
                  }
                }
              }
);
              JComboBox hopsUnitsComboBox=new JComboBox();
              cmbHopsUnitsModel=new ComboModel();
              hopsUnitsComboBox.setModel(cmbHopsUnitsModel);
              hopColumn=hopsTable.getColumnModel().getColumn(4);
              hopColumn.setCellEditor(new DefaultCellEditor(hopsUnitsComboBox));
              hopsUnitsComboBox.addActionListener(new ActionListener(){
                public void actionPerformed(                ActionEvent evt){
                  String u=(String)cmbHopsUnitsModel.getSelectedItem();
                  int i=hopsTable.getSelectedRow();
                  if (myRecipe != null && i != -1) {
                    Hop h=myRecipe.getHop(i);
                    h.setUnitsFull(u);
                    myRecipe.calcHopsTotals();
                    displayRecipe();
                  }
                }
              }
);
              String[] forms={"String_Node_Str","String_Node_Str","String_Node_Str"};
              JComboBox hopsFormComboBox=new JComboBox(forms);
              hopColumn=hopsTable.getColumnModel().getColumn(1);
              hopColumn.setCellEditor(new DefaultCellEditor(hopsFormComboBox));
              String[] add={"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"};
              JComboBox hopsAddComboBox=new JComboBox(add);
              hopColumn=hopsTable.getColumnModel().getColumn(5);
              hopColumn.setCellEditor(new DefaultCellEditor(hopsAddComboBox));
            }
          }
        }
{
          pnlHopsButtons=new JPanel();
          FlowLayout pnlHopsButtonsLayout=new FlowLayout();
          pnlHopsButtonsLayout.setAlignment(FlowLayout.LEFT);
          pnlHopsButtonsLayout.setVgap(0);
          pnlHopsButtons.setLayout(pnlHopsButtonsLayout);
          pnlTables.add(pnlHopsButtons);
          pnlHopsButtons.setPreferredSize(new java.awt.Dimension(512,16));
{
            tlbHops=new JToolBar();
            pnlHopsButtons.add(tlbHops);
            tlbHops.setPreferredSize(new java.awt.Dimension(58,19));
            tlbHops.setFloatable(false);
{
              btnAddHop=new JButton();
              tlbHops.add(btnAddHop);
              btnAddHop.setText("String_Node_Str");
              btnAddHop.addActionListener(new ActionListener(){
                public void actionPerformed(                ActionEvent evt){
                  if (myRecipe != null) {
                    Hop h=new Hop(myRecipe.getHopUnits());
                    myRecipe.addHop(h);
                    hopsTable.updateUI();
                    displayRecipe();
                  }
                }
              }
);
            }
{
              btnDelHop=new JButton();
              tlbHops.add(btnDelHop);
              btnDelHop.setText("String_Node_Str");
              btnDelHop.addActionListener(new ActionListener(){
                public void actionPerformed(                ActionEvent evt){
                  if (myRecipe != null) {
                    int i=hopsTable.getSelectedRow();
                    myRecipe.delHop(i);
                    hopsTable.updateUI();
                    displayRecipe();
                  }
                }
              }
);
            }
          }
        }
      }
{
        statusPanel=new JPanel();
        FlowLayout statusPanelLayout=new FlowLayout();
        statusPanelLayout.setAlignment(FlowLayout.LEFT);
        statusPanelLayout.setHgap(2);
        statusPanelLayout.setVgap(2);
        statusPanel.setLayout(statusPanelLayout);
        pnlMain.add(statusPanel,new GridBagConstraints(0,3,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
{
          fileNamePanel=new JPanel();
          statusPanel.add(fileNamePanel);
          fileNamePanel.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
{
            fileNameLabel=new JLabel();
            fileNamePanel.add(fileNameLabel);
            fileNameLabel.setText("String_Node_Str");
            fileNameLabel.setFont(new java.awt.Font("String_Node_Str",1,10));
          }
        }
{
          ibuMethodPanel=new JPanel();
          statusPanel.add(ibuMethodPanel);
          ibuMethodPanel.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
{
            ibuMethodLabel=new JLabel();
            ibuMethodPanel.add(ibuMethodLabel);
            ibuMethodLabel.setText("String_Node_Str");
            ibuMethodLabel.setFont(new java.awt.Font("String_Node_Str",1,10));
          }
        }
{
          alcMethodPanel=new JPanel();
          statusPanel.add(alcMethodPanel);
          alcMethodPanel.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
{
            alcMethodLabel=new JLabel();
            alcMethodPanel.add(alcMethodLabel);
            alcMethodLabel.setText("String_Node_Str");
            alcMethodLabel.setFont(new java.awt.Font("String_Node_Str",1,10));
          }
        }
      }
    }
{
      jMenuBar1=new JMenuBar();
      setJMenuBar(jMenuBar1);
{
        fileMenu=new JMenu();
        jMenuBar1.add(fileMenu);
        fileMenu.setText("String_Node_Str");
{
          newFileMenuItem=new JMenuItem();
          fileMenu.add(newFileMenuItem);
          newFileMenuItem.setText("String_Node_Str");
          newFileMenuItem.addActionListener(new ActionListener(){
            public void actionPerformed(            ActionEvent evt){
              myRecipe=new Recipe();
              currentFile=null;
              attachRecipeData();
              displayRecipe();
            }
          }
);
        }
{
          openFileMenuItem=new JMenuItem();
          fileMenu.add(openFileMenuItem);
          openFileMenuItem.setText("String_Node_Str");
          openFileMenuItem.addActionListener(new ActionListener(){
            public void actionPerformed(            ActionEvent evt){
              String[] ext={"String_Node_Str","String_Node_Str"};
              String desc="String_Node_Str";
              sbFileFilter saveFileFilter=new sbFileFilter(ext,desc);
              fileChooser.setFileFilter(saveFileFilter);
              int returnVal=fileChooser.showOpenDialog(jMenuBar1);
              if (returnVal == JFileChooser.APPROVE_OPTION) {
                File file=fileChooser.getSelectedFile();
                Debug.print("String_Node_Str" + file.getName() + "String_Node_Str");
                ImportXml imp=new ImportXml(file.toString());
                myRecipe=imp.handler.getRecipe();
                myRecipe.calcMaltTotals();
                myRecipe.calcHopsTotals();
                myRecipe.mash.calcMashSchedule();
                attachRecipeData();
                currentFile=file;
                displayRecipe();
              }
 else {
                Debug.print("String_Node_Str");
              }
            }
          }
);
        }
{
          findFileMenuItem=new JMenuItem();
          findFileMenuItem.setText("String_Node_Str");
          fileMenu.add(findFileMenuItem);
          final JFrame owner=this;
          findFileMenuItem.addActionListener(new ActionListener(){
            public void actionPerformed(            ActionEvent evt){
              FindDialog fd=new FindDialog(owner);
              fd.setVisible(true);
            }
          }
);
        }
{
          saveMenuItem=new JMenuItem();
          fileMenu.add(saveMenuItem);
          saveMenuItem.setText("String_Node_Str");
          saveMenuItem.addActionListener(new ActionListener(){
            public void actionPerformed(            ActionEvent evt){
              int choice=1;
              if (currentFile != null) {
                File file=currentFile;
                try {
                  FileWriter out=new FileWriter(file);
                  out.write(myRecipe.toXML());
                  out.close();
                  Debug.print("String_Node_Str" + file.getAbsoluteFile());
                  currentFile=file;
                }
 catch (                Exception e) {
                  showError(e);
                }
              }
 else {
                choice=JOptionPane.showConfirmDialog(null,"String_Node_Str","String_Node_Str",JOptionPane.YES_NO_OPTION);
              }
              if (choice == 0) {
                saveAs();
              }
            }
          }
);
        }
{
          saveAsMenuItem=new JMenuItem();
          fileMenu.add(saveAsMenuItem);
          saveAsMenuItem.setText("String_Node_Str");
          saveAsMenuItem.addActionListener(new ActionListener(){
            public void actionPerformed(            ActionEvent evt){
              Debug.print(myRecipe.toXML());
              saveAs();
            }
          }
);
        }
{
          exportMenu=new JMenu();
          fileMenu.add(exportMenu);
          exportMenu.setText("String_Node_Str");
{
            exportHTMLmenu=new JMenuItem();
            exportMenu.add(exportHTMLmenu);
            exportHTMLmenu.setText("String_Node_Str");
            exportHTMLmenu.addActionListener(new ActionListener(){
              public void actionPerformed(              ActionEvent evt){
                String[] ext={"String_Node_Str","String_Node_Str"};
                sbFileFilter saveFileFilter=new sbFileFilter(ext,"String_Node_Str");
                fileChooser.setFileFilter(saveFileFilter);
                fileChooser.setSelectedFile(new File(myRecipe.getName() + "String_Node_Str"));
                int returnVal=fileChooser.showSaveDialog(jMenuBar1);
                if (returnVal == JFileChooser.APPROVE_OPTION) {
                  File file=fileChooser.getSelectedFile();
                  try {
                    saveAsHTML(file);
                  }
 catch (                  Exception e) {
                    showError(e);
                  }
                }
 else {
                  Debug.print("String_Node_Str");
                }
              }
            }
);
            exportTextMenuItem=new JMenuItem();
            exportMenu.add(exportTextMenuItem);
            exportTextMenuItem.setText("String_Node_Str");
            exportTextMenuItem.addActionListener(new ActionListener(){
              public void actionPerformed(              ActionEvent evt){
                String[] ext={"String_Node_Str"};
                sbFileFilter saveFileFilter=new sbFileFilter(ext,"String_Node_Str");
                fileChooser.setFileFilter(saveFileFilter);
                fileChooser.setSelectedFile(new File(myRecipe.getName() + "String_Node_Str"));
                int returnVal=fileChooser.showSaveDialog(jMenuBar1);
                if (returnVal == JFileChooser.APPROVE_OPTION) {
                  File file=fileChooser.getSelectedFile();
                  try {
                    FileWriter out=new FileWriter(file);
                    out.write(myRecipe.toText());
                    out.close();
                  }
 catch (                  Exception e) {
                    showError(e);
                  }
                }
 else {
                  Debug.print("String_Node_Str");
                }
              }
            }
);
          }
        }
{
          jSeparator2=new JSeparator();
          fileMenu.add(jSeparator2);
        }
{
          exitMenuItem=new JMenuItem();
          fileMenu.add(exitMenuItem);
          exitMenuItem.setText("String_Node_Str");
          exitMenuItem.addActionListener(new ActionListener(){
            public void actionPerformed(            ActionEvent evt){
              System.exit(0);
            }
          }
);
        }
      }
{
        jMenu4=new JMenu();
        jMenuBar1.add(jMenu4);
        jMenu4.setText("String_Node_Str");
{
          final JFrame owner=this;
          editPrefsMenuItem=new JMenuItem();
          jMenu4.add(editPrefsMenuItem);
          editPrefsMenuItem.setText("String_Node_Str");
          editPrefsMenuItem.addActionListener(new ActionListener(){
            public void actionPerformed(            ActionEvent evt){
              PreferencesDialog d=new PreferencesDialog(owner,preferences);
              d.setVisible(true);
            }
          }
);
        }
{
          jSeparator1=new JSeparator();
          jMenu4.add(jSeparator1);
        }
{
          deleteMenuItem=new JMenuItem();
          jMenu4.add(deleteMenuItem);
          deleteMenuItem.setText("String_Node_Str");
          deleteMenuItem.setEnabled(false);
        }
      }
{
        mnuTools=new JMenu();
        jMenuBar1.add(mnuTools);
        mnuTools.setText("String_Node_Str");
{
          mashManagerMenuItem=new JMenuItem();
          mnuTools.add(mashManagerMenuItem);
          mashManagerMenuItem.setText("String_Node_Str");
          mashManagerMenuItem.addActionListener(new ActionListener(){
            public void actionPerformed(            ActionEvent evt){
              mashMgr=new MashManager(myRecipe);
              mashMgr.setVisible(true);
            }
          }
);
          JMenuItem maltPercentMenuItem=new JMenuItem();
          mnuTools.add(maltPercentMenuItem);
          maltPercentMenuItem.setText("String_Node_Str");
          final JFrame owner=this;
          maltPercentMenuItem.addActionListener(new ActionListener(){
            public void actionPerformed(            ActionEvent evt){
              MaltPercentDialog maltPercent=new MaltPercentDialog(owner);
              maltPercent.setVisible(true);
            }
          }
);
        }
      }
{
        jMenu5=new JMenu();
        jMenuBar1.add(jMenu5);
        jMenu5.setText("String_Node_Str");
{
          helpMenuItem=new JMenuItem();
          jMenu5.add(helpMenuItem);
          helpMenuItem.setText("String_Node_Str");
        }
{
          aboutMenuItem=new JMenuItem();
          jMenu5.add(aboutMenuItem);
          aboutMenuItem.setText("String_Node_Str");
          final JFrame owner=this;
          aboutMenuItem.addActionListener(new ActionListener(){
            public void actionPerformed(            ActionEvent evt){
              aboutDlg=new AboutDialog(owner,version);
              aboutDlg.setVisible(true);
            }
          }
);
        }
      }
    }
  }
 catch (  Exception e) {
    e.printStackTrace();
  }
}

Fixed version (ground truth):
private void initGUI(){
  try {
    this.setSize(600,532);
    this.addWindowListener(new WindowAdapter(){
      public void windowClosed(      WindowEvent evt){
        System.exit(1);
      }
    }
);
{
      pnlMain=new JPanel();
      GridBagLayout jPanel2Layout=new GridBagLayout();
      jPanel2Layout.columnWeights=new double[]{0.1};
      jPanel2Layout.columnWidths=new int[]{7};
      jPanel2Layout.rowWeights=new double[]{0.1,0.1,0.9,0.1};
      jPanel2Layout.rowHeights=new int[]{7,7,7,7};
      pnlMain.setLayout(jPanel2Layout);
      this.getContentPane().add(pnlMain,BorderLayout.CENTER);
{
        jPanel1=new JPanel();
        pnlMain.add(jPanel1,new GridBagConstraints(0,0,1,1,0.0,0.0,GridBagConstraints.WEST,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
        FlowLayout jPanel1Layout=new FlowLayout();
        jPanel1Layout.setAlignment(FlowLayout.LEFT);
        jPanel1.setLayout(jPanel1Layout);
{
          lblName=new JLabel();
          jPanel1.add(lblName);
          lblName.setText("String_Node_Str");
        }
{
          txtName=new JTextField();
          jPanel1.add(txtName);
          txtName.setText("String_Node_Str");
          txtName.setPreferredSize(new java.awt.Dimension(179,20));
          txtName.addActionListener(this);
          txtName.addFocusListener(this);
        }
      }
{
        jTabbedPane1=new JTabbedPane();
        pnlMain.add(jTabbedPane1,new GridBagConstraints(0,1,1,1,0.1,0.1,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,0,0,0),0,0));
{
          pnlDetails=new JPanel();
          GridBagLayout pnlDetailsLayout=new GridBagLayout();
          pnlDetailsLayout.columnWeights=new double[]{0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1};
          pnlDetailsLayout.columnWidths=new int[]{7,7,7,7,7,7,7,7,7,7};
          pnlDetailsLayout.rowWeights=new double[]{0.1,0.1,0.1,0.1,0.1,0.1,0.1};
          pnlDetailsLayout.rowHeights=new int[]{7,7,7,7,7,7,7};
          pnlDetails.setLayout(pnlDetailsLayout);
          jTabbedPane1.addTab("String_Node_Str",null,pnlDetails,null);
          pnlDetails.setPreferredSize(new java.awt.Dimension(20,16));
{
            lblBrewer=new JLabel();
            pnlDetails.add(lblBrewer,new GridBagConstraints(0,0,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            lblBrewer.setText("String_Node_Str");
          }
{
            brewerNameText=new JTextField();
            pnlDetails.add(brewerNameText,new GridBagConstraints(1,0,2,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
            brewerNameText.setPreferredSize(new java.awt.Dimension(69,20));
            brewerNameText.addFocusListener(this);
            brewerNameText.addActionListener(this);
            brewerNameText.setText("String_Node_Str");
          }
{
            lblDate=new JLabel();
            pnlDetails.add(lblDate,new GridBagConstraints(0,1,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            lblDate.setText("String_Node_Str");
          }
{
            lblStyle=new JLabel();
            pnlDetails.add(lblStyle,new GridBagConstraints(0,2,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            lblStyle.setText("String_Node_Str");
          }
{
            lblYeast=new JLabel();
            pnlDetails.add(lblYeast,new GridBagConstraints(0,3,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            lblYeast.setText("String_Node_Str");
          }
{
            lblPreBoil=new JLabel();
            pnlDetails.add(lblPreBoil,new GridBagConstraints(0,4,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            lblPreBoil.setText("String_Node_Str");
          }
{
            lblPostBoil=new JLabel();
            pnlDetails.add(lblPostBoil,new GridBagConstraints(0,5,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            lblPostBoil.setText("String_Node_Str");
          }
{
            lblEffic=new JLabel();
            pnlDetails.add(lblEffic,new GridBagConstraints(3,0,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            lblEffic.setText("String_Node_Str");
            lblEffic.setPreferredSize(new java.awt.Dimension(31,14));
          }
{
            lblAtten=new JLabel();
            pnlDetails.add(lblAtten,new GridBagConstraints(3,1,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            lblAtten.setText("String_Node_Str");
            lblAtten.setPreferredSize(new java.awt.Dimension(34,14));
          }
{
            lblOG=new JLabel();
            pnlDetails.add(lblOG,new GridBagConstraints(5,0,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            lblOG.setText("String_Node_Str");
          }
{
            lblFG=new JLabel();
            pnlDetails.add(lblFG,new GridBagConstraints(5,1,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            lblFG.setText("String_Node_Str");
          }
{
            lblIBU=new JLabel();
            pnlDetails.add(lblIBU,new GridBagConstraints(7,1,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            lblIBU.setText("String_Node_Str");
          }
{
            lblAlc=new JLabel();
            pnlDetails.add(lblAlc,new GridBagConstraints(7,0,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            lblAlc.setText("String_Node_Str");
          }
{
            lblColour=new JLabel();
            pnlDetails.add(lblColour,new GridBagConstraints(7,2,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            lblColour.setText("String_Node_Str");
          }
{
            txtDate=new JFormattedTextField();
            pnlDetails.add(txtDate,new GridBagConstraints(1,1,2,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
            txtDate.setText("String_Node_Str");
            txtDate.setPreferredSize(new java.awt.Dimension(73,20));
            txtDate.addFocusListener(this);
            txtDate.addActionListener(this);
          }
{
            cmbStyleModel=new ComboModel();
            cmbStyle=new JComboBox();
            pnlDetails.add(cmbStyle,new GridBagConstraints(1,2,5,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
            cmbStyle.setModel(cmbStyleModel);
            cmbStyle.setMaximumSize(new java.awt.Dimension(100,32767));
            cmbStyle.setPreferredSize(new java.awt.Dimension(190,20));
            cmbStyle.addActionListener(new ActionListener(){
              public void actionPerformed(              ActionEvent evt){
                Style s=(Style)cmbStyleModel.getSelectedItem();
                if (myRecipe != null && s != myRecipe.getStyleObj()) {
                  myRecipe.setStyle(s);
                  stylePanel.setStyle(s);
                }
                cmbStyle.setToolTipText(SBStringUtils.multiLineToolTip(50,s.getDescription()));
              }
            }
);
          }
{
            txtPreBoil=new JFormattedTextField();
            pnlDetails.add(txtPreBoil,new GridBagConstraints(1,4,1,1,0.0,0.0,GridBagConstraints.WEST,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
            txtPreBoil.setText("String_Node_Str");
            txtPreBoil.setPreferredSize(new java.awt.Dimension(37,20));
            txtPreBoil.addFocusListener(this);
            txtPreBoil.addActionListener(this);
          }
{
            postBoilText=new JFormattedTextField();
            pnlDetails.add(postBoilText,new GridBagConstraints(1,5,1,1,0.0,0.0,GridBagConstraints.WEST,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
            postBoilText.setText("String_Node_Str");
            postBoilText.setPreferredSize(new java.awt.Dimension(46,20));
            postBoilText.addFocusListener(new FocusAdapter(){
              public void focusLost(              FocusEvent evt){
                myRecipe.setPostBoil(Double.parseDouble(postBoilText.getText().toString()));
                displayRecipe();
              }
            }
);
            postBoilText.addActionListener(new ActionListener(){
              public void actionPerformed(              ActionEvent evt){
                myRecipe.setPostBoil(Double.parseDouble(postBoilText.getText().toString()));
                displayRecipe();
              }
            }
);
          }
{
            lblComments=new JLabel();
            pnlDetails.add(lblComments,new GridBagConstraints(6,4,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            lblComments.setText("String_Node_Str");
          }
{
            SpinnerNumberModel spnEfficModel=new SpinnerNumberModel(75.0,0.0,100.0,1.0);
            spnEffic=new JSpinner();
            pnlDetails.add(spnEffic,new GridBagConstraints(4,0,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
            spnEffic.setModel(spnEfficModel);
            spnEffic.setMaximumSize(new java.awt.Dimension(70,32767));
            spnEffic.addChangeListener(new ChangeListener(){
              public void stateChanged(              ChangeEvent evt){
                myRecipe.setEfficiency(Double.parseDouble(spnEffic.getValue().toString()));
                displayRecipe();
              }
            }
);
            spnEffic.setEditor(new JSpinner.NumberEditor(spnEffic,"String_Node_Str"));
            spnEffic.getEditor().setPreferredSize(new java.awt.Dimension(28,16));
            spnEffic.setPreferredSize(new java.awt.Dimension(53,18));
          }
{
            SpinnerNumberModel spnAttenModel=new SpinnerNumberModel(75.0,0.0,100.0,1.0);
            spnAtten=new JSpinner();
            pnlDetails.add(spnAtten,new GridBagConstraints(4,1,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
            spnAtten.setModel(spnAttenModel);
            spnAtten.addChangeListener(new ChangeListener(){
              public void stateChanged(              ChangeEvent evt){
                myRecipe.setAttenuation(Double.parseDouble(spnAtten.getValue().toString()));
                displayRecipe();
              }
            }
);
            spnAtten.setEditor(new JSpinner.NumberEditor(spnAtten,"String_Node_Str"));
            spnAtten.setPreferredSize(new java.awt.Dimension(49,20));
          }
{
            SpinnerNumberModel spnOgModel=new SpinnerNumberModel(1.000,0.900,2.000,0.001);
            spnOG=new JSpinner();
            pnlDetails.add(spnOG,new GridBagConstraints(6,0,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
            spnOG.setModel(spnOgModel);
            spnOG.addChangeListener(new ChangeListener(){
              public void stateChanged(              ChangeEvent evt){
                myRecipe.setEstOg(Double.parseDouble(spnOG.getValue().toString()));
                displayRecipe();
              }
            }
);
            spnOG.setEditor(new JSpinner.NumberEditor(spnOG,"String_Node_Str"));
            spnOG.getEditor().setPreferredSize(new java.awt.Dimension(20,16));
            spnOG.setPreferredSize(new java.awt.Dimension(67,18));
          }
{
            SpinnerNumberModel spnFgModel=new SpinnerNumberModel(1.000,0.900,2.000,0.001);
            spnFG=new JSpinner();
            pnlDetails.add(spnFG,new GridBagConstraints(6,1,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
            spnFG.setModel(spnFgModel);
            spnFG.setEditor(new JSpinner.NumberEditor(spnFG,"String_Node_Str"));
            spnFG.setPreferredSize(new java.awt.Dimension(69,20));
            spnFG.addChangeListener(new ChangeListener(){
              public void stateChanged(              ChangeEvent evt){
                myRecipe.setEstFg(Double.parseDouble(spnFG.getValue().toString()));
                displayRecipe();
              }
            }
);
          }
{
            lblIBUvalue=new JLabel();
            pnlDetails.add(lblIBUvalue,new GridBagConstraints(8,1,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            lblIBUvalue.setText("String_Node_Str");
          }
{
            lblColourValue=new JLabel();
            pnlDetails.add(lblColourValue,new GridBagConstraints(8,2,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            lblColourValue.setText("String_Node_Str");
          }
{
            lblAlcValue=new JLabel();
            pnlDetails.add(lblAlcValue,new GridBagConstraints(8,0,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            lblAlcValue.setText("String_Node_Str");
          }
{
            scpComments=new JScrollPane();
            pnlDetails.add(scpComments,new GridBagConstraints(7,4,3,2,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.BOTH,new Insets(0,0,0,0),0,0));
{
              txtComments=new JTextArea();
              scpComments.setViewportView(txtComments);
              txtComments.setText("String_Node_Str");
              txtComments.setWrapStyleWord(true);
              txtComments.setLineWrap(true);
              txtComments.setPreferredSize(new java.awt.Dimension(263,40));
              txtComments.addFocusListener(new FocusAdapter(){
                public void focusLost(                FocusEvent evt){
                  if (!txtComments.getText().equals(myRecipe.getComments())) {
                    myRecipe.setComments(txtComments.getText());
                  }
                }
              }
);
            }
          }
{
            cmbYeastModel=new ComboModel();
            cmbYeast=new JComboBox();
            pnlDetails.add(cmbYeast,new GridBagConstraints(1,3,5,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
            cmbYeast.setModel(cmbYeastModel);
            cmbYeast.setPreferredSize(new java.awt.Dimension(193,20));
            cmbYeast.addActionListener(new ActionListener(){
              public void actionPerformed(              ActionEvent evt){
                Yeast y=(Yeast)cmbYeastModel.getSelectedItem();
                if (myRecipe != null && y != myRecipe.getYeastObj()) {
                  myRecipe.setYeast(y);
                }
                String st=SBStringUtils.multiLineToolTip(40,y.getDescription());
                cmbYeast.setToolTipText(st);
              }
            }
);
          }
{
            cmbSizeUnitsModel=new ComboModel();
            cmbSizeUnits=new JComboBox();
            pnlDetails.add(cmbSizeUnits,new GridBagConstraints(2,4,2,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
            cmbSizeUnits.setModel(cmbSizeUnitsModel);
            cmbSizeUnits.addActionListener(new ActionListener(){
              public void actionPerformed(              ActionEvent evt){
                String q=(String)cmbSizeUnits.getSelectedItem();
                if (myRecipe != null && q != myRecipe.getVolUnits()) {
                  myRecipe.setVolUnits(q);
                  displayRecipe();
                }
              }
            }
);
          }
{
            lblSizeUnits=new JLabel();
            pnlDetails.add(lblSizeUnits,new GridBagConstraints(2,5,2,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
            lblSizeUnits.setText("String_Node_Str");
          }
{
            boilTimeLable=new JLabel();
            pnlDetails.add(boilTimeLable,new GridBagConstraints(4,4,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            boilTimeLable.setText("String_Node_Str");
          }
{
            evapLabel=new JLabel();
            pnlDetails.add(evapLabel,new GridBagConstraints(4,5,1,1,0.0,0.0,GridBagConstraints.EAST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            evapLabel.setText("String_Node_Str");
          }
{
            boilMinText=new JTextField();
            pnlDetails.add(boilMinText,new GridBagConstraints(5,4,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
            boilMinText.setText("String_Node_Str");
            boilMinText.setPreferredSize(new java.awt.Dimension(22,20));
            boilMinText.addFocusListener(this);
            boilMinText.addActionListener(this);
          }
{
            evapText=new JTextField();
            pnlDetails.add(evapText,new GridBagConstraints(5,5,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
            evapText.setText("String_Node_Str");
            evapText.setPreferredSize(new java.awt.Dimension(23,20));
            evapText.addFocusListener(this);
            evapText.addActionListener(this);
          }
{
            alcMethodComboModel=new DefaultComboBoxModel(new String[]{"String_Node_Str","String_Node_Str"});
            alcMethodCombo=new JComboBox(alcMethodComboModel);
            pnlDetails.add(alcMethodCombo,new GridBagConstraints(9,0,1,1,0.0,0.0,GridBagConstraints.WEST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            alcMethodCombo.setPreferredSize(new java.awt.Dimension(58,20));
            alcMethodCombo.addActionListener(new ActionListener(){
              public void actionPerformed(              ActionEvent evt){
                recipeSettingsActionPerformed(evt);
              }
            }
);
          }
{
            ibuMethodComboModel=new DefaultComboBoxModel(new String[]{"String_Node_Str","String_Node_Str","String_Node_Str"});
            ibuMethodCombo=new JComboBox(ibuMethodComboModel);
            pnlDetails.add(ibuMethodCombo,new GridBagConstraints(9,1,1,1,0.0,0.0,GridBagConstraints.WEST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            ibuMethodCombo.setPreferredSize(new java.awt.Dimension(59,20));
            ibuMethodCombo.addActionListener(new ActionListener(){
              public void actionPerformed(              ActionEvent evt){
                recipeSettingsActionPerformed(evt);
              }
            }
);
          }
{
            colourMethodComboModel=new DefaultComboBoxModel(new String[]{"String_Node_Str","String_Node_Str"});
            colourMethodCombo=new JComboBox(colourMethodComboModel);
            pnlDetails.add(colourMethodCombo,new GridBagConstraints(9,2,1,1,0.0,0.0,GridBagConstraints.WEST,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
            colourMethodCombo.setPreferredSize(new java.awt.Dimension(44,20));
            colourMethodCombo.addActionListener(new ActionListener(){
              public void actionPerformed(              ActionEvent evt){
                recipeSettingsActionPerformed(evt);
              }
            }
);
          }
          ComboBoxModel evapMethodComboModel=new DefaultComboBoxModel(new String[]{"String_Node_Str","String_Node_Str"});
          evapMethodCombo=new JComboBox();
          pnlDetails.add(evapMethodCombo,new GridBagConstraints(6,5,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.NONE,new Insets(0,0,0,0),0,0));
          evapMethodCombo.setModel(evapMethodComboModel);
          evapMethodCombo.setPreferredSize(new java.awt.Dimension(64,20));
          colourPanel=new JPanel();
          pnlDetails.add(colourPanel,new GridBagConstraints(8,3,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,0,0,0),0,0));
          colourPanel.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
          colourPanel2=new JPanel();
          pnlDetails.add(colourPanel2,new GridBagConstraints(9,3,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,0,0,0),0,0));
          colourPanel2.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
          evapMethodCombo.addActionListener(new ActionListener(){
            public void actionPerformed(            ActionEvent evt){
              recipeSettingsActionPerformed(evt);
            }
          }
);
        }
{
          SBNotifier sbn=new SBNotifier();
          stylePanel=new StylePanel(sbn);
          jTabbedPane1.addTab("String_Node_Str",null,stylePanel,null);
        }
{
          miscPanel=new MiscPanel(myRecipe);
          jTabbedPane1.addTab("String_Node_Str",null,miscPanel,null);
        }
{
          notesPanel=new NotesPanel();
          jTabbedPane1.addTab("String_Node_Str",null,notesPanel,null);
        }
{
          dilutionPanel=new DilutionPanel();
          jTabbedPane1.addTab("String_Node_Str",null,dilutionPanel,null);
        }
{
          SBNotifier sbn=new SBNotifier();
          settingsPanel=new SettingsPanel(sbn);
          jTabbedPane1.addTab("String_Node_Str",null,settingsPanel,null);
        }
{
        }
      }
{
        pnlTables=new JPanel();
        BoxLayout pnlMaltsLayout=new BoxLayout(pnlTables,javax.swing.BoxLayout.Y_AXIS);
        pnlMain.add(pnlTables,new GridBagConstraints(0,2,1,1,0.5,0.5,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,0,0,0),0,0));
        pnlTables.setLayout(pnlMaltsLayout);
{
          pnlMalt=new JPanel();
          pnlTables.add(pnlMalt);
          BorderLayout pnlMaltLayout1=new BorderLayout();
          pnlMalt.setBorder(BorderFactory.createTitledBorder(new LineBorder(new java.awt.Color(0,0,0),1,false),"String_Node_Str",TitledBorder.LEADING,TitledBorder.TOP,new java.awt.Font("String_Node_Str",1,12),new java.awt.Color(51,51,51)));
          pnlMalt.setLayout(pnlMaltLayout1);
{
            jScrollPane1=new JScrollPane();
            pnlMalt.add(jScrollPane1,BorderLayout.CENTER);
{
              maltTableModel=new MaltTableModel(this);
              maltTable=new JTable(){
                public String getToolTipText(                MouseEvent e){
                  java.awt.Point p=e.getPoint();
                  int rowIndex=rowAtPoint(p);
                  return SBStringUtils.multiLineToolTip(40,maltTableModel.getDescriptionAt(rowIndex));
                }
              }
;
              jScrollPane1.setViewportView(maltTable);
              maltTable.setModel(maltTableModel);
              maltTable.getTableHeader().setReorderingAllowed(false);
              TableColumn maltColumn=maltTable.getColumnModel().getColumn(0);
              JComboBox maltComboBox=new JComboBox();
              cmbMaltModel=new ComboModel();
              maltComboBox.setModel(cmbMaltModel);
              maltColumn.setCellEditor(new DefaultCellEditor(maltComboBox));
              maltComboBox.addActionListener(new ActionListener(){
                public void actionPerformed(                ActionEvent evt){
                  Fermentable f=(Fermentable)cmbMaltModel.getSelectedItem();
                  int i=maltTable.getSelectedRow();
                  if (myRecipe != null && i != -1) {
                    Fermentable f2=myRecipe.getFermentable(i);
                    if (f2 != null) {
                      f2.setLov(f.getLov());
                      f2.setPppg(f.getPppg());
                      f2.setDescription(f.getDescription());
                      f2.setMashed(f.getMashed());
                      f2.setSteep(f.getSteep());
                    }
                  }
                }
              }
);
              JComboBox maltUnitsComboBox=new JComboBox();
              cmbMaltUnitsModel=new ComboModel();
              maltUnitsComboBox.setModel(cmbMaltUnitsModel);
              maltColumn=maltTable.getColumnModel().getColumn(2);
              maltColumn.setCellEditor(new DefaultCellEditor(maltUnitsComboBox));
              maltUnitsComboBox.addActionListener(new ActionListener(){
                public void actionPerformed(                ActionEvent evt){
                  String u=(String)cmbMaltUnitsModel.getSelectedItem();
                  int i=maltTable.getSelectedRow();
                  if (myRecipe != null && i != -1) {
                    Fermentable f2=myRecipe.getFermentable(i);
                    if (f2 != null) {
                      f2.setUnitsFull(u);
                      myRecipe.calcMaltTotals();
                      displayRecipe();
                    }
                  }
                }
              }
);
            }
          }
{
            tblMaltTotalsModel=new DefaultTableModel(new String[][]{{"String_Node_Str"}},new String[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"});
            tblMaltTotals=new JTable();
            pnlMalt.add(tblMaltTotals,BorderLayout.SOUTH);
            tblMaltTotals.setModel(tblMaltTotalsModel);
            tblMaltTotals.getTableHeader().setEnabled(false);
            tblMaltTotals.setAutoCreateColumnsFromModel(false);
          }
        }
{
          pnlMaltButtons=new JPanel();
          pnlTables.add(pnlMaltButtons);
          FlowLayout pnlMaltButtonsLayout=new FlowLayout();
          pnlMaltButtonsLayout.setAlignment(FlowLayout.LEFT);
          pnlMaltButtonsLayout.setVgap(0);
          pnlMaltButtons.setLayout(pnlMaltButtonsLayout);
          pnlMaltButtons.setPreferredSize(new java.awt.Dimension(592,27));
{
            tlbMalt=new JToolBar();
            pnlMaltButtons.add(tlbMalt);
            tlbMalt.setPreferredSize(new java.awt.Dimension(55,20));
            tlbMalt.setFloatable(false);
{
              btnAddMalt=new JButton();
              tlbMalt.add(btnAddMalt);
              btnAddMalt.setText("String_Node_Str");
              btnAddMalt.addActionListener(new ActionListener(){
                public void actionPerformed(                ActionEvent evt){
                  if (myRecipe != null) {
                    Fermentable f=new Fermentable(myRecipe.getMaltUnits());
                    myRecipe.addMalt(f);
                    maltTable.updateUI();
                    displayRecipe();
                  }
                }
              }
);
            }
{
              btnDelMalt=new JButton();
              tlbMalt.add(btnDelMalt);
              btnDelMalt.setText("String_Node_Str");
              btnDelMalt.addActionListener(new ActionListener(){
                public void actionPerformed(                ActionEvent evt){
                  if (myRecipe != null) {
                    int i=maltTable.getSelectedRow();
                    myRecipe.delMalt(i);
                    maltTable.updateUI();
                    displayRecipe();
                  }
                }
              }
);
            }
          }
        }
{
          pnlHops=new JPanel();
          BorderLayout pnlHopsLayout=new BorderLayout();
          pnlHops.setBorder(BorderFactory.createTitledBorder(new LineBorder(new java.awt.Color(0,0,0),1,false),"String_Node_Str",TitledBorder.LEADING,TitledBorder.TOP,new java.awt.Font("String_Node_Str",1,12),new java.awt.Color(51,51,51)));
          pnlHops.setLayout(pnlHopsLayout);
          pnlTables.add(pnlHops);
{
            tblHopsTotalsModel=new DefaultTableModel(new String[][]{{"String_Node_Str"}},new String[]{"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"});
            tblHopsTotals=new JTable();
            pnlHops.add(tblHopsTotals,BorderLayout.SOUTH);
            tblHopsTotals.setModel(tblHopsTotalsModel);
            tblHopsTotals.setAutoCreateColumnsFromModel(false);
          }
{
            jScrollPane2=new JScrollPane();
            pnlHops.add(jScrollPane2,BorderLayout.CENTER);
{
              hopsTableModel=new HopsTableModel(this);
              hopsTable=new JTable(){
                public String getToolTipText(                MouseEvent e){
                  java.awt.Point p=e.getPoint();
                  int rowIndex=rowAtPoint(p);
                  return SBStringUtils.multiLineToolTip(40,hopsTableModel.getDescriptionAt(rowIndex));
                }
              }
;
              jScrollPane2.setViewportView(hopsTable);
              hopsTable.setModel(hopsTableModel);
              hopsTable.getTableHeader().setReorderingAllowed(false);
              TableColumn hopColumn=hopsTable.getColumnModel().getColumn(0);
              JComboBox hopComboBox=new JComboBox();
              cmbHopsModel=new ComboModel();
              hopComboBox.setModel(cmbHopsModel);
              hopColumn.setCellEditor(new DefaultCellEditor(hopComboBox));
              hopComboBox.addActionListener(new ActionListener(){
                public void actionPerformed(                ActionEvent evt){
                  Hop h=(Hop)cmbHopsModel.getSelectedItem();
                  int i=hopsTable.getSelectedRow();
                  if (myRecipe != null && i != -1) {
                    Hop h2=myRecipe.getHop(i);
                    h2.setAlpha(h.getAlpha());
                    h2.setDescription(h.getDescription());
                  }
                }
              }
);
              JComboBox hopsUnitsComboBox=new JComboBox();
              cmbHopsUnitsModel=new ComboModel();
              hopsUnitsComboBox.setModel(cmbHopsUnitsModel);
              hopColumn=hopsTable.getColumnModel().getColumn(4);
              hopColumn.setCellEditor(new DefaultCellEditor(hopsUnitsComboBox));
              hopsUnitsComboBox.addActionListener(new ActionListener(){
                public void actionPerformed(                ActionEvent evt){
                  String u=(String)cmbHopsUnitsModel.getSelectedItem();
                  int i=hopsTable.getSelectedRow();
                  if (myRecipe != null && i != -1) {
                    Hop h=myRecipe.getHop(i);
                    h.setUnitsFull(u);
                    myRecipe.calcHopsTotals();
                    displayRecipe();
                  }
                }
              }
);
              String[] forms={"String_Node_Str","String_Node_Str","String_Node_Str"};
              JComboBox hopsFormComboBox=new JComboBox(forms);
              hopColumn=hopsTable.getColumnModel().getColumn(1);
              hopColumn.setCellEditor(new DefaultCellEditor(hopsFormComboBox));
              String[] add={"String_Node_Str","String_Node_Str","String_Node_Str","String_Node_Str"};
              JComboBox hopsAddComboBox=new JComboBox(add);
              hopColumn=hopsTable.getColumnModel().getColumn(5);
              hopColumn.setCellEditor(new DefaultCellEditor(hopsAddComboBox));
            }
          }
        }
{
          pnlHopsButtons=new JPanel();
          FlowLayout pnlHopsButtonsLayout=new FlowLayout();
          pnlHopsButtonsLayout.setAlignment(FlowLayout.LEFT);
          pnlHopsButtonsLayout.setVgap(0);
          pnlHopsButtons.setLayout(pnlHopsButtonsLayout);
          pnlTables.add(pnlHopsButtons);
          pnlHopsButtons.setPreferredSize(new java.awt.Dimension(512,16));
{
            tlbHops=new JToolBar();
            pnlHopsButtons.add(tlbHops);
            tlbHops.setPreferredSize(new java.awt.Dimension(58,19));
            tlbHops.setFloatable(false);
{
              btnAddHop=new JButton();
              tlbHops.add(btnAddHop);
              btnAddHop.setText("String_Node_Str");
              btnAddHop.addActionListener(new ActionListener(){
                public void actionPerformed(                ActionEvent evt){
                  if (myRecipe != null) {
                    Hop h=new Hop(myRecipe.getHopUnits());
                    myRecipe.addHop(h);
                    hopsTable.updateUI();
                    displayRecipe();
                  }
                }
              }
);
            }
{
              btnDelHop=new JButton();
              tlbHops.add(btnDelHop);
              btnDelHop.setText("String_Node_Str");
              btnDelHop.addActionListener(new ActionListener(){
                public void actionPerformed(                ActionEvent evt){
                  if (myRecipe != null) {
                    int i=hopsTable.getSelectedRow();
                    myRecipe.delHop(i);
                    hopsTable.updateUI();
                    displayRecipe();
                  }
                }
              }
);
            }
          }
        }
      }
{
        statusPanel=new JPanel();
        FlowLayout statusPanelLayout=new FlowLayout();
        statusPanelLayout.setAlignment(FlowLayout.LEFT);
        statusPanelLayout.setHgap(2);
        statusPanelLayout.setVgap(2);
        statusPanel.setLayout(statusPanelLayout);
        pnlMain.add(statusPanel,new GridBagConstraints(0,3,1,1,0.0,0.0,GridBagConstraints.CENTER,GridBagConstraints.HORIZONTAL,new Insets(0,0,0,0),0,0));
{
          fileNamePanel=new JPanel();
          statusPanel.add(fileNamePanel);
          fileNamePanel.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
{
            fileNameLabel=new JLabel();
            fileNamePanel.add(fileNameLabel);
            fileNameLabel.setText("String_Node_Str");
            fileNameLabel.setFont(new java.awt.Font("String_Node_Str",1,10));
          }
        }
{
          ibuMethodPanel=new JPanel();
          statusPanel.add(ibuMethodPanel);
          ibuMethodPanel.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
{
            ibuMethodLabel=new JLabel();
            ibuMethodPanel.add(ibuMethodLabel);
            ibuMethodLabel.setText("String_Node_Str");
            ibuMethodLabel.setFont(new java.awt.Font("String_Node_Str",1,10));
          }
        }
{
          alcMethodPanel=new JPanel();
          statusPanel.add(alcMethodPanel);
          alcMethodPanel.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
{
            alcMethodLabel=new JLabel();
            alcMethodPanel.add(alcMethodLabel);
            alcMethodLabel.setText("String_Node_Str");
            alcMethodLabel.setFont(new java.awt.Font("String_Node_Str",1,10));
          }
        }
      }
    }
{
      jMenuBar1=new JMenuBar();
      setJMenuBar(jMenuBar1);
{
        fileMenu=new JMenu();
        jMenuBar1.add(fileMenu);
        fileMenu.setText("String_Node_Str");
{
          newFileMenuItem=new JMenuItem();
          fileMenu.add(newFileMenuItem);
          newFileMenuItem.setText("String_Node_Str");
          newFileMenuItem.addActionListener(new ActionListener(){
            public void actionPerformed(            ActionEvent evt){
              myRecipe=new Recipe();
              currentFile=null;
              attachRecipeData();
              displayRecipe();
            }
          }
);
        }
{
          openFileMenuItem=new JMenuItem();
          fileMenu.add(openFileMenuItem);
          openFileMenuItem.setText("String_Node_Str");
          openFileMenuItem.addActionListener(new ActionListener(){
            public void actionPerformed(            ActionEvent evt){
              String[] ext={"String_Node_Str","String_Node_Str"};
              String desc="String_Node_Str";
              sbFileFilter saveFileFilter=new sbFileFilter(ext,desc);
              fileChooser.setFileFilter(saveFileFilter);
              int returnVal=fileChooser.showOpenDialog(jMenuBar1);
              if (returnVal == JFileChooser.APPROVE_OPTION) {
                File file=fileChooser.getSelectedFile();
                Debug.print("String_Node_Str" + file.getName() + "String_Node_Str");
                ImportXml imp=new ImportXml(file.toString());
                myRecipe=imp.handler.getRecipe();
                myRecipe.calcMaltTotals();
                myRecipe.calcHopsTotals();
                myRecipe.mash.calcMashSchedule();
                attachRecipeData();
                currentFile=file;
                displayRecipe();
              }
 else {
                Debug.print("String_Node_Str");
              }
            }
          }
);
        }
{
          findFileMenuItem=new JMenuItem();
          findFileMenuItem.setText("String_Node_Str");
          fileMenu.add(findFileMenuItem);
          final JFrame owner=this;
          findFileMenuItem.addActionListener(new ActionListener(){
            public void actionPerformed(            ActionEvent evt){
              FindDialog fd=new FindDialog(owner);
              fd.setVisible(true);
            }
          }
);
        }
{
          saveMenuItem=new JMenuItem();
          fileMenu.add(saveMenuItem);
          saveMenuItem.setText("String_Node_Str");
          saveMenuItem.addActionListener(new ActionListener(){
            public void actionPerformed(            ActionEvent evt){
              int choice=1;
              if (currentFile != null) {
                File file=currentFile;
                try {
                  FileWriter out=new FileWriter(file);
                  out.write(myRecipe.toXML());
                  out.close();
                  Debug.print("String_Node_Str" + file.getAbsoluteFile());
                  currentFile=file;
                }
 catch (                Exception e) {
                  showError(e);
                }
              }
 else {
                choice=JOptionPane.showConfirmDialog(null,"String_Node_Str","String_Node_Str",JOptionPane.YES_NO_OPTION);
              }
              if (choice == 0) {
                saveAs();
              }
            }
          }
);
        }
{
          saveAsMenuItem=new JMenuItem();
          fileMenu.add(saveAsMenuItem);
          saveAsMenuItem.setText("String_Node_Str");
          saveAsMenuItem.addActionListener(new ActionListener(){
            public void actionPerformed(            ActionEvent evt){
              Debug.print(myRecipe.toXML());
              saveAs();
            }
          }
);
        }
{
          exportMenu=new JMenu();
          fileMenu.add(exportMenu);
          exportMenu.setText("String_Node_Str");
{
            exportHTMLmenu=new JMenuItem();
            exportMenu.add(exportHTMLmenu);
            exportHTMLmenu.setText("String_Node_Str");
            exportHTMLmenu.addActionListener(new ActionListener(){
              public void actionPerformed(              ActionEvent evt){
                String[] ext={"String_Node_Str","String_Node_Str"};
                sbFileFilter saveFileFilter=new sbFileFilter(ext,"String_Node_Str");
                fileChooser.setFileFilter(saveFileFilter);
                fileChooser.setSelectedFile(new File(myRecipe.getName() + "String_Node_Str"));
                int returnVal=fileChooser.showSaveDialog(jMenuBar1);
                if (returnVal == JFileChooser.APPROVE_OPTION) {
                  File file=fileChooser.getSelectedFile();
                  try {
                    saveAsHTML(file);
                  }
 catch (                  Exception e) {
                    showError(e);
                  }
                }
 else {
                  Debug.print("String_Node_Str");
                }
              }
            }
);
            exportTextMenuItem=new JMenuItem();
            exportMenu.add(exportTextMenuItem);
            exportTextMenuItem.setText("String_Node_Str");
            exportTextMenuItem.addActionListener(new ActionListener(){
              public void actionPerformed(              ActionEvent evt){
                String[] ext={"String_Node_Str"};
                sbFileFilter saveFileFilter=new sbFileFilter(ext,"String_Node_Str");
                fileChooser.setFileFilter(saveFileFilter);
                fileChooser.setSelectedFile(new File(myRecipe.getName() + "String_Node_Str"));
                int returnVal=fileChooser.showSaveDialog(jMenuBar1);
                if (returnVal == JFileChooser.APPROVE_OPTION) {
                  File file=fileChooser.getSelectedFile();
                  try {
                    FileWriter out=new FileWriter(file);
                    out.write(myRecipe.toText());
                    out.close();
                  }
 catch (                  Exception e) {
                    showError(e);
                  }
                }
 else {
                  Debug.print("String_Node_Str");
                }
              }
            }
);
          }
        }
{
          jSeparator2=new JSeparator();
          fileMenu.add(jSeparator2);
        }
{
          exitMenuItem=new JMenuItem();
          fileMenu.add(exitMenuItem);
          exitMenuItem.setText("String_Node_Str");
          exitMenuItem.addActionListener(new ActionListener(){
            public void actionPerformed(            ActionEvent evt){
              System.exit(0);
            }
          }
);
        }
      }
{
        jMenu4=new JMenu();
        jMenuBar1.add(jMenu4);
        jMenu4.setText("String_Node_Str");
{
          final JFrame owner=this;
          editPrefsMenuItem=new JMenuItem();
          jMenu4.add(editPrefsMenuItem);
          editPrefsMenuItem.setText("String_Node_Str");
          editPrefsMenuItem.addActionListener(new ActionListener(){
            public void actionPerformed(            ActionEvent evt){
              PreferencesDialog d=new PreferencesDialog(owner,preferences);
              d.setVisible(true);
            }
          }
);
        }
{
          jSeparator1=new JSeparator();
          jMenu4.add(jSeparator1);
        }
{
          deleteMenuItem=new JMenuItem();
          jMenu4.add(deleteMenuItem);
          deleteMenuItem.setText("String_Node_Str");
          deleteMenuItem.setEnabled(false);
        }
      }
{
        mnuTools=new JMenu();
        jMenuBar1.add(mnuTools);
        mnuTools.setText("String_Node_Str");
{
          mashManagerMenuItem=new JMenuItem();
          mnuTools.add(mashManagerMenuItem);
          mashManagerMenuItem.setText("String_Node_Str");
          mashManagerMenuItem.addActionListener(new ActionListener(){
            public void actionPerformed(            ActionEvent evt){
              mashMgr=new MashManager(myRecipe);
              mashMgr.setVisible(true);
            }
          }
);
          JMenuItem maltPercentMenuItem=new JMenuItem();
          mnuTools.add(maltPercentMenuItem);
          maltPercentMenuItem.setText("String_Node_Str");
          final JFrame owner=this;
          maltPercentMenuItem.addActionListener(new ActionListener(){
            public void actionPerformed(            ActionEvent evt){
              MaltPercentDialog maltPercent=new MaltPercentDialog(owner);
              maltPercent.setVisible(true);
            }
          }
);
        }
      }
{
        jMenu5=new JMenu();
        jMenuBar1.add(jMenu5);
        jMenu5.setText("String_Node_Str");
{
          helpMenuItem=new JMenuItem();
          jMenu5.add(helpMenuItem);
          helpMenuItem.setText("String_Node_Str");
        }
{
          aboutMenuItem=new JMenuItem();
          jMenu5.add(aboutMenuItem);
          aboutMenuItem.setText("String_Node_Str");
          final JFrame owner=this;
          aboutMenuItem.addActionListener(new ActionListener(){
            public void actionPerformed(            ActionEvent evt){
              aboutDlg=new AboutDialog(owner,version);
              aboutDlg.setVisible(true);
            }
          }
);
        }
      }
    }
  }
 catch (  Exception e) {
    e.printStackTrace();
  }
}