gvsig-geoprocess / org.gvsig.sextante / trunk / org.gvsig.sextante.app / org.gvsig.sextante.app.extension / src / main / java / org / gvsig / sextante / app / extension / core / FileTools.java @ 31
History | View | Annotate | Download (6.03 KB)
1 |
package org.gvsig.sextante.app.extension.core; |
---|---|
2 |
|
3 |
import java.io.File; |
4 |
|
5 |
import org.cresques.cts.IProjection; |
6 |
import org.gvsig.andami.messages.NotificationManager; |
7 |
import org.gvsig.app.ApplicationLocator; |
8 |
import org.gvsig.app.project.ProjectManager; |
9 |
import org.gvsig.app.project.ProjectPreferences; |
10 |
import org.gvsig.app.project.documents.table.TableDocument; |
11 |
import org.gvsig.app.project.documents.table.TableManager; |
12 |
import org.gvsig.fmap.dal.DALLocator; |
13 |
import org.gvsig.fmap.dal.DataManager; |
14 |
import org.gvsig.fmap.dal.DataStoreParameters; |
15 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
16 |
import org.gvsig.fmap.dal.serverexplorer.filesystem.FilesystemStoreParameters; |
17 |
import org.gvsig.fmap.dal.store.dbf.DBFStoreParameters; |
18 |
import org.gvsig.fmap.mapcontext.exceptions.LoadLayerException; |
19 |
import org.gvsig.fmap.mapcontext.layers.FLayer; |
20 |
import org.gvsig.fmap.mapcontext.layers.LayerFactory; |
21 |
import org.gvsig.fmap.raster.layers.FLyrRasterSE; |
22 |
import org.gvsig.raster.dataset.RasterDataset; |
23 |
|
24 |
|
25 |
|
26 |
public class FileTools { |
27 |
|
28 |
public final static String [] RASTER_EXT_IN = {"tif","asc", "dat", "tiff", "bmp", "gif", "img", "jpg", "png", "vrt", |
29 |
"lan", "gis", "pix", "aux", "adf", "mpr", "mpl", "map", "hdr"}; |
30 |
public final static String [] RASTER_DRIVERS_IN = {"gvSIG Image Driver", "gvSIG Image Driver", |
31 |
"gvSIG Image Driver", "gvSIG Image Driver", |
32 |
"gvSIG Image Driver", "gvSIG Image Driver", |
33 |
"gvSIG Image Driver", "gvSIG Image Driver", |
34 |
"gvSIG Image Driver", "gvSIG Image Driver", |
35 |
"gvSIG Image Driver", "gvSIG Image Driver", |
36 |
"gvSIG Image Driver", "gvSIG Image Driver", |
37 |
"gvSIG Image Driver", "gvSIG Image Driver", |
38 |
"gvSIG Image Driver", "gvSIG Image Driver", |
39 |
"gvSIG Image Driver"
|
40 |
}; |
41 |
|
42 |
public final static String [] VECTOR_EXT_IN = {"shp","gml","dxf","dgn","dwg"}; |
43 |
public final static String [] VECTOR_DRIVERS_IN = {"gvSIG shp driver", |
44 |
"gvSIG GML Memory Driver", "gvSIG DXF Memory Driver", |
45 |
"gvSIG DGN Memory Driver", "gvSIG DWG Memory Driver"}; |
46 |
public final static String [] TABLE_EXT = {"dbf"}; |
47 |
public static final String[] LAYERS_EXT_IN = {"tif","asc", "dat", "tiff", "bmp", "gif", "img", "jpg", "png", "vrt", |
48 |
"lan", "gis", "pix", "aux", "adf", "mpr", "mpl", "map", "shp","gml", |
49 |
"dxf","dgn","dwg"}; |
50 |
public static final String[] LAYER_DRIVERS_IN = {"RasterStore", "RasterStore", |
51 |
"RasterStore", "RasterStore", |
52 |
"RasterStore", "RasterStore", |
53 |
"RasterStore", "RasterStore", |
54 |
"RasterStore", "RasterStore", |
55 |
"RasterStore", "RasterStore", |
56 |
"RasterStore", "RasterStore", |
57 |
"RasterStore", "RasterStore", |
58 |
"RasterStore", "RasterStore", |
59 |
"Shape",
|
60 |
"GML", "DXF", |
61 |
"DGN", "DWG"}; |
62 |
|
63 |
|
64 |
/**
|
65 |
* Open a gvSIG layer using a {@link:DataStoreParameters}
|
66 |
* @param inputParams
|
67 |
* @param layerName
|
68 |
* @param projection
|
69 |
* @return FLayer
|
70 |
*/
|
71 |
public static FLayer openLayer(Object inputParams, String layerName, IProjection projection) { |
72 |
LayerFactory layerFactor = LayerFactory.getInstance(); |
73 |
DataStoreParameters params = null;
|
74 |
|
75 |
if(inputParams instanceof DataStoreParameters) |
76 |
params = (DataStoreParameters)inputParams; |
77 |
else
|
78 |
if(inputParams instanceof String) |
79 |
openLayer((String) inputParams, layerName, projection);
|
80 |
else
|
81 |
return null; |
82 |
|
83 |
try {
|
84 |
return layerFactor.createLayer(layerName, params);
|
85 |
} catch (LoadLayerException e) {
|
86 |
NotificationManager.addError(e); |
87 |
return null; |
88 |
} |
89 |
} |
90 |
|
91 |
@SuppressWarnings("deprecation") |
92 |
public static FLayer openLayer(String sFilename, String sName, IProjection projection) { |
93 |
|
94 |
String sExtension = sFilename.substring(sFilename.lastIndexOf('.') + 1, sFilename.length()); |
95 |
|
96 |
String[] extensionSupported = RasterDataset.getExtensionsSupported(); |
97 |
FLyrRasterSE rlayer = null;
|
98 |
for (int i = 0; i < extensionSupported.length; i++) { |
99 |
if(sExtension.equals(extensionSupported[i]))
|
100 |
try {
|
101 |
rlayer = FLyrRasterSE.createLayer(sName, new File(sFilename), projection); |
102 |
} catch (LoadLayerException e) {
|
103 |
e.printStackTrace(); |
104 |
return null; |
105 |
} |
106 |
if (rlayer != null && rlayer.isAvailable()){ |
107 |
return rlayer;
|
108 |
} |
109 |
} |
110 |
|
111 |
for (int i = 0; i < LAYERS_EXT_IN.length; i++) { |
112 |
if (sExtension.equals(LAYERS_EXT_IN[i])){
|
113 |
try {
|
114 |
FLayer layer; |
115 |
// Driver driver = LayerFactory.getDM().getDriver(FileTools.LAYER_DRIVERS_IN[i]);
|
116 |
DataManager dm=DALLocator.getDataManager(); |
117 |
DataStoreParameters params=dm.createStoreParameters(FileTools.LAYER_DRIVERS_IN[i]); |
118 |
((FilesystemStoreParameters)params).setFile(new File(sFilename)); |
119 |
|
120 |
params.setDynValue("srs", projection);
|
121 |
layer = LayerFactory.getInstance().createLayer(sName, params); |
122 |
|
123 |
|
124 |
if (layer != null && layer.isAvailable()){ |
125 |
return layer;
|
126 |
} |
127 |
else{
|
128 |
return null; |
129 |
} |
130 |
} catch (Exception e) { |
131 |
e.printStackTrace(); |
132 |
return null; |
133 |
} |
134 |
} |
135 |
} |
136 |
return null; |
137 |
} |
138 |
|
139 |
public static TableDocument openTable(String sFilename, String sName) { |
140 |
DBFStoreParameters dbfParams=new DBFStoreParameters();
|
141 |
dbfParams.setDBFFileName(sFilename); |
142 |
DataManager dm=DALLocator.getDataManager(); |
143 |
try {
|
144 |
FeatureStore store=(FeatureStore)dm.createStore(dbfParams); |
145 |
TableDocument pt = (TableDocument) ProjectManager.getInstance().createDocument(TableManager.TYPENAME, sName); |
146 |
pt.setStore(store); |
147 |
// FeatureTableDocument pt = ProjectFactory.createTable(sName, store);
|
148 |
return pt;
|
149 |
|
150 |
} catch (Exception e) { |
151 |
return null; |
152 |
} |
153 |
|
154 |
} |
155 |
|
156 |
public static Object open(String sFilename){ |
157 |
|
158 |
IProjection projection = |
159 |
((ProjectPreferences) ApplicationLocator.getManager() |
160 |
.getPreferences("project")).getDefaultProjection();
|
161 |
FLayer layer = openLayer(sFilename, sFilename, projection); |
162 |
if (layer != null){ |
163 |
return layer;
|
164 |
} |
165 |
|
166 |
TableDocument table = openTable(sFilename, sFilename); |
167 |
|
168 |
return table;
|
169 |
|
170 |
|
171 |
} |
172 |
|
173 |
} |