Revision 884

View differences:

org.gvsig.raster.postgis/trunk/org.gvsig.raster.postgis/org.gvsig.raster.postgis.app/org.gvsig.raster.postgis.app.postgisrasterclient/package.info
1
#
2
#Fri Dec 16 13:21:28 CET 2011
3
state=devel
4
name=PostGIS raster main plugin for gvSIG
5
buildNumber=0
6
official=true
7
owner=gvSIG Association
8
code=org.gvsig.raster.postgis.app.postgisrasterclient
9
operating-system=all
10
architecture=all
11
web-url=http\://www.gvsig.com
12
java-version=j1_5
13
gvSIG-version=2.0.0
14
sources-url=https\://forge.osor.eu/plugins/scmsvn/viewcvs.php/org.gvsig.raster.app/trunk/org.gvsig.raster.app?root\=gvsig-raster/org.gvsig.raster.postgis.app.postgisrasterclient
15
version=2.0.0-SNAPSHOT-0
16
dependencies=required\: org.gvsig.raster.tilecache -ge 2.0.0-0
17
type=plugin
18
description=PostGIS raster adapter for gvSIG
19
model-version=1.0.1
org.gvsig.raster.postgis/trunk/org.gvsig.raster.postgis/org.gvsig.raster.postgis.app/org.gvsig.raster.postgis.app.postgisrasterclient/src/main/resources/config.xml
1 1
<?xml version="1.0" encoding="ISO-8859-1"?>
2 2
<plugin-config>
3
	<depends plugin-name="com.iver.cit.gvsig"/>
4
	<libraries library-dir="."/>
3
	<depends plugin-name="org.gvsig.app"/>
4
	<depends plugin-name="org.gvsig.geodb"/>
5
	<libraries library-dir="./lib"/>
5 6
	<resourceBundle name="text"/>
6 7
	<extensions>
7 8
		<extension class-name="org.gvsig.raster.postgis.app.postgisrasterclient.PostGISRasterExtension"
