Revision 1885 trunk/extensions/extWCS/src-gvsig/com/iver/cit/gvsig/Abrir.java

View differences:

Abrir.java
42 42

  
43 43
import java.awt.geom.Rectangle2D;
44 44
import java.io.File;
45
import java.lang.reflect.InvocationTargetException;
46
import java.sql.Connection;
47
import java.sql.DriverManager;
48
import java.sql.SQLException;
45 49
import java.util.ArrayList;
46 50

  
47 51
import javax.swing.JOptionPane;
......
56 60
import com.iver.andami.plugins.Extension;
57 61
import com.iver.cit.gvsig.fmap.DriverException;
58 62
import com.iver.cit.gvsig.fmap.drivers.RasterDriver;
63
import com.iver.cit.gvsig.fmap.drivers.VectorialDatabaseDriver;
59 64
import com.iver.cit.gvsig.fmap.drivers.VectorialFileDriver;
65
import com.iver.cit.gvsig.fmap.drivers.jdbc.postgis.PostGisDriver;
60 66
import com.iver.cit.gvsig.fmap.layers.FLayer;
61 67
import com.iver.cit.gvsig.fmap.layers.LayerFactory;
62 68
import com.iver.cit.gvsig.gui.FOpenDialog;
63 69
import com.iver.cit.gvsig.gui.FileOpenDialog;
64 70
import com.iver.cit.gvsig.gui.View;
65 71
import com.iver.cit.gvsig.gui.WizardPanel;
72
import com.iver.cit.gvsig.gui.wizards.JDBCWizard;
66 73
import com.iver.cit.gvsig.gui.wms.WMSWizard;
67 74

  
68 75

  
......
74 81
 */
75 82
public class Abrir implements Extension {
76 83
	public FOpenDialog fopen = null;
84
	private static ArrayList wizardStack = null; // LWS
77 85
	
78
	private static ArrayList wizardStack = null;
79
	
80 86
	static {
81 87
		Abrir.wizardStack = new ArrayList();
82
		Abrir.addWizard(new WMSWizard());
88
		Abrir.addWizard(WMSWizard.class);
89
		Abrir.addWizard(JDBCWizard.class);
83 90
	}
84 91
	
85
	public static void addWizard(WizardPanel wp) {
92
	public static void addWizard(Class wpClass) {
93
		Abrir.wizardStack.add(wpClass);
94
	}
95
	
96
	public static WizardPanel getInstance(int i) throws IllegalArgumentException, SecurityException, InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException {
97
		Class wpClass = (Class) Abrir.wizardStack.get(i);
98
		Class [] args = {};
99
		Object [] params = {};
100
		WizardPanel wp = (WizardPanel) wpClass.getConstructor(args).newInstance(params);
101

  
86 102
		wp.initWizard();
87
		Abrir.wizardStack.add(wp);
103
		
104
		return wp;
88 105
	}
89 106

  
90 107
	/**
......
106 123
	 */
107 124
	public void inicializar() {
108 125
	}
109

  
126
	
110 127
	/**
111 128
	 * @see com.iver.andami.plugins.Extension#execute(java.lang.String)
112 129
	 */
......
117 134
		FileOpenDialog fileDlg = new FileOpenDialog(new Class[] {
118 135
					VectorialFileDriver.class, RasterDriver.class
119 136
				});
120
		// LWS WMSWizard wms = new WMSWizard(); 
121
		// LWS wms.setDataSource(new WMSDataSourceAdapter()); 
137
		
138
		// LWS JDBCWizard dbWiz = new JDBCWizard();
122 139

  
123
		//        DataBaseOpenDialog dbop = new DataBaseOpenDialog();
124
		//        dbop.setClasses(new Class[] { DBDriver.class });
140
		// DataBaseOpenDialog dbop = new DataBaseOpenDialog();
141
		// dbop.setClasses(new Class[] { DBDriver.class });
125 142
		fopen.addTab("Fichero", fileDlg);
126
		// LWS fopen.addWizardTab("WMS", wms);
127 143
		for (int i=0; i<wizardStack.size(); i++) {
128
			WizardPanel wp = (WizardPanel) Abrir.wizardStack.get(i);
129
			fopen.addWizardTab(wp.getTabName(), wp);
144
			WizardPanel wp;
145
			try {
146
				wp = Abrir.getInstance(i);
147
				fopen.addWizardTab(wp.getTabName(), wp);			
148
			} catch (IllegalArgumentException e) {
149
				// TODO Auto-generated catch block
150
				e.printStackTrace();
151
			} catch (SecurityException e) {
152
				// TODO Auto-generated catch block
153
				e.printStackTrace();
154
			} catch (InstantiationException e) {
155
				// TODO Auto-generated catch block
156
				e.printStackTrace();
157
			} catch (IllegalAccessException e) {
158
				// TODO Auto-generated catch block
159
				e.printStackTrace();
160
			} catch (InvocationTargetException e) {
161
				// TODO Auto-generated catch block
162
				e.printStackTrace();
163
			} catch (NoSuchMethodException e) {
164
				// TODO Auto-generated catch block
165
				e.printStackTrace();
166
			}
130 167
		}
131
		
132
		// <Jaume>
133
		// Aqu? es donde se deber?a poner el c?digo si queremos ponerlo de manera integrada
134
//		 LWS  WCSWizard wcs = new WCSWizard();
135
//		 LWS  wcs.setDataSource(new WCSDataSourceAdapter()); 
136
//		 LWS  fopen.addWizardTab("WCS", wcs);
137
		// </Jaume>
168
		// LWS fopen.addWizardTab("WMS", wms);
169
		// LWS fopen.addWizardTab("JDBC", dbWiz);
170

  
138 171
		//        fopen.addTab("Base de datos", dbop);
139 172
		PluginServices.getMDIManager().addView(fopen);
140 173

  
......
221 254
				}
222 255
				theView.getMapControl().getMapContext()
223 256
				   .endAtomicEvent();
224

  
225 257
			} else if (fopen.getSelectedTab() instanceof WizardPanel) {
226 258
				WizardPanel wp = (WizardPanel) fopen.getSelectedTab();
227
				
259

  
228 260
				wp.execute();
229 261
				lyr = wp.getLayer();
230
				
262

  
231 263
				if (lyr != null) {
232 264
					lyr.setVisible(true);
233 265
					theView.getMapControl().getMapContext().beginAtomicEvent();
......
235 267
						   .addLayer(lyr);
236 268
					theView.getMapControl().getMapContext().endAtomicEvent();
237 269
				}
238
			}/* else if (fopen.getSelectedTab() == wms) {
270
			/*} else if (fopen.getSelectedTab() == wms) {
239 271
				String layerName = wms.getLayerName();
240 272

  
241 273
				lyr = LayerFactory.createLayer(layerName,
......
250 282
						   .addLayer(lyr);
251 283
					theView.getMapControl().getMapContext().endAtomicEvent();
252 284
				}
253
			} // for*/
