/* (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.wms.eo.web;
import java.util.List;
import org.apache.wicket.markup.html.form.DropDownChoice;
import org.geoserver.catalog.Catalog;
import org.geoserver.catalog.LayerGroupInfo;
import org.geoserver.catalog.LayerGroupInfo.Mode;
import org.geoserver.catalog.WorkspaceInfo;
import org.geoserver.web.wicket.ParamResourceModel;
/**
* Allows the user to create a new EO layer group
*
* @author Andrea Aime - GeoSolutions
*/
public class EoLayerGroupNewPage extends EoLayerGroupAbstractPage {
public EoLayerGroupNewPage() {
LayerGroupInfo lg = getCatalog().getFactory().createLayerGroup();
lg.setMode(Mode.EO);
initUI(lg);
}
@Override
protected void initUI(LayerGroupInfo layerGroup) {
super.initUI(layerGroup);
if (!isAuthenticatedAsAdmin()) {
// initialize the workspace drop down
DropDownChoice<WorkspaceInfo> wsChoice = (DropDownChoice<WorkspaceInfo>) get("form:workspace");
// default to first available workspace
List<WorkspaceInfo> ws = getCatalog().getWorkspaces();
if (!ws.isEmpty()) {
wsChoice.setModelObject(ws.get(0));
}
}
}
@Override
protected void onSubmit(LayerGroupInfo lg) {
// check the layer group does not exist yet
LayerGroupInfo preExisting;
String lgName = lg.getName();
if(lg.getWorkspace() != null) {
String wsName = lg.getWorkspace().getName();
preExisting = getCatalog().getLayerGroupByName(wsName, lgName);
if(preExisting != null) {
error(new ParamResourceModel("layerGroupAlreadyExistsInWorkspace", this, lgName, wsName).getString());
return;
}
} else {
preExisting = getCatalog().getLayerGroupByName(lgName);
if(preExisting != null) {
error(new ParamResourceModel("layerGroupAlreadyExists", this, lgName).getString());
return;
}
}
Catalog catalog = getCatalog();
catalog.add(lg);
lg = catalog.getLayerGroup(lg.getId());
doReturn();
}
}