changeset 124:28a0c2726466

changed saveEntity() to use new EditIntent. Set up EditIntent for TEXT, PERSON, REFERENCE.
author casties
date Mon, 30 Jan 2017 20:35:36 +0100
parents 32ce1f93ad33
children eee2e0ca4032
files src/main/java/de/mpiwg/itgroup/diva/rest/RestWitness.java src/main/java/de/mpiwg/itgroup/ismi/browse/EntityDetailsBean.java src/main/java/de/mpiwg/itgroup/ismi/entry/beans/AbstractISMIBean.java src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentAliasBean.java src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentCityBean.java src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentCodexBean.java src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentCollectionBean.java src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentDigitalizationBean.java src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentPersonBean.java src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentRepositoryBean.java src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentRoleBean.java src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentSubjectBean.java src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentTextBean.java src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentWitnessBean.java src/main/java/de/mpiwg/itgroup/ismi/event/beans/CopyEvent.java src/main/java/de/mpiwg/itgroup/ismi/event/beans/StudyEvent.java src/main/java/de/mpiwg/itgroup/ismi/event/beans/TransferEvent.java src/main/java/de/mpiwg/itgroup/ismi/merge/GeneralMerge.java src/main/java/de/mpiwg/itgroup/ismi/merge/ImportMerge.java src/main/java/de/mpiwg/itgroup/ismi/merge/ReferenceMerge.java src/main/java/de/mpiwg/itgroup/ismi/util/guiComponents/EntityList.java src/main/java/de/mpiwg/itgroup/ismi/util/guiComponents/Misattribution.java src/main/java/de/mpiwg/itgroup/ismi/util/guiComponents/Misidentification.java src/main/java/de/mpiwg/itgroup/ismi/util/guiComponents/Reference.java
diffstat 24 files changed, 81 insertions(+), 46 deletions(-) [+]
line wrap: on
line diff
--- a/src/main/java/de/mpiwg/itgroup/diva/rest/RestWitness.java	Thu Jan 26 19:35:49 2017 +0100
+++ b/src/main/java/de/mpiwg/itgroup/diva/rest/RestWitness.java	Mon Jan 30 20:35:36 2017 +0100
@@ -51,7 +51,7 @@
 					Entity ent = getWrapper(request, response).getEntityByIdWithContent(jsonEnt.id);
 					ent = jsonEnt.updateEntity(ent);
 					
-					getWrapper(request, response).saveEntity(ent, getSessionBean(request, response).getUsername());	
+					getWrapper(request, response).saveEntity(ent, getSessionBean(request, response).getUsername(), null);	
 				}			
 			
 				resp.put("state", "ok");
--- a/src/main/java/de/mpiwg/itgroup/ismi/browse/EntityDetailsBean.java	Thu Jan 26 19:35:49 2017 +0100
+++ b/src/main/java/de/mpiwg/itgroup/ismi/browse/EntityDetailsBean.java	Mon Jan 30 20:35:36 2017 +0100
@@ -86,7 +86,7 @@
 			selectedPreviousVersion.setVersion(this.entity.getVersion());
 			selectedPreviousVersion.setSystemStatus(Node.SYS_STATUS_CURRENT_VERSION);
 			
-			getWrapper().saveEntity(selectedPreviousVersion, getUserName());
+			getWrapper().saveEntity(selectedPreviousVersion, getUserName(), null);
 			
 		}
 	}