org.gvsig.raster.postgis/trunk/org.gvsig.raster.postgis/org.gvsig.raster.postgis.app/org.gvsig.raster.postgis.app.postgisrasterclient/src/main/java/org/gvsig/raster/postgis/app/postgisrasterclient/gui/AddPostGISRasterLayerWizard.java
1
package org.gvsig.raster.postgis.app.postgisrasterclient.gui;
2

  
3
import java.awt.event.ActionEvent;
4
import java.awt.event.ActionListener;
5
import java.util.ArrayList;
6
import java.util.Iterator;
7
import java.util.List;
8
import java.util.Map;
9
import java.util.Map.Entry;
10

  
11
import javax.swing.JComboBox;
12
import javax.swing.JOptionPane;
13
import javax.swing.JPanel;
14

  
15
import org.apache.commons.collections.map.HashedMap;
16
import org.gvsig.andami.PluginServices;
17
import org.gvsig.andami.PluginsLocator;
18
import org.gvsig.andami.PluginsManager;
19
import org.gvsig.andami.messages.NotificationManager;
20
import org.gvsig.andami.ui.mdiManager.IWindow;
21
import org.gvsig.app.gui.WizardPanel;
22
import org.gvsig.app.project.documents.view.gui.AbstractViewPanel;
23
import org.gvsig.fmap.dal.DALLocator;
24
import org.gvsig.fmap.dal.DataManager;
25
import org.gvsig.fmap.dal.DataStoreParameters;
26
import org.gvsig.fmap.dal.exception.DataException;
27
import org.gvsig.fmap.dal.exception.InitializeException;
28
import org.gvsig.fmap.dal.exception.ValidateDataParametersException;
29
import org.gvsig.fmap.dal.serverexplorer.db.DBServerExplorer;
30
import org.gvsig.fmap.dal.serverexplorer.db.DBServerExplorerParameters;
31
import org.gvsig.fmap.dal.store.db.DBStoreParameters;
32
import org.gvsig.geodb.ExtDB_Spatial;
33
import org.gvsig.geodb.vectorialdb.wizard.MyExplorer;
34
import org.gvsig.geodb.vectorialdb.wizard.VectorialDBConnectionParamsDialog;
35
import org.gvsig.raster.postgis.swing.AddLayerUI;
36
import org.gvsig.raster.postgis.swing.PostGISRasterSwingLocator;
37
import org.gvsig.tools.dynobject.DynObject;
38
import org.slf4j.Logger;
39
import org.slf4j.LoggerFactory;
40

  
41
public class AddPostGISRasterLayerWizard extends WizardPanel implements ActionListener {
42
	private static final long           serialVersionUID      = 1L;
43
	private static final String         TAB_NAME              = "PostGIS Raster";
44
	private static Logger               logger                = LoggerFactory.getLogger(AddPostGISRasterLayerWizard.class.getName());
45
	private AbstractViewPanel           view                  = null;
46
	private AddLayerUI                  apiUI                 = null;
47
	private DBServerExplorerParameters  dbExplorerParameters  = null;
48
	
49
	public AddPostGISRasterLayerWizard() {
50
		super();
51
		initialize();
52
	}
53

  
54
	/**
55
	 * This method initializes this
56
	 *
57
	 * @return void
58
	 */
59
	private void initialize() {
60
		setTabName(PluginServices.getText(this, TAB_NAME));
61
		setLayout(null);
62

  
63
		IWindow iw = PluginServices.getMDIManager().getActiveWindow();
64

  
65
		if (iw == null) {
66
			return;
67
		}
68

  
69
		if (!(iw instanceof AbstractViewPanel)) {
70
			return;
71
		}
72
		
73
		apiUI = PostGISRasterSwingLocator.getSwingManager().createAddLayerUI();
74
		apiUI.addListenerToBDSelectionCombo(this);
75
		apiUI.addListenerToNewDBButton(this);
76
		
77
		view = (AbstractViewPanel) iw;
78
		setMapCtrl(view.getMapControl());
79
		
80
		JPanel mainPanel = (JPanel)apiUI.getComponent();
81
		mainPanel.setBounds(new java.awt.Rectangle(0, 0, 501, 350));
82
		add(mainPanel, null);
83
		loadVectorialDBDatasourcesCombo(null);
84
	}
85
	
86
	/**
87
	 * Loads the ComboBox for listing connections
88
	 * @param sel
89
	 */
90
    @SuppressWarnings("unchecked")
91
	private void loadVectorialDBDatasourcesCombo(MyExplorer sel) {
92
    	JComboBox combo = apiUI.getDBCombo();
93
        PluginsManager manager = PluginsLocator.getManager();
94
        DynObject values = manager.getPlugin(ExtDB_Spatial.class).getPluginProperties();
95
        Map connections = (Map) values.getDynValue("db_connections");
96
        if (connections != null){
97
            Iterator it = connections.entrySet().iterator();
98
            combo.removeAllItems();
99
            combo.addItem("");
100
            while (it.hasNext()){
101
                Map.Entry entry = (Entry) it.next();
102
                MyExplorer myExplorer = new MyExplorer();
103
                myExplorer.setDbExplorerParameters((DBServerExplorerParameters) entry.getValue());
104
                myExplorer.setName((String) entry.getKey());
105
                combo.addItem(myExplorer);
106
                if(sel!=null && sel.getName().equalsIgnoreCase(myExplorer.getName())){
107
                	combo.setSelectedItem(myExplorer);
108
                }
109
            }
110
        } else {
111
            connections = new HashedMap();
112
            values.setDynValue("db_connections", connections);
113
        }
114
	}
115
    
116
    /*public Object executeWizard() {
117
		ArrayList<Object> tableList = apiUI.getSelectedTables();
118

  
119
		DataManager man = DALLocator.getDataManager();
120
		FeatureStore store;
121
		
122
		String docName;
123
		TableDocument document;
124
		Project project = ProjectManager.getInstance().getCurrentProject();
125

  
126
		ApplicationManager appGvSIGMan = ApplicationLocator.getManager();
127
		PrepareContext context = this.getPrepareDataStoreContext();
128
		DBStoreParameters storeParams;
129
        List<TableDocument> tabledocs =
130
            new ArrayList<TableDocument>(tables.length);
131
		for (TablesListItem table : tables) {
132
			storeParams = getParameterForTable(table);
133

  
134
			try {
135
				storeParams = (DBStoreParameters) appGvSIGMan
136
						.prepareOpenDataStoreParameters(storeParams, context);
137
			} catch (Exception e2) {
138
				NotificationManager.addError(e2);
139
				continue;
140
			}
141

  
142
			UserTableSettingsPanel userTableSettingsPanel = table
143
					.getUserTableSettingsPanel();
144

  
145
			docName = userTableSettingsPanel.getUserLayerName();
146
			try {
147
				store = (FeatureStore) man.openStore(storeParams.getDataStoreName(), storeParams);
148
			} catch (Exception e) {
149
				NotificationManager.addError(e);
150
                return null;
151
			}
152

  
153
			try {
154
				appGvSIGMan.pepareOpenDataSource(
155
						store, context);
156
			} catch (Exception e) {
157
				NotificationManager.addError(e);
158
				store.dispose();
159
                return null;
160
			}
161

  
162
			document = (TableDocument) ProjectManager.getInstance().createDocument(TableManager.TYPENAME, docName);
163
			document.setStore(store);
164
            // project.add(document);
165
            tabledocs.add(document);
166
		}
167
        return tabledocs;
168
	}
169
    
170
    protected PrepareContext getPrepareDataStoreContext() {
171
		if (this.prepareDSContext == null) {
172
			this.prepareDSContext = new PrepareContext() {
173
				public Window getOwnerWindow() {
174
					return null;
175
				}
176
				public IProjection getViewProjection() {
177
					return null;
178
				}
179
			};
180
		}
181
		return this.prepareDSContext;
182
	}
183
    
184
    protected DBStoreParameters getParameterForTable(TablesListItem table) {
185
		DBStoreParameters parameters = table.getParameters();
186

  
187
		UserTableSettingsPanel userTableSettingsPanel = table.getUserTableSettingsPanel();
188

  
189
		String fidField = userTableSettingsPanel.getIdFieldName();
190
		if (!(fidField.startsWith("{") && fidField.endsWith("}"))) {
191
			parameters.setPkFields(new String[] { fidField });
192
			fidField = null;
193
		}
194
		String[] fields = table.getUserSelectedFieldsPanel()
195
				.getUserSelectedFields(fidField, null);
196

  
197
		if (userTableSettingsPanel.isSqlActive()) {
198
			String whereClause = userTableSettingsPanel
199
					.getWhereClause();
200
			parameters.setBaseFilter(whereClause);
201
		} else {
202
			parameters.setBaseFilter("");
203
		}
204
		
205
		parameters.setFields(fields);
206
		return parameters;
207
	}*/
208
    
209
	@Override
210
	public void close() {
211
		
212
	}
213

  
214
	@Override
215
	public void execute() {
216
		executeWizard();
217
	}
218

  
219
	@Override
220
	public DataStoreParameters[] getParameters() {
221
		return null;
222
	}
223

  
224
	@Override
225
	public void initWizard() {
226
		
227
	}
228
	
229
	/**
230
	 * Updates the JList component with the list of tables of 
231
	 * the selected database.
232
	 * 
233
	 * @param dbSeverExplorerParameters2
234
	 */
235
	@SuppressWarnings("unchecked")
236
	private void updateTableList(
237
			DBServerExplorerParameters dbSeverExplorerParameters2) {
238
		if (dbSeverExplorerParameters2 == null) {
239
			return;
240
		}
241
		DataManager dm = DALLocator.getDataManager();
242
		DBServerExplorer dbExplorer = null;
243
		try {
244
			dbExplorer = (DBServerExplorer) dm.openServerExplorer(dbSeverExplorerParameters2.getExplorerName(), dbSeverExplorerParameters2);
245

  
246
			List parameters = dbExplorer.list();
247

  
248
			Iterator iter = parameters.iterator();
249
			DBStoreParameters param = null;
250
			apiUI.clearList();
251
			while (iter.hasNext()) {
252
				param = (DBStoreParameters) iter.next();
253
				apiUI.addElementToTable(new TableListItem(dbExplorer, param));
254
			}
255

  
256
		} catch (InitializeException e) {
257
			logger.error("While getting table names: " + e.getMessage(), e);
258
			NotificationManager.showMessageError("While getting table names: "
259
					+ e.getMessage(), e);
260
			return;
261
		} catch (DataException e) {
262
			logger.error("While getting table names: " + e.getMessage(), e);
263
			NotificationManager.showMessageError("While getting table names: "
264
					+ e.getMessage(), e);
265
			return;
266
		} catch (ValidateDataParametersException e) {
267
			logger.error("While getting table names: " + e.getMessage(), e);
268
			NotificationManager.showMessageError("While getting table names: "
269
					+ e.getMessage(), e);
270
			return;
271
		}
272
	}
273

  
274
	/*
275
	 * (non-Javadoc)
276
	 * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
277
	 */
278
	public void actionPerformed(ActionEvent e) {
279
		if (apiUI.isAddDBEventObject(e.getSource())) {
280
			MyExplorer sel = addNewConnection();
281

  
282
			if (sel != null) {
283
				dbExplorerParameters = sel.getDbSeverExplorerParameters();
284
				loadVectorialDBDatasourcesCombo(sel);
285
				apiUI.getDBCombo().setSelectedItem(sel);
286
			}
287
		}
288
		
289
		if(e.getSource() == apiUI.getDBCombo()) {
290
			JComboBox dbCombo = apiUI.getDBCombo();
291
			if(dbCombo.getItemCount() == 0) {
292
				apiUI.clearList();
293
			} else {
294
				Object selected = dbCombo.getSelectedItem();
295
				if(selected == null)
296
					return;
297
				if (selected instanceof MyExplorer) {
298
	                MyExplorer sel_obj = (MyExplorer) selected;
299
	                dbCombo.repaint();
300
	                dbExplorerParameters = sel_obj.getDbSeverExplorerParameters();
301
	                updateTableList(dbExplorerParameters);
302
	            }
303
			}
304
		}
305
	}
306
	
307
	/**
308
	 * Adds a new connection using the generic dialog. This function
309
	 * is used when the button add new connection is pressed by the user
310
	 * @return
311
	 */
312
	@SuppressWarnings("unchecked")
313
	private MyExplorer addNewConnection() {
314
		MyExplorer myExplorer = new MyExplorer();
315
		DBServerExplorerParameters resp = null;
316

  
317
		VectorialDBConnectionParamsDialog newco = new VectorialDBConnectionParamsDialog();
318
		newco.showDialog();
319

  
320
		if (newco.isOkPressed()) {
321
			try {
322
				resp = newco.getParameters();
323
			} catch (Exception e) {
324
				showConnectionErrorMessage(e.getMessage());
325
				return null;
326
			}
327
			PluginsManager manager = PluginsLocator.getManager();
328
            DynObject values = manager.getPlugin(ExtDB_Spatial.class).getPluginProperties();
329
            Map connections = (Map) values.getDynValue("db_connections");
330
            if(connections == null){
331
                connections = new HashedMap();
332
                values.setDynValue("db_connections", connections);
333
            }
334
            connections.put(newco.getConnectionName(), resp);
335
            
336
			myExplorer.setDbExplorerParameters(resp);
337
			myExplorer.setName(newco.getConnectionName());
338
			return myExplorer;
339
		} else {
340
			return null;
341
		}
342
	}
343
	
344
	/**
345
	 * Shows an error
346
	 * @param _msg
347
	 */
348
	private void showConnectionErrorMessage(String _msg) {
349
		String msg = (_msg.length() > 300) ? "" : (": " + _msg);
350
		String title = PluginServices.getText(this, "connection_error");
351
		JOptionPane.showMessageDialog(apiUI.getComponent(), title + msg, title,
352
				JOptionPane.ERROR_MESSAGE);
353
	}
354

  
355
}
0 356

  
org.gvsig.raster.postgis/trunk/org.gvsig.raster.postgis/org.gvsig.raster.postgis.app/org.gvsig.raster.postgis.app.postgisrasterclient/src/main/java/org/gvsig/raster/postgis/app/postgisrasterclient/gui/TableListItem.java
1
package org.gvsig.raster.postgis.app.postgisrasterclient.gui;
2

  
3
import org.gvsig.fmap.dal.serverexplorer.db.DBServerExplorer;
4
import org.gvsig.fmap.dal.store.db.DBStoreParameters;
5

  
6
/**
7
 * Represents an element in the list of tables. 
8
 *  
9
 * @author Nacho Brodin (nachobrodin@gmail.org)
10
 */
