/* (c) 2014 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.raster; 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.apache.wicket.model.ResourceModel; import org.geoserver.web.data.store.StoreEditPanel; import org.geoserver.web.data.store.panel.DirectoryParamPanel; import org.geoserver.web.data.store.panel.FileParamPanel; import org.geoserver.web.wicket.FileExistsValidator; import org.geoserver.web.wicket.browser.ExtensionFileFilter; import org.geotools.util.logging.Logging; /** * Abstract edit component for file based rasters * * @author Andrea Aime - GeoSolution * */ @SuppressWarnings("serial") public abstract class AbstractRasterFileEditPanel extends StoreEditPanel { private static final Logger LOGGER = Logging.getLogger(AbstractRasterFileEditPanel.class); public AbstractRasterFileEditPanel(final String componentId, final Form storeEditForm, String... fileExtensions) { this(componentId, storeEditForm, false, fileExtensions); } public AbstractRasterFileEditPanel(final String componentId, final Form storeEditForm, boolean useDirectoryChooser, String... fileExtensions) { super(componentId, storeEditForm); final IModel model = storeEditForm.getModel(); setDefaultModel(model); final IModel paramsModel = new PropertyModel(model, "connectionParameters"); FileParamPanel file; if (useDirectoryChooser) { file = new DirectoryParamPanel("url", new PropertyModel(model, "URL"), new ResourceModel("url", "URL"), true); } else { file = new FileParamPanel("url", new PropertyModel(model, "URL"), new ResourceModel("url", "URL"), true); } file.getFormComponent().add(new FileExistsValidator()); if (fileExtensions != null && fileExtensions.length > 0) { file.setFileFilter(new Model(new ExtensionFileFilter(fileExtensions))); } add(file); } }