changeset 168:e9ab943ec528 public_by_author

new start for publicByAuthor using EntityRepositoryBean.
author Robert Casties <casties@mpiwg-berlin.mpg.de>
date Wed, 30 May 2018 20:23:45 +0200
parents 54246f538821
children 0b5d02012299
files src/main/java/de/mpiwg/itgroup/ismi/merge/PublicByAuthorBean.java src/main/webapp/clean/components/findAuthor.xhtml src/main/webapp/clean/publicByAuthor.xhtml
diffstat 3 files changed, 127 insertions(+), 220 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/de/mpiwg/itgroup/ismi/merge/PublicByAuthorBean.java	Wed May 30 19:17:10 2018 +0200
+++ b/src/main/java/de/mpiwg/itgroup/ismi/merge/PublicByAuthorBean.java	Wed May 30 20:23:45 2018 +0200
@@ -1,19 +1,13 @@
 package de.mpiwg.itgroup.ismi.merge;
 
 import java.io.Serializable;
-import java.util.ArrayList;
-import java.util.List;
 
 import javax.faces.event.ActionEvent;
 import javax.faces.event.ValueChangeEvent;
-import javax.faces.model.SelectItem;
 
 import org.apache.log4j.Logger;
-import org.mpi.openmind.search.utils.ResultEntry;
-import org.mpi.openmind.search.utils.SAttributeMultipleName;
-import org.mpi.openmind.search.utils.SEntity;
-import org.mpi.openmind.search.utils.SRelation;
 
