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

History | View | Annotate | Download (2.28 KB)

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

    
3
import java.awt.Color;
4
import java.awt.FlowLayout;
5

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

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

    
17
public class JTaskStatusAction extends MainAction {
18

    
19
        /**
20
         * 
21
         */
22
        private static final long serialVersionUID = -5408828606365712614L;
23

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

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

    
81
                taskStatusPanel.bind(task1.getTaskStatus());
82
                return panel;
83
        }
84

    
85
        protected String getComponentTitle() {
86
                return "Task status";
87
        }
88

    
89
}