--- a/src/main/java/de/mpiwg/itgroup/ismi/entry/beans/AbstractISMIBean.java	Thu Jan 26 19:35:49 2017 +0100
+++ b/src/main/java/de/mpiwg/itgroup/ismi/entry/beans/AbstractISMIBean.java	Mon Jan 30 20:35:36 2017 +0100
@@ -298,7 +298,7 @@
 		for (SelectableObject<Reference> so : this.endNoteRefTable.list) {
 			Reference ref = so.getObj();
 			Entity entRef = ref.getEnt();
-			getWrapper().saveEntity(entRef, getUserName());
+			getWrapper().saveEntity(entRef, getUserName(), Reference.editReferenceIntent);
 			//entity can be no persistent, therefore the assignment of the relation should be done after the save
 			entRef.addSourceRelation(rel_is_reference_of, entity);
 			//new Relation(entRef, entity, rel_is_reference_of);
@@ -903,26 +903,26 @@
         /*
          * run updates depending on type
          */
-        if (entity.getObjectClass().equals(PLACE)) {
+        String oc = entity.getObjectClass();
+		if (oc.equals(PLACE)) {
             this.generateOW4City(entity, nodeList, user);
             getWrapper().saveEntityListAsNodeWithoutContent(nodeList, user);
 
-        } else if (entity.getObjectClass().equals(REPOSITORY)) {
+        } else if (oc.equals(REPOSITORY)) {
             this.generateOW4Repository(entity, nodeList, new HashMap<String, String>(), user);
             getWrapper().saveEntityListAsNodeWithoutContent(nodeList, user);
 
-        } else if (entity.getObjectClass().equals(COLLECTION)) {
+        } else if (oc.equals(COLLECTION)) {
             this.generateOW4Collection(entity, nodeList, new HashMap<String, String>(), user);
             getWrapper().saveEntityListAsNodeWithoutContent(nodeList, user);
 
-        } else if (entity.getObjectClass().equals(CODEX)) {
+        } else if (oc.equals(CODEX)) {
             this.generateOW4Codex(entity, nodeList, new HashMap<String, String>(), user);
             getWrapper().saveEntityListAsNodeWithoutContent(nodeList, user);
 
-        } else if (entity.getObjectClass().equals(TEXT)) {
+        } else if (oc.equals(TEXT)) {
             generateOW4Text(entity, user);
         }
-        // TODO PERSON and TEXT
     }
 	
 	private void generateOW4City(Entity city, List<Entity> nodeList, String user){
@@ -1010,6 +1010,7 @@
 	}
 	
 	private void generateOW4Text(Entity text, String user) throws Exception{
+		// FIXME: these loops seem to be wrong :-(
 		List<Entity> witnessList = getWrapper().getSourcesForTargetRelation(text, "is_exemplar_of", WITNESS, -1);
 		List<Entity> listToSave = new ArrayList<Entity>();
 		for(Entity witness : witnessList){
--- a/src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentAliasBean.java	Thu Jan 26 19:35:49 2017 +0100
+++ b/src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentAliasBean.java	Mon Jan 30 20:35:36 2017 +0100
@@ -31,7 +31,7 @@
 		super.save();
 		try {
 			this.entity = updateEntityAttributes(this.entity);
-			this.entity = getWrapper().saveEntity(this.entity, getSessionUser().getEmail());
+			this.entity = getWrapper().saveEntity(this.entity, getSessionUser().getEmail(), null);
 			getAppBean().getSimpleSearchCache().setMapDirty(true);
 			
 			logger.info("Entity saved - Time = " + (System.currentTimeMillis() - start) + ", " + entity);
--- a/src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentCityBean.java	Thu Jan 26 19:35:49 2017 +0100
+++ b/src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentCityBean.java	Mon Jan 30 20:35:36 2017 +0100
@@ -177,7 +177,7 @@
 				this.setSelectedSaveAsNew(false);
 				//lastAction = "Save place as new entity";
 			}else{
-				this.entity = getWrapper().saveEntity(this.entity, getSessionUser().getEmail());
+				this.entity = getWrapper().saveEntity(this.entity, getSessionUser().getEmail(), null);
 				//lastAction = "Save place";
 			}
 			//setActionInfo(lastAction);
--- a/src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentCodexBean.java	Thu Jan 26 19:35:49 2017 +0100
+++ b/src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentCodexBean.java	Mon Jan 30 20:35:36 2017 +0100
@@ -263,7 +263,7 @@
 					}
 				}
 				
-				this.entity = getWrapper().saveEntity(this.entity, getSessionUser().getEmail());
+				this.entity = getWrapper().saveEntity(this.entity, getSessionUser().getEmail(), null);
 			}
 
 			this.updateRelatedOW(this.entity, getSessionUser().getEmail());