+import de.mpiwg.itgroup.ismi.browse.EntityRepositoryBean;
 import de.mpiwg.itgroup.ismi.entry.beans.AbstractISMIBean;
 
 public class PublicByAuthorBean extends AbstractISMIBean implements Serializable{
@@ -22,30 +16,11 @@
 	
 	private static final long serialVersionUID = 1L;
 	
-	private String currentTemplate;
-	private static List<SelectItem> templateList;
-	
 	private String findAuthorName = "";
-
-	private boolean searched = false;
-
 	private long timeExecution;
 
-    private List<ResultEntry> rs;
+	private EntityRepositoryBean browseBean;
 	
-	static{
-		templateList = new ArrayList<SelectItem>();
-		//templateList.add(new SelectItem("sample01"));
-		templateList.add(new SelectItem("witness4Title", "Witnesses for a title"));
-		//templateList.add(new SelectItem("sample03"));
-		//templateList.add(new SelectItem("sample04"));
-		//templateList.add(new SelectItem("sample05"));
-		templateList.add(new SelectItem("titles4Person", "Titles for a person"));
-		templateList.add(new SelectItem("codexOwnership", "Codex ownership"));
-		//templateList.add(new SelectItem("sample07"));
-		//templateList.add(new SelectItem("sample08"));
-		//templateList.add(new SelectItem("sample09"));
-	}
 	
 	public PublicByAuthorBean(){
 		//logger.info("AdvancedSearchBean");
@@ -54,7 +29,8 @@
 	
 	public void reset(){
 		//logger.info("AdvancedSearchBean.reset()");
-		currentTemplate = "witness4Title";
+	    browseBean = new EntityRepositoryBean();
+	    browseBean.setObjectClass("PERSON");
 	}
 	
 	public void listenerChange(ValueChangeEvent event){
@@ -69,7 +45,6 @@
 			long start = System.currentTimeMillis();
 			this.search();
 			long end = System.currentTimeMillis();
-			this.searched = true;
 			this.timeExecution = end - start;
 			logger.info(toString() + " time execution=" + (timeExecution));
 		} catch (Exception e) {
@@ -89,68 +64,12 @@
 	public void search(){
 		long start = System.currentTimeMillis();
 		
-		rs = sample06();
-		
-		//printRs(rs);
-
 		long end = System.currentTimeMillis();
 		logger.info("execution time [ms] = " + (end - start));
-		logger.info("Search resultSet size= " + this.rs.size());
 	}
 
 	
 	/**
-	 * 6) Bring up people associated with a particular title (not just one huge list of people, but be able to distinguish author, student, teacher)
-	 * @return
-	 */
-	private List<ResultEntry> sample06(){
-		
-		List<SEntity> entFilters = new ArrayList<SEntity>();
-		List<SRelation> relFilters = new ArrayList<SRelation>();
-		
-		//alias, "is_prime_alias_name_of", "PERSON"
-		//alias, "is_alias_name_of", "PERSON"
-		SEntity person = new SEntity(1, "PERSON");
-		person.addAtt(new SAttributeMultipleName("a", "name_translit", "name"));
-		entFilters.add(person);
-		
-		/*
-		SEntity alias = new SEntity(1, "ALIAS");
-		alias.addAtt(new SAttributeUniqueName("alias", "abu"));
-		entFilters.add(alias);
-		*/
-		
-		/*
-		SEntity title = new SEntity(2, "TEXT");
-		title.addAtt(new SAttributeMultipleName("abu", "full_title_translit", "full_title"));
-		entFilters.add(title);
-		*/
-		
-		/*
-		SRelationMultipleName title_to_person = new SRelationMultipleName(title, person, "had_patron", "was_dedicated_to", "was_created_by");
-		relFilters.add(title_to_person);
-		*/
-		
-		List<ResultEntry> rs = getAppBean().getSS().search(entFilters, relFilters);
-		
-		return rs;
-		
-	}
-	
-
-	public String getCurrentTemplate() {
-		return currentTemplate;
-	}
-
-	public void setCurrentTemplate(String currentTemplate) {
-		this.currentTemplate = currentTemplate;
-	}
-
-	public List<SelectItem> getTemplateList() {
-		return templateList;
-	}
-
-	/**
 	 * @return the findAuthorName
 	 */
 	public String getFindAuthorName() {
@@ -165,17 +84,10 @@
 	}
 
     /**
-     * @return the rs
+     * @return the browseBean
      */
-    public List<ResultEntry> getRs() {
-        return rs;
-    }
-
-    /**
-     * @return the searched
-     */
-    public boolean isSearched() {
-        return searched;
+    public EntityRepositoryBean getBrowseBean() {
+        return browseBean;
     }
 
 }
--- a/src/main/webapp/clean/components/findAuthor.xhtml	Wed May 30 19:17:10 2018 +0200
+++ b/src/main/webapp/clean/components/findAuthor.xhtml	Wed May 30 20:23:45 2018 +0200
@@ -16,147 +16,142 @@
 
 			<h:panelGrid columns="1">
 				<h:outputLabel value="Person name" />
-				<h:outputLabel value="(name_translit, empty shows all)" />
+				<h:outputLabel value="(name_translit)" />
 			</h:panelGrid>
-			<h:inputText
-				value="#{Session.publicByAuthor.findAuthorName}" />
+			<h:inputText value="#{Session.publicByAuthor.browseBean.personNameTranslit}" />
 
-			<h:outputText />
+            <a4j:commandButton value="show all"
+                actionListener="#{Session.publicByAuthor.listenerAllAuthorSearch}"
+                render="selectPersonPanel" />
+
 			<a4j:commandButton value="search"
-				actionListener="#{Session.publicByAuthor.listenerFindAuthorSearch}"
+				actionListener="#{Session.publicByAuthor.browseBean.actionSearchByAttributes}"
 				render="selectPersonPanel" />
 
+
 		</h:panelGrid>
 
-		<h:panelGrid id="selectPersonPanel" columns="1">
-
-			<h:panelGrid columns="1"
-				rendered="#{!empty Session.publicByAuthor.rs}">
-
-				<rich:dataTable var="entry"
-					value="#{Session.publicByAuthor.rs}"
-					paginator="true" rows="20">
-
-					<f:facet name="header">
-                		<rich:dataScroller id="scroller" />
-            		</f:facet>
+		<h:panelGrid id="selectPersonPanel" columns="1"
+			style="margin-left: auto; margin-right: auto; text-align: center; width: 100%;"
+			>
 
-					<h:column>
-						<f:facet name="header">
-							<h:outputText value="Person ID" />
-						</f:facet>
-						<h:outputText value="#{entry.personId}" />
-					</h:column>
-
-					<h:column>
-						<f:facet name="header">
-							<h:outputText value="Person Label" />
-						</f:facet>
-						<h:outputText value="#{entry.personOv}" />
-					</h:column>
 
-					<h:column>
-						<f:facet name="header">
-							<h:outputText value="Role" />
-						</f:facet>
-						<h:outputText value="#{entry.role}" />
-					</h:column>
-
-					<h:column
-						rendered="#{Session.advancedSearch.titles4PersonQuery.displayAlias}">
-						<f:facet name="header">
-							<h:outputText value="Alias 2 Person" />
-						</f:facet>
-						<h:outputText value="#{entry.alias2Person}" />
-					</h:column>
-
-					<h:column
-						rendered="#{Session.advancedSearch.titles4PersonQuery.displayAlias}">
-						<f:facet name="header">
-							<h:outputText value="Alias" />
-						</f:facet>
-						<h:outputText value="#{entry.alias}" />
-					</h:column>
-
-					<h:column>
-						<f:facet name="header">
-							<h:outputText value="Subject" />
-						</f:facet>
-						<h:outputText value="#{entry.subject}" />
-					</h:column>
+			<h:outputText
+				value="#{Session.publicByAuthor.browseBean.resultSummaryMsg}"
+				rendered="#{!empty Session.publicByAuthor.browseBean.resultSummaryMsg}"
+				styleClass="sumaryMsg" />
 
-					<h:column>
-						<f:facet name="header">
-							<h:outputText value="Title ID" />
-						</f:facet>
-						<h:outputText value="#{entry.titleId}" />
-					</h:column>
-
-					<h:column>
-						<f:facet name="header">
-							<h:outputText value="Subject" />
-						</f:facet>
-						<h:outputText value="#{entry.subject}" />
-					</h:column>
-
-					<h:column>
-						<f:facet name="header">
-							<h:outputText value="Title Label" />
-						</f:facet>
-						<h:outputText value="#{entry.titleOv}" />
-					</h:column>
-
-					<h:column
-						rendered="#{Session.advancedSearch.titles4PersonQuery.displayCodex}">
-						<f:facet name="header">
-							<h:outputText value="Codex Id" />
-						</f:facet>
-						<h:outputText value="#{entry.codexId}" />
-					</h:column>
-
-					<h:column
-						rendered="#{Session.advancedSearch.titles4PersonQuery.displayCodex}">
-						<f:facet name="header">
-							<h:outputText value="Codex Label" />
-						</f:facet>
-						<h:outputText value="#{entry.codexOv}" />
-					</h:column>
-
-					<h:column
-						rendered="#{Session.advancedSearch.titles4PersonQuery.displayCodex}">
-						<f:facet name="header">
-							<h:outputText value="Witness Id" />
-						</f:facet>
-						<h:outputText value="#{entry.witnessId}" />
-					</h:column>
-
-					<h:column
-						rendered="#{Session.advancedSearch.titles4PersonQuery.displayCodex}">
-						<f:facet name="header">
-							<h:outputText value="Witness Label" />
-						</f:facet>
-						<h:outputText value="#{entry.witnessOv}" />
-					</h:column>
-
-					<h:column>
-						<f:facet name="header">
-							<h:outputText value="Query" />
-						</f:facet>
-						<h:outputText value="#{entry.query}" />
-					</h:column>
-				</rich:dataTable>
+			<h:column
+				rendered="#{!empty Session.publicByAuthor.browseBean.entities}">
+				<h:outputText value="go to page" styleClass="sumaryMsg" />
+				<h:inputText value="#{Session.publicByAuthor.browseBean.page}"
+					size="4" />
+				<h:commandButton value="submit"
+					actionListener="#{Session.publicByAuthor.browseBean.actionGoToPageAdvancedResult}" />
+				<h:outputText value=" #{Session.publicByAuthor.browseBean.pageMsg}"
+					rendered="#{!empty Session.publicByAuthor.browseBean.pageMsg}"
+					style="color:red" />
+			</h:column>
 
 
+			<h:column
+				rendered="#{!empty Session.publicByAuthor.browseBean.entities}">
+				<h:panelGroup>
+					<h:commandButton
+						image="/resources/css/xp/css-images/arrow-first.gif"
+						style="border:none;" title="First Page"
+						action="#{Session.publicByAuthor.browseBean.advancedFirst}" />
 
-			</h:panelGrid>
+					<h:commandButton image="/resources/css/xp/css-images/arrow-fr.gif"
+						style="border:none;" title="Fast Backwards"
+						action="#{Session.publicByAuthor.browseBean.advancedFastRewind}" />
+
+					<h:commandButton
+						image="/resources/css/xp/css-images/arrow-previous.gif"
+						style="border:none;" title="Previous Page"
+						action="#{Session.publicByAuthor.browseBean.advancedPrevious}" />
+
+					<h:outputText
+						value="#{Session.publicByAuthor.browseBean.advancedPaginator.recordStatus}"
+						styleClass="sumaryMsg" />
+
+					<h:commandButton
+						image="/resources/css/xp/css-images/arrow-next.gif"
+						style="border:none;" title="Next Page"
+						action="#{Session.publicByAuthor.browseBean.advancedNext}" />
+
+					<h:commandButton image="/resources/css/xp/css-images/arrow-ff.gif"
+						style="border:none;" title="Fast Forward"
+						action="#{Session.publicByAuthor.browseBean.advancedFastForward}" />
+
+					<h:commandButton
+						image="/resources/css/xp/css-images/arrow-last.gif"
+						style="border:none;" title="Last Page"
+						action="#{Session.publicByAuthor.browseBean.advancedLast}" />
+				</h:panelGroup>
+			</h:column>
+
+			<rich:dataTable id="advancedDataTable" rows="10"
+				value="#{Session.publicByAuthor.browseBean.currentEntities}"
+				rendered="#{!empty Session.publicByAuthor.browseBean.currentEntities}"
+				var="entity" styleClass="rsPanel" columnClasses="rsPanelColumn">
+				<h:column>
+					<h:outputText value="[#{entity.objectClass}] " />
+					<h:outputLink
+						value="#{ApplicationBean1.root}/browse/entityDetails.xhtml?eid=#{entity.id}">
+						<h:outputText
+							value="#{entity.ownValue} - [#{entity.id}, #{entity.privacity}]" />
+					</h:outputLink>
+					<h:commandButton
+						action="#{Session.publicByAuthor.browseBean.actionEdit}"
+						rendered="#{Session.canEdit}"
+						image="/resources/css/xp/css-images//edit16.gif"
+						title="Edit this entity" />
+				</h:column>
+			</rich:dataTable>
+
+			<h:column
+				rendered="#{!empty Session.publicByAuthor.browseBean.entities}">
+				<h:panelGroup>
+					<h:commandButton
+						image="/resources/css/xp/css-images/arrow-first.gif"
+						style="border:none;" title="First Page"
+						action="#{Session.publicByAuthor.browseBean.advancedFirst}" />
+
+					<h:commandButton image="/resources/css/xp/css-images/arrow-fr.gif"
+						style="border:none;" title="Fast Backwards"
+						action="#{Session.publicByAuthor.browseBean.advancedFastRewind}" />
+
+					<h:commandButton
+						image="/resources/css/xp/css-images/arrow-previous.gif"
+						style="border:none;" title="Previous Page"
+						action="#{Session.publicByAuthor.browseBean.advancedPrevious}" />
+
+					<h:outputText
+						value="#{Session.publicByAuthor.browseBean.advancedPaginator.recordStatus}"
+						styleClass="sumaryMsg" />
+
+					<h:commandButton
+						image="/resources/css/xp/css-images/arrow-next.gif"
+						style="border:none;" title="Next Page"
+						action="#{Session.publicByAuthor.browseBean.advancedNext}" />
+
+					<h:commandButton image="/resources/css/xp/css-images/arrow-ff.gif"
+						style="border:none;" title="Fast Forward"
+						action="#{Session.publicByAuthor.browseBean.advancedFastForward}" />
+
+					<h:commandButton
+						image="/resources/css/xp/css-images/arrow-last.gif"
+						style="border:none;" title="Last Page"
+						action="#{Session.publicByAuthor.browseBean.advancedLast}" />
+				</h:panelGroup>
+			</h:column>
+
 
 		</h:panelGrid>
 
 
 
-
-
-
 	</ui:composition>
 </body>
 </html>
--- a/src/main/webapp/clean/publicByAuthor.xhtml	Wed May 30 19:17:10 2018 +0200
+++ b/src/main/webapp/clean/publicByAuthor.xhtml	Wed May 30 20:23:45 2018 +0200
@@ -7,9 +7,9 @@
 	xmlns:rich="http://richfaces.org/rich">
 
 <body>
-	<ui:composition template="/templates/publicTemplate.xhtml">
+	<ui:composition template="/templates/privateTemplate.xhtml">
 
-		<ui:define name="publicContent">
+		<ui:define name="privateContent">
 			
 			<h:outputStylesheet name="/css/ismi-db/display.css" />