package nl.amis.jsf.model;
import java.util.ArrayList;
import java.util.List;
import oracle.adf.view.rich.model.ColumnDescriptor;
import oracle.adf.view.rich.model.TableModel;
import org.apache.myfaces.trinidad.model.CollectionModel;
public abstract class EntityTableModel extends TableModel {
private Class entityClass;
private CollectionModel collectionModel;
private List<ColumnDescriptor> columnDescriptors = new ArrayList<ColumnDescriptor>();
public EntityTableModel(Class entityClass) {
super();
this.entityClass = entityClass;
}
public CollectionModel getCollectionModel() {
if (null == collectionModel) {
collectionModel = new EntityCollectionModel(entityClass) {
public List getFilteredList() {
return EntityTableModel.this.getFilteredList();
}
public boolean isJpqlChanged() {
return EntityTableModel.this.isJpqlChanged();
}
};
}
return collectionModel;
}
public List<ColumnDescriptor> getColumnDescriptors() {
return columnDescriptors;
}
void addColumDescriptor(ColumnDescriptor descriptor) {
columnDescriptors.add(descriptor);
}
int getTotalWidth() {
int result = 10;
for (ColumnDescriptor descriptor : columnDescriptors) {
result += descriptor.getWidth();
}
return result;
}
public abstract List getFilteredList();
public abstract boolean isJpqlChanged();
}