# HG changeset patch # User Robert Casties # Date 1527861878 -7200 # Node ID 50b8103ec85c665cfca58b6f1b67766517fb79f3 # Parent 8604b368ec198f25d0ec2538bdf039363a5c030d still more work on publicByAuthor feature. diff -r 8604b368ec19 -r 50b8103ec85c src/main/java/de/mpiwg/itgroup/ismi/merge/PublicByAuthorBean.java --- a/src/main/java/de/mpiwg/itgroup/ismi/merge/PublicByAuthorBean.java Thu May 31 21:25:45 2018 +0200 +++ b/src/main/java/de/mpiwg/itgroup/ismi/merge/PublicByAuthorBean.java Fri Jun 01 16:04:38 2018 +0200 @@ -29,7 +29,9 @@ protected List selectedPersonTexts; protected List selectedPersonSubjects; protected Map> selectedPersonSubjectMap; - + + protected Map> subjectParents; + private EntityRepositoryBean browseBean; @@ -42,13 +44,49 @@ public void reset(){ //logger.info("AdvancedSearchBean.reset()"); browseBean = new FullEntityRepositoryBean(); - browseBean.setObjectClass("PERSON"); + browseBean.setObjectClass(PERSON); selectedPersonTexts = new ArrayList(); selectedPersonSubjectMap = new HashMap>(); + makeSubjectTree(); } - public void listenerAuthorIdSearch(ActionEvent event) { + protected void makeSubjectTree() { + subjectParents = new HashMap>(); + List subjects = getWrapper().getEntitiesByDef(SUBJECT); + for (Entity subject : subjects) { + if (subject.isLightweight()) { + subject = getWrapper().getEntityContent(subject); + } + ArrayList parents = new ArrayList(); + Entity parent = subject; + int cnt = 0; + do { + if (parent.isLightweight()) { + parent = getWrapper().getEntityContent(parent); + } + List parRels = parent.getSourceRelations(is_part_of, SUBJECT); + if (!parRels.isEmpty()) { + Long parentId = parRels.get(0).getTargetId(); + parent = getWrapper().getEntityById(parentId); + parents.add(parent.getOwnValue()); + } else { + break; + } + } while (++cnt < 5); + subjectParents.put(subject.getOwnValue(), parents); + } + } + + + /** + * @return the subjectParents + */ + public Map> getSubjectParents() { + return subjectParents; + } + + public void listenerAuthorIdSearch(ActionEvent event) { setSelectedPersonById(); } diff -r 8604b368ec19 -r 50b8103ec85c src/main/webapp/clean/components/publicShowSubjects.xhtml --- a/src/main/webapp/clean/components/publicShowSubjects.xhtml Thu May 31 21:25:45 2018 +0200 +++ b/src/main/webapp/clean/components/publicShowSubjects.xhtml Fri Jun 01 16:04:38 2018 +0200 @@ -1,5 +1,6 @@ + style="margin-left:auto; margin-right:auto; text-align:left; width:100%;"> -
#{subject}
+

+ #{subject} + - #{parent} +

+ -
#{text.ownValue}
+
+ #{text.ownValue} + + [#{text.id}] + + +
+
-