{
return;
}
final DataSourcePlugin dataSourcePlugin = metadata.createEditor();
final DataFactory storedFactory = dataFactory.derive();
if (dataSourcePlugin.canHandle(dataFactory))
{
final ReportDocumentContext activeContext = getActiveContext();
final AbstractReportDefinition report = activeContext.getReportDefinition();
final boolean editingActiveQuery = contains(report.getQuery(), dataFactory.getQueryNames());
final ReportDesignerDesignTimeContext designTimeContext = new ReportDesignerDesignTimeContext(getReportDesignerContext());
editedDataFactory = dataSourcePlugin.performEdit(designTimeContext, dataFactory, queryName, null);
if (editedDataFactory == null)
{
return;
}
final Window parentWindow = designTimeContext.getParentWindow();
parentWindow.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
final CompoundDataFactory collection = (CompoundDataFactory) report.getDataFactory();
final int dataFactoryCount = collection.size();
for (int j = 0; j < dataFactoryCount; j++)
{
final DataFactory originalDataFactory = collection.getReference(j);
if (originalDataFactory == dataFactory)
{
collection.remove(j);
final DataFactory editedClone = editedDataFactory.derive();
collection.add(j, editedDataFactory);
activeContext.getUndo().addChange(ActionMessages.getString("EditQueryAction.Text"),
new DataSourceEditUndoEntry(j, storedFactory, editedClone));
report.notifyNodeChildRemoved(originalDataFactory);