protected void handleSelection(final KettleQueryEntry value) {
      final DesignTimeContext designTimeContext = getDesignTimeContext();
      final Action editParameterAction = getEditParameterAction();
      try {
        setPanelEnabled(true, datasourcePanel);

        final KettleEmbeddedQueryEntry selectedQuery = (KettleEmbeddedQueryEntry) value;

        // This change event gets fired twice, causing the dialog to update twice.. let's stop that.
        if ((lastSelectedQuery == null) || (selectedQuery != lastSelectedQuery)) {
          lastSelectedQuery = selectedQuery;
          updateQueryName(selectedQuery.getName());
          selectedQuery.refreshQueryUIComponents(
              datasourcePanel, designTimeContext, new PreviewChangeListener());
        }

        editParameterAction.setEnabled(true);
      } catch (Exception e1) {
        designTimeContext.error(e1);
        editParameterAction.setEnabled(false);
      } catch (Throwable t1) {
        designTimeContext.error(new RuntimeException("Fatal error", t1));
        editParameterAction.setEnabled(false);
      }
    }
  private void refreshQueryUIComponents() throws ReportDataFactoryException {
    if (datasourcePanel.getComponentCount() <= 0) {

      KettleEmbeddedQueryEntry entry = new KettleEmbeddedQueryEntry(null, datasourceId, null);
      entry.refreshQueryUIComponents(
          datasourcePanel, getDesignTimeContext(), new PreviewChangeListener());
      setPanelEnabled(false, datasourcePanel);
    }
  }
 @Override
 protected void clearComponents() {
   final KettleEmbeddedQueryEntry kettleQueryEntry = (KettleEmbeddedQueryEntry) getSelectedQuery();
   kettleQueryEntry.clear();
   super.clearComponents();
 }