Revision 706

View differences:

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

  
3
import java.util.ArrayList;
4
import java.util.Arrays;
5
import java.util.List;
6

  
7
public abstract class RunnableWithParameters implements Runnable {
8
	protected List parameters = null;
9
	protected Object returnValue;
10

  
11
	public RunnableWithParameters() {
12
		this.parameters = null;
13
	}
14

  
15
	public RunnableWithParameters(Object[] parameters) {
16
		this.parameters = Arrays.asList(parameters);
17
	}
18

  
19
	public void setParameters(Object[] parameters) {
20
		this.parameters = Arrays.asList(parameters);
21
	}
22
	
23
	public List getParameters() {
24
		if( this.parameters == null ) {
25
			this.parameters = new ArrayList();
26
		}
27
		return parameters;
28
	}
29
	
30
	public RunnableWithParameters add(Object paramter) {
31
		this.getParameters().add(paramter);
32
		return this;
33
	}
34
	
35
	public Object get(int index) {
36
		return this.parameters.get(index);
37
	}
38
	
39
	public Object getReturnValue() {
40
		return this.returnValue;
41
	}
42
}
0 43

  
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.lib/src/main/java/org/gvsig/tools/util/FolderSet.java
3 3
import java.io.File;
4 4
import java.io.FileFilter;
5 5
import java.io.FilenameFilter;
6
import java.io.IOException;
6 7
import java.util.Iterator;
7 8

  
8 9
import org.gvsig.tools.observer.Observable;
......
13 14
		public File getFolder();
14 15
		public String getLabel() ;
15 16
	}
17
	public void setDefaultFolder(File defaultFolder);
16 18
	
19
	public File getDefaultFolder();
20
	
21
	public File asFile();
22
	
17 23
	public void add(File folder);
18 24
	
19 25
	public void add(File folder, String description);
......
31 37
	public File[] listFiles(FileFilter filter);
32 38

  
33 39
	public File[] listFiles(FilenameFilter filter);
40
	
41
	public String[] list();
42
	
43
	public String[] list(FilenameFilter filter);
44
	
45
	public boolean isDirectory();
46
	
47
	public boolean isFile();
48
	
49
	public String getName();
50
	
51
	public String getParent();
52
	
53
	public File getParentFile();
54
	
55
	public String getPath();
56
	
57
	public File getCanonicalFile() throws IOException ;
58
	
59
	public String getCanonicalPath() throws IOException ;
60
	
61
	public boolean canRead();
62
	
63
	public boolean canWrite();
64
	
65
	public boolean exists() ;
66
	
67
	public File getAbsoluteFile();
68
	
69
	public String getAbsolutePath();
