/* (c) 2014 - 2015 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.wcs2_0.eo.web; import java.io.IOException; import org.apache.wicket.markup.html.form.CheckBox; import org.apache.wicket.model.IModel; import org.apache.wicket.model.PropertyModel; import org.geoserver.catalog.CoverageInfo; import org.geoserver.catalog.LayerInfo; import org.geoserver.catalog.MetadataMap; import org.geoserver.wcs2_0.eo.WCSEOMetadata; import org.geoserver.web.publish.PublishedConfigurationPanel; import org.geoserver.web.util.MapModel; import org.geotools.coverage.grid.io.StructuredGridCoverage2DReader; /** * A configuration panel for CoverageInfo properties that related to WCS publication */ public class WCSEOLayerConfig extends PublishedConfigurationPanel<LayerInfo> { private static final long serialVersionUID = 5069332181659419455L; public WCSEOLayerConfig(String id, IModel<LayerInfo> model) { super(id, model); // this panel is visible only if the reader is a structured grid coverage one setVisible(isStructuredCoverage(model)); // add the checkbox to enable exposing a layer as a dataset MapModel datasetModel = new MapModel(new PropertyModel<MetadataMap>(model, "resource.metadata"), WCSEOMetadata.DATASET.key); CheckBox dataset = new CheckBox("dataset", datasetModel); add(dataset); } private boolean isStructuredCoverage(IModel<LayerInfo> model) { try { CoverageInfo ci = (CoverageInfo) model.getObject().getResource(); boolean result = ci.getGridCoverageReader(null, null) instanceof StructuredGridCoverage2DReader; return result; } catch(IOException e) { throw new RuntimeException("Faied to load reader to determine if it's WCS EO Dataset worthy", e); } } }