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 | 852 | cmartinez | 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 | } |