public void execute() {
DBDataset dataset = getDataset();
if (!isDisposed() && dataset != null) {
focusEditor();
DatabaseMessageParserInterface messageParserInterface = getConnectionHandler().getInterfaceProvider().getMessageParserInterface();
DatasetFilterManager filterManager = DatasetFilterManager.getInstance(getProject());
DatasetFilter filter = filterManager.getActiveFilter(dataset);
String datasetName = dataset.getQualifiedNameWithType();
if (getConnectionHandler().isValid()) {
if (filter == null || filter == DatasetFilterManager.EMPTY_FILTER || filter.getError() != null) {
if (instr.isDeliberateAction()) {
String message =
"Error loading data for " + datasetName + ".\n" + (
messageParserInterface.isTimeoutException(e) ?
"The operation was timed out. Please check your timeout configuration in Data Editor settings." :
"Database error message: " + e.getMessage());
MessageUtil.showErrorDialog(message);
}
} else {
String message =
"Error loading data for " + datasetName + ".\n" + (
messageParserInterface.isTimeoutException(e) ?
"The operation was timed out. Please check your timeout configuration in Data Editor settings." :
"Filter \"" + filter.getName() + "\" may be invalid.\n" +
"Database error message: " + e.getMessage());
String[] options = {"Edit filter", "Remove filter", "Ignore filter", "Cancel"};
int option = Messages.showDialog(message, Constants.DBN_TITLE_PREFIX + "Error", options, 0, Messages.getErrorIcon());
DatasetLoadInstructions instructions = instr.clone();
instructions.setDeliberateAction(true);
if (option == 0) {
filterManager.openFiltersDialog(dataset, false, false, DatasetFilterType.NONE);
instructions.setUseCurrentFilter(true);
loadData(instructions);
} else if (option == 1) {
filterManager.setActiveFilter(dataset, null);
instructions.setUseCurrentFilter(true);
loadData(instructions);
} else if (option == 2) {
filter.setError(e.getMessage());
instructions.setUseCurrentFilter(false);