package com.venky.swf.plugins.collab.extensions.participation; import java.util.List; import com.venky.swf.db.Database; import com.venky.swf.db.model.User; import com.venky.swf.plugins.collab.db.model.config.City; import com.venky.swf.plugins.collab.db.model.config.Country; import com.venky.swf.plugins.collab.db.model.config.State; import com.venky.swf.plugins.collab.db.model.participants.admin.Facility; import com.venky.swf.pm.DataSecurityFilter; public class FacilityParticipantExtension extends CompanySpecificParticipantExtension<Facility>{ static { registerExtension(new FacilityParticipantExtension()); } @Override protected List<Integer> getAllowedFieldValues(User user, Facility partiallyFilledModel, String fieldName) { if (fieldName.equals("COUNTRY_ID")){ return DataSecurityFilter.getIds(DataSecurityFilter.getRecordsAccessible(Country.class, user)); }else if (fieldName.equals("STATE_ID")){ if (!Database.getJdbcTypeHelper(getReflector().getPool()).isVoid(partiallyFilledModel.getCountryId())){ return DataSecurityFilter.getIds(partiallyFilledModel.getCountry().getStates()); }else { return DataSecurityFilter.getIds(DataSecurityFilter.getRecordsAccessible(State.class, user)); } }else if (fieldName.equals("CITY_ID")){ if (!Database.getJdbcTypeHelper(getReflector().getPool()).isVoid(partiallyFilledModel.getStateId())){ return DataSecurityFilter.getIds(partiallyFilledModel.getState().getCities()); }else { return DataSecurityFilter.getIds(DataSecurityFilter.getRecordsAccessible(City.class, user)); } } return super.getAllowedFieldValues(user, partiallyFilledModel, fieldName); } }