/* (c) 2016 Open Source Geospatial Foundation - all rights reserved
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.gwc.web.blob;
import org.apache.commons.io.filefilter.DirectoryFileFilter;
import org.apache.wicket.AttributeModifier;
import org.apache.wicket.markup.html.form.CheckBox;
import org.apache.wicket.markup.html.form.TextField;
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.panel.DirectoryParamPanel;
import org.geoserver.web.wicket.ParamResourceModel;
import org.geowebcache.sqlite.MbtilesConfiguration;
/**
* Panel that contains the properties required to configure a MBTiles blob store.
*/
public class MbtilesBlobStorePanel extends SqliteBlobStorePanel<MbtilesConfiguration> {
public MbtilesBlobStorePanel(String id, IModel<MbtilesConfiguration> configurationModel) {
super(id, configurationModel);
}
@Override
protected void onInitialize() {
super.onInitialize();
// the directory that may contain user provided mbtiles metadata
DirectoryParamPanel directoryPanel = new DirectoryParamPanel("mbtilesMetadataDirectory", new PropertyModel<>(
getDefaultModel().getObject(), "mbtilesMetadataDirectory"), new ParamResourceModel("mbtilesMetadataDirectory",this), false);
add(directoryPanel);
directoryPanel.getFormComponent().setModel(new PropertyModel<>(getDefaultModel().getObject(), "mbtilesMetadataDirectory"));
directoryPanel.setFileFilter(new Model<>((DirectoryFileFilter) DirectoryFileFilter.INSTANCE));
// controls the store executor concurrency (this is used to parallelize some operations)
add(new TextField<Integer>("executorConcurrency").setRequired(true).
add(new AttributeModifier("executorConcurrency", new ResourceModel("executorConcurrency"))));
}
}