提交 0860126f 编写于 作者: S Serge Rider

#8556 Container selector fix. Processor detection fix. Error handler fix


Former-commit-id: 94d82f12
上级 fba4f7e0
......@@ -111,7 +111,6 @@ public class StreamProducerPageSettings extends ActiveWizardPage<DataTransferWiz
widgetSelected(e);
}
});
UIUtils.asyncExec(() -> UIUtils.packColumns(filesTable, true));
}
{
......@@ -243,14 +242,14 @@ public class StreamProducerPageSettings extends ActiveWizardPage<DataTransferWiz
item.setText(0, DTUIMessages.stream_consumer_page_settings_item_text_none);
} else {
item.setImage(0, DBeaverIcons.getImage(getProducerProcessor().getIcon()));
item.setText(0, pipe.getProducer().getObjectName());
item.setText(0, String.valueOf(pipe.getProducer().getObjectName()));
}
if (pipe.getConsumer() == null) {
item.setImage(1, null);
item.setText(1, DTUIMessages.stream_consumer_page_settings_item_text_none);
} else {
item.setImage(1, DBeaverIcons.getImage(getWizard().getSettings().getConsumer().getIcon()));
item.setText(1, pipe.getConsumer().getObjectName());
item.setText(1, String.valueOf(pipe.getConsumer().getObjectName()));
}
}
......@@ -268,6 +267,8 @@ public class StreamProducerPageSettings extends ActiveWizardPage<DataTransferWiz
reloadPipes();
updatePageCompletion();
UIUtils.asyncExec(() -> UIUtils.packColumns(filesTable, true));
}
@Override
......@@ -320,7 +321,7 @@ public class StreamProducerPageSettings extends ActiveWizardPage<DataTransferWiz
@Override
protected boolean determinePageCompletion() {
for (DataTransferPipe pipe : getWizard().getSettings().getDataPipes()) {
if (pipe.getConsumer() == null || pipe.getConsumer().getObjectName() == null || pipe.getProducer() == null || pipe.getProducer().getObjectName() == null) {
if (pipe.getConsumer() == null || pipe.getProducer() == null) {
return false;
}
}
......@@ -339,7 +340,10 @@ public class StreamProducerPageSettings extends ActiveWizardPage<DataTransferWiz
updateItemData(item, pipe);
}
if (firstTime && !dataPipes.isEmpty()) {
chooseSourceFile(dataPipes.get(0));
DataTransferPipe pipe = dataPipes.get(0);
if (pipe.getProducer() instanceof StreamTransferProducer && ((StreamTransferProducer) pipe.getProducer()).getInputFile() == null) {
chooseSourceFile(pipe);
}
}
}
......
......@@ -252,7 +252,7 @@ public class DataTransferSettings implements DBTTaskSettings<DBPObject> {
} else {
savedConsumer = this.consumer;
}
if (this.isConsumerOptional()) {
if (consumerNode.hasProcessors()) {
processorNode = consumerNode;
}
}
......@@ -276,7 +276,7 @@ public class DataTransferSettings implements DBTTaskSettings<DBPObject> {
} else {
savedProducer = this.producer;
}
if (this.isProducerOptional()) {
if (producerNode.hasProcessors()) {
processorNode = producerNode;
}
}
......
......@@ -563,6 +563,10 @@ public class DatabaseTransferConsumer implements IDataTransferConsumer<DatabaseC
return targetObject != null ? targetObject : containerMapping == null ? null : containerMapping.getTarget();
}
public void setTargetObject(DBSDataManipulator targetObject) {
this.targetObject = targetObject;
}
@Override
public String getObjectName() {
if (targetObjectContainer != null) {
......
......@@ -8,6 +8,7 @@ import org.jkiss.dbeaver.model.app.DBPProject;
import org.jkiss.dbeaver.model.exec.DBCException;
import org.jkiss.dbeaver.model.runtime.DBRRunnableContext;
import org.jkiss.dbeaver.model.struct.DBSDataContainer;
import org.jkiss.dbeaver.model.struct.DBSDataManipulator;
import org.jkiss.dbeaver.model.struct.DBSEntity;
import org.jkiss.dbeaver.model.struct.DBSObjectContainer;
import org.jkiss.dbeaver.model.task.DBTTask;
......@@ -91,7 +92,12 @@ public class DatabaseTransferConsumerSerializer implements DBPObjectSerializer<D
if (project == null) {
throw new DBCException("Project '" + projectName + "' not found");
}
//consumer.targetObject = (DBSDataManipulator) DBUtils.findObjectById(monitor, project, entityId);
DBSDataManipulator targetObject = (DBSDataManipulator) DBUtils.findObjectById(monitor, project, entityId);
if (targetObject != null) {
consumer.setTargetObject(targetObject);
} else {
throw new DBCException("Entity '" + entityId + "' not found");
}
} catch (Exception e) {
throw new InvocationTargetException(e);
}
......
......@@ -153,6 +153,10 @@ public class DataTransferNodeDescriptor extends AbstractDescriptor
return false;
}
public boolean hasProcessors() {
return !processors.isEmpty();
}
public DataTransferProcessorDescriptor[] getProcessors() {
return processors.toArray(new DataTransferProcessorDescriptor[0]);
}
......
......@@ -104,7 +104,7 @@ public class StreamTransferProducer implements IDataTransferProducer<StreamProdu
}
public File getInputFile() {
return entityMapping.getInputFile();
return entityMapping == null ? null : entityMapping.getInputFile();
}
@Override
......
......@@ -589,11 +589,7 @@ public final class DBUtils {
DBPDataSourceContainer dataSourceContainer = project.getDataSourceRegistry().getDataSource(names[0]);
if (dataSourceContainer == null) {
log.debug("Can't find datasource '" + names[0] + "' in project " + project.getName());
dataSourceContainer = findDataSource(names[0]);
if (dataSourceContainer == null) {
log.debug("Can't find datasource '" + names[0] + "' in any project");
return null;
}
return null;
}
if (names.length == 1) {
return dataSourceContainer;
......
......@@ -88,6 +88,15 @@ public abstract class ObjectContainerSelectorPanel extends Composite
}
return containerName + " [" + dsName + "]";
}
@Override
public String toString() {
return getFullName();
}
public boolean isSameNode(DBNDatabaseNode node) {
return containerPath.equals(node.getNodeItemPath());
}
}
protected ObjectContainerSelectorPanel(Composite parent, DBPProject project, String selectorId, String containerTitle, String containerHint) {
......@@ -190,7 +199,7 @@ public abstract class ObjectContainerSelectorPanel extends Composite
private HistoryItem addNodeToHistory(DBNDatabaseNode node) {
for (int i = 0; i < historyItems.size(); i++) {
HistoryItem item = historyItems.get(i);
if (item.containerPath.equals(node.getNodeItemPath())) {
if (item.isSameNode(node)) {
item.containerNode = node;
moveHistoryItemToBeginning(item);
return item;
......@@ -203,14 +212,16 @@ public abstract class ObjectContainerSelectorPanel extends Composite
node
);
historyItems.add(0, newItem);
containerNameCombo.add(newItem.getFullName(), 0);
return newItem;
}
private void moveHistoryItemToBeginning(HistoryItem item) {
int itemIndex = historyItems.indexOf(item);
historyItems.remove(item);
historyItems.add(0, item);
removeItemFromCombo(item);
containerNameCombo.remove(itemIndex);
containerNameCombo.add(item.getFullName(), 0);
containerNameCombo.select(0);
}
......@@ -295,9 +306,7 @@ public abstract class ObjectContainerSelectorPanel extends Composite
HistoryItem item = addNodeToHistory(node);
containerIcon.setImage(DBeaverIcons.getImage(node.getNodeIconDefault()));
removeItemFromCombo(item);
containerNameCombo.add(item.getFullName(), 0);
containerNameCombo.select(0);
moveHistoryItemToBeginning(item);
}
private void removeItemFromCombo(HistoryItem item) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册