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 / 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
}