Revision 46517 trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/searchpanel/DefaultSearchPanel.java
DefaultSearchPanel.java | ||
---|---|---|
10 | 10 |
import java.awt.event.KeyAdapter; |
11 | 11 |
import java.awt.event.KeyEvent; |
12 | 12 |
import java.net.URL; |
13 |
import java.sql.SQLException; |
|
13 | 14 |
import java.text.DateFormat; |
14 | 15 |
import java.text.SimpleDateFormat; |
15 | 16 |
import java.util.ArrayList; |
... | ... | |
137 | 138 |
private final PropertiesSupportHelper propertiesHelper; |
138 | 139 |
private TaskStatusController taskStatusController; |
139 | 140 |
private boolean automaticallySearch; |
141 |
private String lastErrorMessage; |
|
140 | 142 |
private boolean initialized; |
141 | 143 |
|
142 | 144 |
public static class UseLabelsYesAction extends AbstractAction { |
... | ... | |
1007 | 1009 |
status.setAutoremove(true); |
1008 | 1010 |
status.add(); |
1009 | 1011 |
this.taskStatusController.bind(status); |
1012 |
List<Feature> features = null; |
|
1010 | 1013 |
try { |
1011 | 1014 |
status.setTitle(ToolsLocator.getI18nManager().getTranslation("_Processing_search")); |
1012 | 1015 |
SwingUtilities.invokeLater(() -> { |
... | ... | |
1014 | 1017 |
this.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); |
1015 | 1018 |
} |
1016 | 1019 |
}); |
1017 |
final List<Feature> features; |
|
1018 | 1020 |
FeatureQuery myQuery; |
1019 | 1021 |
// myQuery = this.getQuery().getCopy(); |
1020 | 1022 |
List<String> resultColumnNames = searchParams.getResultColumnNames(); |
... | ... | |
1029 | 1031 |
features |
1030 | 1032 |
); |
1031 | 1033 |
model.setValue(tableModel); |
1032 |
rowCount.setValue(tableModel.getRowCount()); |
|
1034 |
rowCount.setValue(features.size()); |
|
1035 |
if(rowCount.longValue() > 0){ |
|
1036 |
//Force to get first row in this thread |
|
1037 |
Feature f = features.get(0); |
|
1038 |
} |
|
1033 | 1039 |
resultModel = (SimpleFeaturesTableModel) model.getValue(); |
1034 |
} catch (Exception ex) { |
|
1035 |
LOGGER.warn("Search not able to be executed. Can't get features or create table model", ex); |
|
1036 |
status.setTitle(ToolsLocator.getI18nManager().getTranslation("_Errors_getting_new_feature_set") + "..."); |
|
1037 |
status.abort(); |
|
1038 |
resetTable(); |
|
1039 |
return STATUS_ERROR1; |
|
1040 |
} finally { |
|
1041 | 1040 |
SwingUtilities.invokeLater(() -> { |
1042 | 1041 |
if(this.initialized){ |
1043 | 1042 |
I18nManager i18n = ToolsLocator.getI18nManager(); |
... | ... | |
1067 | 1066 |
} |
1068 | 1067 |
} |
1069 | 1068 |
}); |
1069 |
|
|
1070 |
} catch (Exception ex) { |
|
1071 |
LOGGER.warn("Search not able to be executed. Can't get features or create table model", ex); |
|
1072 |
status.setTitle(ToolsLocator.getI18nManager().getTranslation("_Errors_getting_new_feature_set") + "..."); |
|
1073 |
status.abort(); |
|
1074 |
DisposeUtils.disposeQuietly(features); |
|
1075 |
this.lastErrorMessage = this.getLastErrorMessage(ex); |
|
1076 |
if(StringUtils.isNotBlank(this.lastErrorMessage)){ |
|
1077 |
status.setTitle(this.lastErrorMessage); |
|
1078 |
} |
|
1079 |
resetTable(); |
|
1080 |
return STATUS_ERROR1; |
|
1070 | 1081 |
} |
1071 | 1082 |
return STATUS_OK; |
1072 | 1083 |
} |
... | ... | |
1885 | 1896 |
public boolean isAutomaticallySearch(){ |
1886 | 1897 |
return automaticallySearch; |
1887 | 1898 |
} |
1888 |
|
|
1899 |
|
|
1900 |
@Override |
|
1901 |
public String getLastErrorMessage() { |
|
1902 |
return this.lastErrorMessage; |
|
1903 |
} |
|
1904 |
|
|
1905 |
private String getLastErrorMessage(Throwable ex) { |
|
1906 |
StringBuilder builder = new StringBuilder(); |
|
1907 |
while (ex != null){ |
|
1908 |
if(ex instanceof SQLException){ |
|
1909 |
builder.append(ex.getLocalizedMessage()); |
|
1910 |
builder.append("\n"); |
|
1911 |
} |
|
1912 |
ex = ex.getCause(); |
|
1913 |
} |
|
1914 |
return builder.toString(); |
|
1915 |
} |
|
1916 |
|
|
1889 | 1917 |
} |
Also available in: Unified diff