--- a/src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentCollectionBean.java	Thu Jan 26 19:35:49 2017 +0100
+++ b/src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentCollectionBean.java	Mon Jan 30 20:35:36 2017 +0100
@@ -151,7 +151,7 @@
 						getSessionUser().getEmail());
 			} else {
 				this.entity = getWrapper().saveEntity(this.entity,
-						getSessionUser().getEmail());
+						getSessionUser().getEmail(), null);
 			}
 
 			this.updateRelatedOW(this.entity, getSessionUser().getEmail());
--- a/src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentDigitalizationBean.java	Thu Jan 26 19:35:49 2017 +0100
+++ b/src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentDigitalizationBean.java	Mon Jan 30 20:35:36 2017 +0100
@@ -79,7 +79,7 @@
 			// DIGITALIZATION -> is_digitalization_of -> CODEX
 			this.entity.replaceSourceRelation(getCodexLo().entity, CODEX, is_digitalization_of);
 			
-			this.entity = getWrapper().saveEntity(this.entity, user.getEmail());
+			this.entity = getWrapper().saveEntity(this.entity, user.getEmail(), null);
 			
 			this.setEntity(this.entity);
 			
--- a/src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentPersonBean.java	Thu Jan 26 19:35:49 2017 +0100
+++ b/src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentPersonBean.java	Mon Jan 30 20:35:36 2017 +0100
@@ -15,6 +15,7 @@
 import org.mpi.openmind.repository.bo.Entity;
 import org.mpi.openmind.repository.bo.Node;
 import org.mpi.openmind.repository.bo.Relation;
+import org.mpi.openmind.repository.services.utils.EditIntent;
 import org.mpi.openmind.repository.utils.RomanizationLoC;
 import org.mpi.openmind.repository.utils.TransliterationUtil;
 
@@ -58,6 +59,19 @@
 	private EntityList roleList;
 	private EntityList studentOfList;
 	private EntityList floruitList;
+
+	/** intent to edit all attributes and relations in the form */
+	public static EditIntent editPersonIntent = new EditIntent(
+			PERSON,
+			// attributes
+			new String[]{"name", "name_translit", "birth_date", "birth_date_text", "death_date", "death_date_text",
+					"url", "authority_id", "notes", "notes_old"},
+			// source relations
+			new String[]{"was_born_in", "was_born_in_as", "died_in", "died_in_as", "lived_in", "lived_in_as",
+					"was_student_of", "has_floruit_date", "has_role"},
+			// target relations
+			new String[]{"is_prime_alias_name_of", "is_alias_name_of", "is_reference_of"});
+	
 	
 	@Override
 	public void reset(){
@@ -262,7 +276,7 @@
 			this.entity.removeAllTargetRelationsByName(is_prime_alias_name_of);
 			if (shortNameAlias != null) {
 				shortNameAlias.setObjectClass(ALIAS);
-				shortNameAlias = getWrapper().saveEntity(shortNameAlias, getSessionUser().getEmail());
+				shortNameAlias = getWrapper().saveEntity(shortNameAlias, getSessionUser().getEmail(), null);
 				new Relation(shortNameAlias, this.entity, is_alias_name_of);
 			}
 			
@@ -335,21 +349,16 @@
 			}
 			
 			//REFERENCE -> is_reference_of -> THIS
-			//this.entity = this.prepareReferencesToSave(this.entity);
 			this.prepareEndNoteRefs2Save();
 			
-			this.entity = getWrapper().saveEntity(this.entity, getSessionUser().getEmail());
+			// save entity
+			this.entity = getWrapper().saveEntity(this.entity, getSessionUser().getEmail(), editPersonIntent);
 			this.setEntity(this.entity);
 			this.getCache().setMapDirty(true);
 			this.getAppBean().getBiographyBean().makeDirty();
 			
 			logger.info("Entity saved - Time = " + (System.currentTimeMillis() - start) + ", " + entity);
 			this.printSuccessSavingEntity();
