Mercurial > hg > ismi-richfaces
view src/main/java/de/mpiwg/itgroup/ismi/util/guiComponents/MisidentificationTable.java @ 215:26138384984c
update more instances of IIIF server URL.
author | casties |
---|---|
date | Sat, 15 Jan 2022 16:09:55 +0100 |
parents | 502ae5b1a07d |
children |
line wrap: on
line source
package de.mpiwg.itgroup.ismi.util.guiComponents; import java.util.ArrayList; import java.util.List; import javax.faces.event.ActionEvent; import org.apache.log4j.Logger; import org.mpi.openmind.repository.bo.Entity; import org.mpi.openmind.repository.bo.Relation; import de.mpiwg.itgroup.ismi.auxObjects.ListenerObject; import de.mpiwg.itgroup.ismi.entry.beans.AbstractISMIBean; import de.mpiwg.itgroup.ismi.utils.SelectableObject; public class MisidentificationTable extends AbstractISMIBean { private static final long serialVersionUID = -2756216426560705498L; private static Logger logger = Logger.getLogger(MisidentificationTable.class); private List<SelectableObject<Misidentification>> list = new ArrayList<SelectableObject<Misidentification>>(); private Misidentification misident; private ListenerObject lo; // private String attName; // private String oc; public MisidentificationTable() { lo = new ListenerObject(PERSON, "name_translit"); } public void listenerRemove(ActionEvent event) { List<SelectableObject<Misidentification>> toDelete = new ArrayList<SelectableObject<Misidentification>>(); for (SelectableObject<Misidentification> so : this.list) { if (so.isSelected()) { toDelete.add(so); } } for (SelectableObject<Misidentification> so : toDelete) { this.list.remove(so); } } public void listenerEditRef(ActionEvent event) { SelectableObject<Misidentification> so = (SelectableObject<Misidentification>) getRequestBean("item"); if (so != null) { this.misident = so.getObj(); } } public void listenerSaveRef(ActionEvent event) { this.misident = null; } public void listenerCancel(ActionEvent event) { // @TODO } public void listenerCreate(ActionEvent event) { Entity ent = this.lo.entity; if (ent != null & ent.isPersistent()) { // FIXME: where to get title? this.create(null, null, ent); } } public void load(Entity misattEntity) { if (!containsEntity(misattEntity)) { // TODO sort // Collections.sort(this.misattList); try { this.list.add(new SelectableObject<Misidentification>( Misidentification.load(misattEntity, getWrapper(), getUserName()))); } catch (Exception e) { addErrorMsg(e.getMessage()); logger.error(e); } } else { addGeneralMsg("This entity has been already inserted!"); } } public void create(String title, String title_translit, Entity person) { try { this.list.add(new SelectableObject<Misidentification>( Misidentification.create(title, title_translit, person, getWrapper(), getUserName()))); } catch (Exception e) { addErrorMsg(e.getMessage()); logger.error(e); } } private boolean containsEntity(Entity ent) { for (SelectableObject<Misidentification> so : this.list) { if (so.getObj().getPerson() != null && so.getObj().getPerson().getId().equals(ent.getId())) { return true; } } return false; } /** * Save all misidentifications. Deletes removed misidentifications. * * @param witness * @return * @throws Exception */ public Entity saveMisidentifications(Entity witness) throws Exception { // remember old misidentifications List<Relation> oldRels = witness.getSourceRelations(Misidentification.HAS_MISIDENT, Misidentification.MISIDENT); List<Entity> misidents = new ArrayList<Entity>(); // save new misidentifications for (Misidentification misident : this.getMisidentList()) { misident.saveMisidentification(witness); misidents.add(misident.getMisident()); } // update relations this.replaceMultipleSourceRelations(witness, misidents, Misidentification.MISIDENT, Misidentification.HAS_MISIDENT); // check for orphaned old misidentifications for (Relation rel : oldRels) { boolean found = false; for (Entity miEnt : misidents) { if (miEnt != null && rel.getTargetId() == miEnt.getId()) { found = true; break; } } if (!found) { Entity miEnt = getWrapper().getEntityById(rel.getTargetId()); logger.warn("Orphaned MISIDENTIFICATION will be deleted: "+miEnt); getWrapper().removeCurrentVersionEntity(miEnt, getUserName()); } } return witness; } private List<Misidentification> getMisidentList() { List<Misidentification> list = new ArrayList<Misidentification>(); for (SelectableObject<Misidentification> so : this.list) { list.add(so.getObj()); } return list; } public List<SelectableObject<Misidentification>> getList() { return list; } public void setList(List<SelectableObject<Misidentification>> list) { this.list = list; } public Misidentification getMisident() { return misident; } public void setMisident(Misidentification misident) { this.misident = misident; } public ListenerObject getLo() { return lo; } public void setLo(ListenerObject lo) { this.lo = lo; } }