/* (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.backuprestore.web;
import java.util.Date;
import org.apache.wicket.Component;
import org.apache.wicket.markup.html.basic.Label;
import org.apache.wicket.model.IModel;
import org.apache.wicket.request.mapper.parameter.PageParameters;
import org.geoserver.backuprestore.AbstractExecutionAdapter;
import org.geoserver.platform.resource.Resource;
import org.geoserver.web.wicket.GeoServerDataProvider;
import org.geoserver.web.wicket.GeoServerDataProvider.Property;
import org.geoserver.web.wicket.GeoServerTablePanel;
import org.geoserver.web.wicket.SimpleBookmarkableLink;
import org.ocpsoft.pretty.time.PrettyTime;
/**
* @author Alessio Fabiani, GeoSolutions
*
*/
public class BackupRestoreExecutionsTable<T extends AbstractExecutionAdapter> extends GeoServerTablePanel<T> {
static PrettyTime PRETTY_TIME = new PrettyTime();
private Class<T> clazz;
public BackupRestoreExecutionsTable(String id, BackupRestoreExecutionsProvider dataProvider, Class<T> clazz) {
super(id, (GeoServerDataProvider<T>) dataProvider);
this.clazz = clazz;
}
public BackupRestoreExecutionsTable(String id, BackupRestoreExecutionsProvider dataProvider, boolean selectable, Class<T> clazz) {
super(id, (GeoServerDataProvider<T>) dataProvider, selectable);
this.clazz = clazz;
}
public Class<T> getType() {
return this.clazz;
}
@Override
protected Component getComponentForProperty(String id, IModel itemModel, Property property) {
if (BackupRestoreExecutionsProvider.ID == property) {
PageParameters pp = new PageParameters();
pp.add("id", property.getModel(itemModel).getObject());
pp.add("clazz", getType().getSimpleName());
return new SimpleBookmarkableLink(id, BackupRestorePage.class, property.getModel(itemModel), pp);
}
else if (BackupRestoreExecutionsProvider.STARTED == property) {
Date date = (Date) property.getModel(itemModel).getObject();
String pretty = PRETTY_TIME.format(date);
return new Label(id, pretty);
}
else if (BackupRestoreExecutionsProvider.STARTED == property) {
Date date = (Date) property.getModel(itemModel).getObject();
String pretty = PRETTY_TIME.format(date);
return new Label(id, pretty);
}
else if (BackupRestoreExecutionsProvider.ARCHIVEFILE == property) {
String pretty = ((Resource) property.getModel(itemModel).getObject()).name();
return new Label(id, pretty);
}
return new Label(id, property.getModel(itemModel));
}
}