propertyBuilder = new UnboundPropertyBuilder(experiment);
propertyBuilder = new UnboundPropertyBuilder(experiment, this);
  public ExperimentBuilder(CSMART csmart, Experiment experiment) {    this.experiment = experiment;    isEditable = experiment.isEditable();    isRunnable = experiment.isRunnable();    JMenuBar menuBar = new JMenuBar();    getRootPane().setJMenuBar(menuBar);    JMenu fileMenu = new JMenu(FILE_MENU);    for (int i = 0; i < fileActions.length; i++) {      fileMenu.add(fileActions[i]);    }    JMenu helpMenu = new JMenu(HELP_MENU);    for (int i = 0; i < helpActions.length; i++) {      helpMenu.add(helpActions[i]);    }    menuBar.add(fileMenu);    menuBar.add(helpMenu);    setJMenuBar(menuBar);    tabbedPane = new JTabbedPane();    propertyBuilder = new UnboundPropertyBuilder(experiment);    tabbedPane.add("Properties", propertyBuilder);    hostConfigurationBuilder =       new HostConfigurationBuilder(experiment, csmart);    tabbedPane.add("Configurations", hostConfigurationBuilder);    // only display trial builder for non-database experiments    if (experiment.isInDatabase()) {      threadBuilder = new ThreadBuilder(experiment);      tabbedPane.add("Threads", threadBuilder);    } else {      trialBuilder = new TrialBuilder(experiment);      tabbedPane.add("Trials", trialBuilder);    }    // after starting all the editors, set experiment editability to false    experiment.setEditable(false);    experiment.setRunnable(false); // not runnable when editing it    getContentPane().add(tabbedPane);    pack();    setSize(650, 400);    addWindowListener(new WindowAdapter() {      public void windowClosing(WindowEvent e) {	exit();      }    });    show();  }