-
-			//getPopup().setRendered(false);
-			
-
-			//setPopupText("CHANGING");
 			
 		} catch (Exception e) {
 			logger.error(e.getMessage(), e);
--- a/src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentRepositoryBean.java	Thu Jan 26 19:35:49 2017 +0100
+++ b/src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentRepositoryBean.java	Mon Jan 30 20:35:36 2017 +0100
@@ -101,7 +101,7 @@
 				this.entity.removeAllTargetRelations(is_part_of, COLLECTION);
 				this.entity = getWrapper().saveEntityAsNew(this.entity, getSessionUser().getEmail());
 			}else{
-				this.entity = getWrapper().saveEntity(this.entity, getSessionUser().getEmail());
+				this.entity = getWrapper().saveEntity(this.entity, getSessionUser().getEmail(), null);
 			}
 			
 			this.updateRelatedOW(this.entity, getSessionUser().getEmail());
--- a/src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentRoleBean.java	Thu Jan 26 19:35:49 2017 +0100
+++ b/src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentRoleBean.java	Mon Jan 30 20:35:36 2017 +0100
@@ -44,7 +44,7 @@
 			
 			if(isConsistent()){
 				this.entity = updateEntityAttributes(this.entity);
-				this.entity = getWrapper().saveEntity(this.entity, getUserName());
+				this.entity = getWrapper().saveEntity(this.entity, getUserName(), null);
 				getAppBean().setRoleListAsDirty();
 				
 				logger.info("Entity saved - Time = " + (System.currentTimeMillis() - start) + ", " + entity);
--- a/src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentSubjectBean.java	Thu Jan 26 19:35:49 2017 +0100
+++ b/src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentSubjectBean.java	Mon Jan 30 20:35:36 2017 +0100
@@ -108,7 +108,7 @@
 				this.entity.replaceSourceRelation(mainCategory, SUBJECT, is_part_of);
 			}
 			
-			this.entity = getWrapper().saveEntity(this.entity, user.getEmail());
+			this.entity = getWrapper().saveEntity(this.entity, user.getEmail(), null);
 			getSessionBean().setEditFormCurrentEntId(this.entity.getId());
 			
 			logger.info("Entity saved - Time = " + (System.currentTimeMillis() - start) + ", " + entity);
--- a/src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentTextBean.java	Thu Jan 26 19:35:49 2017 +0100
+++ b/src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentTextBean.java	Mon Jan 30 20:35:36 2017 +0100
@@ -17,6 +17,7 @@
 import org.mpi.openmind.repository.bo.Entity;
 import org.mpi.openmind.repository.bo.Node;
 import org.mpi.openmind.repository.bo.Relation;
+import org.mpi.openmind.repository.services.utils.EditIntent;
 import org.mpi.openmind.repository.utils.NormalizerUtils;
 import org.mpi.openmind.repository.utils.RomanizationLoC;
 import org.mpi.openmind.repository.utils.TransliterationUtil;
@@ -107,6 +108,19 @@
 
 	private transient MisattributionTable misattTable;
 	
+	/** intent to edit all attributes and relations in the form */
+	public static EditIntent editTextIntent = new EditIntent(
+			TEXT,
+			// attributes
+			new String[]{"full_title", "full_title_translit", "incipit", "excplicit", "dedication", "language", 
+					"notes", "notes_old", "table_of_contents", "text_arrangement", "text_type", "creation_date"},
+			// source relations
+			new String[]{"has_subject", "was_created_by", "has_author_misattribution", "was_created_in", "was_created_in_as",
+					"was_dedicated_to", "is_commentary_on", "is_translation_of", "is_version_of"},
+			// target relations
+			new String[]{"is_prime_alias_title_of", "is_alias_title_of", "is_alias_incipit_of", "is_alias_explicit_of",
+					"is_reference_of", "is_exemplar_of"});
+	
 	public CurrentTextBean() {
 		this.reset();
 	}
@@ -569,12 +583,12 @@
 					//1)create  alias, 2) update value of alias3) save alias, and 4) add to this text.
 					shortTitleAlias = new Entity(Node.TYPE_ABOX, ALIAS, false);
 					shortTitleAlias.addAttribute(new Attribute("alias", "text", this.valueShortTitle));
