private void loadData(final KettleDataFactory dataFactory, final String selectedQueryName) {
    if (dataFactory == null) {
      return;
    }

    KettleQueryEntry selectedDataSet = null;

    final String[] queryNames = dataFactory.getQueryNames();
    for (int i = 0; i < queryNames.length; i++) {
      final String queryName = queryNames[i];
      final KettleTransFromFileProducer producer =
          (KettleTransFromFileProducer) dataFactory.getQuery(queryName);

      final KettleQueryEntry dataSet = new KettleQueryEntry(queryName);
      dataSet.setFile(producer.getTransformationFile());
      dataSet.setSelectedStep(producer.getStepName());
      dataSet.setArguments(producer.getDefinedArgumentNames());
      dataSet.setParameters(producer.getDefinedVariableNames());
      queryListModel.addElement(dataSet);
      if (ObjectUtilities.equal(selectedQueryName, queryName)) {
        selectedDataSet = dataSet;
      }
    }

    queryNameList.setSelectedValue(selectedDataSet, true);
  }
    public void run() {
      final String fileName = fileTextField.getText();
      final KettleQueryEntry selectedQuery = (KettleQueryEntry) queryNameList.getSelectedValue();
      selectedQuery.setFile(fileName);

      final AbstractReportDefinition report = designTimeContext.getReport();
      final MasterReport masterReport = DesignTimeUtil.getMasterReport(report);
      final ResourceKey contentBase;
      if (masterReport == null) {
        contentBase = null;
      } else {
        contentBase = masterReport.getContentBase();
      }

      try {
        inUpdateFromList = true;
        stepsList.setListData(selectedQuery.getSteps(report.getResourceManager(), contentBase));
        final StepMeta[] data = selectedQuery.getSteps(report.getResourceManager(), contentBase);
        stepsList.setListData(data);
        final String selectedStepName = selectedQuery.getSelectedStep();
        if (selectedStepName != null) {
          for (int i = 0; i < data.length; i++) {
            final StepMeta stepMeta = data[i];
            if (selectedStepName.equals(stepMeta.getName())) {
              stepsList.setSelectedValue(stepMeta, true);
              break;
            }
          }
        }

        stepsList.setEnabled(true);
        editParameterAction.setEnabled(true);
      } catch (ReportDataFactoryException rdfe) {
        logger.warn("Non-critical failure while executing the query", rdfe);
        stepsList.setEnabled(false);
        editParameterAction.setEnabled(false);
      } catch (Exception e1) {
        designTimeContext.error(e1);
        stepsList.setEnabled(false);
        editParameterAction.setEnabled(false);
      } catch (Throwable t1) {
        designTimeContext.error(new StackableRuntimeException("Fatal error", t1));
        stepsList.setEnabled(false);
        editParameterAction.setEnabled(false);
      } finally {
        inUpdateFromList = false;
        armed = false;
      }
    }
    public void actionPerformed(final ActionEvent e) {
      final FileFilter[] fileFilters =
          new FileFilter[] {
            new FilesystemFilter(
                new String[] {".ktr"},
                Messages.getString("KettleDataSourceDialog.KtrFileDescription") + " (*.ktr)",
                true)
          };

      final File reportContextFile = DesignTimeUtil.getContextAsFile(designTimeContext.getReport());

      final CommonFileChooser fileChooser =
          FileChooserService.getInstance().getFileChooser("kettle");
      final String fileText = fileTextField.getText();
      if (StringUtils.isEmpty(fileText) == false) {
        if (reportContextFile != null) {
          fileChooser.setSelectedFile(
              new File(reportContextFile.getParentFile(), fileTextField.getText()));
        } else {
          fileChooser.setSelectedFile(new File(fileTextField.getText()));
        }
      }
      fileChooser.setFilters(fileFilters);
      if (fileChooser.showDialog(KettleDataSourceDialog.this, JFileChooser.OPEN_DIALOG) == false) {
        return;
      }

      final File file = fileChooser.getSelectedFile();
      if (file == null) {
        return;
      }

      final String path;
      if (reportContextFile != null) {
        path =
            IOUtils.getInstance()
                .createRelativePath(file.getPath(), reportContextFile.getAbsolutePath());
      } else {
        path = file.getPath();
      }
      final KettleQueryEntry queryEntry = (KettleQueryEntry) queryNameList.getSelectedValue();
      queryEntry.setFile(path);
      fileTextField.setText(path);
    }