Mercurial > hg > ismi-richfaces
view src/main/java/de/mpiwg/itgroup/ismi/search/beans/DisplayBean.java @ 215:26138384984c
update more instances of IIIF server URL.
author | casties |
---|---|
date | Sat, 15 Jan 2022 16:09:55 +0100 |
parents | e07e9f5afaa3 |
children |
line wrap: on
line source
package de.mpiwg.itgroup.ismi.search.beans; import java.util.ArrayList; import java.util.List; import javax.faces.event.ActionEvent; import javax.faces.model.SelectItem; import org.apache.log4j.Logger; import org.mpi.openmind.repository.bo.Entity; import de.mpiwg.itgroup.ismi.auxObjects.SelectItem0; import de.mpiwg.itgroup.ismi.entry.beans.AbstractISMIBean; import de.mpiwg.itgroup.ismi.entry.utils.PrivacityUtils; import de.mpiwg.itgroup.ismi.utils.templates.TitleTemplate; import de.mpiwg.itgroup.ismi.utils.templates.WitnessTemplate; public class DisplayBean extends AbstractISMIBean { /** * */ private static final long serialVersionUID = 1296816397468908012L; private static Logger logger = Logger.getLogger(DisplayBean.class); protected TitleTemplate title; protected WitnessTemplate witness; //Witness elements protected List<SelectItem0> witnessItems = new ArrayList<SelectItem0>(); protected Long selectedWitnessId; protected boolean showWitnessesWithScans = false; //Title elements protected Long selectedTitleId; protected List<SelectItem0> titleItems = new ArrayList<SelectItem0>(); protected void resetDisplay(){ this.witness = null; this.selectedWitnessId = null; this.title = null; this.selectedTitleId = null; this.witnessItems = new ArrayList<SelectItem0>(); } public void showTitle(Long textId){ this.selectedTitleId = textId; this.witness = null; this.witnessItems = new ArrayList<SelectItem0>(); this.selectedWitnessId = null; long start = System.currentTimeMillis(); Entity entTitle = getWrapper().getEntityById(this.selectedTitleId); if(this.selectedTitleId != null){ this.titleItems = SelectItem0.valueChange(titleItems, textId); this.title = new TitleTemplate(entTitle, getWrapper(), false); //****** getting witnesses ********************** long startWitness = System.currentTimeMillis(); List<Entity> list = new ArrayList<Entity>(); List<Entity> allwits = getWrapper().getSourcesForTargetRelation(selectedTitleId, is_exemplar_of, WITNESS, -1); boolean hasScans = false; for (Entity witness : allwits) { // get CODEX for WITNESS List<Entity> codices = getWrapper().getTargetsForSourceRelation(witness.getId(), is_part_of, CODEX, 1); if (codices.isEmpty()) { logger.error("WITNESS ["+witness.getId()+"] has no CODEX!"); } else { Entity codex = codices.get(0); // look at DIGITALIZATION of CODEX List<Entity> digis = getWrapper().getSourcesForTargetRelation(codex.getId(), is_digitalization_of, DIGITALIZATION, 1); hasScans = !digis.isEmpty(); if (this.showWitnessesWithScans && !hasScans) { continue; } } String witlabel = witness.getOwnValue() + " [" + witness.getId() + "]" + (hasScans ? "+S" : ""); SelectItem0 item = new SelectItem0(witness.getId(), witlabel, true); this.witnessItems.add(item); list.add(witness); } if(list.size() > 0){ this.showWitness(list.get(0).getId()); } long diff = System.currentTimeMillis() - startWitness; if(diff > 1000){ logger.info("Time - listenerShowTitle().getSourcesForTargetRelation(title, 'X', WITNESS, -1) = " + diff + " [ms], Text id= " + this.selectedTitleId); } //************************************************ } long diff = System.currentTimeMillis() - start; if(diff > 1000){ logger.info("Time - listenerShowTitle() " + diff + " [ms], Text id= " + this.selectedTitleId); } } public void listenerShowWitness0(ActionEvent event){ SelectItem0 item = (SelectItem0)getRequestBean("witnessItem"); if (item != null) { this.redirect(null, "?textId=" + selectedTitleId + "&witnessId=" + item.getValue() + "#witnesses"); } } public void showWitness(Long selectedWitnessId) { this.selectedWitnessId = selectedWitnessId; if (this.selectedWitnessId != null) { this.witnessItems = SelectItem0.valueChange(witnessItems, selectedWitnessId); Entity entWitness = getWrapper().getEntityById(selectedWitnessId); if (entWitness != null) { this.witness = new WitnessTemplate(entWitness, getWrapper(), true); } } } /** * This method is called from the result of the simple search. It will set the title(text) into the currentText to be edited. * @return */ public String actionEditTitle() { if(this.selectedTitleId != null){ getSessionBean().editEntity(getWrapper().getEntityById(selectedTitleId)); return "entry_edit_entity"; } return ""; } /** * This method is called from the result of the simple search. It will set * the witness into the currentWitness to be edited. * * @return */ public String actionEditWitness() { if (this.selectedWitnessId != null) { getSessionBean().editEntity(getWrapper().getEntityById(selectedWitnessId)); return "entry_edit_entity"; } return ""; } //Privacity titles public void changePrivacity4Title(ActionEvent event){ try { if(selectedTitleId != null){ List<Entity> saveList = PrivacityUtils.changePrivacity4Title(getWrapper().getEntityById(selectedTitleId), null, getWrapper()); getWrapper().saveEntityListAsNodeWithoutContent(saveList, getUserName()); this.showTitle(selectedTitleId); } } catch (Exception e) { logger.error(e.getMessage(), e); printInternalError(e); } } //Privacity witnesses public void changePrivacity4Witness(ActionEvent event){ try { if(selectedWitnessId != null){ List<Entity> saveList = PrivacityUtils.changePrivacity4Witness(getWrapper().getEntityById(selectedWitnessId), null, getWrapper()); getWrapper().saveEntityListAsNodeWithoutContent(saveList, getUserName()); this.showWitness(selectedWitnessId); } } catch (Exception e) { logger.error(e.getMessage(), e); printInternalError(e); } } private void changeAllWitnesses(boolean privacity) throws Exception{ List<Entity> saveList = new ArrayList<Entity>(); for(SelectItem item : witnessItems){ Long id = (Long)item.getValue(); Entity witness = getWrapper().getEntityById(id); saveList.addAll(PrivacityUtils.changePrivacity4Witness(witness, privacity, getWrapper())); } getWrapper().saveEntityListAsNodeWithoutContent(saveList, getUserName()); this.showWitness(selectedWitnessId); } public void listenerMakeAllWitnessesPublic(ActionEvent event){ try { this.changeAllWitnesses(true); } catch (Exception e) { logger.error(e.getMessage(), e); printInternalError(e); } } public void listenerMakeAllWitnessesPrivate(ActionEvent event){ try { this.changeAllWitnesses(false); } catch (Exception e) { logger.error(e.getMessage(), e); printInternalError(e); } } public void changeShowWitnessesWithScans() { if (this.selectedTitleId != null) { showTitle(this.selectedTitleId); } } public int getWitnessItemsSize() { if(witnessItems != null) return witnessItems.size(); return 0; } public TitleTemplate getTitle() { return title; } public WitnessTemplate getWitness() { return witness; } public List<SelectItem0> getWitnessItems() { return witnessItems; } public Long getSelectedWitnessId() { return selectedWitnessId; } public Long getSelectedTitleId() { return selectedTitleId; } public void setSelectedWitnessId(Long selectedWitnessId) { this.selectedWitnessId = selectedWitnessId; } public void setSelectedTitleId(Long selectedTitleId) { this.selectedTitleId = selectedTitleId; } public boolean isShowWitnessesWithScans() { return showWitnessesWithScans; } public void setShowWitnessesWithScans(boolean showWitnessesWithScans) { this.showWitnessesWithScans = showWitnessesWithScans; } }