annotate src/main/java/de/mpiwg/itgroup/ismi/event/beans/CopyEvent.java @ 215:26138384984c

update more instances of IIIF server URL.
author casties
date Sat, 15 Jan 2022 16:09:55 +0100
parents 25bfcc9d757c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
jurzua
parents:
diff changeset
1 package de.mpiwg.itgroup.ismi.event.beans;
jurzua
parents:
diff changeset
2
jurzua
parents:
diff changeset
3 import java.io.Serializable;
jurzua
parents:
diff changeset
4 import java.util.ArrayList;
jurzua
parents:
diff changeset
5
jurzua
parents:
diff changeset
6 import javax.faces.event.ActionEvent;
jurzua
parents:
diff changeset
7 import javax.faces.model.SelectItem;
jurzua
parents:
diff changeset
8
jurzua
parents:
diff changeset
9 import org.mpi.openmind.repository.bo.Entity;
jurzua
parents:
diff changeset
10 import org.mpi.openmind.repository.bo.Node;
jurzua
parents:
diff changeset
11 import org.mpi.openmind.repository.bo.Relation;
jurzua
parents:
diff changeset
12
112
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
13 import de.mpiwg.itgroup.ismi.auxObjects.AliasListenerObject;
1
jurzua
parents:
diff changeset
14 import de.mpiwg.itgroup.ismi.auxObjects.ListenerObject;
jurzua
parents:
diff changeset
15 import de.mpiwg.itgroup.ismi.auxObjects.lo.EventTextLO;
jurzua
parents:
diff changeset
16 import de.mpiwg.itgroup.ismi.util.guiComponents.Calendar;
jurzua
parents:
diff changeset
17
jurzua
parents:
diff changeset
18 public class CopyEvent extends AbstractEvent implements Serializable{
jurzua
parents:
diff changeset
19
jurzua
parents:
diff changeset
20 /**
jurzua
parents:
diff changeset
21 *
jurzua
parents:
diff changeset
22 */
jurzua
parents:
diff changeset
23 private static final long serialVersionUID = 1545705063133894571L;
jurzua
parents:
diff changeset
24
jurzua
parents:
diff changeset
25 public static String OC = "COPY_EVENT";
jurzua
parents:
diff changeset
26
112
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
27 private ListenerObject personCopiedForLo;
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
28 private ListenerObject personCopyingTextLo;
1
jurzua
parents:
diff changeset
29
jurzua
parents:
diff changeset
30 private Calendar date;
jurzua
parents:
diff changeset
31
jurzua
parents:
diff changeset
32 @Override
jurzua
parents:
diff changeset
33 public void setEvent(Entity ev){
jurzua
parents:
diff changeset
34 reset();
jurzua
parents:
diff changeset
35 event = ev;
jurzua
parents:
diff changeset
36 if(event != null && event.isPersistent()){
jurzua
parents:
diff changeset
37 if(event.isLightweight()){
jurzua
parents:
diff changeset
38 event = getWrapper().getEntityContent(event);
jurzua
parents:
diff changeset
39 }
jurzua
parents:
diff changeset
40
jurzua
parents:
diff changeset
41 this.loadAttributes(this.event);
jurzua
parents:
diff changeset
42 this.date = updateCalendar(this.event.getAttributeByName("date"));
jurzua
parents:
diff changeset
43
jurzua
parents:
diff changeset
44 for (Relation rel : event.getSourceRelations()) {
jurzua
parents:
diff changeset
45 Entity target = null;
jurzua
parents:
diff changeset
46 if (rel.getOwnValue().equals(was_copied_for)) {
95
12af756065b5 better transaction logging and some cleanup.
casties
parents: 1
diff changeset
47 //EVENT was_copied_for PERSON
1
jurzua
parents:
diff changeset
48 target = getTargetRelation(rel);
111
22a18bfc66b0 new completion that uses ALIASes: AbstractListenerObject. was_copied_in in WITNESS form can use PLACE aliases now. some cleanup.
casties
parents: 95
diff changeset
49 personCopiedForLo.setEntityAndAttribute(target);
1
jurzua
parents:
diff changeset
50 }else if (rel.getOwnValue().equals(has_person_copying_text)) {
95
12af756065b5 better transaction logging and some cleanup.
casties
parents: 1
diff changeset
51 //EVENT has_person_copying_text PERSON
1
jurzua
parents:
diff changeset
52 target = getTargetRelation(rel);
111
22a18bfc66b0 new completion that uses ALIASes: AbstractListenerObject. was_copied_in in WITNESS form can use PLACE aliases now. some cleanup.
casties
parents: 95
diff changeset
53 personCopyingTextLo.setEntityAndAttribute(target);
1
jurzua
parents:
diff changeset
54 } else if (rel.getOwnValue().equals(was_copied_in)) {
112
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
55 // EVENT was_copied_in PLACE
1
jurzua
parents:
diff changeset
56 target = getTargetRelation(rel);
112
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
57 placeLo.setEntityAndAttributeIfEmpty(target);
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
58 } else if (rel.getOwnValue().equals(was_copied_in_as)) {
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
59 // EVENT was_copied_in_as ALIAS
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
60 target = getTargetRelation(rel);
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
61 placeLo.setEntityAndAttribute(target);
1
jurzua
parents:
diff changeset
62 } else if (rel.getOwnValue().equals(is_a_copy_of)) {
112
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
63 // EVENT is_a_copy_of WITNESS
1
jurzua
parents:
diff changeset
64 this.witness = getTargetRelation(rel);
jurzua
parents:
diff changeset
65 if(witness != null && witness.isPersistent()){
jurzua
parents:
diff changeset
66 witnessId = witness.getId();
112
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
67 // WITNESS is_exemplar_of TEXT
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
68 this.textLo.setEntityAndAttribute(getTextOfWitness(witness));
1
jurzua
parents:
diff changeset
69 refreshWitnesses(textLo.entity);
jurzua
parents:
diff changeset
70 }
jurzua
parents:
diff changeset
71 }
jurzua
parents:
diff changeset
72 }
jurzua
parents:
diff changeset
73 }
jurzua
parents:
diff changeset
74 }
jurzua
parents:
diff changeset
75
jurzua
parents:
diff changeset
76 @Override
jurzua
parents:
diff changeset
77 public void reset(){
112
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
78 super.reset();
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
79 this.defObjectClass = OC;
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
80
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
81 if (textLo != null) {
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
82 textLo.reset();
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
83 } else {
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
84 textLo = new EventTextLO(TEXT, full_title_translit, this);
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
85 }
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
86
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
87 if (personCopiedForLo != null) {
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
88 personCopiedForLo.reset();
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
89 } else {
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
90 personCopiedForLo = new ListenerObject(PERSON, name_translit);
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
91 }
1
jurzua
parents:
diff changeset
92
112
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
93 if (personCopyingTextLo != null) {
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
94 personCopyingTextLo.reset();
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
95 } else {
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
96 personCopyingTextLo = new ListenerObject(PERSON, name_translit);
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
97 }
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
98
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
99 if (placeLo != null) {
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
100 placeLo.reset();
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
101 } else {
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
102 placeLo = new AliasListenerObject(PLACE, name, is_alias_name_of);
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
103 }
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
104
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
105 this.date = new Calendar();
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
106 this.witnessList = new ArrayList<SelectItem>();
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 111
diff changeset
107 }
1
jurzua
parents:
diff changeset
108
jurzua
parents:
diff changeset
109 public void listenerSave(ActionEvent event) {
jurzua
parents:
diff changeset
110 this.save();
jurzua
parents:
diff changeset
111 }
jurzua
parents:
diff changeset
112
jurzua
parents:
diff changeset
113 @Override
jurzua
parents:
diff changeset
114 public String save(){
jurzua
parents:
diff changeset
115 super.save();
jurzua
parents:
diff changeset
116 if(!checkConsistency()){
jurzua
parents:
diff changeset
117 addGeneralMsg("Either the Witness, the Person or the Place is empty.");
jurzua
parents:
diff changeset
118 addGeneralMsg("The event could not be saved.");
jurzua
parents:
diff changeset
119 return null;
jurzua
parents:
diff changeset
120 }
jurzua
parents:
diff changeset
121
jurzua
parents:
diff changeset
122 try{
jurzua
parents:
diff changeset
123 getAttributes().put("date", this.date.toJSONString());
jurzua
parents:
diff changeset
124 event = updateEntityAttributes(event);
jurzua
parents:
diff changeset
125
jurzua
parents:
diff changeset
126 // EVENT -> was_copied_for -> PERSON
134
25bfcc9d757c effort to re-use more relations when saving entities.
casties
parents: 124
diff changeset
127 event.replaceUniqueSourceRelation(personCopiedForLo.entity, PERSON, was_copied_for);
1
jurzua
parents:
diff changeset
128
jurzua
parents:
diff changeset
129 // EVENT -> has_person_copying_text -> PERSON
134
25bfcc9d757c effort to re-use more relations when saving entities.
casties
parents: 124
diff changeset
130 event.replaceUniqueSourceRelation(personCopyingTextLo.entity, PERSON, has_person_copying_text);
1
jurzua
parents:
diff changeset
131
jurzua
parents:
diff changeset
132 // EVENT -> was_copied_in -> PLACE
134
25bfcc9d757c effort to re-use more relations when saving entities.
casties
parents: 124
diff changeset
133 replaceUniqueAliasSourceRelation(event, placeLo, PLACE, was_copied_in, was_copied_in_as);
1
jurzua
parents:
diff changeset
134
jurzua
parents:
diff changeset
135 // EVENT -> is_a_copy_of -> WITNESS
113
8e3f1f81acfb small cleanup.
casties
parents: 112
diff changeset
136 if (witness.isLightweight()) {
8e3f1f81acfb small cleanup.
casties
parents: 112
diff changeset
137 this.witness = getWrapper().getEntityByIdWithContent(witness.getId());
8e3f1f81acfb small cleanup.
casties
parents: 112
diff changeset
138 }
134
25bfcc9d757c effort to re-use more relations when saving entities.
casties
parents: 124
diff changeset
139 event.replaceUniqueSourceRelation(witness, WITNESS, is_a_copy_of);
1
jurzua
parents:
diff changeset
140
124
28a0c2726466 changed saveEntity() to use new EditIntent. Set up EditIntent for TEXT, PERSON, REFERENCE.
casties
parents: 113
diff changeset
141 getWrapper().saveEntity(event, getSessionUserName(), null);
1
jurzua
parents:
diff changeset
142
jurzua
parents:
diff changeset
143 printSuccessSavingEntity();
jurzua
parents:
diff changeset
144
jurzua
parents:
diff changeset
145 }catch (Exception e) {
jurzua
parents:
diff changeset
146 addGeneralMsg(e.getMessage());
jurzua
parents:
diff changeset
147 logger.error(e.getMessage(), e);
jurzua
parents:
diff changeset
148 }
jurzua
parents:
diff changeset
149 saveEnd();
jurzua
parents:
diff changeset
150 return null;
jurzua
parents:
diff changeset
151 }
jurzua
parents:
diff changeset
152
jurzua
parents:
diff changeset
153 public boolean checkConsistency(){
jurzua
parents:
diff changeset
154 if(this.witness == null ||
jurzua
parents:
diff changeset
155 this.textLo.entity == null ||
jurzua
parents:
diff changeset
156 this.personCopiedForLo.entity == null ||
jurzua
parents:
diff changeset
157 this.personCopyingTextLo.entity == null){
jurzua
parents:
diff changeset
158 return false;
jurzua
parents:
diff changeset
159 }
jurzua
parents:
diff changeset
160 return true;
jurzua
parents:
diff changeset
161 }
jurzua
parents:
diff changeset
162
jurzua
parents:
diff changeset
163 public CopyEvent(Entity event) {
jurzua
parents:
diff changeset
164 super(event);
jurzua
parents:
diff changeset
165 }
jurzua
parents:
diff changeset
166
jurzua
parents:
diff changeset
167 public CopyEvent(){
jurzua
parents:
diff changeset
168 super(new Entity(Node.TYPE_ABOX, OC, false));
jurzua
parents:
diff changeset
169 }
jurzua
parents:
diff changeset
170
jurzua
parents:
diff changeset
171 public ListenerObject getPersonCopiedForLo() {
jurzua
parents:
diff changeset
172 return personCopiedForLo;
jurzua
parents:
diff changeset
173 }
jurzua
parents:
diff changeset
174
jurzua
parents:
diff changeset
175 public void setPersonCopiedForLo(ListenerObject personCopiedForLo) {
jurzua
parents:
diff changeset
176 this.personCopiedForLo = personCopiedForLo;
jurzua
parents:
diff changeset
177 }
jurzua
parents:
diff changeset
178
jurzua
parents:
diff changeset
179 public ListenerObject getPersonCopyingTextLo() {
jurzua
parents:
diff changeset
180 return personCopyingTextLo;
jurzua
parents:
diff changeset
181 }
jurzua
parents:
diff changeset
182
jurzua
parents:
diff changeset
183 public void setPersonCopyingTextLo(ListenerObject personCopyingTextLo) {
jurzua
parents:
diff changeset
184 this.personCopyingTextLo = personCopyingTextLo;
jurzua
parents:
diff changeset
185 }
jurzua
parents:
diff changeset
186
jurzua
parents:
diff changeset
187 public Calendar getDate() {
jurzua
parents:
diff changeset
188 return date;
jurzua
parents:
diff changeset
189 }
jurzua
parents:
diff changeset
190
jurzua
parents:
diff changeset
191 public void setDate(Calendar date) {
jurzua
parents:
diff changeset
192 this.date = date;
jurzua
parents:
diff changeset
193 }
jurzua
parents:
diff changeset
194 }