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 / GroupLoader.java @ 852

History | View | Annotate | Download (834 Bytes)

1
package org.gvsig.proj.swing.impl.tree;
2

    
3
import java.util.ArrayList;
4
import java.util.concurrent.ExecutionException;
5

    
6
import javax.swing.SwingWorker;
7
import javax.swing.tree.TreeNode;
8

    
9
import org.slf4j.Logger;
10
import org.slf4j.LoggerFactory;
11

    
12
public abstract class GroupLoader extends SwingWorker<ArrayList<TreeNode>, TreeNode> {
13
        private static Logger logger = LoggerFactory.getLogger(GroupLoader.class);
14
        protected AsyncLoadedGroup caller;
15
        public GroupLoader(AsyncLoadedGroup caller) {
16
                this.caller = caller;
17
        }
18

    
19
        @Override
20
        protected void done() {
21
                super.done();
22
                if (!isCancelled()) {
23
                        try {
24
                                ArrayList<TreeNode> result = get();
25
                                this.caller.loaded(result, this);
26
                        } catch (InterruptedException | ExecutionException e) {
27
                                logger.debug(e.getMessage(), e);
28
                        }
29
                }
30
                else {
31
                        this.caller.cancelled(this);
32
                }
33
        }
34
}