diff options
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/LdapFilterConfigurator.java')
-rwxr-xr-x | dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/LdapFilterConfigurator.java | 29 |
1 files changed, 5 insertions, 24 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/LdapFilterConfigurator.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/LdapFilterConfigurator.java index 1f359305..6ebd180f 100755 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/LdapFilterConfigurator.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/LdapFilterConfigurator.java @@ -157,36 +157,17 @@ public class LdapFilterConfigurator extends LdapFilterConfiguratorLayout { return ret; } - public boolean setState(List<LdapFilter> data) { + public boolean setState(List<LdapFilter> data, List<Integer> predefSelected) { if (data == null) return false; ArrayList<LdapFilter> filterList = new ArrayList<>(data); + Set<LdapFilter> checked = new HashSet<LdapFilter>(); List<LdapFilter> predef = MetaDataCache.getPredefinedLdapFilters(); - Set<LdapFilter> checked = new HashSet<>(); - for (LdapFilter item : data) { - if (item.filterId == 0) - continue; - // Item has a filterId (is predefined), so validate it's in there - // before marking it checked, or just uncheck it by removing the id - // so it becomes a custom entry. - boolean ok = false; - for (LdapFilter pd : predef) { - if (pd.filterId == item.filterId) { - checked.add(pd); - ok = true; - break; - } - } - // If it wasn't preselected, add to list now... - if (!ok) { - item.filterId = 0; - } - } // Now add remaining filters for (LdapFilter pd : predef) { - if (!checked.contains(pd)) { - filterList.add(pd); - LOGGER.info("Adding " + pd.filterId); + filterList.add(pd); + if (predefSelected != null && predefSelected.contains(pd.filterId)) { + checked.add(pd); } } tblFilters.setData(filterList, checked, false); |