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 / CtLoader.java @ 866
History | View | Annotate | Download (1.85 KB)
1 |
package org.gvsig.proj.swing.impl.tree; |
---|---|
2 |
|
3 |
import java.util.ArrayList; |
4 |
import java.util.Collections; |
5 |
import java.util.Comparator; |
6 |
import java.util.List; |
7 |
|
8 |
import javax.swing.tree.TreeNode; |
9 |
|
10 |
import org.apache.commons.lang3.StringUtils; |
11 |
import org.gvsig.proj.catalog.CRSCatalogManager; |
12 |
import org.gvsig.proj.catalog.CRSDefinition; |
13 |
import org.gvsig.proj.catalog.TransformationDefinition; |
14 |
import org.gvsig.proj.catalog.exception.UnsupportedCoordinateReferenceSystemException; |
15 |
import org.slf4j.Logger; |
16 |
import org.slf4j.LoggerFactory; |
17 |
|
18 |
public class CtLoader extends AsyncGroupLoader { |
19 |
final private CRSCatalogManager catalogManager; |
20 |
final private String textFilter; |
21 |
final private CRSDefinition sourceCRS; |
22 |
final private CRSDefinition targetCRS; |
23 |
private static Logger logger = LoggerFactory.getLogger(CtLoader.class); |
24 |
|
25 |
public CtLoader(String textFilter, |
26 |
LoadedGroup caller, |
27 |
CRSDefinition sourceCRS, |
28 |
CRSDefinition targetCRS, |
29 |
CRSCatalogManager manager) { |
30 |
super(caller);
|
31 |
this.catalogManager = manager;
|
32 |
this.textFilter = textFilter;
|
33 |
this.sourceCRS = sourceCRS;
|
34 |
this.targetCRS = targetCRS;
|
35 |
|
36 |
} |
37 |
|
38 |
@Override
|
39 |
protected ArrayList<TreeNode> doInBackground() throws Exception { |
40 |
ArrayList<TreeNode> result = new ArrayList<TreeNode>(); |
41 |
List<TransformationDefinition> transforms = catalogManager.getCoordinateTransformations(sourceCRS, targetCRS);
|
42 |
for (TransformationDefinition def: transforms) {
|
43 |
if (isCancelled()) {
|
44 |
return null; |
45 |
} |
46 |
if ( StringUtils.isEmpty(textFilter) ||
|
47 |
def.toString().toLowerCase().contains(textFilter.toLowerCase())) { |
48 |
result.add(new CtTreeNode(def, caller));
|
49 |
} |
50 |
} |
51 |
Collections.sort(result, new Comparator<TreeNode>() { |
52 |
|
53 |
@Override
|
54 |
public int compare(TreeNode o1, TreeNode o2) { |
55 |
return ((CtTreeNode)o1).getCT().getName().compareTo(((CtTreeNode)o2).getCT().getName());
|
56 |
} |
57 |
}); |
58 |
return (ArrayList<TreeNode>) result; |
59 |
} |
60 |
} |