Revision 447

View differences:

org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.main/src/main/java/org/gvsig/tools/main/Main.java
17 17
import org.gvsig.tools.library.impl.DefaultLibrariesInitializer;
18 18
import org.gvsig.tools.main.dynobject.DynObjectComponentAction;
19 19
import org.gvsig.tools.main.dynobject.DynObjectSetComponentAction;
20
import org.gvsig.tools.main.taskstatus.JTaskStatusAction;
20 21
import org.gvsig.tools.main.usability.UsabilityAction;
21 22

  
22 23
/**
......
89 90
    }
90 91

  
91 92
    private MainAction[] createActions() {
92
        return new MainAction[] { new DynObjectComponentAction(tabbedPane),
93
        return new MainAction[] { 
94
        	new DynObjectComponentAction(tabbedPane),
93 95
            new DynObjectSetComponentAction(tabbedPane),
94
            new UsabilityAction(tabbedPane) };
96
            new UsabilityAction(tabbedPane),
97
            new JTaskStatusAction(tabbedPane)
98
        };
95 99
    }
96 100

  
97 101
}
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.main/src/main/java/org/gvsig/tools/main/taskstatus/JTaskStatusAction.java
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
			this.taskStatus.remove();
53
		}
54
	}
55
	
56
	protected JComponent createComponent() {
57
		TaskStatusSwingManager manager = ToolsSwingLocator.getTaskStatusSwingManager();
58
		JPanel panel = new JPanel();
59
		panel.setLayout( new FlowLayout());
60
		panel.add( manager.createJTasksStatus() );
61
		JTaskStatus taskStatusPanel = manager.createJTaskStatus();
62
		panel.add( taskStatusPanel );
63
		
64
		MiTask task1 = new MiTask("Task1",100);
65
		task1.start();
66
		MiTask task2 = new MiTask("Task2",300);
67
		task2.start();
68

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

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

  
77
}
0 78

  
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.lib/src/main/java/org/gvsig/tools/task/Executor.java
1
package org.gvsig.tools.task;
2

  
3
public interface Executor {
4

  
5
	void execute(Runnable command);
6
}
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.lib/src/main/java/org/gvsig/tools/task/AbstractCancellableTask.java
1
/* gvSIG. Geographic Information System of the Valencian Government
2
 *
3
 * Copyright (C) 2007-2008 Infrastructures and Transports Department
4
 * of the Valencian Government (CIT)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19
 * MA  02110-1301, USA.
20
 *
21
 */
22
package org.gvsig.tools.task;
23

  
24

  
25
/**
26
 * @author gvSIG Team
27
 * @version $Id$
28
 * 
29
 */
30

  
31
public abstract class AbstractCancellableTask extends Thread implements CancellableTask {
32

  
33
    private boolean cancellationRequested;
34

  
35
    protected AbstractCancellableTask() {
36
    	this.cancellationRequested = false;
37
    }
38
    
39
    public void cancelRequest() {
40
        this.cancellationRequested = true;
41
    }
42

  
43
    public boolean isCancellationRequested() {
44
        return this.cancellationRequested;
45
    }
46
}
0 47

  
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.lib/src/main/java/org/gvsig/tools/task/SimpleTaskStatus.java
1
package org.gvsig.tools.task;
2

  
3
public interface SimpleTaskStatus extends TaskStatus {
4

  
5
	public void message(String message);
6

  
7
	public void setCurValue(long value);
8

  
9
    public void setRangeOfValues(long min, long max);
10

  
11
	public void teminate();
12

  
13
	public void cancel();
14

  
15
	public void abort();
16

  
17
	public void remove();
18
	
19
	public void setCancellable(boolean cancellable);
20
}
0 21

  
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.lib/src/main/java/org/gvsig/tools/task/TaskStatusManager.java
48 48
     */
49 49
    public void update(TaskStatus taskstatus);
50 50
    
51
    public SimpleTaskStatus creteDefaultSimpleTaskStatus(String label) ;
52
    
51 53
}
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.lib/src/main/java/org/gvsig/tools/task/impl/BaseTaskStatus.java
24 24
import java.util.Date;
25 25

  
26 26
import org.gvsig.tools.ToolsLocator;
27
import org.gvsig.tools.task.TaskStatus;
27
import org.gvsig.tools.observer.ObservableHelper;
28
import org.gvsig.tools.observer.Observer;
29
import org.gvsig.tools.task.SimpleTaskStatus;
28 30
import org.gvsig.tools.task.TaskStatusManager;
29 31

  
30 32

  
......
33 35
 * @version $Id$
