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(); }