34 70
}
org.gvsig.tools/library/trunk/org.gvsig.tools/org.gvsig.tools.lib/src/main/java/org/gvsig/tools/util/impl/DefaultFolderSet.java
3 3
import java.io.File;
4 4
import java.io.FileFilter;
5 5
import java.io.FilenameFilter;
6
import java.io.IOException;
6 7
import java.util.ArrayList;
7 8
import java.util.Arrays;
8
import java.util.HashSet;
9 9
import java.util.Iterator;
10
import java.util.LinkedHashSet;
10 11
import java.util.List;
11 12
import java.util.Set;
12 13

  
13 14
import org.gvsig.tools.observer.impl.BaseWeakReferencingObservable;
14 15
import org.gvsig.tools.util.FolderSet;
15 16

  
16
public class DefaultFolderSet extends BaseWeakReferencingObservable implements FolderSet {
17
public class DefaultFolderSet extends BaseWeakReferencingObservable implements
18
		FolderSet {
17 19

  
18 20
	public class DefaultFolderEntry implements FolderEntry {
19
		File folder; 
21
		File folder;
20 22
		String label;
21
		
23

  
22 24
		DefaultFolderEntry(File folder, String label) {
23 25
			this.folder = folder;
24 26
			this.label = label;
25 27
		}
28

  
26 29
		public boolean equals(Object obj) {
27
			return this.folder.equals(((FolderEntry)obj).getFolder());
30
			return this.folder.equals(((FolderEntry) obj).getFolder());
28 31
		}
32

  
29 33
		public int hashCode() {
30 34
			return this.folder.hashCode();
31 35
		}
36

  
32 37
		public File getFolder() {
33 38
			return this.folder;
34 39
		}
40

  
35 41
		public String getLabel() {
36 42
			return this.label;
37 43
		}
38 44
	}
39
	
45

  
40 46
	private Set folders = null;
47
	private File defaultFolder = null;
41 48

  
42
	
43 49
	public DefaultFolderSet() {
44
		folders = new HashSet();
50
		folders = new LinkedHashSet();
45 51
	}
46
	
52

  
47 53
	public void add(File folder) {
48 54
		this.add(folder, null);
49 55
	}
50 56

  
51 57
	public void add(File folder, String description) {
52
		if( folder == null ) {
58
		if (folder == null) {
53 59
			return;
54 60
		}
55
		if( folder.exists() && !folder.isDirectory() ) {
61
		if (folder.exists() && !folder.isDirectory()) {
56 62
			throw new IllegalArgumentException("folder required");
57 63
		}
58 64
		this.folders.add(new DefaultFolderEntry(folder, description));
59
		this.notifyObservers();	
65
		if( this.defaultFolder == null ) {
66
			this.defaultFolder = folder;
67
		}
68
 		this.notifyObservers();
60 69
	}
61 70

  
62 71
	public void clear() {
63 72
		this.folders.clear();
73
		this.defaultFolder = null;
64 74
		this.notifyObservers();
65 75
	}
66 76

  
67 77
	public void remove(File folder) {
68
		this.folders.remove(new DefaultFolderEntry(folder,null));
69
		this.notifyObservers();
78
		if (folder != null) {
79
			this.folders.remove(new DefaultFolderEntry(folder, null));
80
			if (folder.equals(this.defaultFolder)) {
81
				this.defaultFolder = null;
82
			}
83
			this.notifyObservers();
84
		}
70 85
	}
71 86

  
72 87
	public void set(File folder) {
73 88
		this.beginComplexNotification();
74 89
		this.clear();
75
		this.add(folder);
90
		this.setDefaultFolder(folder);
76 91
		this.endComplexNotification();
77 92
	}
78
	
93

  
79 94
	public File[] listFiles() {
80 95
		List entries = new ArrayList();
81 96
		Iterator it = this.folders.iterator();
82
		while( it.hasNext() ) {
97
		while (it.hasNext()) {
83 98
			FolderEntry folderEntry = (FolderEntry) it.next();
84 99
			File[] files = folderEntry.getFolder().listFiles();
85
			entries.addAll( Arrays.asList(files));
100
			entries.addAll(Arrays.asList(files));
86 101
		}
87
		return  (File[]) entries.toArray();
102
		return (File[]) entries.toArray();
88 103
	}
89 104

  
90 105
	public File[] listFiles(FileFilter filter) {
91 106
		List entries = new ArrayList();
92 107
		Iterator it = this.folders.iterator();
93
		while( it.hasNext() ) {
108
		while (it.hasNext()) {
94 109
			FolderEntry folderEntry = (FolderEntry) it.next();
95 110
			File[] files = folderEntry.getFolder().listFiles(filter);
96
			entries.addAll( Arrays.asList(files));
111
			entries.addAll(Arrays.asList(files));
97 112
		}
98
		return  (File[]) entries.toArray();
113
		return (File[]) entries.toArray();
99 114
	}
100 115

  
101 116
	public File[] listFiles(FilenameFilter filter) {
102 117
		List entries = new ArrayList();
103 118
		Iterator it = this.folders.iterator();
104
		while( it.hasNext() ) {
119
		while (it.hasNext()) {
105 120
			FolderEntry folderEntry = (FolderEntry) it.next();
106 121
			File[] files = folderEntry.getFolder().listFiles(filter);
107
			entries.addAll( Arrays.asList(files));
122
			entries.addAll(Arrays.asList(files));
108 123
		}
109
		return  (File[]) entries.toArray();
124
		return (File[]) entries.toArray();
110 125
	}
111 126

  
112 127
	public Iterator iterator() {
113 128
		return this.folders.iterator();
114 129
	}
115 130

  
131
	public void setDefaultFolder(File defaultFolder) {
132
		this.add(defaultFolder);
133
		this.defaultFolder = defaultFolder;
134
	}
135

  
136
	public File getDefaultFolder() {
137
		if( this.defaultFolder == null ) {
138
			Iterator it = this.folders.iterator();
139
			if( it.hasNext() ) {
140
				this.defaultFolder = (File) it.next();
141
			}
142
		}
143
		return this.defaultFolder;
144
	}
145
	
146
	public File asFile() {
147
		return getDefaultFolder();
148
	}
149
	
150
	public String[] list() {
151
		List entries = new ArrayList();
152
		Iterator it = this.folders.iterator();
153
		while (it.hasNext()) {
154
			FolderEntry folderEntry = (FolderEntry) it.next();
155
			String[] files = folderEntry.getFolder().list();
156
			entries.addAll(Arrays.asList(files));
157
		}
158
		return (String[]) entries.toArray();
159
	}
160
	
161
	public String[] list(FilenameFilter filter) {
162
		List entries = new ArrayList();
163
		Iterator it = this.folders.iterator();
164
		while (it.hasNext()) {
165
			FolderEntry folderEntry = (FolderEntry) it.next();
166
			String[] files = folderEntry.getFolder().list(filter);
167
			entries.addAll(Arrays.asList(files));
168
		}
169
		return (String[]) entries.toArray();
170
	}
171

  
172
	public boolean isDirectory() {
173
		return true;
174
	}
175

  
176
	public boolean isFile() {
177
		return false;
178
	}
179

  
180
	public String getName() {
181
		return this.getDefaultFolder().getName();
182
	}
183

  
184
	public String getParent() {
185
		return this.getDefaultFolder().getParent();
186
	}
187

  
188
	public File getParentFile() {
189
		return this.getDefaultFolder().getParentFile();
190
	}
191

  
192
	public String getPath() {
193
		return this.getDefaultFolder().getPath();
194
	}
195

  
196
	public File getCanonicalFile() throws IOException {
197
		return this.getDefaultFolder().getCanonicalFile();
198
	}
199

  
200
	public String getCanonicalPath() throws IOException {
201
		return this.getDefaultFolder().getCanonicalPath();
202
	}
203

  
204
	public boolean canRead() {
205
		return this.getDefaultFolder().canRead();
206
	}
207

  
208
	public boolean canWrite() {
209
		return this.getDefaultFolder().canWrite();
210
	}
211

  
212
	public boolean exists() {
213
		return this.getDefaultFolder().exists();
214
	}
215

  
216
	public File getAbsoluteFile() {
217
		return this.getDefaultFolder().getAbsoluteFile();
218
	}
219

  
220
	public String getAbsolutePath() {
221
		return this.getDefaultFolder().getAbsolutePath();
222
	}
116 223
}

Also available in: Unified diff