root / org.gvsig.proj / branches / refactor2018 / org.gvsig.proj / org.gvsig.proj.swing / org.gvsig.proj.swing.impl / src / main / java / org / gvsig / proj / swing / impl / tree / CrsLoader.java @ 866
History | View | Annotate | Download (1.47 KB)
1 |
package org.gvsig.proj.swing.impl.tree; |
---|---|
2 |
|
3 |
import java.util.ArrayList; |
4 |
import java.util.List; |
5 |
|
6 |
import javax.swing.tree.TreeNode; |
7 |
|
8 |
import org.gvsig.proj.catalog.CRSCatalogManager; |
9 |
import org.gvsig.proj.catalog.CRSDefinition; |
10 |
import org.gvsig.proj.catalog.exception.UnsupportedCoordinateReferenceSystemException; |
11 |
import org.slf4j.Logger; |
12 |
import org.slf4j.LoggerFactory; |
13 |
|
14 |
public class CrsLoader extends AsyncGroupLoader { |
15 |
final private CRSCatalogManager catalogManager; |
16 |
final private CRSSearchFilter filter; |
17 |
private static Logger logger = LoggerFactory.getLogger(CrsLoader.class); |
18 |
|
19 |
public CrsLoader(CRSSearchFilter filter,
|
20 |
LoadedGroup caller, |
21 |
CRSCatalogManager manager) { |
22 |
super(caller);
|
23 |
this.catalogManager = manager;
|
24 |
this.filter = filter;
|
25 |
} |
26 |
|
27 |
@Override
|
28 |
protected ArrayList<TreeNode> doInBackground() throws Exception { |
29 |
ArrayList<TreeNode> result = new ArrayList<TreeNode>(); |
30 |
List<String> codes; |
31 |
if (filter!=null) { |
32 |
codes = catalogManager.search(filter.getAuthority(), filter.getTextFilter(), filter.getIncludedTypes(), filter.getExcludedTypes()); |
33 |
} |
34 |
else {
|
35 |
codes = catalogManager.getCodes(); |
36 |
} |
37 |
|
38 |
CRSDefinition def; |
39 |
CrsTreeNode node; |
40 |
for (String code: codes) { |
41 |
if (isCancelled()) {
|
42 |
return null; |
43 |
} |
44 |
try {
|
45 |
def = catalogManager.getCRSDefinition(code); |
46 |
node = new CrsTreeNode(def, caller);
|
47 |
result.add(node); |
48 |
} catch (UnsupportedCoordinateReferenceSystemException e) {
|
49 |
logger.debug("Unsupported CRS", e);
|
50 |
} |
51 |
} |
52 |
return result;
|
53 |
} |
54 |
} |