Statistics
| Revision:

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
}