/* (c) 2014 - 2016 Open Source Geospatial Foundation - all rights reserved * (c) 2001 - 2013 OpenPlans * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.web.data.store.shape; import static org.geotools.data.shapefile.ShapefileDataStoreFactory.CACHE_MEMORY_MAPS; import static org.geotools.data.shapefile.ShapefileDataStoreFactory.CREATE_SPATIAL_INDEX; import static org.geotools.data.shapefile.ShapefileDataStoreFactory.DBFCHARSET; import static org.geotools.data.shapefile.ShapefileDataStoreFactory.MEMORY_MAPPED; import static org.geotools.data.shapefile.ShapefileDataStoreFactory.URLP; import java.util.logging.Logger; import org.apache.wicket.markup.html.form.Form; import org.apache.wicket.model.IModel; import org.apache.wicket.model.Model; import org.apache.wicket.model.PropertyModel; import org.geoserver.web.data.store.StoreEditPanel; import org.geoserver.web.data.store.panel.CharsetPanel; import org.geoserver.web.data.store.panel.CheckBoxParamPanel; import org.geoserver.web.data.store.panel.FileParamPanel; import org.geoserver.web.util.MapModel; import org.geoserver.web.wicket.FileExistsValidator; import org.geoserver.web.wicket.ParamResourceModel; import org.geoserver.web.wicket.browser.ExtensionFileFilter; import org.geotools.util.logging.Logging; /** * Provides the form components for the shapefile datastore * * @author Andrea Aime - GeoSolution * */ @SuppressWarnings("serial") public class ShapefileStoreEditPanel extends StoreEditPanel { private static final Logger LOGGER = Logging.getLogger(ShapefileStoreEditPanel.class); public ShapefileStoreEditPanel(final String componentId, final Form storeEditForm) { super(componentId, storeEditForm); final IModel model = storeEditForm.getModel(); setDefaultModel(model); final IModel paramsModel = new PropertyModel(model, "connectionParameters"); FileParamPanel file = buildFileParamPanel(paramsModel); add(file); add(new CharsetPanel("charset", new MapModel(paramsModel, DBFCHARSET.key), new ParamResourceModel("charset", this), false)); add(new CheckBoxParamPanel("memoryMapped", new MapModel(paramsModel, MEMORY_MAPPED.key), new ParamResourceModel("memoryMapped", this))); add(new CheckBoxParamPanel("cacheMemoryMaps", new MapModel(paramsModel, CACHE_MEMORY_MAPS.key), new ParamResourceModel("cacheMemoryMaps", this))); add(new CheckBoxParamPanel("spatialIndex", new MapModel(paramsModel, CREATE_SPATIAL_INDEX.key), new ParamResourceModel("spatialIndex", this))); } protected FileParamPanel buildFileParamPanel(final IModel paramsModel) { FileParamPanel file = new FileParamPanel("url", new MapModel(paramsModel, URLP.key), new ParamResourceModel("shapefile", this), true); file.setFileFilter(new Model(new ExtensionFileFilter(".shp"))); file.getFormComponent().add(new FileExistsValidator()); return file; } }