-					getWrapper().saveEntity(shortTitleAlias, getUserName());					
+					getWrapper().saveEntity(shortTitleAlias, getUserName(), null);					
 				} else {
 					//1) update value, 2) re-save alias
 					this.shortTitleAlias.getAttributeByName("alias").setOwnValue(this.valueShortTitle);
 					this.shortTitleAlias.removeAllSourceRelations("is_prime_alias_title_of", TEXT);
-					getWrapper().saveEntity(shortTitleAlias, getUserName());
+					getWrapper().saveEntity(shortTitleAlias, getUserName(), null);
 				}
 				new Relation(shortTitleAlias, this.entity, "is_prime_alias_title_of");
 			}
@@ -617,7 +631,7 @@
 			/*
 			 * save entity
 			 */
-			this.entity = getWrapper().saveEntity(this.entity, user.getEmail());
+			this.entity = getWrapper().saveEntity(this.entity, user.getEmail(), CurrentTextBean.editTextIntent);
 			this.getAppBean().setAllTextsAsDirty();
 			getAppBean().getSimpleSearchCache().setMapDirty(true);
 			
--- a/src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentWitnessBean.java	Thu Jan 26 19:35:49 2017 +0100
+++ b/src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentWitnessBean.java	Mon Jan 30 20:35:36 2017 +0100
@@ -259,7 +259,7 @@
 			if(this.isSelectedSaveAsNew()){
 				this.entity = getWrapper().saveEntityAsNew(this.entity, user.getEmail());
 			}else{
-				this.entity = getWrapper().saveEntity(this.entity, user.getEmail());
+				this.entity = getWrapper().saveEntity(this.entity, user.getEmail(), null);
 			}
 			this.setEntity(this.entity);
 			
@@ -299,9 +299,9 @@
 			if(alias == null){
 				alias = new Entity(Node.TYPE_ABOX, ALIAS, false);
 				alias.addAttribute(new Attribute(ALIAS, "text", valueTextWritten));
-				alias = getWrapper().saveEntity(alias, user.getEmail());
+				alias = getWrapper().saveEntity(alias, user.getEmail(), null);
 				new Relation(alias, this.titleLo.getEntity(), "is_alias_title_of");
-				alias = getWrapper().saveEntity(alias, user.getEmail());
+				alias = getWrapper().saveEntity(alias, user.getEmail(), null);
 			}			
 			if(alias.isLightweight()){
 				alias = getWrapper().getEntityByIdWithContent(alias.getId());
@@ -328,9 +328,9 @@
 			if(alias == null){
 				alias = new Entity(Node.TYPE_ABOX, ALIAS, false);
 				alias.addAttribute(new Attribute(ALIAS, "text", valueAuthorWritten));
-				alias = getWrapper().saveEntity(alias, user.getEmail());
+				alias = getWrapper().saveEntity(alias, user.getEmail(), null);
 				new Relation(alias, this.authorLo.getEntity(), "is_alias_name_of");
-				alias = getWrapper().saveEntity(alias, user.getEmail());
+				alias = getWrapper().saveEntity(alias, user.getEmail(), null);
 			}
 			if(alias.isLightweight()){
 				alias = getWrapper().getEntityByIdWithContent(alias.getId());
@@ -909,7 +909,7 @@
 			//if the Collection Status == OK && the Codex.identifier != null
 			Entity newCodex = new Entity(Node.TYPE_ABOX, CODEX, false);
 			newCodex.addAttribute(new Attribute("identifier", TEXT, identifier));
-			getWrapper().saveEntity(newCodex, user);
+			getWrapper().saveEntity(newCodex, user, null);
 			Relation isPartOf = new Relation(newCodex, getCollectionLo().getEntity(), is_part_of);
 			getWrapper().saveRelationAsNode(isPartOf, user);
 			getCodexLo().setEntityAndAttributeName(newCodex, "identifier");
--- a/src/main/java/de/mpiwg/itgroup/ismi/event/beans/CopyEvent.java	Thu Jan 26 19:35:49 2017 +0100
+++ b/src/main/java/de/mpiwg/itgroup/ismi/event/beans/CopyEvent.java	Mon Jan 30 20:35:36 2017 +0100
@@ -138,7 +138,7 @@
             }
 			event.replaceSourceRelation(witness, WITNESS, is_a_copy_of);
 			
-			getWrapper().saveEntity(event, getSessionUserName());
+			getWrapper().saveEntity(event, getSessionUserName(), null);
 			
 			printSuccessSavingEntity();
 			
--- a/src/main/java/de/mpiwg/itgroup/ismi/event/beans/StudyEvent.java	Thu Jan 26 19:35:49 2017 +0100
+++ b/src/main/java/de/mpiwg/itgroup/ismi/event/beans/StudyEvent.java	Mon Jan 30 20:35:36 2017 +0100
@@ -129,7 +129,7 @@
 			}
 			event.replaceSourceRelation(witness, WITNESS, is_a_study_of);
 			
