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