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 @ 852
History | View | Annotate | Download (1.5 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.CRSType; |
11 |
import org.gvsig.proj.catalog.exception.UnsupportedCoordinateReferenceSystemException; |
12 |
import org.slf4j.Logger; |
13 |
import org.slf4j.LoggerFactory; |
14 |
|
15 |
public class CrsLoader extends GroupLoader { |
16 |
final private CRSCatalogManager catalogManager; |
17 |
final private CRSSearchFilter filter; |
18 |
private static Logger logger = LoggerFactory.getLogger(CrsLoader.class); |
19 |
|
20 |
public CrsLoader(CRSSearchFilter filter,
|
21 |
AsyncLoadedGroup caller, |
22 |
CRSCatalogManager manager) { |
23 |
super(caller);
|
24 |
this.catalogManager = manager;
|
25 |
this.filter = filter;
|
26 |
} |
27 |
|
28 |
@Override
|
29 |
protected ArrayList<TreeNode> doInBackground() throws Exception { |
30 |
ArrayList<TreeNode> result = new ArrayList<TreeNode>(); |
31 |
List<String> codes; |
32 |
if (filter!=null) { |
33 |
codes = catalogManager.search(filter.getAuthority(), filter.getTextFilter(), filter.getIncludedTypes(), filter.getExcludedTypes()); |
34 |
} |
35 |
else {
|
36 |
codes = catalogManager.getCodes(); |
37 |
} |
38 |
|
39 |
CRSDefinition def; |
40 |
CrsTreeNode node; |
41 |
for (String code: codes) { |
42 |
if (isCancelled()) {
|
43 |
return null; |
44 |
} |
45 |
try {
|
46 |
def = catalogManager.getCRSDefinition(code); |
47 |
node = new CrsTreeNode(def, caller);
|
48 |
result.add(node); |
49 |
} catch (UnsupportedCoordinateReferenceSystemException e) {
|
50 |
logger.debug("Unsupported CRS", e);
|
51 |
} |
52 |
} |
53 |
return result;
|
54 |
} |
55 |
} |