-			getWrapper().saveEntity(event, getSessionUserName());
+			getWrapper().saveEntity(event, getSessionUserName(), null);
 			
 			printSuccessSavingEntity();
 			
--- a/src/main/java/de/mpiwg/itgroup/ismi/event/beans/TransferEvent.java	Thu Jan 26 19:35:49 2017 +0100
+++ b/src/main/java/de/mpiwg/itgroup/ismi/event/beans/TransferEvent.java	Mon Jan 30 20:35:36 2017 +0100
@@ -183,7 +183,7 @@
 			// EVENT -> was_transferred_in -> PLACE
 			event.replaceSourceRelation(placeLo.entity, PLACE, was_transferred_in);
 			
-			getWrapper().saveEntity(event, getSessionUserName());
+			getWrapper().saveEntity(event, getSessionUserName(), null);
 			
 			printSuccessSavingEntity();
 			
--- a/src/main/java/de/mpiwg/itgroup/ismi/merge/GeneralMerge.java	Thu Jan 26 19:35:49 2017 +0100
+++ b/src/main/java/de/mpiwg/itgroup/ismi/merge/GeneralMerge.java	Mon Jan 30 20:35:36 2017 +0100
@@ -215,7 +215,7 @@
 				
 				String user = getSessionUser().getEmail() + "_merge";
 				// save new entity
-                this.getWrapper().saveEntity(this.entResult, user);
+                this.getWrapper().saveEntity(this.entResult, user, null);
 				// remove old entities
 				this.getWrapper().removeCurrentVersionEntity(this.firstEntity, user);
 				this.getWrapper().removeCurrentVersionEntity(this.secondEntity, user);
--- a/src/main/java/de/mpiwg/itgroup/ismi/merge/ImportMerge.java	Thu Jan 26 19:35:49 2017 +0100
+++ b/src/main/java/de/mpiwg/itgroup/ismi/merge/ImportMerge.java	Mon Jan 30 20:35:36 2017 +0100
@@ -413,7 +413,7 @@
                 // print to log
                 this.printMergeInfo(entResult);
                 // save the new Entity
-                this.getWrapper().saveEntity(this.entResult, getSessionUser().getEmail() + "_merge");
+                this.getWrapper().saveEntity(this.entResult, getSessionUser().getEmail() + "_merge", null);
                 // update generated ownvalues
                 this.updateRelatedOW(this.entResult, getSessionUser().getEmail() + "_merge");
 
--- a/src/main/java/de/mpiwg/itgroup/ismi/merge/ReferenceMerge.java	Thu Jan 26 19:35:49 2017 +0100
+++ b/src/main/java/de/mpiwg/itgroup/ismi/merge/ReferenceMerge.java	Mon Jan 30 20:35:36 2017 +0100
@@ -208,7 +208,7 @@
                 }
                 
                 // save entity
-                this.getWrapper().saveEntity(ent, getSessionUser().getEmail() + "_merge");
+                this.getWrapper().saveEntity(ent, getSessionUser().getEmail() + "_merge", null);
 		    }
 
 		    addGeneralMsg(secondEntityMap.size() + " references were changed successfully");
