01: package com.vividsolutions.jump.workbench.ui.plugin.datastore;
02:
03: import com.vividsolutions.jump.I18N;
04: import com.vividsolutions.jump.coordsys.CoordinateSystemRegistry;
05: import com.vividsolutions.jump.io.datasource.DataSourceQuery;
06: import com.vividsolutions.jump.task.DummyTaskMonitor;
07: import com.vividsolutions.jump.task.TaskMonitor;
08: import com.vividsolutions.jump.workbench.model.Layer;
09: import com.vividsolutions.jump.workbench.model.Layerable;
10: import com.vividsolutions.jump.workbench.plugin.PlugInContext;
11: import com.vividsolutions.jump.workbench.ui.plugin.AddNewLayerPlugIn;
12: import com.vividsolutions.jump.workbench.ui.plugin.OpenProjectPlugIn;
13:
14: public class AddDatastoreLayerPlugIn extends
15: AbstractAddDatastoreLayerPlugIn {
16:
17: public boolean execute(final PlugInContext context)
18: throws Exception {
19: ((AddDatastoreLayerPanel) panel(context)).setCaching(true);
20: return super .execute(context);
21: }
22:
23: public String getName() {
24: return I18N
25: .get("jump.workbench.ui.plugin.datastore.AddDatastoreLayerPlugIn.Add-Datastore-Layer");
26: }
27:
28: private Layer createLayer(final AddDatastoreLayerPanel panel,
29: final PlugInContext context) throws Exception {
30:
31: Layer layer = new Layer(panel.getDatasetName(), context
32: .getLayerManager().generateLayerFillColor(),
33: AddNewLayerPlugIn.createBlankFeatureCollection(),
34: context.getLayerManager());
35:
36: DataStoreDataSource ds = new DataStoreDataSource(panel
37: .getDatasetName(), panel.getGeometryAttributeName(),
38: panel.getWhereClause(),
39: panel.getConnectionDescriptor(), panel.isCaching(),
40: context.getWorkbenchContext());
41:
42: DataSourceQuery dsq = new DataSourceQuery(ds, null, panel
43: .getDatasetName());
44:
45: layer.setDataSourceQuery(dsq);
46:
47: OpenProjectPlugIn.load(layer,
48: CoordinateSystemRegistry.instance(context
49: .getWorkbenchContext().getBlackboard()),
50: new DummyTaskMonitor());
51: return layer;
52: }
53:
54: protected ConnectionPanel createPanel(PlugInContext context) {
55: return new AddDatastoreLayerPanel(context.getWorkbenchContext());
56: }
57:
58: protected Layerable createLayerable(ConnectionPanel panel,
59: TaskMonitor monitor, PlugInContext context)
60: throws Exception {
61: monitor
62: .report(I18N
63: .get("jump.workbench.ui.plugin.datastore.AddDatastoreLayerPlugIn.Creating-layer"));
64: return createLayer((AddDatastoreLayerPanel) panel, context);
65: }
66:
67: }
|