package com.vividsolutions.jump.workbench.ui.plugin.datastore; import com.vividsolutions.jump.I18N; import com.vividsolutions.jump.coordsys.CoordinateSystemRegistry; import com.vividsolutions.jump.io.datasource.DataSourceQuery; import com.vividsolutions.jump.task.DummyTaskMonitor; import com.vividsolutions.jump.task.TaskMonitor; import com.vividsolutions.jump.workbench.model.Layer; import com.vividsolutions.jump.workbench.model.Layerable; import com.vividsolutions.jump.workbench.plugin.PlugInContext; import com.vividsolutions.jump.workbench.ui.images.IconLoader; import com.vividsolutions.jump.workbench.ui.plugin.AddNewLayerPlugIn; import com.vividsolutions.jump.workbench.ui.plugin.OpenProjectPlugIn; import javax.swing.ImageIcon; public class AddDatastoreLayerPlugIn extends AbstractAddDatastoreLayerPlugIn { public static final ImageIcon ICON = IconLoader.icon("database_add.png"); public boolean execute(final PlugInContext context) throws Exception { ((AddDatastoreLayerPanel) panel(context)).setCaching(true); return super.execute(context); } public String getName(){ return I18N.get("jump.workbench.ui.plugin.datastore.AddDatastoreLayerPlugIn.Add-Datastore-Layer"); } private Layer createLayer( final AddDatastoreLayerPanel panel, final PlugInContext context) throws Exception { Layer layer = new Layer( panel.getDatasetName(), context.getLayerManager().generateLayerFillColor(), AddNewLayerPlugIn.createBlankFeatureCollection(), context.getLayerManager()); DataStoreDataSource ds = new DataStoreDataSource( panel.getDatasetName(), panel.getGeometryAttributeName(), panel.getWhereClause(), panel.getConnectionDescriptor(), panel.isCaching(), context.getWorkbenchContext()); DataSourceQuery dsq = new DataSourceQuery(ds, null, panel.getDatasetName()); layer.setDataSourceQuery(dsq); context.getLayerManager().setFiringEvents(false); // added by michaudm on 2009-04-23 OpenProjectPlugIn.load( layer, CoordinateSystemRegistry.instance(context.getWorkbenchContext().getBlackboard()), new DummyTaskMonitor()); context.getLayerManager().setFiringEvents(true); // added by michaudm on 2009-04-23 return layer; } protected ConnectionPanel createPanel(PlugInContext context) { return new AddDatastoreLayerPanel(context.getWorkbenchContext()); } protected Layerable createLayerable(ConnectionPanel panel, TaskMonitor monitor, PlugInContext context) throws Exception { monitor.report(I18N.get("jump.workbench.ui.plugin.datastore.AddDatastoreLayerPlugIn.Creating-layer")); return createLayer((AddDatastoreLayerPanel) panel, context); } }