/* (c) 2014 - 2016 Open Source Geospatial Foundation - all rights reserved * (c) 2014 OpenPlans * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.web.data.layer; import java.io.IOException; import java.util.List; import java.util.logging.Level; import org.geoserver.catalog.Catalog; import org.geoserver.catalog.CatalogBuilder; import org.geoserver.catalog.CoverageInfo; import org.geoserver.catalog.CoverageStoreInfo; import org.geoserver.catalog.CoverageView; import org.geoserver.catalog.CoverageView.CoverageBand; import org.geoserver.web.data.resource.ResourceConfigurationPage; import org.geoserver.web.wicket.ParamResourceModel; public class CoverageViewEditPage extends CoverageViewAbstractPage { /** serialVersionUID */ private static final long serialVersionUID = -3932025430605245513L; public CoverageViewEditPage(String workspaceName, String storeName, String coverageName, CoverageInfo coverageInfo, ResourceConfigurationPage previusPage) throws IOException { super(workspaceName, storeName, coverageName, coverageInfo); this.previousPage = previusPage; this.coverageInfo = coverageInfo; } private CoverageInfo coverageInfo; private ResourceConfigurationPage previousPage; protected void onSave() { try { final Catalog catalog = getCatalog(); final CatalogBuilder builder = new CatalogBuilder(catalog); final CoverageStoreInfo coverageStoreInfo = catalog.getCoverageStore(storeId); final CoverageView coverageView = buildCoverageView(); final List<CoverageBand> coverageBands = coverageView.getCoverageBands(); if (coverageBands == null || coverageBands.isEmpty()) { throw new IllegalArgumentException("No output bands have been specified "); } coverageView.updateCoverageInfo(name, coverageStoreInfo, builder, coverageInfo); // set it back in the main page and redirect to it previousPage.updateResource(coverageInfo); setResponsePage(previousPage); } catch (Exception e) { LOGGER.log(Level.SEVERE, "Failed to create feature type", e); error(new ParamResourceModel("creationFailure", this, getFirstErrorMessage(e)).getString()); } } protected void onCancel() { setResponsePage(previousPage); } }