We will add View provider that will show Employees from Database
First create Group of columns for Employee
public class EmployeesGroup extends DBColumnsGroupReflexive{
/** Localization path */
public static final String locPath = "ui/lists/employees";
/** Id of group */
public static final String ID = EmployeesGroup.class.getSimpleName();
static LocPair<StringLocValue> LOC_PAIR = new LocPairImpl<StringLocValue>(locPath,ID);
/** DB mapping */
public static final SJoinable mapping = new STable(EMPDBSchema.NAME,DBTableEmployee.NAME);
/** Columns container for reflection */
public static class Columns extends DBTableEmployee.Columns{
}
}
Add provider that will show employees
public class EmployeesDBListViewProviderImpl extends AbstractRDBListViewProviderImpl {
/**
* Creates AllEmployeesDBListViewProviderImpl
* @param viewProviderParams
* @param listViewProviderParameter
*/
public EmployeesDBListViewProviderImpl(
ViewProviderParams viewProviderParams,
ViewProviderDBParams listViewProviderParameter) {
super(viewProviderParams, listViewProviderParameter);
}
@Override
protected String getLocPath() {
return EmployeesGroup.locPath;
}
private static class DepartmentsJoinGroup extends DepartmentsGroup{
static SJoinable mapping = new STable(
EMPDBSchema.NAME,DBTableDepartment.NAME,
SJoinType.INNER,EmployeesGroup.mapping.getAlias(),Columns.ID.name,EmployeesGroup.Columns.DEPARTMENT_ID.name);
@Override
protected void setupColumn(String groupId,LocPair<StringLocValue> locPair,ColumnInfo column) {
PrefixLocPairDelegate locPairDelegate = new PrefixLocPairDelegate(locPair," - ",column.getLocPair());
column.setLocPair(locPairDelegate);
}
}
@Override
protected GroupsListViewDef setupGroupsListViewDef() {
return new GroupsListViewDefContainerImpl(Arrays.asList(new EmployeesGroup(),new DepartmentsJoinGroup()));
}
@Override
protected Class<? extends AbstractEntityService> getMainBusinessServiceClass() {
return EmployeeService.class;
}
@Override
protected ViewProviderDef getMainDetailViewProviderDef() {
return new ViewProviderDef(ViewProviderKind.DetailViewProvider,EmployeeDetailImpl.class);
}
}