--- a/src/main/java/de/mpiwg/itgroup/ismi/util/guiComponents/EntityList.java	Thu Jan 26 19:35:49 2017 +0100
+++ b/src/main/java/de/mpiwg/itgroup/ismi/util/guiComponents/EntityList.java	Mon Jan 30 20:35:36 2017 +0100
@@ -85,7 +85,7 @@
 				Entity e = new Entity(Node.TYPE_ABOX, lo.getClassObj(), false);
 				e.setOwnValue(input);
 				e.addAttribute(new Attribute(this.lo.getAttName(), "text", input));
-				otg.saveEntity(e, this.user);
+				otg.saveEntity(e, this.user, null);
 				this.add(e);	
 			}			
 		} catch (Exception e) {
@@ -101,7 +101,7 @@
 				Entity e = new Entity(Node.TYPE_ABOX, lo.getClassObj(), false);
 				e.setOwnValue(input);
 				e.addAttribute(new Attribute(this.lo.getAttName(), "text", input));
-				otg.saveEntity(e, this.user);
+				otg.saveEntity(e, this.user, null);
 				this.add(e);
 			}			
 		} catch (Exception e) {
--- a/src/main/java/de/mpiwg/itgroup/ismi/util/guiComponents/Misattribution.java	Thu Jan 26 19:35:49 2017 +0100
+++ b/src/main/java/de/mpiwg/itgroup/ismi/util/guiComponents/Misattribution.java	Mon Jan 30 20:35:36 2017 +0100
@@ -36,7 +36,7 @@
 		
 		// save reference
 		Entity entityRef = this.ref.getEnt();
-		ot.saveEntity(entityRef, userName);
+		ot.saveEntity(entityRef, userName, null);
 
 		// set person relation to misattribution
 		this.misatt.removeAllSourceRelations(MISATTRIBUTED_TO, "PERSON");
@@ -51,7 +51,7 @@
 		new Relation(text, misatt, HAS_AUTHOR_MISATT);
 		
 		// save misattribution
-		ot.saveEntity(misatt, userName);
+		ot.saveEntity(misatt, userName, null);
 		
 		return text;
 	}
--- a/src/main/java/de/mpiwg/itgroup/ismi/util/guiComponents/Misidentification.java	Thu Jan 26 19:35:49 2017 +0100
+++ b/src/main/java/de/mpiwg/itgroup/ismi/util/guiComponents/Misidentification.java	Mon Jan 30 20:35:36 2017 +0100
@@ -53,7 +53,7 @@
 
 		// save reference
 		Entity entityRef = this.ref.getEnt();
-		ot.saveEntity(entityRef, userName);
+		ot.saveEntity(entityRef, userName, null);
 
 		// set person relation to misidentification
 		this.misident.removeAllSourceRelations(MISATTRIBUTED_TO, "PERSON");
@@ -72,7 +72,7 @@
 
 		// save misidentification 
 		// FIXME: really save here?
-		ot.saveEntity(misident, userName);
+		ot.saveEntity(misident, userName, null);
 
 		return witness;
 	}
--- a/src/main/java/de/mpiwg/itgroup/ismi/util/guiComponents/Reference.java	Thu Jan 26 19:35:49 2017 +0100
+++ b/src/main/java/de/mpiwg/itgroup/ismi/util/guiComponents/Reference.java	Mon Jan 30 20:35:36 2017 +0100
@@ -7,6 +7,7 @@
 import org.mpi.openmind.repository.bo.Attribute;
 import org.mpi.openmind.repository.bo.Entity;
 import org.mpi.openmind.repository.bo.Node;
+import org.mpi.openmind.repository.services.utils.EditIntent;
 
 import de.mpiwg.itgroup.ismi.entry.beans.AbstractISMIBean;
 
@@ -29,6 +30,16 @@
 	private String addInformation;
 	//private int mode = CREATION;
 	
+	/** intent to edit all attributes and relations in the form */
+	public static EditIntent editReferenceIntent = new EditIntent(
+			AbstractISMIBean.REFERENCE,
+			// attributes
+			new String[]{ENDNOTE_ID, ENDNOTE_CONTENT, ADD_INFORMATION},
+			// source relations
+			new String[]{"is_reference_of"},
+			// target relations
+			new String[]{});
+
 	@Override
 	protected Object clone() throws CloneNotSupportedException {
 		return super.clone();