/* (c) 2014 - 2016 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;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxRequestTarget;
import org.apache.wicket.markup.html.link.BookmarkablePageLink;
import org.apache.wicket.markup.html.panel.Fragment;
import org.geoserver.web.ComponentAuthorizer;
import org.geoserver.web.GeoServerSecuredPage;
import org.geoserver.web.data.SelectionRemovalLink;
import org.geoserver.web.wicket.GeoServerDialog;
/**
* Page listing all the available stores. Follows the usual filter/sort/page approach, provides ways
* to bulk delete stores and to add new ones
*
* @see StorePanel
*/
@SuppressWarnings("serial")
public class StorePage extends GeoServerSecuredPage {
StoreProvider provider = new StoreProvider();
StorePanel table;
SelectionRemovalLink removal;
GeoServerDialog dialog;
public StorePage() {
// the table, and wire up selection change
table = new StorePanel("table", provider, true) {
@Override
protected void onSelectionUpdate(AjaxRequestTarget target) {
removal.setEnabled(table.getSelection().size() > 0);
target.add(removal);
}
};
table.setOutputMarkupId(true);
add(table);
// the confirm dialog
add(dialog = new GeoServerDialog("dialog"));
setHeaderPanel(headerPanel());
}
protected Component headerPanel() {
Fragment header = new Fragment(HEADER_PANEL, "header", this);
// the add button
header.add(new BookmarkablePageLink("addNew", NewDataPage.class));
// the removal button
header.add(removal = new SelectionRemovalLink("removeSelected", table, dialog));
removal.setOutputMarkupId(true);
removal.setEnabled(false);
return header;
}
@Override
protected ComponentAuthorizer getPageAuthorizer() {
return ComponentAuthorizer.WORKSPACE_ADMIN;
}
}