285
			*//*} else if (fopen.getSelectedTab() == dbWiz) {
286
				String layerName = dbWiz.getLayerName();
287
				String user = dbWiz.getUser();
288
				String pwd = dbWiz.getPassword();
289
				String dbUrl = dbWiz.getUrlConnect();
290
				String fields = dbWiz.getSqlFields();
291
				String whereClause = dbWiz.getSqlWhere();
292
				
293
				try {
294
                    
295
                    // TODO: ?C?mo se hace esto para que sea gen?rico?.
296
                    // Supongo que el wizard te tiene que decir qu? driver
297
                    // quieres usar....
298
				    Class.forName("org.postgresql.Driver");
299
                    Connection conn = DriverManager.getConnection(dbUrl, user, pwd);
300
                    conn.setAutoCommit(false);
301

  
302
                    VectorialDatabaseDriver driver = new PostGisDriver();
303
                    driver.setData(conn, layerName, fields, whereClause);
304
                    lyr = LayerFactory.createDBLayer(driver, layerName, null);
305
                    
306
    				if (lyr != null) {
307
    					lyr.setVisible(true);
308
    					theView.getMapControl().getMapContext().beginAtomicEvent();
309
    					theView.getMapControl().getMapContext().getLayers()
310
    						   .addLayer(lyr);
311
    					theView.getMapControl().getMapContext().endAtomicEvent();
312
    				}
313
                    
314
                } catch (SQLException e) {
315
                    // TODO Auto-generated catch block
316
                    e.printStackTrace();
317
                } catch (ClassNotFoundException e) {
318
                    // TODO Auto-generated catch block
319
                    e.printStackTrace();
320
                }
321

  
322
			*/} // for
254 323
		}
255 324
	}
256 325

  

Also available in: Unified diff