Statistics
| Revision:

gvsig-tools / org.gvsig.tools / library / trunk / org.gvsig.tools / org.gvsig.tools.main / src / main / java / org / gvsig / tools / main / taskstatus / JTaskStatusAction.java @ 454

History | View | Annotate | Download (1.9 KB)

1
package org.gvsig.tools.main.taskstatus;
2

    
3
import java.awt.FlowLayout;
4

    
5
import javax.swing.JComponent;
6
import javax.swing.JPanel;
7
import javax.swing.JTabbedPane;
8

    
9
import org.gvsig.tools.main.MainAction;
10
import org.gvsig.tools.swing.api.ToolsSwingLocator;
11
import org.gvsig.tools.swing.api.task.JTaskStatus;
12
import org.gvsig.tools.swing.api.task.TaskStatusSwingManager;
13
import org.gvsig.tools.task.AbstractMonitorableTask;
14

    
15
public class JTaskStatusAction extends MainAction {
16

    
17
        /**
18
         * 
19
         */
20
        private static final long serialVersionUID = -5408828606365712614L;
21

    
22
        public JTaskStatusAction(JTabbedPane tabbedPane) {
23
                super("Task status", tabbedPane);
24
        putValue(SHORT_DESCRIPTION, "Task status");
25
        }
26

    
27
        private class MiTask extends AbstractMonitorableTask {
28
                
29
                private int max;
30
                
31
                public MiTask(String tittle, int max) {
32
                        super(tittle);
33
                        this.max = max;
34
                }
35
                public void run() {
36
                        this.taskStatus.setRangeOfValues(0, this.max);
37
                        for(int i=0; i<this.max; i++ ) {
38
                                this.taskStatus.setCurValue(i);
39
                                try {
40
                                        Thread.sleep(100);
41
                                } catch (InterruptedException e) {
42
                                        // Ignore
43
                                }
44
                                if( this.taskStatus.isCancellationRequested() ) {
45
                                        this.taskStatus.cancel();
46
                                        break;
47
                                }
48
                        }
49
                        if( this.taskStatus.isRunning() ) {
50
                                this.taskStatus.teminate();
51
                        }
52
                }
53
        }
54
        
55
        protected JComponent createComponent() {
56
                TaskStatusSwingManager manager = ToolsSwingLocator.getTaskStatusSwingManager();
57
                JPanel panel = new JPanel();
58
                panel.setLayout( new FlowLayout());
59
                panel.add( manager.createJTasksStatus() );
60
                JTaskStatus taskStatusPanel = manager.createJTaskStatus();
61
                panel.add( taskStatusPanel );
62
                
63
                MiTask task1 = new MiTask("Task1",100);
64
                task1.start();
65
                MiTask task2 = new MiTask("Task2",300);
66
                task2.start();
67
                MiTask task3 = new MiTask("Task3",1000);
68
                task3.start();
69

    
70
                taskStatusPanel.bind(task1.getTaskStatus());
71
                return panel;
72
        }
73

    
74
        protected String getComponentTitle() {
75
                return "Task status";
76
        }
77

    
78
}