11
public class TableListItem {
12
	private DBStoreParameters       parameters    = null;
13
	private DBServerExplorer        explorer      = null;
14
	private String                  tableName     = "";
15

  
16
	public TableListItem(DBServerExplorer explorer,
17
			DBStoreParameters param) {
18
		tableName = param.getTable();
19
		this.parameters = param;
20
		this.explorer=explorer;
21
	}
22

  
23
	public String toString() {
24
		return tableName;
25
	}
26
}
0 27

  
org.gvsig.raster.postgis/trunk/org.gvsig.raster.postgis/org.gvsig.raster.postgis.app/org.gvsig.raster.postgis.app.postgisrasterclient/src/main/java/org/gvsig/raster/postgis/app/postgisrasterclient/PostGISRasterExtension.java
24 24
import org.gvsig.app.ApplicationLocator;
25 25
import org.gvsig.app.ApplicationManager;
26 26
import org.gvsig.app.extension.AddLayer;
27
import org.gvsig.raster.postgis.app.postgisrasterclient.gui.PostGISRasterWizard;
27
import org.gvsig.raster.postgis.app.postgisrasterclient.gui.AddPostGISRasterLayerWizard;
28 28

  
29 29
/**
30 30
 * Entry point for PostGISRaster extension
......
48 48
		super.postInitialize();
49 49
	    addAboutInfo();
50 50

  
51
		AddLayer.addWizard(PostGISRasterWizard.class);
51
		AddLayer.addWizard(AddPostGISRasterLayerWizard.class);
52 52
	}
53 53
	
54 54
	private void addAboutInfo() {
org.gvsig.raster.postgis/trunk/org.gvsig.raster.postgis/org.gvsig.raster.postgis.app/org.gvsig.raster.postgis.app.postgisrasterclient/pom.xml
5 5
    <modelVersion>4.0.0</modelVersion>
6 6
    <artifactId>org.gvsig.raster.postgis.app.postgisrasterclient</artifactId>
7 7
    <packaging>jar</packaging>
8
    <name>Format: PostGIS raster format support</name>
8
    <name>PostGIS raster main plugin for gvSIG</name>
9 9
    <version>2.0.0-SNAPSHOT</version>
10 10
	<description>PostGIS raster adapter for gvSIG</description>
11 11
    <parent>
......
14 14
		<version>2.0.0-SNAPSHOT</version>
15 15
	</parent>
16 16
    <dependencies>
17
        <dependency>
18
            <groupId>org.gvsig</groupId>
19
            <artifactId>org.gvsig.fmap.dal.db</artifactId>
20
            <scope>compile</scope>
21
        </dependency>
22
   		<dependency>
23
             <groupId>org.gvsig</groupId>
24
             <artifactId>org.gvsig.about.api</artifactId>
25
             <scope>compile</scope>
26
        </dependency>
17 27
	    <dependency>
18 28
            <groupId>org.gvsig</groupId>
19 29
            <artifactId>org.gvsig.raster.lib.api</artifactId>
20
            <version>2.0.0-SNAPSHOT</version>
21 30
            <scope>compile</scope>
22 31
        </dependency>
32
        <dependency>
33
            <groupId>org.gvsig</groupId>
34
            <artifactId>org.gvsig.raster.postgis.swing.api</artifactId>
35
            <version>1.0.0-SNAPSHOT</version>
36
            <scope>compile</scope>
37
        </dependency>
38
        <dependency>
39
            <groupId>org.gvsig</groupId>
40
            <artifactId>org.gvsig.raster.postgis.swing.impl</artifactId>
41
            <version>1.0.0-SNAPSHOT</version>
42
            <scope>runtime</scope>
43
        </dependency>
44
        <dependency>
45
            <groupId>org.gvsig</groupId>
46
            <artifactId>org.gvsig.raster.postgis.io</artifactId>
47
            <version>1.0.0-SNAPSHOT</version>
48
            <scope>runtime</scope>
49
        </dependency>
23 50
		 <dependency>
24 51
            <groupId>org.gvsig</groupId>
25 52
            <artifactId>org.gvsig.ui</artifactId>
org.gvsig.raster.postgis/trunk/org.gvsig.raster.postgis/org.gvsig.raster.postgis.app/org.gvsig.raster.postgis.app.postgisrasterclient/distribution/distribution.xml
18 18
			<includes>
19 19
				<include>org.gvsig:org.gvsig.raster.postgis.app.postgisrasterclient:jar</include>
20 20
				<include>org.gvsig:org.gvsig.raster.postgis.io:jar</include>
21
				<include>org.gvsig:org.gvsig.raster.postgis.swing.api:jar</include>
22
				<include>org.gvsig:org.gvsig.raster.postgis.swing.impl:jar</include>
21 23
			</includes>
22 24
		</dependencySet>
23 25
	</dependencySets>
24 26

  
org.gvsig.raster.postgis/trunk/org.gvsig.raster.postgis/org.gvsig.raster.postgis.app/pom.xml
40 40
            <url>scp://shell.forge.osor.eu/home/groups/gvsig-desktop/www/downloads/pub/projects/gvSIG-desktop/docs/reference/org.gvsig.raster.app/${pom.version}</url>
41 41
        </site>
42 42
    </distributionManagement>
43
    
43 44
    <repositories>
44 45
        <repository>
45 46
            <id>gvsig-public-http-repository</id>
......
68 69
            </plugin>
69 70
        </plugins>
70 71
    </build>
72
    
71 73
    <dependencyManagement>
72 74
        <dependencies>
73 75
            <dependency>
74 76

  
org.gvsig.raster.postgis/trunk/org.gvsig.raster.postgis/org.gvsig.raster.postgis.io/pom.xml
5 5
	<artifactId>org.gvsig.raster.postgis.io</artifactId>
6 6
	<packaging>jar</packaging>
7 7
	<name>org.gvsig.raster.postgis.io</name>
8
	<version>2.0.0-SNAPSHOT</version>
8
	<version>1.0.0-SNAPSHOT</version>
9 9
	<parent>
10 10
		<groupId>org.gvsig</groupId>
11 11
		<artifactId>gvsig-base-library-pom</artifactId>
12 12

  

Also available in: Unified diff