/**
* Copyright (C) 2014 Premium Minds.
*
* This file is part of wicket-crudifier.
*
* wicket-crudifier is free software: you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation, either version 3 of the License, or (at your option) any
* later version.
*
* wicket-crudifier is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
* A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with wicket-crudifier. If not, see <http://www.gnu.org/licenses/>.
*/
package com.premiumminds.wicket.crudifier.table;
import java.io.Serializable;
import java.util.Map;
import org.apache.wicket.Component;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.PropertyModel;
import com.premiumminds.wicket.crudifier.IObjectRenderer;
import com.premiumminds.wicket.crudifier.LabelProperty;
public class PropertyColumn<T> implements IColumn<T>, Serializable {
private static final long serialVersionUID = -1539532027947493672L;
private String property;
private ColumnAlign align;
public PropertyColumn(String property){
this(property, ColumnAlign.LEFT);
}
public PropertyColumn(String property, ColumnAlign align){
this.property = property;
this.align = align;
}
public IModel<Object> getPropertyModel(T object) {
return new PropertyModel<Object>(object, property);
}
public ColumnAlign getAlign() {
return align;
}
public String getPropertyName() {
return property;
}
public Component createComponent(String id, T object, final Component resourceBase, Map<Class<?>, IObjectRenderer<?>> renderers) {
return new LabelProperty(id, new PropertyModel<T>(object, property), renderers) {
private static final long serialVersionUID = 8252695892385959442L;
@Override
protected String getResourceString(String key, String defaultValue) {
return getLocalizer().getStringIgnoreSettings(property+"."+key, resourceBase, null, defaultValue);
}
};
}
}