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 KettleDataFactory performConfiguration( DesignTimeContext context, final KettleDataFactory dataFactory, final String queryName) { loadData(dataFactory, queryName); if ((dataFactory == null) || (!dataFactory.queriesAreHomogeneous())) { // allow caller to render the default dialog... we are done here return super.performConfiguration(context, dataFactory, queryName); } else { try { refreshQueryUIComponents(); if (performEdit() == false) { return null; } } catch (Exception e) { // attempt to fall back to the default dialog... // TODO: LOG SOMETHING USEFUL HERE return super.performConfiguration(context, dataFactory, queryName); } } final KettleDataFactory kettleDataFactory = new KettleDataFactory(); kettleDataFactory.setMetadata(dataFactory.getMetaData()); for (final KettleQueryEntry queryEntry : getQueryEntries()) { final KettleTransformationProducer producer = queryEntry.createProducer(); kettleDataFactory.setQuery(queryEntry.getName(), producer); } return kettleDataFactory; }
public void actionPerformed(final ActionEvent e) { final KettleQueryEntry kettleQueryEntry = (KettleQueryEntry) queryNameList.getSelectedValue(); final KettleTransFromFileProducer fileProducer = kettleQueryEntry.createProducer(); final KettleDataFactory dataFactory = new KettleDataFactory(); dataFactory.setQuery(kettleQueryEntry.getName(), fileProducer); try { DataFactoryEditorSupport.configureDataFactoryForPreview(dataFactory, designTimeContext); final DataPreviewDialog previewDialog = new DataPreviewDialog(KettleDataSourceDialog.this); final KettlePreviewWorker worker = new KettlePreviewWorker(dataFactory, kettleQueryEntry.getName()); previewDialog.showData(worker); final ReportDataFactoryException factoryException = worker.getException(); if (factoryException != null) { ExceptionDialog.showExceptionDialog( KettleDataSourceDialog.this, Messages.getString("KettleDataSourceDialog.PreviewError.Title"), Messages.getString("KettleDataSourceDialog.PreviewError.Message"), factoryException); } } catch (Exception ex) { ExceptionDialog.showExceptionDialog( KettleDataSourceDialog.this, Messages.getString("KettleDataSourceDialog.PreviewError.Title"), Messages.getString("KettleDataSourceDialog.PreviewError.Message"), ex); } }
public void valueChanged(final ListSelectionEvent aEvt) { final KettleQueryEntry queryEntry = (KettleQueryEntry) queryNameList.getSelectedValue(); final Object selectedValue = stepsList.getSelectedValue(); if (selectedValue instanceof StepMeta) { final StepMeta stepMeta = (StepMeta) selectedValue; queryEntry.setSelectedStep(stepMeta.getName()); } }
public void valueChanged(final ListSelectionEvent e) { final Object value = queryNameList.getSelectedValue(); if (value == null) { nameTextField.setEnabled(false); fileTextField.setEnabled(false); stepsList.setEnabled(false); editParameterAction.setEnabled(false); return; } inUpdateFromList = true; nameTextField.setEnabled(true); fileTextField.setEnabled(true); final AbstractReportDefinition report = designTimeContext.getReport(); final MasterReport masterReport = DesignTimeUtil.getMasterReport(report); final ResourceKey contentBase; if (masterReport == null) { contentBase = null; } else { contentBase = masterReport.getContentBase(); } try { final KettleQueryEntry selectedQuery = (KettleQueryEntry) value; fileTextField.setText(selectedQuery.getFile()); nameTextField.setText(selectedQuery.getName()); 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; } }
private void update() { if (inUpdateFromList) { return; } final String queryName = nameTextField.getText(); final KettleQueryEntry selectedQuery = (KettleQueryEntry) queryNameList.getSelectedValue(); selectedQuery.setName(queryName); queryNameList.repaint(); }
@Override protected boolean validateInputs(boolean onConfirm) { boolean valid = true; for (final KettleQueryEntry queryEntry : getQueryEntries()) { valid = queryEntry.validate(); if (!valid) { break; } } return valid && super.validateInputs(onConfirm); }
public KettleDataFactory performConfiguration( final KettleDataFactory dataFactory, final String queryName) { queryListModel.clear(); loadData(dataFactory, queryName); if (performEdit() == false) { return null; } final KettleDataFactory kettleDataFactory = new KettleDataFactory(); for (int i = 0; i < queryListModel.getSize(); i++) { final KettleQueryEntry queryEntry = (KettleQueryEntry) queryListModel.getElementAt(i); final KettleTransFromFileProducer producer = queryEntry.createProducer(); kettleDataFactory.setQuery(queryEntry.getName(), producer); } return kettleDataFactory; }
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); }
public void actionPerformed(final ActionEvent e) { final HashSet<String> names = new HashSet<String>(); for (int i = 0; i < queryListModel.getSize(); i++) { final KettleQueryEntry o = (KettleQueryEntry) queryListModel.getElementAt(i); names.add(o.getName()); } String queryName = Messages.getString("KettleDataSourceDialog.Query"); for (int i = 1; i < 1000; ++i) { final String newQuery = Messages.getString("KettleDataSourceDialog.Query") + " " + i; if (names.contains(newQuery) == false) { queryName = newQuery; break; } } final KettleQueryEntry newQuery = new KettleQueryEntry(queryName); queryListModel.addElement(newQuery); queryNameList.setSelectedValue(newQuery, true); }
/** Invoked when an action occurs. */ public void actionPerformed(final ActionEvent e) { final KettleQueryEntry queryEntry = (KettleQueryEntry) queryNameList.getSelectedValue(); if (queryEntry == null) { return; } final AbstractReportDefinition report = designTimeContext.getReport(); final MasterReport masterReport = DesignTimeUtil.getMasterReport(report); final ResourceKey contentBase; if (masterReport == null) { contentBase = null; } else { contentBase = masterReport.getContentBase(); } try { final ParameterEditorDialog dialog = new ParameterEditorDialog(KettleDataSourceDialog.this); final String[] reportFields = designTimeContext.getDataSchemaModel().getColumnNames(); final ParameterEditorDialog.EditResult editResult = dialog.performEdit( queryEntry.getArguments(), queryEntry.getParameters(), reportFields, queryEntry.getDeclaredParameters(report.getResourceManager(), contentBase)); if (editResult == null) { return; } queryEntry.setArguments(editResult.getArgumentNames()); queryEntry.setParameters(editResult.getParameterMappings()); } catch (Exception e1) { designTimeContext.error(e1); } catch (Throwable t1) { designTimeContext.error(new StackableRuntimeException("Fatal error", t1)); } }