hiding classes from index for NIHVIVO-642

This commit is contained in:
bjl23 2010-07-14 17:22:24 +00:00
parent f5e9df1a08
commit 68533c7bd3

View file

@ -9,6 +9,7 @@ import com.hp.hpl.jena.vocabulary.RDF;
import edu.cornell.mannlib.vitro.webapp.beans.ApplicationBean; import edu.cornell.mannlib.vitro.webapp.beans.ApplicationBean;
import edu.cornell.mannlib.vitro.webapp.beans.Portal; import edu.cornell.mannlib.vitro.webapp.beans.Portal;
import edu.cornell.mannlib.vitro.webapp.beans.VClass;
import edu.cornell.mannlib.vitro.webapp.beans.VClassGroup; import edu.cornell.mannlib.vitro.webapp.beans.VClassGroup;
import edu.cornell.mannlib.vitro.webapp.beans.BaseResourceBean.RoleLevel; import edu.cornell.mannlib.vitro.webapp.beans.BaseResourceBean.RoleLevel;
import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest; import edu.cornell.mannlib.vitro.webapp.controller.VitroRequest;
@ -19,6 +20,8 @@ import edu.cornell.mannlib.vitro.webapp.dao.filtering.WebappDaoFactoryFiltering;
import edu.cornell.mannlib.vitro.webapp.dao.filtering.filters.VitroFilterUtils; import edu.cornell.mannlib.vitro.webapp.dao.filtering.filters.VitroFilterUtils;
import edu.cornell.mannlib.vitro.webapp.dao.filtering.filters.VitroFilters; import edu.cornell.mannlib.vitro.webapp.dao.filtering.filters.VitroFilters;
import edu.cornell.mannlib.vitro.webapp.flags.PortalFlag; import edu.cornell.mannlib.vitro.webapp.flags.PortalFlag;
import edu.cornell.mannlib.vitro.webapp.search.beans.ProhibitedFromSearch;
import edu.cornell.mannlib.vitro.webapp.web.DisplayVocabulary;
import edu.cornell.mannlib.vitro.webapp.web.templatemodels.VClassGroupTemplateModel; import edu.cornell.mannlib.vitro.webapp.web.templatemodels.VClassGroupTemplateModel;
import freemarker.template.Configuration; import freemarker.template.Configuration;
import freemarker.template.SimpleSequence; import freemarker.template.SimpleSequence;
@ -53,6 +56,7 @@ public class BrowseController extends FreeMarkerHttpServlet {
OntModel baseModel = (OntModel)sContext.getAttribute("baseOntModel"); OntModel baseModel = (OntModel)sContext.getAttribute("baseOntModel");
OntModel infModel = (OntModel)sContext.getAttribute("inferenceOntModel"); OntModel infModel = (OntModel)sContext.getAttribute("inferenceOntModel");
BrowseControllerChangeListener bccl = new BrowseControllerChangeListener(this); BrowseControllerChangeListener bccl = new BrowseControllerChangeListener(this);
model.register(bccl); model.register(bccl);
baseModel.register(bccl); baseModel.register(bccl);
@ -117,6 +121,8 @@ public class BrowseController extends FreeMarkerHttpServlet {
//removeUnpopulatedClasses( groups); //removeUnpopulatedClasses( groups);
vcgDao.removeUnpopulatedGroups(groups); vcgDao.removeUnpopulatedGroups(groups);
removeClassesHiddenFromSearch(groups);
_groupListMap.put(portalId, groups); _groupListMap.put(portalId, groups);
return groups; return groups;
} else { } else {
@ -124,6 +130,24 @@ public class BrowseController extends FreeMarkerHttpServlet {
} }
} }
private void removeClassesHiddenFromSearch(List<VClassGroup> groups) {
OntModel displayOntModel =
(OntModel) getServletConfig().getServletContext()
.getAttribute("displayOntModel");
ProhibitedFromSearch pfs = new ProhibitedFromSearch(
DisplayVocabulary.PRIMARY_LUCENE_INDEX_URI, displayOntModel);
for (VClassGroup group : groups) {
List<VClass> classList = new ArrayList<VClass>();
for (VClass vclass : group.getVitroClassList()) {
if (!pfs.isClassProhibited(vclass.getURI())) {
classList.add(vclass);
}
}
group.setVitroClassList(classList);
}
}
private static boolean ORDER_BY_DISPLAYRANK = true; private static boolean ORDER_BY_DISPLAYRANK = true;
private static boolean INCLUDE_UNINSTANTIATED = true; private static boolean INCLUDE_UNINSTANTIATED = true;