34 36
 *
35 37
 */
36
public class BaseTaskStatus implements TaskStatus {
38
public class BaseTaskStatus implements SimpleTaskStatus {
37 39
    private Date lastModification = null;
38 40

  
39 41
    protected long minValue = 0;
......
50 52
    protected boolean isRunning = true;
51 53
    
52 54
    protected TaskStatusManager manager = null;
55

  
56
	private boolean isCancellable;
57

  
58
	private boolean isCancellationRequested;
59

  
60
	private ObservableHelper observers = null;
53 61
    
54 62
    public BaseTaskStatus(String tittle) {
55 63
    	this.manager =  ToolsLocator.getTaskStatusManager();
......
60 68
        this.isAbortedByError = false;
61 69
        this.isRunning = true;
62 70
        this.message = null;
71
        this.isCancellable = false;
72
        this.isCancellationRequested = false;
73
        this.code = this.manager.getNewCode();
74
        this.observers = new ObservableHelper();
63 75
        this.touch();
64
        this.code = this.manager.getNewCode();
65 76
    }
66 77
    
67 78
    public BaseTaskStatus(String tittle, long minValue, long maxValue) {
......
70 81
        this.maxValue = maxValue;
71 82
    }
72 83
    
84
    public void setRangeOfValues(long min, long max) {
85
        this.minValue = min;
86
        this.maxValue = max;
87
    }
88
    
73 89
    protected void touch() {
74 90
    	Date now = new Date(); 
75
    	if( (now.getTime() - this.lastModification.getTime()) > 2000 ) {
91
    	if( this.lastModification!=null && (now.getTime() - this.lastModification.getTime()) > 2000 ) {
76 92
    		this.message = null;
77 93
    	}
78 94
        this.lastModification = now;
79 95
        this.manager.update(this);
96
        this.observers.notifyObservers(this, null);
80 97
    }
81 98
    
82 99
    public Date getLastModification() {
......
121 138
    	String progress;
122 139
    	
123 140
        if( !this.isRunning ) {
124
            return this.tittle;
141
            return "" ;
125 142
        }
126 143
        if( this.maxValue == this.minValue ) {
127 144
        	// No se puede calcular ya que no se ha indicado el numero de elementos
......
131 148
            progress = " (" + (this.curValue-this.minValue) + " / " + (this.maxValue-this.minValue) + ")" ;
132 149
        }
133 150
    	if( this.message == null ) {
134
            return this.tittle + progress;
151
            return progress;
135 152
    	} else {
136 153
            return this.message + progress;
137 154
    	}
......
165 182
    public boolean isRunning() {
166 183
        return this.isRunning;
167 184
    }
185

  
186
	public TaskStatusManager getManager() {
187
		return this.manager;
188
	}
189

  
190
	public boolean isIndeterminate() {
191
		return this.minValue == this.maxValue;
192
	}
193

  
194
	public void remove() {
195
		this.manager.remove(this);
196
	}
197

  
198
	public boolean isCancellable() {
199
		return this.isCancellable;
200
	}
201

  
202
	public void setCancellable(boolean cancellable) {
203
		this.isCancellable = cancellable;
204
	}
205

  
206
	public boolean isCancellationRequested() {
207
		return this.isCancellationRequested;
208
	}
209

  
210
	public void cancelRequest() {
211
		this.isCancellationRequested = true;
212
	}
213

  
214
	public void addObserver(Observer o) {
215
		this.observers.addObserver(o);
216
	}
217

  
218
	public void deleteObserver(Observer o) {
219
		this.observers.deleteObserver(o);
220
	}
221

  
222
	public void deleteObservers() {
223
		this.observers.deleteObservers();
224
	}
225

  
168 226
}
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.lib/src/main/java/org/gvsig/tools/task/impl/DefaultTaskStatusManager.java
26 26

  
27 27
import org.gvsig.tools.observer.ObservableHelper;
28 28
import org.gvsig.tools.observer.Observer;
29
import org.gvsig.tools.task.SimpleTaskStatus;
29 30
import org.gvsig.tools.task.TaskStatus;
30 31
import org.gvsig.tools.task.TaskStatusManager;
31 32

  
......
62 63
    }
63 64

  
64 65
    public void remove(TaskStatus taskStatus) {
65
        this.update(taskStatus);
66
        this.update(null);
66 67
    	this.tasksStatus.remove(taskStatus.getCode());
67 68
    }
68 69

  
......
85 86
	public void update(TaskStatus taskstatus) {
86 87
		this.observers.notifyObservers(this, taskstatus);
87 88
	}
89

  
90
	public SimpleTaskStatus creteDefaultSimpleTaskStatus(String tittle) {
91
		return new BaseTaskStatus(tittle);
92
	}
88 93
    
89 94
}
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.lib/src/main/java/org/gvsig/tools/task/AbstractMonitorableTask.java
1
package org.gvsig.tools.task;
2

  
3
import org.gvsig.tools.ToolsLocator;
4

  
5
public class AbstractMonitorableTask extends AbstractCancellableTask  {
6

  
7
	protected SimpleTaskStatus taskStatus = null;
8
	
9
	protected AbstractMonitorableTask(String taskName) {
10
		super();
11
		this.taskStatus = ToolsLocator.getTaskStatusManager().creteDefaultSimpleTaskStatus(taskName);
12
	}
13
	
14
	public TaskStatus getTaskStatus() {
15
		return this.taskStatus;
16
	}
17
	
18
	public void cancelRequest() {
19
		super.cancelRequest();
20
		this.taskStatus.cancelRequest();
21
	}
22
	
23
	
24
}
0 25

  
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.lib/src/main/java/org/gvsig/tools/task/TaskStatus.java
23 23

  
24 24
import java.util.Date;
25 25

  
26
import org.gvsig.tools.observer.Observable;
26 27

  
28

  
27 29
/**
28 30
 * @author gvSIG Team
29 31
 * @version $Id$
30 32
 *
31 33
 */
32
public interface TaskStatus {
34
public interface TaskStatus extends CancellableTask, Observable {
33 35

  
34 36
    /**
35 37
     * 
......
85 87
     */
86 88
    public Date getLastModification();
87 89
    
90
    public TaskStatusManager getManager();
88 91
    
92
    public boolean isIndeterminate();
93
    
94
    public boolean isCancellable();
95
    
89 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/DefaultTaskStatusSwingManager.java
1
package org.gvsig.tools.swing.impl.task;
2

  
3
import org.gvsig.tools.swing.api.task.JTaskStatus;
4
import org.gvsig.tools.swing.api.task.JTasksStatus;
5
import org.gvsig.tools.swing.api.task.TaskStatusSwingManager;
6
import org.gvsig.tools.task.TaskStatusManager;
7

  
8
public class DefaultTaskStatusSwingManager implements TaskStatusSwingManager {
9

  
10
	public JTasksStatus createJTasksStatus() {
11
		return new DefaultJTasksStatus();
12
	}
13

  
14
	public JTasksStatus createJTasksStatus(TaskStatusManager manager) {
15
		return new DefaultJTasksStatus(manager);
16
	}
17

  
18
	public JTaskStatus createJTaskStatus() {
19
		return new DefaultJTaskStatus();
20
	}
21

  
22
}
0 23

  
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
1
package org.gvsig.tools.swing.impl.task;
2

  
3
import java.awt.Component;
4
import java.awt.Dimension;
5
import java.awt.GridBagConstraints;
6
import java.awt.GridBagLayout;
7
import java.net.URL;
8

  
9
import javax.swing.ImageIcon;
10
import javax.swing.JButton;
11
import javax.swing.JComponent;
12
import javax.swing.JLabel;
13
import javax.swing.JProgressBar;
14
import javax.swing.SwingUtilities;
15

  
16
import org.gvsig.tools.observer.Observable;
17
import org.gvsig.tools.observer.Observer;
18
import org.gvsig.tools.swing.api.task.JTaskStatus;
19
import org.gvsig.tools.task.TaskStatus;
20

  
21
public class DefaultJTaskStatus extends JTaskStatus implements Observer {
22

  
23
	/**
24
	 * 
25
	 */
26
	private static final long serialVersionUID = -1908456747637477552L;
27

  
28
	private JLabel tittlelabel = null;
29
	private JLabel messagelabel = null;
30
	private JProgressBar progressBar = null;
31
	private JButton cancelRequestButton = null;
32
	private boolean showCancelButton;
33

  
34
	private TaskStatus taskStatus; 
35
	
36
	public DefaultJTaskStatus() {
37
		this.taskStatus = null;
38
		this.showCancelButton = true;
39
		this.createComponents();
40
	}
41
	
42
	public DefaultJTaskStatus(TaskStatus taskStatus) {
43
		this();
44
		this.bind(taskStatus);
45
	}
46
	
47
	public boolean getShowCancelButton() {
48
		return this.showCancelButton;
49
	}
50
	
51
	public void setShowCancelButton(boolean showCancelButton) {
52
		this.showCancelButton = showCancelButton;
53
		if( this.cancelRequestButton != null ) {
54
    		this.cancelRequestButton.setVisible(this.showCancelButton);
55
    	}
56
	}
57
	
58
	public JComponent asJComponent() {
59
		return this;
60
	}
61

  
62
	public void bind(TaskStatus taskStatus) {
63
		if( this.taskStatus!=null ) {
64
			this.taskStatus.deleteObserver(this);
65
		}
66
		this.taskStatus = taskStatus;
67
		if( this.taskStatus!=null ) {
68
			this.taskStatus.addObserver(this);
69
		}
70
	}
71

  
72
	private void createComponents() {
73
		this.tittlelabel = new JLabel();
74
		this.tittlelabel.setPreferredSize( new Dimension( 200, 16));
75
		
76
		this.progressBar = new JProgressBar(1,100);
77
		this.progressBar.setPreferredSize(new Dimension( 200, 10));
78
		this.progressBar.setIndeterminate(true);
79
		this.progressBar.setBorderPainted(true);
80
		
81
		this.cancelRequestButton = new JButton();
82
		this.cancelRequestButton.setPreferredSize( new Dimension(16, 16));
83
		this.cancelRequestButton.setBorderPainted(false);
84
    	this.cancelRequestButton.setIcon( getIcon("cancelRequestButton.png"));
85
    	if( !this.showCancelButton ) {
86
    		this.cancelRequestButton.setVisible(this.showCancelButton);
87
    	}
88
		
89
		this.messagelabel = new JLabel();
90
		this.messagelabel.setPreferredSize( new Dimension( 200, 16));
91

  
92
		this.setLayout(new GridBagLayout());
93
		
94
		this.add(this.tittlelabel, 0, 0, GridBagConstraints.HORIZONTAL, 0.9, 0);
95
		this.add(this.progressBar, 0, 1, GridBagConstraints.HORIZONTAL, 0.9, 0);
96
		this.add(this.messagelabel, 0, 2, GridBagConstraints.HORIZONTAL, 0.9, 0);
97
		this.add(this.cancelRequestButton, 1, 1, GridBagConstraints.NONE, 0.1, 0);
98
	}
99

  
100
	private ImageIcon getIcon(String name) {
101
		URL iconurl = this.getClass().getResource(name);
102
		if( iconurl == null ) {
103
			return new ImageIcon();
104
		}
105
		return new ImageIcon(iconurl);
106
	}
107
	
108
	private void add(Component comp, int gridx, int gridy, int fill, double weightx, double weighty) {
109
		GridBagConstraints c = new GridBagConstraints();
110
		c.fill = fill;
111
		c.gridx = gridx;
112
		c.gridy = gridy;
113
		c.weightx = weightx;
114
		c.weighty = weighty;
115
		this.add(comp, c);
116
	}
117

  
118
	
119
	public void update(final Observable observable, final Object notification) {
120

  
121
		if(observable != null && !(observable instanceof TaskStatus) ) {
122
			return;
123
		}
124
		if( !SwingUtilities.isEventDispatchThread()) {
125
			SwingUtilities.invokeLater( new Runnable() {
126
				public void run() {
127
					update(observable, notification);
128
				}
129
			});
130
			return;
131
		}
132
		if( observable == null ) {
133
			this.tittlelabel.setText("");
134
			this.messagelabel.setText("");
135
			this.progressBar.setValue(100);
136
			this.cancelRequestButton.setEnabled(false);
137
			return;
138
		}
139
		TaskStatus taskStatus = (TaskStatus) observable;
140
		this.tittlelabel.setText(taskStatus.getTitle());
141
		this.messagelabel.setText(taskStatus.getLabel());
142
		this.progressBar.setIndeterminate( taskStatus.isIndeterminate() );
143
		this.progressBar.setValue( taskStatus.getCompleted() );
144
		if( !this.cancelRequestButton.isEnabled() ) {
145
			this.cancelRequestButton.setEnabled(true);
146
		}
147
	}
148

  
149
	
150
}
0 151

  
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
1
package org.gvsig.tools.swing.impl.task;
2

  
3
import java.awt.Dimension;
4
import java.awt.FlowLayout;
5
import java.awt.LayoutManager;
6
import java.net.URL;
7

  
8
import javax.swing.ImageIcon;
9
import javax.swing.JButton;
10
import javax.swing.JComponent;
11
import javax.swing.JLabel;
12
import javax.swing.JProgressBar;
13
import javax.swing.SwingUtilities;
14

  
15
import org.gvsig.tools.ToolsLocator;
16
import org.gvsig.tools.observer.Observable;
17
import org.gvsig.tools.observer.Observer;
18
import org.gvsig.tools.swing.api.task.JTasksStatus;
19
import org.gvsig.tools.task.TaskStatus;
20
import org.gvsig.tools.task.TaskStatusManager;
21

  
22
public class DefaultJTasksStatus extends JTasksStatus implements Observer {
23

  
24
	/**
25
	 * 
26
	 */
27
	private static final long serialVersionUID = 245436792193991920L;
28

  
29
	private TaskStatusManager manager = null;
30
	private JLabel label = null;
31
	private JProgressBar progressBar = null;
32
	private JButton showAllTaskStatusButton = null;
33
	
34
	public DefaultJTasksStatus() {
35
		this(ToolsLocator.getTaskStatusManager());
36
	}
37
	
38
	public DefaultJTasksStatus(TaskStatusManager manager) {
39
		this.bind(manager);
40
		this.createComponents();
41
	}
42
	
43
	public JComponent asJComponent() {
44
		return this;
45
	}
46
	
47
	public void bind(TaskStatusManager manager) {
48
		if( this.manager!=null ) {
49
			this.manager.deleteObserver(this);
50
		}
51
		this.manager = manager;
52
		if( this.manager!= null ) {
53
			this.manager.addObserver(this);
54
		}
55
	}
56

  
57
	private void createComponents() {
58
		this.label = new JLabel();
59
		this.label.setPreferredSize( new Dimension( 200, 16));
60
		
61
		this.progressBar = new JProgressBar(1,100);
62
		this.progressBar.setPreferredSize(new Dimension( 40, 10));
63
		this.progressBar.setIndeterminate(true);
64
		this.progressBar.setBorderPainted(true);
65
		
66
		this.showAllTaskStatusButton = new JButton();
67
		this.showAllTaskStatusButton.setPreferredSize( new Dimension(16, 16));
68
		this.showAllTaskStatusButton.setBorderPainted(false);
69
		this.showAllTaskStatusButton.setIcon( this.getIcon("showAllTaskStatusButton.png"));
70
		
71
		LayoutManager layout = new FlowLayout();
72
		this.setLayout(layout);
73
		
74
		this.add(this.label);
75
		this.add(this.progressBar);
76
		this.add(this.showAllTaskStatusButton);
77
	}
78
	
79
	private ImageIcon getIcon(String name) {
80
		URL iconurl = this.getClass().getResource(name);
81
		if( iconurl == null ) {
82
			return new ImageIcon();
83
		}
84
		return new ImageIcon(iconurl);
85
	}
86
	public void update(final Observable observable, final Object notification) {
87

  
88
		if(notification != null && !(notification instanceof TaskStatus) ) {
89
			return;
90
		}
91
		if( !SwingUtilities.isEventDispatchThread()) {
92
			SwingUtilities.invokeLater( new Runnable() {
93
				public void run() {
94
					update(observable, notification);
95
				}
96
			});
97
			return;
98
		}
99
		if( notification == null ) {
100
			this.label.setText("");
101
			this.progressBar.setVisible(false);
102
			this.showAllTaskStatusButton.setVisible(false);
103
			return;
104
		}
105
		TaskStatus taskStatus = (TaskStatus) notification;
106
		String label = taskStatus.getLabel();
107
		if( label == null || label.trim().equals("") ) {
108
			label = taskStatus.getTitle();
109
		} else {
110
			label = taskStatus.getTitle() + ": " + label;
111
		}
112
		this.label.setText( label );
113
		this.progressBar.setIndeterminate( taskStatus.isIndeterminate() );
114
		this.progressBar.setValue( taskStatus.getCompleted() );
115
		this.progressBar.setVisible(true);
116
		this.showAllTaskStatusButton.setVisible(true);
117
		
118
	}
119

  
120
}
0 121

  
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
33 33
import org.gvsig.tools.swing.impl.dynobject.DefaultJDynObjectComponentFactory;
34 34
import org.gvsig.tools.swing.impl.dynobject.dynfield.JDynObjectDynfieldComponentFactory;
35 35
import org.gvsig.tools.swing.impl.dynobject.dynfield.JNDynFieldComponentFactory;
36
import org.gvsig.tools.swing.impl.task.DefaultTaskStatusSwingManager;
36 37
import org.gvsig.tools.swing.impl.usability.DefaultUsabilitySwingManager;
37 38
import org.gvsig.tools.swing.spi.ToolsSwingServiceLocator;
38 39

  
......
42 43
 * @author gvSIG team
43 44
 */
44 45
public class ToolsSwingDefaultImplLibrary extends AbstractLibrary {
45
	
46

  
46 47
	/**
47 48
	 * Empty constructor.
48 49
	 */
......
50 51
		super(ToolsSwingLibrary.class, TYPE.IMPL);
51 52
	}
52 53

  
53
    @Override
54
    protected void doInitialize() throws LibraryException {
55
        ToolsSwingLocator
56
            .registerDynObjectSwingManager(DefaultDynObjectSwingManager.class);
57
        ToolsSwingLocator
58
            .registerUsabilitySwingManager(DefaultUsabilitySwingManager.class);
59
        ToolsSwingServiceLocator
60
            .registerDynObjectServiceManager(DefaultDynObjectSwingServiceManager.class);
61
    }
54
	@Override
55
	protected void doInitialize() throws LibraryException {
56
		ToolsSwingLocator
57
				.registerDynObjectSwingManager(DefaultDynObjectSwingManager.class);
58
		ToolsSwingLocator
59
				.registerUsabilitySwingManager(DefaultUsabilitySwingManager.class);
60
		ToolsSwingLocator
61
				.registerTaskStatusSwingManager(DefaultTaskStatusSwingManager.class);
62
		ToolsSwingServiceLocator
63
				.registerDynObjectServiceManager(DefaultDynObjectSwingServiceManager.class);
64
	}
62 65

  
63
    @Override
64
    protected void doPostInitialize() throws LibraryException {
65
        ServiceManager dsManager = ToolsSwingServiceLocator.getServiceManager();
66
	@Override
67
	protected void doPostInitialize() throws LibraryException {
68
		ServiceManager dsManager = ToolsSwingServiceLocator.getServiceManager();
66 69

  
67
        dsManager.addServiceFactory(new DefaultJDynObjectComponentFactory());
68
        dsManager.addServiceFactory(new JNDynFieldComponentFactory(
69
            DataTypes.LIST));
70
        dsManager.addServiceFactory(new JDynObjectDynfieldComponentFactory());
71
    }
70
		dsManager.addServiceFactory(new DefaultJDynObjectComponentFactory());
71
		dsManager.addServiceFactory(new JNDynFieldComponentFactory(
72
				DataTypes.LIST));
73
		dsManager.addServiceFactory(new JDynObjectDynfieldComponentFactory());
74
	}
72 75
}
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
24 24
import org.gvsig.tools.locator.BaseLocator;
25 25
import org.gvsig.tools.locator.Locator;
26 26
import org.gvsig.tools.swing.api.dynobject.DynObjectSwingManager;
27
import org.gvsig.tools.swing.api.task.TaskStatusSwingManager;
27 28
import org.gvsig.tools.swing.api.usability.UsabilitySwingManager;
28 29

  
29 30
/**
......
49 50
    public static final String USABILITY_SWING_MANAGER_DESCRIPTION =
50 51
        "Tools Usability Swing Manager";
51 52

  
52
    /**
53
	private static final String TASKSTATUS_SWING_MANAGER_NAME = "Tools.task.swing.manager";
54

  
55
	private static final String TASKSTATUS_SWING_MANAGER_DESCRIPTION = "Tools Task Swing Manager";
56

  
57
	/**
53 58
     * Unique instance.
54 59
     */
55 60
    private static final ToolsSwingLocator instance = new ToolsSwingLocator();
......
74 79
    }
75 80

  
76 81
    /**
77
     * Gets the instance of the {@link UsabilitySwingManager} registered.
82
     * Return the {@link Locator}'s name
78 83
     * 
79
     * @return {@link UsabilitySwingManager}
84
     * @return a String with the {@link Locator}'s name
80 85
     */
81
    public static UsabilitySwingManager getUsabilitySwingManager() {
82
        return (UsabilitySwingManager) getInstance().get(
83
            USABILITY_SWING_MANAGER_NAME);
86
    @Override
87
    public String getLocatorName() {
88
        return LOCATOR_NAME;
84 89
    }
85 90

  
86 91
    /**
......
97 102
    }
98 103

  
99 104
    /**
105
     * Gets the instance of the {@link UsabilitySwingManager} registered.
106
     * 
107
     * @return {@link UsabilitySwingManager}
108
     */
109
    public static UsabilitySwingManager getUsabilitySwingManager() {
110
        return (UsabilitySwingManager) getInstance().get(
111
            USABILITY_SWING_MANAGER_NAME);
112
    }
113

  
114
    /**
100 115
     * Registers the Class implementing the {@link UsabilitySwingManager}
101 116
     * interface.
102 117
     * 
......
110 125
    }
111 126

  
112 127
    /**
113
     * Return the {@link Locator}'s name
128
     * Gets the instance of the {@link TaskStatusSwingManager} registered.
114 129
     * 
115
     * @return a String with the {@link Locator}'s name
130
     * @return {@link TaskStatusSwingManager}
116 131
     */
117
    @Override
118
    public String getLocatorName() {
119
        return LOCATOR_NAME;
132
    public static TaskStatusSwingManager getTaskStatusSwingManager() {
133
        return (TaskStatusSwingManager) getInstance().get(
134
        		TASKSTATUS_SWING_MANAGER_NAME);
120 135
    }
121 136

  
137
    /**
138
     * Registers the Class implementing the {@link TaskStatusSwingManager}
139
     * interface.
140
     * 
141
     * @param clazz
142
     *            implementing the {@link TaskStatusSwingManager} interface
143
     */
144
    public static void registerTaskStatusSwingManager(
145
        Class<? extends TaskStatusSwingManager> clazz) {
146
        getInstance().register(TASKSTATUS_SWING_MANAGER_NAME,
147
        		TASKSTATUS_SWING_MANAGER_DESCRIPTION, clazz);
148
    }
149

  
150

  
122 151
}
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/JTaskStatus.java
1
package org.gvsig.tools.swing.api.task;
2

  
3
import javax.swing.JPanel;
4

  
5
import org.gvsig.tools.swing.api.Component;
6
import org.gvsig.tools.task.TaskStatus;
7

  
8
public abstract class JTaskStatus extends JPanel implements Component {
9

  
10

  
11
	/**
12
	 * 
13
	 */
14
	private static final long serialVersionUID = -6606077362610993539L;
15

  
16
	public abstract void bind(TaskStatus taskStatus);
17

  
18
	public abstract boolean getShowCancelButton() ;
19
	
20
	public abstract void setShowCancelButton(boolean showCancelButton);
21

  
22
}
0 23

  
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/JTasksStatus.java
1
package org.gvsig.tools.swing.api.task;
2

  
3
import javax.swing.JPanel;
4

  
5
import org.gvsig.tools.swing.api.Component;
6
import org.gvsig.tools.task.TaskStatusManager;
7

  
8
public abstract class JTasksStatus extends JPanel implements Component {
9

  
10
	/**
11
	 * 
12
	 */
13
	private static final long serialVersionUID = 2543254823980497949L;
14

  
15
	public abstract void bind(TaskStatusManager manager);
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/task/TaskStatusSwingManager.java
1
package org.gvsig.tools.swing.api.task;
2

  
3
import org.gvsig.tools.task.TaskStatusManager;
4

  
5
public interface TaskStatusSwingManager {
6

  
7
	public JTasksStatus createJTasksStatus(); 
8

  
9
	public JTasksStatus createJTasksStatus(TaskStatusManager manager); 
10
	
11
	public JTaskStatus createJTaskStatus(); 
12

  
13
}
0 14

  

Also available in: Unified diff