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