Revision 449
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.main/src/main/java/org/gvsig/tools/main/taskstatus/JTaskStatusAction.java | ||
---|---|---|
65 | 65 |
task1.start(); |
66 | 66 |
MiTask task2 = new MiTask("Task2",300); |
67 | 67 |
task2.start(); |
68 |
MiTask task3 = new MiTask("Task3",1000); |
|
69 |
task3.start(); |
|
68 | 70 |
|
69 | 71 |
taskStatusPanel.bind(task1.getTaskStatus()); |
70 | 72 |
return panel; |
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.lib/src/main/java/org/gvsig/tools/task/TaskStatusManager.java | ||
---|---|---|
21 | 21 |
*/ |
22 | 22 |
package org.gvsig.tools.task; |
23 | 23 |
|
24 |
import java.util.Map; |
|
25 |
|
|
24 | 26 |
import org.gvsig.tools.observer.Observable; |
25 | 27 |
|
26 | 28 |
|
... | ... | |
39 | 41 |
|
40 | 42 |
public void remove(TaskStatus taskStatus); |
41 | 43 |
|
44 |
public Map getAll(); |
|
45 |
|
|
42 | 46 |
public String getNewCode(); |
43 | 47 |
|
44 | 48 |
/** |
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.lib/src/main/java/org/gvsig/tools/task/impl/DefaultTaskStatusManager.java | ||
---|---|---|
21 | 21 |
*/ |
22 | 22 |
package org.gvsig.tools.task.impl; |
23 | 23 |
|
24 |
import java.util.Collections; |
|
24 | 25 |
import java.util.LinkedHashMap; |
25 | 26 |
import java.util.Map; |
26 | 27 |
|
... | ... | |
71 | 72 |
return Long.toBinaryString(codeCounter++); |
72 | 73 |
} |
73 | 74 |
|
75 |
public Map getAll() { |
|
76 |
return Collections.unmodifiableMap(this.tasksStatus); |
|
77 |
} |
|
78 |
|
|
74 | 79 |
public void addObserver(Observer o) { |
75 | 80 |
this.observers.addObserver(o); |
76 | 81 |
} |
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.lib/src/main/java/org/gvsig/tools/task/AbstractMonitorableTask.java | ||
---|---|---|
8 | 8 |
|
9 | 9 |
protected AbstractMonitorableTask(String taskName) { |
10 | 10 |
super(); |
11 |
this.taskStatus = ToolsLocator.getTaskStatusManager().creteDefaultSimpleTaskStatus(taskName); |
|
11 |
TaskStatusManager manager = ToolsLocator.getTaskStatusManager(); |
|
12 |
this.taskStatus = manager.creteDefaultSimpleTaskStatus(taskName); |
|
13 |
manager.add(this.taskStatus); |
|
12 | 14 |
} |
13 | 15 |
|
14 | 16 |
public TaskStatus getTaskStatus() { |
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.swing/org.gvsig.tools.swing.impl/src/main/java/org/gvsig/tools/swing/impl/task/DefaultJTasksStatusList.java | ||
---|---|---|
1 |
package org.gvsig.tools.swing.impl.task; |
|
2 |
|
|
3 |
import java.awt.BorderLayout; |
|
4 |
import java.awt.Dimension; |
|
5 |
import java.awt.LayoutManager; |
|
6 |
import java.util.ArrayList; |
|
7 |
import java.util.HashMap; |
|
8 |
import java.util.Iterator; |
|
9 |
import java.util.List; |
|
10 |
import java.util.Map; |
|
11 |
import java.util.Map.Entry; |
|
12 |
|
|
13 |
import javax.swing.BoxLayout; |
|
14 |
import javax.swing.JPanel; |
|
15 |
import javax.swing.JScrollPane; |
|
16 |
|
|
17 |
import org.gvsig.tools.observer.Observable; |
|
18 |
import org.gvsig.tools.observer.Observer; |
|
19 |
import org.gvsig.tools.swing.api.ToolsSwingLocator; |
|
20 |
import org.gvsig.tools.swing.api.task.JTaskStatus; |
|
21 |
import org.gvsig.tools.swing.api.task.JTasksStatusList; |
|
22 |
import org.gvsig.tools.swing.api.task.TaskStatusSwingManager; |
|
23 |
import org.gvsig.tools.task.TaskStatus; |
|
24 |
import org.gvsig.tools.task.TaskStatusManager; |
|
25 |
|
|
26 |
public class DefaultJTasksStatusList extends JTasksStatusList implements Observer { |
|
27 |
|
|
28 |
/** |
|
29 |
* |
|
30 |
*/ |
|
31 |
private static final long serialVersionUID = 7740032506050392725L; |
|
32 |
|
|
33 |
TaskStatusManager manager; |
|
34 |
Map<String,JTaskStatus> taskControls; |
|
35 |
JPanel listPanel; |
|
36 |
|
|
37 |
public DefaultJTasksStatusList(TaskStatusManager manager) { |
|
38 |
this.manager = manager; |
|
39 |
this.taskControls = new HashMap<String, JTaskStatus>(); |
|
40 |
this.makeUI(); |
|
41 |
this.manager.addObserver(this); |
|
42 |
} |
|
43 |
|
|
44 |
public TaskStatusManager getManager() { |
|
45 |
return this.manager; |
|
46 |
} |
|
47 |
|
|
48 |
private void makeUI() { |
|
49 |
this.setLayout(new BorderLayout()); |
|
50 |
|
|
51 |
listPanel = new JPanel(); |
|
52 |
listPanel.setLayout(new BoxLayout(listPanel, BoxLayout.Y_AXIS)); |
|
53 |
List<JTaskStatus> controlsToAdd = this.getControlsToAdd(); |
|
54 |
for (JTaskStatus taskStatus : controlsToAdd) { |
|
55 |
listPanel.add(taskStatus); |
|
56 |
} |
|
57 |
|
|
58 |
JScrollPane scroller = new JScrollPane(listPanel); |
|
59 |
scroller.setPreferredSize(new Dimension(300,150)); |
|
60 |
this.add(scroller, BorderLayout.CENTER); |
|
61 |
} |
|
62 |
|
|
63 |
private List<JTaskStatus> getControlsToAdd() { |
|
64 |
List<JTaskStatus> controlsToAdd = new ArrayList<JTaskStatus>(); |
|
65 |
TaskStatusSwingManager manager = ToolsSwingLocator.getTaskStatusSwingManager(); |
|
66 |
|
|
67 |
@SuppressWarnings("unchecked") |
|
68 |
Map<String,TaskStatus> tasksStatus = this.manager.getAll(); |
|
69 |
|
|
70 |
Iterator<Entry<String, TaskStatus>> taskStatusIterator = tasksStatus.entrySet().iterator(); |
|
71 |
while( taskStatusIterator.hasNext() ) { |
|
72 |
Entry<String, TaskStatus> entry = taskStatusIterator.next(); |
|
73 |
if( this.taskControls.get(entry.getKey())==null ) { |
|
74 |
JTaskStatus control = manager.createJTaskStatus(); |
|
75 |
control.bind(entry.getValue()); |
|
76 |
controlsToAdd.add(control); |
|
77 |
this.taskControls.put(entry.getKey(), control); |
|
78 |
} |
|
79 |
} |
|
80 |
return controlsToAdd; |
|
81 |
} |
|
82 |
|
|
83 |
public void update(Observable observable, Object notification) { |
|
84 |
if( !(observable instanceof TaskStatusManager) ) { |
|
85 |
return; |
|
86 |
} |
|
87 |
if( notification==null || !(notification instanceof TaskStatus) ) { |
|
88 |
return; |
|
89 |
} |
|
90 |
List<JTaskStatus> controlsToAdd = this.getControlsToAdd(); |
|
91 |
for (JTaskStatus taskStatus : controlsToAdd) { |
|
92 |
listPanel.add(taskStatus); |
|
93 |
} |
|
94 |
} |
|
95 |
} |
|
0 | 96 |
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.swing/org.gvsig.tools.swing.impl/src/main/java/org/gvsig/tools/swing/impl/task/DefaultJTaskStatus.java | ||
---|---|---|
4 | 4 |
import java.awt.Dimension; |
5 | 5 |
import java.awt.GridBagConstraints; |
6 | 6 |
import java.awt.GridBagLayout; |
7 |
import java.awt.event.ActionEvent; |
|
8 |
import java.awt.event.ActionListener; |
|
7 | 9 |
import java.net.URL; |
8 | 10 |
|
9 | 11 |
import javax.swing.ImageIcon; |
... | ... | |
76 | 78 |
|
77 | 79 |
this.progressBar = new JProgressBar(1,100); |
78 | 80 |
this.progressBar.setPreferredSize(new Dimension( 200, 10)); |
79 |
this.progressBar.setIndeterminate(true);
|
|
81 |
this.progressBar.setIndeterminate(false);
|
|
80 | 82 |
this.progressBar.setBorderPainted(true); |
81 | 83 |
|
82 | 84 |
this.cancelRequestButton = new JButton(); |
... | ... | |
86 | 88 |
if( !this.showCancelButton ) { |
87 | 89 |
this.cancelRequestButton.setVisible(this.showCancelButton); |
88 | 90 |
} |
89 |
|
|
91 |
this.cancelRequestButton.addActionListener(new ActionListener() { |
|
92 |
public void actionPerformed(ActionEvent arg0) { |
|
93 |
cancelRequestButton.setEnabled(false); |
|
94 |
taskStatus.cancelRequest(); |
|
95 |
} |
|
96 |
}); |
|
97 |
this.cancelRequestButton.setDisabledIcon( getIcon("disabledCancelRequestButton.png") ); |
|
98 |
|
|
90 | 99 |
this.messagelabel = new JLabel(); |
91 | 100 |
this.messagelabel.setPreferredSize( new Dimension( 200, 16)); |
92 | 101 |
|
... | ... | |
130 | 139 |
}); |
131 | 140 |
return; |
132 | 141 |
} |
133 |
if( observable == null ) { |
|
134 |
this.tittlelabel.setText(""); |
|
142 |
TaskStatus taskStatus = (TaskStatus) observable; |
|
143 |
if( taskStatus == null || !taskStatus.isRunning() ) { |
|
144 |
//this.tittlelabel.setText(""); |
|
135 | 145 |
this.messagelabel.setText(""); |
136 | 146 |
this.progressBar.setValue(100); |
137 | 147 |
this.cancelRequestButton.setEnabled(false); |
138 | 148 |
return; |
139 | 149 |
} |
140 |
TaskStatus taskStatus = (TaskStatus) observable; |
|
141 | 150 |
this.tittlelabel.setText(taskStatus.getTitle()); |
142 | 151 |
this.messagelabel.setText(taskStatus.getLabel()); |
143 | 152 |
this.progressBar.setIndeterminate( taskStatus.isIndeterminate() ); |
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.swing/org.gvsig.tools.swing.impl/src/main/java/org/gvsig/tools/swing/impl/task/DefaultJTasksStatus.java | ||
---|---|---|
3 | 3 |
import java.awt.Dimension; |
4 | 4 |
import java.awt.FlowLayout; |
5 | 5 |
import java.awt.LayoutManager; |
6 |
import java.awt.event.ActionEvent; |
|
7 |
import java.awt.event.ActionListener; |
|
6 | 8 |
import java.net.URL; |
7 | 9 |
|
8 | 10 |
import javax.swing.ImageIcon; |
... | ... | |
15 | 17 |
import org.gvsig.tools.ToolsLocator; |
16 | 18 |
import org.gvsig.tools.observer.Observable; |
17 | 19 |
import org.gvsig.tools.observer.Observer; |
20 |
import org.gvsig.tools.swing.api.ToolsSwingLocator; |
|
18 | 21 |
import org.gvsig.tools.swing.api.task.JTasksStatus; |
22 |
import org.gvsig.tools.swing.api.task.JTasksStatusList; |
|
23 |
import org.gvsig.tools.swing.api.windowmanager.WindowManager; |
|
19 | 24 |
import org.gvsig.tools.task.TaskStatus; |
20 | 25 |
import org.gvsig.tools.task.TaskStatusManager; |
21 | 26 |
|
... | ... | |
62 | 67 |
this.progressBar.setPreferredSize(new Dimension( 40, 10)); |
63 | 68 |
this.progressBar.setIndeterminate(true); |
64 | 69 |
this.progressBar.setBorderPainted(true); |
70 |
this.progressBar.setVisible(false); |
|
65 | 71 |
|
66 | 72 |
this.showAllTaskStatusButton = new JButton(); |
67 | 73 |
this.showAllTaskStatusButton.setPreferredSize( new Dimension(16, 16)); |
68 | 74 |
this.showAllTaskStatusButton.setBorderPainted(false); |
69 | 75 |
this.showAllTaskStatusButton.setIcon( this.getIcon("showAllTaskStatusButton.png")); |
76 |
this.showAllTaskStatusButton.setVisible(false); |
|
77 |
this.showAllTaskStatusButton.addActionListener(new ActionListener() { |
|
78 |
public void actionPerformed(ActionEvent arg0) { |
|
79 |
JTasksStatusList dialog = ToolsSwingLocator.getTaskStatusSwingManager().createJTasksStatusList(manager); |
|
80 |
WindowManager wm = ToolsSwingLocator.getWindowManager(); |
|
81 |
wm.showWindow(dialog, "Tasks",WindowManager.MODE.TOOL); |
|
82 |
} |
|
83 |
}); |
|
70 | 84 |
|
71 | 85 |
LayoutManager layout = new FlowLayout(); |
72 | 86 |
this.setLayout(layout); |
... | ... | |
112 | 126 |
this.label.setText( label ); |
113 | 127 |
this.progressBar.setIndeterminate( taskStatus.isIndeterminate() ); |
114 | 128 |
this.progressBar.setValue( taskStatus.getCompleted() ); |
115 |
this.progressBar.setVisible(true); |
|
116 |
this.showAllTaskStatusButton.setVisible(true); |
|
129 |
if( !this.progressBar.isVisible() ) { |
|
130 |
this.progressBar.setVisible(true); |
|
131 |
} |
|
132 |
if( !this.showAllTaskStatusButton.isVisible() ) { |
|
133 |
this.showAllTaskStatusButton.setVisible(true); |
|
134 |
} |
|
117 | 135 |
|
118 | 136 |
} |
119 | 137 |
|
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.swing/org.gvsig.tools.swing.impl/src/main/java/org/gvsig/tools/swing/impl/task/DefaultTaskStatusSwingManager.java | ||
---|---|---|
1 | 1 |
package org.gvsig.tools.swing.impl.task; |
2 | 2 |
|
3 |
import org.gvsig.tools.ToolsLocator; |
|
3 | 4 |
import org.gvsig.tools.swing.api.task.JTaskStatus; |
4 | 5 |
import org.gvsig.tools.swing.api.task.JTasksStatus; |
6 |
import org.gvsig.tools.swing.api.task.JTasksStatusList; |
|
5 | 7 |
import org.gvsig.tools.swing.api.task.TaskStatusSwingManager; |
6 | 8 |
import org.gvsig.tools.task.TaskStatusManager; |
7 | 9 |
|
... | ... | |
15 | 17 |
return new DefaultJTasksStatus(manager); |
16 | 18 |
} |
17 | 19 |
|
20 |
public JTasksStatusList createJTasksStatusList() { |
|
21 |
return new DefaultJTasksStatusList(this.getManager()); |
|
22 |
} |
|
23 |
|
|
24 |
public JTasksStatusList createJTasksStatusList(TaskStatusManager manager) { |
|
25 |
return new DefaultJTasksStatusList(manager); |
|
26 |
} |
|
27 |
|
|
18 | 28 |
public JTaskStatus createJTaskStatus() { |
19 | 29 |
return new DefaultJTaskStatus(); |
20 | 30 |
} |
21 | 31 |
|
32 |
private TaskStatusManager getManager() { |
|
33 |
return ToolsLocator.getTaskStatusManager(); |
|
34 |
} |
|
22 | 35 |
} |
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.swing/org.gvsig.tools.swing.impl/src/main/java/org/gvsig/tools/swing/impl/windowmanager/DefaultWindowManager.java | ||
---|---|---|
1 |
package org.gvsig.tools.swing.impl.windowmanager; |
|
2 |
|
|
3 |
import javax.swing.JComponent; |
|
4 |
import javax.swing.JDialog; |
|
5 |
import javax.swing.JFrame; |
|
6 |
|
|
7 |
import org.gvsig.tools.swing.api.windowmanager.WindowManager; |
|
8 |
|
|
9 |
public class DefaultWindowManager implements WindowManager { |
|
10 |
|
|
11 |
public void showWindow(JComponent component, String tittle, MODE mode) { |
|
12 |
switch (mode) { |
|
13 |
case TOOL: |
|
14 |
case WINDOW: |
|
15 |
case DIALOG: |
|
16 |
JFrame frame = new JFrame(tittle); |
|
17 |
//frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); |
|
18 |
|
|
19 |
frame.setContentPane(component); |
|
20 |
|
|
21 |
frame.pack(); |
|
22 |
frame.setVisible(true); |
|
23 |
break; |
|
24 |
|
|
25 |
} |
|
26 |
|
|
27 |
} |
|
28 |
|
|
29 |
} |
|
0 | 30 |
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.swing/org.gvsig.tools.swing.impl/src/main/java/org/gvsig/tools/swing/impl/ToolsSwingDefaultImplLibrary.java | ||
---|---|---|
35 | 35 |
import org.gvsig.tools.swing.impl.dynobject.dynfield.JNDynFieldComponentFactory; |
36 | 36 |
import org.gvsig.tools.swing.impl.task.DefaultTaskStatusSwingManager; |
37 | 37 |
import org.gvsig.tools.swing.impl.usability.DefaultUsabilitySwingManager; |
38 |
import org.gvsig.tools.swing.impl.windowmanager.DefaultWindowManager; |
|
38 | 39 |
import org.gvsig.tools.swing.spi.ToolsSwingServiceLocator; |
39 | 40 |
|
40 | 41 |
/** |
... | ... | |
59 | 60 |
.registerUsabilitySwingManager(DefaultUsabilitySwingManager.class); |
60 | 61 |
ToolsSwingLocator |
61 | 62 |
.registerTaskStatusSwingManager(DefaultTaskStatusSwingManager.class); |
63 |
ToolsSwingLocator |
|
64 |
.registerWindowManager(DefaultWindowManager.class); |
|
62 | 65 |
ToolsSwingServiceLocator |
63 | 66 |
.registerDynObjectServiceManager(DefaultDynObjectSwingServiceManager.class); |
64 | 67 |
} |
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.swing/org.gvsig.tools.swing.api/src/main/java/org/gvsig/tools/swing/api/ToolsSwingLocator.java | ||
---|---|---|
26 | 26 |
import org.gvsig.tools.swing.api.dynobject.DynObjectSwingManager; |
27 | 27 |
import org.gvsig.tools.swing.api.task.TaskStatusSwingManager; |
28 | 28 |
import org.gvsig.tools.swing.api.usability.UsabilitySwingManager; |
29 |
import org.gvsig.tools.swing.api.windowmanager.WindowManager; |
|
29 | 30 |
|
30 | 31 |
/** |
31 | 32 |
* {@link Locator} for the tools swing Library. It returns a reference to the |
... | ... | |
54 | 55 |
|
55 | 56 |
private static final String TASKSTATUS_SWING_MANAGER_DESCRIPTION = "Tools Task Swing Manager"; |
56 | 57 |
|
58 |
private static final String WINDOW_MANAGER_NAME = "Tools.task.swing.windowmanager"; |
|
59 |
|
|
60 |
private static final String WINDOW_MANAGER_DESCRIPTION = "Tools Window Manager"; |
|
61 |
|
|
57 | 62 |
/** |
58 | 63 |
* Unique instance. |
59 | 64 |
*/ |
... | ... | |
147 | 152 |
TASKSTATUS_SWING_MANAGER_DESCRIPTION, clazz); |
148 | 153 |
} |
149 | 154 |
|
155 |
/** |
|
156 |
* Gets the instance of the {@link WindowManager} registered. |
|
157 |
* |
|
158 |
* @return {@link WindowManager} |
|
159 |
*/ |
|
160 |
public static WindowManager getWindowManager() { |
|
161 |
return (WindowManager) getInstance().get( |
|
162 |
WINDOW_MANAGER_NAME); |
|
163 |
} |
|
150 | 164 |
|
165 |
/** |
|
166 |
* Registers the Class implementing the {@link WindowManager} |
|
167 |
* interface. |
|
168 |
* |
|
169 |
* @param clazz |
|
170 |
* implementing the {@link WindowManager} interface |
|
171 |
*/ |
|
172 |
public static void registerWindowManager( |
|
173 |
Class<? extends WindowManager> clazz) { |
|
174 |
getInstance().register(WINDOW_MANAGER_NAME, |
|
175 |
WINDOW_MANAGER_DESCRIPTION, clazz); |
|
176 |
} |
|
177 |
|
|
178 |
|
|
151 | 179 |
} |
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.swing/org.gvsig.tools.swing.api/src/main/java/org/gvsig/tools/swing/api/task/TaskStatusSwingManager.java | ||
---|---|---|
10 | 10 |
|
11 | 11 |
public JTaskStatus createJTaskStatus(); |
12 | 12 |
|
13 |
public JTasksStatusList createJTasksStatusList(TaskStatusManager manager); |
|
13 | 14 |
} |
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.swing/org.gvsig.tools.swing.api/src/main/java/org/gvsig/tools/swing/api/task/JTasksStatusList.java | ||
---|---|---|
1 |
package org.gvsig.tools.swing.api.task; |
|
2 |
|
|
3 |
import javax.swing.JPanel; |
|
4 |
|
|
5 |
import org.gvsig.tools.task.TaskStatusManager; |
|
6 |
|
|
7 |
public abstract class JTasksStatusList extends JPanel { |
|
8 |
|
|
9 |
/** |
|
10 |
* |
|
11 |
*/ |
|
12 |
private static final long serialVersionUID = -2712653249045541115L; |
|
13 |
|
|
14 |
public abstract TaskStatusManager getManager(); |
|
15 |
|
|
16 |
} |
|
17 |
|
|
0 | 18 |
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.swing/org.gvsig.tools.swing.api/src/main/java/org/gvsig/tools/swing/api/windowmanager/WindowManager.java | ||
---|---|---|
1 |
package org.gvsig.tools.swing.api.windowmanager; |
|
2 |
|
|
3 |
import javax.swing.JComponent; |
|
4 |
|
|
5 |
public interface WindowManager { |
|
6 |
|
|
7 |
public enum MODE { |
|
8 |
WINDOW, |
|
9 |
DIALOG, |
|
10 |
TOOL |
|
11 |
}; |
|
12 |
|
|
13 |
public void showWindow(JComponent componet, String tittle, MODE mode); |
|
14 |
|
|
15 |
} |
|
0 | 16 |
Also available in: Unified diff