Revision 1719 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
DefaultJTasksStatusList.java | ||
---|---|---|
24 | 24 |
package org.gvsig.tools.swing.impl.task; |
25 | 25 |
|
26 | 26 |
import java.awt.BorderLayout; |
27 |
import java.awt.Component; |
|
27 | 28 |
import java.awt.Dimension; |
28 | 29 |
import java.util.ArrayList; |
29 | 30 |
import java.util.HashMap; |
30 | 31 |
import java.util.Iterator; |
32 |
import java.util.LinkedHashMap; |
|
31 | 33 |
import java.util.List; |
32 | 34 |
import java.util.Map; |
33 | 35 |
import java.util.Map.Entry; |
... | ... | |
56 | 58 |
|
57 | 59 |
private static final long serialVersionUID = 7740032506050392725L; |
58 | 60 |
|
59 |
TaskStatusManager manager; |
|
60 |
Map<String, JTaskStatus> taskControls; |
|
61 |
JPanel listPanel; |
|
61 |
private TaskStatusManager manager;
|
|
62 |
private Map<String, JTaskStatus> taskControls;
|
|
63 |
private JPanel listPanel;
|
|
62 | 64 |
|
63 | 65 |
public DefaultJTasksStatusList(TaskStatusManager manager) { |
64 | 66 |
this.manager = manager; |
65 |
this.taskControls = new HashMap<String, JTaskStatus>();
|
|
67 |
this.taskControls = new LinkedHashMap<>();
|
|
66 | 68 |
this.makeUI(); |
67 | 69 |
this.manager.addObserver(this); |
68 | 70 |
} |
69 | 71 |
|
72 |
@Override |
|
70 | 73 |
public TaskStatusManager getManager() { |
71 | 74 |
return this.manager; |
72 | 75 |
} |
... | ... | |
80 | 83 |
for (JTaskStatus taskStatus : controlsToAdd) { |
81 | 84 |
listPanel.add(taskStatus); |
82 | 85 |
} |
83 |
|
|
86 |
listPanel.setAlignmentY(Component.BOTTOM_ALIGNMENT); |
|
84 | 87 |
JScrollPane scroller = new JScrollPane(listPanel); |
88 |
scroller.setAlignmentY(Component.BOTTOM_ALIGNMENT); |
|
85 | 89 |
scroller.setPreferredSize(new Dimension(300, 150)); |
86 | 90 |
this.add(scroller, BorderLayout.CENTER); |
87 | 91 |
} |
88 | 92 |
|
89 | 93 |
private List<JTaskStatus> getControlsToAdd() { |
90 |
List<JTaskStatus> controlsToAdd = new ArrayList<JTaskStatus>();
|
|
94 |
List<JTaskStatus> controlsToAdd = new ArrayList<>(); |
|
91 | 95 |
TaskStatusSwingManager manager = |
92 | 96 |
ToolsSwingLocator.getTaskStatusSwingManager(); |
93 | 97 |
|
... | ... | |
108 | 112 |
return controlsToAdd; |
109 | 113 |
} |
110 | 114 |
|
115 |
@Override |
|
111 | 116 |
public void update(Observable observable, Object notification) { |
112 | 117 |
if (!(observable instanceof TaskStatusManager)) { |
113 | 118 |
return; |
114 | 119 |
} |
115 |
if (notification == null) { |
|
120 |
if (notification == null || this.manager.isEmpty() ) {
|
|
116 | 121 |
// remove task |
117 |
Iterator<Entry<String, JTaskStatus>> taskStatusIterator = |
|
118 |
this.taskControls.entrySet().iterator(); |
|
119 |
while (taskStatusIterator.hasNext()) { |
|
120 |
Entry<String, JTaskStatus> entry = taskStatusIterator.next(); |
|
121 |
if (this.manager.get(entry.getKey()) == null) { |
|
122 |
listPanel.remove(entry.getValue()); |
|
123 |
} |
|
124 |
} |
|
125 |
listPanel.validate(); |
|
126 |
return; |
|
122 |
listPanel.removeAll(); |
|
123 |
this.taskControls.clear(); |
|
124 |
listPanel.revalidate(); |
|
127 | 125 |
} |
128 | 126 |
List<JTaskStatus> controlsToAdd = this.getControlsToAdd(); |
129 |
for (JTaskStatus taskStatus : controlsToAdd) { |
|
130 |
listPanel.add(taskStatus); |
|
127 |
if( !controlsToAdd.isEmpty() ) { |
|
128 |
listPanel.removeAll(); |
|
129 |
for (JTaskStatus taskStatus : this.taskControls.values()) { |
|
130 |
taskStatus.setAlignmentY(Component.BOTTOM_ALIGNMENT); |
|
131 |
listPanel.add(taskStatus); |
|
132 |
} |
|
133 |
listPanel.revalidate(); |
|
131 | 134 |
} |
132 |
|
|
133 | 135 |
} |
134 | 136 |
} |
Also available in: Unified diff