public SetupPanel() {
public SetupPanel(Experiment exp) {
  public SetupPanel() {    m_RPEditor.setClassType(ResultProducer.class);    m_RPEditor.setEnabled(false);    m_RPEditor.addPropertyChangeListener(new PropertyChangeListener() {      public void propertyChange(PropertyChangeEvent e) {	m_Exp.setResultProducer((ResultProducer) m_RPEditor.getValue());	System.err.println("Turning off custom property iterator");	m_Exp.setUsePropertyIterator(false);	m_Exp.setPropertyArray(null);	m_Exp.setPropertyPath(null);	m_GeneratorPropertyPanel.setExperiment(m_Exp);	repaint();      }    });    m_RLEditor.setClassType(ResultListener.class);    m_RLEditor.setEnabled(false);    m_RLEditor.addPropertyChangeListener(new PropertyChangeListener() {      public void propertyChange(PropertyChangeEvent e) {	m_Exp.setResultListener((ResultListener) m_RLEditor.getValue());	repaint();      }    });    m_NotesText.setEnabled(false);    m_NotesText.setEditable(true);    m_NotesText.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));    m_NotesText.addKeyListener(new KeyAdapter() {      public void keyReleased(KeyEvent e) {	m_Exp.setNotes(m_NotesText.getText());      }    });    m_NotesText.addFocusListener(new FocusAdapter() {      public void focusLost(FocusEvent e) {	m_Exp.setNotes(m_NotesText.getText());      }    });    // Set up the GUI layout    JPanel src = new JPanel();    src.setLayout(new BorderLayout());    src.setBorder(BorderFactory.createCompoundBorder(		  BorderFactory.createTitledBorder("Result generator"),		  BorderFactory.createEmptyBorder(0, 5, 5, 5)		  ));    src.add(m_RPEditorPanel, BorderLayout.NORTH);    JPanel dest = new JPanel();    dest.setLayout(new BorderLayout());    dest.setBorder(BorderFactory.createCompoundBorder(		   BorderFactory.createTitledBorder("Destination"),		   BorderFactory.createEmptyBorder(0, 5, 5, 5)		   ));    dest.add(m_RLEditorPanel, BorderLayout.NORTH);    JPanel simpleIterators = new JPanel();    simpleIterators.setLayout(new BorderLayout());    simpleIterators.add(m_RunNumberPanel, BorderLayout.NORTH);    simpleIterators.add(m_DatasetListPanel, BorderLayout.CENTER);    JPanel iterators = new JPanel();    iterators.setLayout(new GridLayout(1, 2));    iterators.add(simpleIterators);    iterators.add(m_GeneratorPropertyPanel);    JPanel top = new JPanel();    top.setLayout(new GridLayout(2, 1));    top.add(dest);    top.add(src);    JPanel notes = new JPanel();    notes.setLayout(new BorderLayout());    notes.setBorder(BorderFactory.createTitledBorder("Notes"));    notes.add(new JScrollPane(m_NotesText), BorderLayout.CENTER);        JPanel p2 = new JPanel();    p2.setLayout(new GridLayout(2, 1));    p2.add(iterators);    p2.add(notes);    setLayout(new BorderLayout());    add(top, BorderLayout.NORTH);    add(p2, BorderLayout.CENTER);  }