Revision 16403
trunk/applications/appgvSIG/src/com/iver/cit/gvsig/addlayer/fileopen/FileOpenWizard.java | ||
---|---|---|
23 | 23 |
import java.awt.event.ActionListener; |
24 | 24 |
import java.awt.geom.Rectangle2D; |
25 | 25 |
import java.io.File; |
26 |
import java.lang.reflect.InvocationTargetException; |
|
27 | 26 |
import java.util.ArrayList; |
28 | 27 |
import java.util.Iterator; |
29 | 28 |
import java.util.prefs.Preferences; |
... | ... | |
71 | 70 |
private TitledBorder titledBorder = null; |
72 | 71 |
|
73 | 72 |
/** |
74 |
* Lista de manejadores de ficheros (extensiones)
|
|
75 |
*/
|
|
76 |
private ArrayList listFileOpen = new ArrayList();
|
|
73 |
* Lista de manejadores de ficheros (extensiones)
|
|
74 |
*/
|
|
75 |
private ArrayList<IFileOpen> listFileOpen = new ArrayList<IFileOpen>();
|
|
77 | 76 |
|
78 | 77 |
/** |
79 | 78 |
* Construye un FileOpenWizard usando la extension por defecto |
... | ... | |
107 | 106 |
String key = (String) iterator.next(); |
108 | 107 |
Object obj = extensionPoint.get(key); |
109 | 108 |
if (obj instanceof Class) { |
110 |
try { |
|
111 |
obj = ((Class) obj).getConstructor(null).newInstance(null); |
|
112 |
} catch (Exception e) { |
|
113 |
// TODO: Tratar este printStackTrace |
|
114 |
e.printStackTrace(); |
|
115 |
} |
|
109 |
try { |
|
110 |
obj = ((Class) obj).getConstructor(null).newInstance(null); |
|
111 |
} catch (Exception e) { |
|
112 |
e.printStackTrace(); |
|
113 |
} |
|
116 | 114 |
} |
117 | 115 |
if (obj instanceof IFileOpen) { |
118 |
listFileOpen.add(obj); |
|
116 |
listFileOpen.add((IFileOpen) obj);
|
|
119 | 117 |
} |
120 | 118 |
} |
121 | 119 |
init(null, proj); |
122 | 120 |
} |
123 | 121 |
|
124 | 122 |
/** |
125 |
* Creates a new FileOpenWizard object.
|
|
123 |
* Creates a new FileOpenWizard object.
|
|
126 | 124 |
* @param driverClasses |
127 | 125 |
* @param proj |
128 |
*/
|
|
126 |
*/
|
|
129 | 127 |
public FileOpenWizard(IFileOpen[] driverClasses, boolean proj) { |
130 | 128 |
init(driverClasses, proj); |
131 | 129 |
} |
132 | 130 |
|
133 | 131 |
/** |
134 |
* Creates a new FileOpenWizard object.
|
|
132 |
* Creates a new FileOpenWizard object.
|
|
135 | 133 |
* @param driverClasses |
136 |
*/
|
|
134 |
*/
|
|
137 | 135 |
public FileOpenWizard(IFileOpen[] driverClasses) { |
138 | 136 |
init(driverClasses, true); |
139 | 137 |
} |
140 | 138 |
|
141 | 139 |
/** |
142 |
* Creates a new FileOpenWizard object.
|
|
140 |
* Creates a new FileOpenWizard object.
|
|
143 | 141 |
* @param driverClasses |
144 | 142 |
* @param proj |
145 | 143 |
* @param title |
... | ... | |
150 | 148 |
} |
151 | 149 |
|
152 | 150 |
/** |
153 |
* @param driverClasses2
|
|
154 |
* @param b
|
|
155 |
*/
|
|
151 |
* @param driverClasses2
|
|
152 |
* @param b
|
|
153 |
*/
|
|
156 | 154 |
private void init(IFileOpen[] driverClasses, boolean projection) { |
157 | 155 |
this.projection = projection; |
158 | 156 |
|
... | ... | |
169 | 167 |
} |
170 | 168 |
|
171 | 169 |
/* |
172 |
* (non-Javadoc)
|
|
173 |
* @see com.iver.cit.gvsig.gui.WizardPanel#initWizard()
|
|
174 |
*/
|
|
170 |
* (non-Javadoc)
|
|
171 |
* @see com.iver.cit.gvsig.gui.WizardPanel#initWizard()
|
|
172 |
*/
|
|
175 | 173 |
public void initWizard() { |
176 | 174 |
setTabName(PluginServices.getText(this, "Fichero")); |
177 | 175 |
init(null, true); |
178 | 176 |
} |
179 | 177 |
|
180 | 178 |
/** |
181 |
* This method initializes this
|
|
182 |
*/
|
|
179 |
* This method initializes this
|
|
180 |
*/
|
|
183 | 181 |
private void initialize() { |
184 | 182 |
this.setSize(514, 280); |
185 | 183 |
this.setLayout(null); |
... | ... | |
202 | 200 |
} |
203 | 201 |
|
204 | 202 |
/** |
205 |
* This method initializes jPanel2
|
|
206 |
* @return javax.swing.JPanel
|
|
207 |
*/
|
|
203 |
* This method initializes jPanel2
|
|
204 |
* @return javax.swing.JPanel
|
|
205 |
*/
|
|
208 | 206 |
private JPanel getJPanel2() { |
209 | 207 |
if (jPanel2 == null) { |
210 | 208 |
jPanel2 = new JPanel(); |
... | ... | |
241 | 239 |
} |
242 | 240 |
|
243 | 241 |
/** |
244 |
* This method initializes jPanel
|
|
245 |
* @return javax.swing.JPanel
|
|
246 |
*/
|
|
242 |
* This method initializes jPanel
|
|
243 |
* @return javax.swing.JPanel
|
|
244 |
*/
|
|
247 | 245 |
private CRSSelectPanel getJPanelProj() { |
248 | 246 |
if (jPanelProj == null) { |
249 | 247 |
IProjection proj = CRSFactory.getCRS("EPSG:23030"); |
... | ... | |
283 | 281 |
} |
284 | 282 |
|
285 | 283 |
/* |
286 |
* (non-Javadoc)
|
|
287 |
* @see java.lang.Object#toString()
|
|
288 |
*/
|
|
284 |
* (non-Javadoc)
|
|
285 |
* @see java.lang.Object#toString()
|
|
286 |
*/
|
|
289 | 287 |
public String toString() { |
290 | 288 |
return f.getName(); |
291 | 289 |
} |
... | ... | |
304 | 302 |
} |
305 | 303 |
|
306 | 304 |
/** |
307 |
* This method initializes listManagerDemoSkin
|
|
308 |
* @return ListManagerSkin
|
|
309 |
*/
|
|
305 |
* This method initializes listManagerDemoSkin
|
|
306 |
* @return ListManagerSkin
|
|
307 |
*/
|
|
310 | 308 |
private ListManagerSkin getListManagerSkin() { |
311 | 309 |
if (listManagerSkin == null) { |
312 | 310 |
listManagerSkin = new ListManagerSkin(false); |
... | ... | |
317 | 315 |
} |
318 | 316 |
|
319 | 317 |
/* |
320 |
* (non-Javadoc)
|
|
321 |
* @see com.iver.utiles.listManager.ListManagerListener#addObjects()
|
|
322 |
*/
|
|
318 |
* (non-Javadoc)
|
|
319 |
* @see com.iver.utiles.listManager.ListManagerListener#addObjects()
|
|
320 |
*/
|
|
323 | 321 |
public Object[] addObjects() { |
324 | 322 |
this.callStateChanged(true); |
325 | 323 |
fileChooser = new JFileChooser(lastPath); |
... | ... | |
329 | 327 |
boolean finded = false; |
330 | 328 |
FileFilter auxFilter=null; |
331 | 329 |
for (int i = 0; i < listFileOpen.size(); i++) { |
332 |
IFileOpen fileOpen = (IFileOpen) listFileOpen.get(i);
|
|
330 |
IFileOpen fileOpen = listFileOpen.get(i); |
|
333 | 331 |
fileOpen.pre(); |
334 |
ArrayList aux = fileOpen.getFileFilter(); |
|
332 |
ArrayList<FileFilter> aux = fileOpen.getFileFilter();
|
|
335 | 333 |
|
336 | 334 |
for (int j = 0; j < aux.size(); j++) { |
337 |
FileFilter fileFilter = (FileFilter) aux.get(j);
|
|
335 |
FileFilter fileFilter = aux.get(j); |
|
338 | 336 |
fileChooser.addChoosableFileFilter(fileFilter); |
339 | 337 |
if (lastFileFilter!=null && lastFileFilter.getDescription().equals(fileFilter.getDescription())){ |
340 | 338 |
auxFilter=fileFilter; |
... | ... | |
348 | 346 |
int result = fileChooser.showOpenDialog(this); |
349 | 347 |
|
350 | 348 |
File[] newFiles = null; |
351 |
MyFile[] toAdd;
|
|
349 |
ArrayList<MyFile> toAdd = new ArrayList<MyFile>();
|
|
352 | 350 |
if (result == JFileChooser.APPROVE_OPTION) { |
353 | 351 |
lastPath = fileChooser.getCurrentDirectory().getAbsolutePath(); |
354 | 352 |
lastFileFilter = (FileFilter) fileChooser.getFileFilter(); |
... | ... | |
356 | 354 |
|
357 | 355 |
IFileOpen lastFileOpen = null; |
358 | 356 |
for (int i = 0; i < listFileOpen.size(); i++) { |
359 |
IFileOpen fileOpen = (IFileOpen) listFileOpen.get(i);
|
|
360 |
ArrayList aux = fileOpen.getFileFilter(); |
|
357 |
IFileOpen fileOpen = listFileOpen.get(i); |
|
358 |
ArrayList<FileFilter> aux = fileOpen.getFileFilter();
|
|
361 | 359 |
for (int j = 0; j < aux.size(); j++) { |
362 |
if (fileChooser.getFileFilter() == (FileFilter) aux.get(j)) {
|
|
360 |
if (fileChooser.getFileFilter() == aux.get(j)) { |
|
363 | 361 |
for (int iFile=0; iFile<newFiles.length; iFile++) { |
364 |
File fileAux = fileOpen.post(newFiles[iFile]); |
|
365 |
if (fileAux != null) |
|
366 |
newFiles[iFile] = fileAux; |
|
362 |
newFiles[iFile] = fileOpen.post(newFiles[iFile]); |
|
367 | 363 |
} |
368 | 364 |
lastFileOpen = fileOpen; |
369 | 365 |
break; |
... | ... | |
371 | 367 |
} |
372 | 368 |
} |
373 | 369 |
|
374 |
toAdd = new MyFile[newFiles.length]; |
|
375 | 370 |
for (int ind = 0; ind < newFiles.length; ind++) { |
371 |
if (newFiles[ind] == null) |
|
372 |
break; |
|
376 | 373 |
String driverName = ((FileFilter) fileChooser.getFileFilter()).getDescription(); |
377 |
toAdd[ind] = new MyFile(newFiles[ind], driverName, lastFileOpen);
|
|
374 |
toAdd.add(new MyFile(newFiles[ind], driverName, lastFileOpen));
|
|
378 | 375 |
} |
379 | 376 |
|
380 |
return toAdd; |
|
377 |
return toAdd.toArray();
|
|
381 | 378 |
} else |
382 | 379 |
return new Object[0]; |
383 | 380 |
} |
384 | 381 |
|
385 | 382 |
/* |
386 |
* (non-Javadoc)
|
|
387 |
* @see com.iver.cit.gvsig.gui.WizardPanel#execute()
|
|
388 |
*/
|
|
383 |
* (non-Javadoc)
|
|
384 |
* @see com.iver.cit.gvsig.gui.WizardPanel#execute()
|
|
385 |
*/
|
|
389 | 386 |
public void execute() { |
390 | 387 |
if (getFiles() == null) |
391 | 388 |
return; |
... | ... | |
448 | 445 |
} |
449 | 446 |
|
450 | 447 |
public void setTitle(String title) { |
451 |
getTitledBorder().setTitle(title);
|
|
452 |
}
|
|
448 |
getTitledBorder().setTitle(title);
|
|
449 |
}
|
|
453 | 450 |
|
454 | 451 |
/* |
455 |
* (non-Javadoc)
|
|
456 |
* @see com.iver.utiles.listManager.ListManagerListener#getProperties(java.lang.Object)
|
|
457 |
*/
|
|
452 |
* (non-Javadoc)
|
|
453 |
* @see com.iver.utiles.listManager.ListManagerListener#getProperties(java.lang.Object)
|
|
454 |
*/
|
|
458 | 455 |
public Object getProperties(Object selected) { |
459 | 456 |
return null; |
460 | 457 |
} |
461 | 458 |
|
462 | 459 |
/* |
463 |
* (non-Javadoc)
|
|
464 |
* @see com.iver.cit.gvsig.gui.WizardPanel#getLayer()
|
|
465 |
*/
|
|
460 |
* (non-Javadoc)
|
|
461 |
* @see com.iver.cit.gvsig.gui.WizardPanel#getLayer()
|
|
462 |
*/
|
|
466 | 463 |
public FLayer getLayer() { |
467 | 464 |
return null; |
468 | 465 |
} |
trunk/applications/appgvSIG/src/com/iver/cit/gvsig/addlayer/fileopen/AbstractFileOpen.java | ||
---|---|---|
1 |
/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana |
|
2 |
* |
|
3 |
* Copyright (C) 2005 IVER T.I. and Generalitat Valenciana. |
|
4 |
* |
|
5 |
* This program is free software; you can redistribute it and/or |
|
6 |
* modify it under the terms of the GNU General Public License |
|
7 |
* as published by the Free Software Foundation; either version 2 |
|
8 |
* of the License, or (at your option) any later version. |
|
9 |
* |
|
10 |
* This program is distributed in the hope that it will be useful, |
|
11 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
12 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
13 |
* GNU General Public License for more details. |
|
14 |
* |
|
15 |
* You should have received a copy of the GNU General Public License |
|
16 |
* along with this program; if not, write to the Free Software |
|
17 |
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,USA. |
|
18 |
*/ |
|
19 |
package com.iver.cit.gvsig.addlayer.fileopen; |
|
20 |
|
|
21 |
import java.io.File; |
|
22 |
import java.util.ArrayList; |
|
23 |
|
|
24 |
import javax.swing.filechooser.FileFilter; |
|
25 |
/** |
|
26 |
* Clase abstracta que deben implementar todas aquellas extensiones que quieran |
|
27 |
* aparecer en un punto com�n del cuadro de dialogo de apertura de ficheros. |
|
28 |
* |
|
29 |
* @version 19/11/2007 |
|
30 |
* @author BorSanZa - Borja S�nchez Zamorano (borja.sanchez@iver.es) |
|
31 |
*/ |
|
32 |
public abstract class AbstractFileOpen implements IFileOpen { |
|
33 |
private ArrayList<FileFilter> arrayFileFilter = null; |
|
34 |
|
|
35 |
/* |
|
36 |
* (non-Javadoc) |
|
37 |
* @see com.iver.cit.gvsig.addlayer.fileopen.IFileOpen#pre() |
|
38 |
*/ |
|
39 |
public void pre() { |
|
40 |
} |
|
41 |
|
|
42 |
/* |
|
43 |
* (non-Javadoc) |
|
44 |
* @see com.iver.cit.gvsig.addlayer.fileopen.IFileOpen#post(java.io.File) |
|
45 |
*/ |
|
46 |
public File post(File file) { |
|
47 |
return file; |
|
48 |
} |
|
49 |
|
|
50 |
/* |
|
51 |
* (non-Javadoc) |
|
52 |
* @see org.gvsig.raster.gui.wizards.IFileOpen#getFileFilter() |
|
53 |
*/ |
|
54 |
public final ArrayList getFileFilter() { |
|
55 |
if (arrayFileFilter == null) { |
|
56 |
arrayFileFilter = new ArrayList<FileFilter>(); |
|
57 |
} |
|
58 |
return arrayFileFilter; |
|
59 |
} |
|
60 |
} |
|
0 | 61 |
trunk/applications/appgvSIG/src/com/iver/cit/gvsig/addlayer/fileopen/vectorial/VectorialFileOpen.java | ||
---|---|---|
32 | 32 |
import com.hardcode.gdbms.driver.exceptions.ReadDriverException; |
33 | 33 |
import com.iver.andami.messages.NotificationManager; |
34 | 34 |
import com.iver.cit.gvsig.AddLayer; |
35 |
import com.iver.cit.gvsig.addlayer.fileopen.IFileOpen;
|
|
35 |
import com.iver.cit.gvsig.addlayer.fileopen.AbstractFileOpen;
|
|
36 | 36 |
import com.iver.cit.gvsig.fmap.MapControl; |
37 | 37 |
import com.iver.cit.gvsig.fmap.drivers.VectorialFileDriver; |
38 | 38 |
import com.iver.cit.gvsig.fmap.layers.FLayer; |
39 | 39 |
import com.iver.cit.gvsig.fmap.layers.LayerFactory; |
40 | 40 |
/** |
41 | 41 |
* Clase que indicar? que ficheros puede tratar al panel de apertura de ficheros |
42 |
*
|
|
42 |
* |
|
43 | 43 |
* @version 04/09/2007 |
44 | 44 |
* @author BorSanZa - Borja S?nchez Zamorano (borja.sanchez@iver.es) |
45 | 45 |
*/ |
46 |
public class VectorialFileOpen implements IFileOpen {
|
|
46 |
public class VectorialFileOpen extends AbstractFileOpen{
|
|
47 | 47 |
private ArrayList arrayFileFilter; |
48 |
|
|
48 |
|
|
49 | 49 |
/** |
50 | 50 |
* Constructor de FileOpenRaster |
51 | 51 |
*/ |
52 | 52 |
public VectorialFileOpen() { |
53 |
arrayFileFilter = new ArrayList(); |
|
54 |
|
|
55 | 53 |
TreeSet filters = new TreeSet(new Comparator() { |
56 | 54 |
public int compare(Object o1, Object o2) { |
57 | 55 |
VectorialFileFilter dff1 = (VectorialFileFilter) o1; |
... | ... | |
82 | 80 |
Iterator i = filters.iterator(); |
83 | 81 |
while (i.hasNext()) { |
84 | 82 |
VectorialFileFilter element = (VectorialFileFilter) i.next(); |
85 |
arrayFileFilter.add(element);
|
|
83 |
getFileFilter().add(element);
|
|
86 | 84 |
} |
87 | 85 |
} catch (DriverLoadException e1) { |
88 | 86 |
NotificationManager.addError("No se pudo acceder a los drivers", e1); |
... | ... | |
91 | 89 |
} |
92 | 90 |
|
93 | 91 |
/* |
94 |
* (non-Javadoc) |
|
95 |
* @see org.gvsig.raster.gui.wizards.IFileOpen#pre() |
|
96 |
*/ |
|
97 |
public void pre() { |
|
98 |
} |
|
99 |
|
|
100 |
/* |
|
101 | 92 |
* (non-Javadoc) |
102 |
* @see org.gvsig.raster.gui.wizards.IFileOpen#post(java.io.File[]) |
|
103 |
*/ |
|
104 |
public File post(File file) { |
|
105 |
return null; |
|
106 |
} |
|
107 |
|
|
108 |
/* |
|
109 |
* (non-Javadoc) |
|
110 |
* @see org.gvsig.raster.gui.wizards.IFileOpen#getFileFilter() |
|
111 |
*/ |
|
112 |
public ArrayList getFileFilter() { |
|
113 |
return arrayFileFilter; |
|
114 |
} |
|
115 |
|
|
116 |
/* |
|
117 |
* (non-Javadoc) |
|
118 | 93 |
* @see org.gvsig.raster.gui.wizards.IFileOpen#execute(java.io.File[]) |
119 | 94 |
*/ |
120 | 95 |
public Rectangle2D createLayer(File file, MapControl mapControl, String driverName, IProjection proj) { |
trunk/applications/appgvSIG/src/com/iver/cit/gvsig/addlayer/fileopen/IFileOpen.java | ||
---|---|---|
22 | 22 |
import java.io.File; |
23 | 23 |
import java.util.ArrayList; |
24 | 24 |
|
25 |
import javax.swing.filechooser.FileFilter; |
|
26 |
|
|
25 | 27 |
import org.cresques.cts.IProjection; |
26 | 28 |
|
27 | 29 |
import com.iver.cit.gvsig.fmap.MapControl; |
trunk/applications/appgvSIG/src/com/iver/cit/gvsig/project/documents/table/TableFileOpen.java | ||
---|---|---|
30 | 30 |
import com.hardcode.driverManager.DriverLoadException; |
31 | 31 |
import com.hardcode.gdbms.engine.data.driver.FileDriver; |
32 | 32 |
import com.iver.andami.messages.NotificationManager; |
33 |
import com.iver.cit.gvsig.addlayer.fileopen.IFileOpen;
|
|
33 |
import com.iver.cit.gvsig.addlayer.fileopen.AbstractFileOpen;
|
|
34 | 34 |
import com.iver.cit.gvsig.fmap.MapControl; |
35 | 35 |
import com.iver.cit.gvsig.fmap.layers.LayerFactory; |
36 | 36 |
/** |
37 | 37 |
* Clase que indicar? que ficheros puede tratar al panel de apertura de ficheros |
38 |
*
|
|
38 |
* |
|
39 | 39 |
* @version 04/09/2007 |
40 | 40 |
* @author BorSanZa - Borja S?nchez Zamorano (borja.sanchez@iver.es) |
41 | 41 |
*/ |
42 |
public class TableFileOpen implements IFileOpen { |
|
43 |
private ArrayList arrayFileFilter; |
|
44 |
|
|
42 |
public class TableFileOpen extends AbstractFileOpen { |
|
43 |
|
|
45 | 44 |
/** |
46 | 45 |
* Constructor de FileOpenRaster |
47 | 46 |
*/ |
48 | 47 |
public TableFileOpen() { |
49 |
arrayFileFilter = new ArrayList(); |
|
50 |
|
|
51 | 48 |
TreeSet filters = new TreeSet(new Comparator() { |
52 | 49 |
public int compare(Object o1, Object o2) { |
53 | 50 |
TableFileFilter dff1 = (TableFileFilter) o1; |
... | ... | |
79 | 76 |
Iterator iterator = filters.iterator(); |
80 | 77 |
while (iterator.hasNext()) { |
81 | 78 |
TableFileFilter filter = (TableFileFilter) iterator.next(); |
82 |
arrayFileFilter.add(filter);
|
|
79 |
getFileFilter().add(filter);
|
|
83 | 80 |
} |
84 | 81 |
} catch (DriverLoadException exception) { |
85 | 82 |
NotificationManager.addError("No se pudo acceder a los drivers", exception); |
86 | 83 |
} |
87 | 84 |
} |
88 |
|
|
89 |
/* |
|
90 |
* (non-Javadoc) |
|
91 |
* @see org.gvsig.raster.gui.wizards.IFileOpen#pre() |
|
92 |
*/ |
|
93 |
public void pre() { |
|
94 |
} |
|
95 | 85 |
|
96 | 86 |
/* |
97 | 87 |
* (non-Javadoc) |
98 |
* @see org.gvsig.raster.gui.wizards.IFileOpen#post(java.io.File[]) |
|
99 |
*/ |
|
100 |
public File post(File file) { |
|
101 |
return null; |
|
102 |
} |
|
103 |
|
|
104 |
/* |
|
105 |
* (non-Javadoc) |
|
106 |
* @see org.gvsig.raster.gui.wizards.IFileOpen#getFileFilter() |
|
107 |
*/ |
|
108 |
public ArrayList getFileFilter() { |
|
109 |
return arrayFileFilter; |
|
110 |
} |
|
111 |
|
|
112 |
/* |
|
113 |
* (non-Javadoc) |
|
114 | 88 |
* @see org.gvsig.raster.gui.wizards.IFileOpen#execute(java.io.File[]) |
115 | 89 |
*/ |
116 | 90 |
public Rectangle2D createLayer(File file, MapControl mapControl, String driverName, IProjection proj) { |
Also available in: Unified diff