annotate src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentWitnessBean.java @ 133:5ccd6e709f95

fix attribute name in EditIntent.
author casties
date Thu, 23 Feb 2017 19:25:37 +0100
parents eee2e0ca4032
children 25bfcc9d757c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
jurzua
parents:
diff changeset
1 package de.mpiwg.itgroup.ismi.entry.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 import java.util.List;
jurzua
parents:
diff changeset
6
jurzua
parents:
diff changeset
7 import javax.faces.component.UIComponent;
jurzua
parents:
diff changeset
8 import javax.faces.event.ActionEvent;
jurzua
parents:
diff changeset
9 import javax.faces.event.ValueChangeEvent;
jurzua
parents:
diff changeset
10 import javax.faces.model.SelectItem;
jurzua
parents:
diff changeset
11
jurzua
parents:
diff changeset
12 import org.apache.commons.lang.StringUtils;
jurzua
parents:
diff changeset
13 import org.apache.log4j.Logger;
jurzua
parents:
diff changeset
14 import org.mpi.openmind.repository.bo.Attribute;
jurzua
parents:
diff changeset
15 import org.mpi.openmind.repository.bo.Entity;
jurzua
parents:
diff changeset
16 import org.mpi.openmind.repository.bo.Node;
jurzua
parents:
diff changeset
17 import org.mpi.openmind.repository.bo.Relation;
125
eee2e0ca4032 updated entry beans to use EditIntents.
casties
parents: 124
diff changeset
18 import org.mpi.openmind.repository.services.utils.EditIntent;
1
jurzua
parents:
diff changeset
19 import org.mpi.openmind.security.bo.User;
jurzua
parents:
diff changeset
20
111
22a18bfc66b0 new completion that uses ALIASes: AbstractListenerObject. was_copied_in in WITNESS form can use PLACE aliases now. some cleanup.
casties
parents: 1
diff changeset
21 import de.mpiwg.itgroup.ismi.auxObjects.AliasListenerObject;
1
jurzua
parents:
diff changeset
22 import de.mpiwg.itgroup.ismi.auxObjects.ListenerObject;
jurzua
parents:
diff changeset
23 import de.mpiwg.itgroup.ismi.auxObjects.lo.WitnessAuthorLO;
jurzua
parents:
diff changeset
24 import de.mpiwg.itgroup.ismi.auxObjects.lo.WitnessTextLO;
jurzua
parents:
diff changeset
25 import de.mpiwg.itgroup.ismi.util.guiComponents.Calendar;
jurzua
parents:
diff changeset
26 import de.mpiwg.itgroup.ismi.util.guiComponents.EntityList;
120
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
27 import de.mpiwg.itgroup.ismi.util.guiComponents.Misidentification;
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
28 import de.mpiwg.itgroup.ismi.util.guiComponents.MisidentificationTable;
1
jurzua
parents:
diff changeset
29 import de.mpiwg.itgroup.ismi.util.guiComponents.StatusImage;
jurzua
parents:
diff changeset
30
jurzua
parents:
diff changeset
31 public class CurrentWitnessBean extends CodexEditorTemplate implements Serializable{
jurzua
parents:
diff changeset
32
jurzua
parents:
diff changeset
33 private static final long serialVersionUID = -7645136722251494419L;
jurzua
parents:
diff changeset
34
jurzua
parents:
diff changeset
35 private static Logger logger = Logger.getLogger(CurrentWitnessBean.class);
jurzua
parents:
diff changeset
36
jurzua
parents:
diff changeset
37 private Boolean codicesOverviewRendered = false;
jurzua
parents:
diff changeset
38 private List <CodexForList> codicesAll = new ArrayList<CodexForList>();
jurzua
parents:
diff changeset
39
jurzua
parents:
diff changeset
40 private List<SelectItem> titles_list = new ArrayList<SelectItem>();
jurzua
parents:
diff changeset
41 private Long selectedTitleId;
jurzua
parents:
diff changeset
42 private Boolean selectTitleRendered = false;
jurzua
parents:
diff changeset
43 private String selectPersonType;
jurzua
parents:
diff changeset
44
jurzua
parents:
diff changeset
45 private List<SelectItem> persons_list = new ArrayList<SelectItem>();
jurzua
parents:
diff changeset
46 private Long selectedPersonId;
jurzua
parents:
diff changeset
47 private Boolean selectPersonRendered = false;
jurzua
parents:
diff changeset
48 private Boolean restrictedByRole = true;
jurzua
parents:
diff changeset
49
jurzua
parents:
diff changeset
50 //private Entity witness;
jurzua
parents:
diff changeset
51
jurzua
parents:
diff changeset
52 private ListenerObject titleLo = new WitnessTextLO(TEXT, full_title_translit, this);
jurzua
parents:
diff changeset
53
jurzua
parents:
diff changeset
54 private String valueTitle = "";
jurzua
parents:
diff changeset
55
jurzua
parents:
diff changeset
56 // WITNESS -> has_title_written_as -> ALIAS
jurzua
parents:
diff changeset
57 private String valueTextWritten = "";
jurzua
parents:
diff changeset
58 private List<SelectItem> suggestedTitlesWritten = new ArrayList<SelectItem>();
jurzua
parents:
diff changeset
59 private Long valueTitleSelectedId;
jurzua
parents:
diff changeset
60
jurzua
parents:
diff changeset
61 // WITNESS -> has_authorWritten_as -> ALIAS
jurzua
parents:
diff changeset
62 private String valueAuthorWritten = "";
jurzua
parents:
diff changeset
63 private List<SelectItem> suggestedAuthorsWritten = new ArrayList<SelectItem>();
jurzua
parents:
diff changeset
64 private Long valueAuthorSelectedId;
jurzua
parents:
diff changeset
65
jurzua
parents:
diff changeset
66 // WITNESS -> is_exemplar_of -> TEXT -> was_created_by -> PERSON
jurzua
parents:
diff changeset
67 private ListenerObject authorLo = new WitnessAuthorLO(PERSON, name_translit, this);
jurzua
parents:
diff changeset
68 private String valueAuthor = "";
jurzua
parents:
diff changeset
69
jurzua
parents:
diff changeset
70 private boolean textUnknown = false;
jurzua
parents:
diff changeset
71 private static String UNKNOWN = "UNKNOWN";
jurzua
parents:
diff changeset
72
jurzua
parents:
diff changeset
73
jurzua
parents:
diff changeset
74 // WITENSS -> was_copied_by -> PERSON
jurzua
parents:
diff changeset
75 private ListenerObject copyistLo = new ListenerObject(PERSON, name_translit);
jurzua
parents:
diff changeset
76
jurzua
parents:
diff changeset
77 // WITENSS -> was_copied_at -> PLACE
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 private AliasListenerObject copyPlaceLo = new AliasListenerObject(PLACE, name, "is_alias_name_of");
1
jurzua
parents:
diff changeset
79
jurzua
parents:
diff changeset
80 // WITNESS -> xx -> PERSON
jurzua
parents:
diff changeset
81 private ListenerObject patronageLo = new ListenerObject(PERSON, name_translit);
jurzua
parents:
diff changeset
82
jurzua
parents:
diff changeset
83 //private List<SelectItem> citiesWithRepositories;
jurzua
parents:
diff changeset
84 private boolean foundCodex;
jurzua
parents:
diff changeset
85
jurzua
parents:
diff changeset
86 private boolean lockValueAuthor = false;
jurzua
parents:
diff changeset
87 private boolean lockValueTitle = false;
jurzua
parents:
diff changeset
88
jurzua
parents:
diff changeset
89 private boolean createCodexRendered = false;
jurzua
parents:
diff changeset
90 private boolean renderShowAllCodexCandidates = false;
jurzua
parents:
diff changeset
91 //private Entity witness_old;
jurzua
parents:
diff changeset
92
jurzua
parents:
diff changeset
93 private String newIdentifier;
jurzua
parents:
diff changeset
94
jurzua
parents:
diff changeset
95 //private IslamicCalendar islamicCalCopyDate;
jurzua
parents:
diff changeset
96 private transient Calendar copyDate;
jurzua
parents:
diff changeset
97
jurzua
parents:
diff changeset
98 private EntityList studiedByList;
jurzua
parents:
diff changeset
99 private EntityList possibleExamplerOfList;
120
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
100
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
101 private MisidentificationTable misidentTable;
1
jurzua
parents:
diff changeset
102
125
eee2e0ca4032 updated entry beans to use EditIntents.
casties
parents: 124
diff changeset
103 /** intent to edit all attributes and relations in the form */
133
5ccd6e709f95 fix attribute name in EditIntent.
casties
parents: 125
diff changeset
104 public static EditIntent editWitnessIntent = new EditIntent (
125
eee2e0ca4032 updated entry beans to use EditIntents.
casties
parents: 124
diff changeset
105 AbstractISMIBean.WITNESS,
eee2e0ca4032 updated entry beans to use EditIntents.
casties
parents: 124
diff changeset
106 // attributes
133
5ccd6e709f95 fix attribute name in EditIntent.
casties
parents: 125
diff changeset
107 new String[] {"ahlwardt_no", "creation_date", "table_of_contents", "incipit", "explicit", "colophon",
125
eee2e0ca4032 updated entry beans to use EditIntents.
casties
parents: 124
diff changeset
108 "folios", "is_autograph", "page_dimensions", "written_area_dimensions", "lines_per_page",
eee2e0ca4032 updated entry beans to use EditIntents.
casties
parents: 124
diff changeset
109 "writing_surface", "page_layout", "script", "other_features", "diagrams_and_illustrations",
eee2e0ca4032 updated entry beans to use EditIntents.
casties
parents: 124
diff changeset
110 "scans", "notes", "notes_old", "notes_on_title_author", "notes_on_collation_and_corrections",
eee2e0ca4032 updated entry beans to use EditIntents.
casties
parents: 124
diff changeset
111 "notes_on_ownership", "source_of_information"},
eee2e0ca4032 updated entry beans to use EditIntents.
casties
parents: 124
diff changeset
112 // source relations
133
5ccd6e709f95 fix attribute name in EditIntent.
casties
parents: 125
diff changeset
113 new String[] {"is_exemplar_of", "is_part_of", "has_author_misidentification", "was_copied_by",
125
eee2e0ca4032 updated entry beans to use EditIntents.
casties
parents: 124
diff changeset
114 "was_copied_in", "was_copied_in_as", "had_patron", "was_studied_by"},
eee2e0ca4032 updated entry beans to use EditIntents.
casties
parents: 124
diff changeset
115 // target relations
133
5ccd6e709f95 fix attribute name in EditIntent.
casties
parents: 125
diff changeset
116 new String[] {"is_reference_of"});
125
eee2e0ca4032 updated entry beans to use EditIntents.
casties
parents: 124
diff changeset
117
1
jurzua
parents:
diff changeset
118 public CurrentWitnessBean() {
jurzua
parents:
diff changeset
119 super();
jurzua
parents:
diff changeset
120 this.entity = new Entity(Node.TYPE_ABOX, WITNESS, false);
jurzua
parents:
diff changeset
121 setDefObjectClass(WITNESS);
jurzua
parents:
diff changeset
122
jurzua
parents:
diff changeset
123 registerChecker(copyistLo.statusImage, "Copyist not valid");
133
5ccd6e709f95 fix attribute name in EditIntent.
casties
parents: 125
diff changeset
124 registerChecker(copyPlaceLo.statusImage, "Copy place not valid");
1
jurzua
parents:
diff changeset
125 registerChecker(patronageLo.statusImage,"Patron not valid");
jurzua
parents:
diff changeset
126
jurzua
parents:
diff changeset
127 }
jurzua
parents:
diff changeset
128
jurzua
parents:
diff changeset
129 @Override
jurzua
parents:
diff changeset
130 public void reset(){
jurzua
parents:
diff changeset
131 super.reset();
jurzua
parents:
diff changeset
132 this.entity = new Entity(Node.TYPE_ABOX, WITNESS, false);
jurzua
parents:
diff changeset
133 this.studiedByList = new EntityList(PERSON, "name_translit", "Studied by");
jurzua
parents:
diff changeset
134 this.possibleExamplerOfList = new EntityList(TEXT, "full_title_translit", "Possible titles");
jurzua
parents:
diff changeset
135
jurzua
parents:
diff changeset
136 this.codicesOverviewRendered = false;
jurzua
parents:
diff changeset
137 this.codicesAll = new ArrayList<CodexForList>();
jurzua
parents:
diff changeset
138
jurzua
parents:
diff changeset
139 this.titles_list = new ArrayList<SelectItem>();
jurzua
parents:
diff changeset
140 this.selectedTitleId = null;
jurzua
parents:
diff changeset
141 this.selectTitleRendered = false;
jurzua
parents:
diff changeset
142 this.selectPersonType = "";
jurzua
parents:
diff changeset
143
jurzua
parents:
diff changeset
144 this.persons_list = new ArrayList<SelectItem>();
jurzua
parents:
diff changeset
145 this.selectedPersonId = null;
jurzua
parents:
diff changeset
146 this.selectPersonRendered = false;
jurzua
parents:
diff changeset
147 this.restrictedByRole = true;
jurzua
parents:
diff changeset
148
jurzua
parents:
diff changeset
149 if(titleLo != null)
jurzua
parents:
diff changeset
150 this.titleLo.reset();
jurzua
parents:
diff changeset
151
jurzua
parents:
diff changeset
152 this.valueTitle = "";
jurzua
parents:
diff changeset
153
jurzua
parents:
diff changeset
154 // WITNESS -> has_title_written_as -> ALIAS
jurzua
parents:
diff changeset
155 this.valueTextWritten = "";
jurzua
parents:
diff changeset
156 this.suggestedTitlesWritten = new ArrayList<SelectItem>();
jurzua
parents:
diff changeset
157 this.valueTitleSelectedId = null;
jurzua
parents:
diff changeset
158
jurzua
parents:
diff changeset
159 // WITNESS -> has_author_written_as -> ALIAS
jurzua
parents:
diff changeset
160 this.valueAuthorWritten = "";
jurzua
parents:
diff changeset
161 this.suggestedAuthorsWritten = new ArrayList<SelectItem>();
jurzua
parents:
diff changeset
162 this.valueAuthorSelectedId = null;
jurzua
parents:
diff changeset
163
jurzua
parents:
diff changeset
164 // WITNESS -> is_exemplar_of -> TEXT -> was_created_by -> PERSON
jurzua
parents:
diff changeset
165 if(this.authorLo != null)
jurzua
parents:
diff changeset
166 this.authorLo.reset();
jurzua
parents:
diff changeset
167 this.valueAuthor = "";
jurzua
parents:
diff changeset
168
jurzua
parents:
diff changeset
169 // WITENSS -> was_copied_by -> PERSON
jurzua
parents:
diff changeset
170 if(copyistLo != null)
jurzua
parents:
diff changeset
171 this.copyistLo.reset();
jurzua
parents:
diff changeset
172
jurzua
parents:
diff changeset
173 // WITENSS -> was_copied_in -> PLACE
jurzua
parents:
diff changeset
174 if(this.copyPlaceLo != null)
jurzua
parents:
diff changeset
175 this.copyPlaceLo.reset();
jurzua
parents:
diff changeset
176
jurzua
parents:
diff changeset
177 // WITNESS -> xx -> PERSON
jurzua
parents:
diff changeset
178 if(patronageLo != null)
jurzua
parents:
diff changeset
179 this.patronageLo.reset();
jurzua
parents:
diff changeset
180
jurzua
parents:
diff changeset
181 //this.citiesWithRepositories = null;
jurzua
parents:
diff changeset
182 this.foundCodex = false;
jurzua
parents:
diff changeset
183
jurzua
parents:
diff changeset
184 this.lockValueAuthor = true;
jurzua
parents:
diff changeset
185 this.lockValueTitle = true;
jurzua
parents:
diff changeset
186
jurzua
parents:
diff changeset
187 this.createCodexRendered = false;
jurzua
parents:
diff changeset
188 this.renderShowAllCodexCandidates = false;
jurzua
parents:
diff changeset
189
jurzua
parents:
diff changeset
190 this.newIdentifier = "";
jurzua
parents:
diff changeset
191
jurzua
parents:
diff changeset
192 //this.islamicCalCopyDate = new IslamicCalendar();
jurzua
parents:
diff changeset
193 this.copyDate = new Calendar();
120
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
194
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
195 this.misidentTable = new MisidentificationTable();
1
jurzua
parents:
diff changeset
196 }
jurzua
parents:
diff changeset
197
jurzua
parents:
diff changeset
198 @Override
jurzua
parents:
diff changeset
199 public String save() {
jurzua
parents:
diff changeset
200 super.save();
jurzua
parents:
diff changeset
201 try {
jurzua
parents:
diff changeset
202
jurzua
parents:
diff changeset
203 User user = getSessionUser();
jurzua
parents:
diff changeset
204
jurzua
parents:
diff changeset
205 if(!isCodexIdentifierSet(user.getEmail())){
jurzua
parents:
diff changeset
206 return "SAVE_ERROR";
jurzua
parents:
diff changeset
207 }
jurzua
parents:
diff changeset
208
jurzua
parents:
diff changeset
209 if(!isWitnessConsistentBeforeSave()){
jurzua
parents:
diff changeset
210 return "SAVE_ERROR";
jurzua
parents:
diff changeset
211 }
jurzua
parents:
diff changeset
212
jurzua
parents:
diff changeset
213 //checking if some LO is not OK.
jurzua
parents:
diff changeset
214 CheckResults cr = getCheckResults();
jurzua
parents:
diff changeset
215 if (cr.hasErrors){
jurzua
parents:
diff changeset
216 getSessionBean().setErrorMessages(cr);
jurzua
parents:
diff changeset
217 getSessionBean().setDisplayError(true);
jurzua
parents:
diff changeset
218 this.setSelectedSaveAsNew(false);
jurzua
parents:
diff changeset
219 return "SAVE_ERROR";
jurzua
parents:
diff changeset
220 }
jurzua
parents:
diff changeset
221
jurzua
parents:
diff changeset
222 getAttributes().put("creation_date", this.copyDate.toJSONString());
jurzua
parents:
diff changeset
223
jurzua
parents:
diff changeset
224 this.entity = this.updateEntityAttributes(this.entity);
jurzua
parents:
diff changeset
225
jurzua
parents:
diff changeset
226 // WITNESS -> is_part_of -> CODEX
jurzua
parents:
diff changeset
227 this.entity.replaceSourceRelation(getCodexLo().entity, CODEX, is_part_of);
jurzua
parents:
diff changeset
228
jurzua
parents:
diff changeset
229 // WITNESS -> is_exemplar_of -> TEXT -> was_created_by -> PERSON
jurzua
parents:
diff changeset
230 //replaceSourceRelation(this.entity, this.author, PERSON, was_created_by);
jurzua
parents:
diff changeset
231
jurzua
parents:
diff changeset
232 // WITENSS -> was_copied_by -> PERSON
jurzua
parents:
diff changeset
233 this.entity.replaceSourceRelation(this.copyistLo.entity, PERSON, rel_was_copied_by);
jurzua
parents:
diff changeset
234
111
22a18bfc66b0 new completion that uses ALIASes: AbstractListenerObject. was_copied_in in WITNESS form can use PLACE aliases now. some cleanup.
casties
parents: 1
diff changeset
235 // WITNESS -> was_copied_in -> PLACE
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
236 replaceAliasSourceRelation(this.entity, this.copyPlaceLo, PLACE, "was_copied_in", "was_copied_in_as");
1
jurzua
parents:
diff changeset
237
jurzua
parents:
diff changeset
238 //REFERENCE -> is_reference_of -> WITNESS
jurzua
parents:
diff changeset
239 //this.entity = this.prepareReferencesToSave(this.entity);
jurzua
parents:
diff changeset
240 this.prepareEndNoteRefs2Save();
jurzua
parents:
diff changeset
241
jurzua
parents:
diff changeset
242 //WITNESS -> was studied by manyToMany -> PERSON
jurzua
parents:
diff changeset
243 this.entity.removeAllSourceRelationsByName(rel_was_studied_by);
jurzua
parents:
diff changeset
244 for(Entity target : this.studiedByList.getEntities()){
jurzua
parents:
diff changeset
245 Entity target0 = getWrapper().getEntityByIdWithContent(target.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
246 new Relation(this.entity, target0, rel_was_studied_by);
1
jurzua
parents:
diff changeset
247 }
jurzua
parents:
diff changeset
248
jurzua
parents:
diff changeset
249 // WITNESS -> had_patron -> PERSON
jurzua
parents:
diff changeset
250 this.entity.replaceSourceRelation(this.patronageLo.entity, PERSON, rel_had_patron);
jurzua
parents:
diff changeset
251
jurzua
parents:
diff changeset
252
120
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
253 /*
121
6f0e9a333c15 misidentification of witness mostly works now.
casties
parents: 120
diff changeset
254 * save misidentifications
120
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
255 */
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
256 this.entity = this.misidentTable.saveMisidentifications(this.entity);
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
257
1
jurzua
parents:
diff changeset
258 // WITNESS -> is_exemplar_of -> TEXT
jurzua
parents:
diff changeset
259 this.entity.replaceSourceRelation(this.titleLo.entity, TEXT, is_exemplar_of);
122
fb3cb7d70f66 misidentification of witness should really work now.
casties
parents: 121
diff changeset
260 // legacy relations(?)
1
jurzua
parents:
diff changeset
261 this.entity.removeAllSourceRelationsByName(is_possible_exemplar_of);
jurzua
parents:
diff changeset
262 this.entity.removeAllSourceRelations(rel_has_title_written_as, ALIAS);
jurzua
parents:
diff changeset
263 this.entity.removeAllSourceRelations(rel_has_author_written_as, ALIAS);
jurzua
parents:
diff changeset
264
jurzua
parents:
diff changeset
265 if(textUnknown){
jurzua
parents:
diff changeset
266 for(Entity target : this.possibleExamplerOfList.getEntities()){
jurzua
parents:
diff changeset
267 Entity target0 = getWrapper().getEntityByIdWithContent(target.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
268 new Relation(this.entity, target0, is_possible_exemplar_of);
1
jurzua
parents:
diff changeset
269 }
jurzua
parents:
diff changeset
270 }else{
jurzua
parents:
diff changeset
271 this.saveIndirectedAliases();
jurzua
parents:
diff changeset
272 }
jurzua
parents:
diff changeset
273
jurzua
parents:
diff changeset
274 // WITNESS -> is_part_of_codex
jurzua
parents:
diff changeset
275 if(this.isSelectedSaveAsNew()){
125
eee2e0ca4032 updated entry beans to use EditIntents.
casties
parents: 124
diff changeset
276 //this.entity = getWrapper().saveEntityAsNew(this.entity, user.getEmail());
1
jurzua
parents:
diff changeset
277 }else{
125
eee2e0ca4032 updated entry beans to use EditIntents.
casties
parents: 124
diff changeset
278 this.entity = getWrapper().saveEntity(this.entity, user.getEmail(), editWitnessIntent);
1
jurzua
parents:
diff changeset
279 }
jurzua
parents:
diff changeset
280 this.setEntity(this.entity);
jurzua
parents:
diff changeset
281
jurzua
parents:
diff changeset
282 logger.info("Entity saved - Time = " + (System.currentTimeMillis() - start) + ", " + entity);
jurzua
parents:
diff changeset
283 this.printSuccessSavingEntity();
jurzua
parents:
diff changeset
284
jurzua
parents:
diff changeset
285 this.setSelectedSaveAsNew(false);
jurzua
parents:
diff changeset
286 } catch (Exception e) {
jurzua
parents:
diff changeset
287 logger.error(e.getMessage(), e);
jurzua
parents:
diff changeset
288 this.printInternalError(e);
jurzua
parents:
diff changeset
289 }
jurzua
parents:
diff changeset
290
jurzua
parents:
diff changeset
291 saveEnd();
jurzua
parents:
diff changeset
292 return PAGE_EDITOR;
jurzua
parents:
diff changeset
293 }
jurzua
parents:
diff changeset
294
jurzua
parents:
diff changeset
295 private void saveIndirectedAliases() throws Exception{
jurzua
parents:
diff changeset
296
jurzua
parents:
diff changeset
297 User user = getSessionUser();
jurzua
parents:
diff changeset
298
jurzua
parents:
diff changeset
299 //WITNESS -> has_title_written_as -> ALIAS
jurzua
parents:
diff changeset
300 if(StringUtils.isNotEmpty(valueTextWritten)){
jurzua
parents:
diff changeset
301 Entity alias = null;
jurzua
parents:
diff changeset
302 if(this.suggestedTitlesWritten != null){
jurzua
parents:
diff changeset
303 for(SelectItem item : this.suggestedTitlesWritten){
jurzua
parents:
diff changeset
304 Long id = (Long)item.getValue();
jurzua
parents:
diff changeset
305 if(id != null){
jurzua
parents:
diff changeset
306 Entity candidate = getWrapper().getEntityById(id);
jurzua
parents:
diff changeset
307 if(candidate != null && valueTextWritten.equals(candidate.getOwnValue())){
jurzua
parents:
diff changeset
308 alias = candidate;
jurzua
parents:
diff changeset
309 break;
jurzua
parents:
diff changeset
310 }
jurzua
parents:
diff changeset
311 }
jurzua
parents:
diff changeset
312 }
jurzua
parents:
diff changeset
313 }
jurzua
parents:
diff changeset
314
jurzua
parents:
diff changeset
315 if(alias == null){
jurzua
parents:
diff changeset
316 alias = new Entity(Node.TYPE_ABOX, ALIAS, false);
jurzua
parents:
diff changeset
317 alias.addAttribute(new Attribute(ALIAS, "text", valueTextWritten));
124
28a0c2726466 changed saveEntity() to use new EditIntent. Set up EditIntent for TEXT, PERSON, REFERENCE.
casties
parents: 122
diff changeset
318 alias = getWrapper().saveEntity(alias, user.getEmail(), null);
120
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
319 new Relation(alias, this.titleLo.getEntity(), "is_alias_title_of");
124
28a0c2726466 changed saveEntity() to use new EditIntent. Set up EditIntent for TEXT, PERSON, REFERENCE.
casties
parents: 122
diff changeset
320 alias = getWrapper().saveEntity(alias, user.getEmail(), null);
1
jurzua
parents:
diff changeset
321 }
jurzua
parents:
diff changeset
322 if(alias.isLightweight()){
jurzua
parents:
diff changeset
323 alias = getWrapper().getEntityByIdWithContent(alias.getId());
jurzua
parents:
diff changeset
324 }
jurzua
parents:
diff changeset
325 this.entity.replaceSourceRelation(alias, ALIAS, rel_has_title_written_as);
jurzua
parents:
diff changeset
326 }
jurzua
parents:
diff changeset
327
jurzua
parents:
diff changeset
328
jurzua
parents:
diff changeset
329 if(StringUtils.isNotEmpty(this.valueAuthorWritten)){
jurzua
parents:
diff changeset
330 Entity alias = null;
jurzua
parents:
diff changeset
331 if(suggestedAuthorsWritten != null){
jurzua
parents:
diff changeset
332 for(SelectItem item : this.suggestedAuthorsWritten){
jurzua
parents:
diff changeset
333 Long id = (Long)item.getValue();
jurzua
parents:
diff changeset
334 if(id != null){
jurzua
parents:
diff changeset
335 Entity candidate = getWrapper().getEntityById(id);
jurzua
parents:
diff changeset
336 if(candidate != null && valueAuthorWritten.equals(candidate.getOwnValue())){
jurzua
parents:
diff changeset
337 alias = candidate;
jurzua
parents:
diff changeset
338 break;
jurzua
parents:
diff changeset
339 }
jurzua
parents:
diff changeset
340 }
jurzua
parents:
diff changeset
341 }
jurzua
parents:
diff changeset
342 }
jurzua
parents:
diff changeset
343
jurzua
parents:
diff changeset
344 if(alias == null){
jurzua
parents:
diff changeset
345 alias = new Entity(Node.TYPE_ABOX, ALIAS, false);
jurzua
parents:
diff changeset
346 alias.addAttribute(new Attribute(ALIAS, "text", valueAuthorWritten));
124
28a0c2726466 changed saveEntity() to use new EditIntent. Set up EditIntent for TEXT, PERSON, REFERENCE.
casties
parents: 122
diff changeset
347 alias = getWrapper().saveEntity(alias, user.getEmail(), null);
120
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
348 new Relation(alias, this.authorLo.getEntity(), "is_alias_name_of");
124
28a0c2726466 changed saveEntity() to use new EditIntent. Set up EditIntent for TEXT, PERSON, REFERENCE.
casties
parents: 122
diff changeset
349 alias = getWrapper().saveEntity(alias, user.getEmail(), null);
1
jurzua
parents:
diff changeset
350 }
jurzua
parents:
diff changeset
351 if(alias.isLightweight()){
jurzua
parents:
diff changeset
352 alias = getWrapper().getEntityByIdWithContent(alias.getId());
jurzua
parents:
diff changeset
353 }
jurzua
parents:
diff changeset
354 this.entity.replaceSourceRelation(alias, ALIAS, rel_has_author_written_as);
jurzua
parents:
diff changeset
355 }
jurzua
parents:
diff changeset
356 }
jurzua
parents:
diff changeset
357
jurzua
parents:
diff changeset
358 public String saveAsNewEntity() {
jurzua
parents:
diff changeset
359 this.setSelectedSaveAsNew(true);
jurzua
parents:
diff changeset
360 return save();
jurzua
parents:
diff changeset
361 }
jurzua
parents:
diff changeset
362
jurzua
parents:
diff changeset
363 /* rich
jurzua
parents:
diff changeset
364 public void patronageChangeListener(ValueChangeEvent event) {
jurzua
parents:
diff changeset
365 //patronageLo = changeListener(event, patronageLo, PERSON, "name");
jurzua
parents:
diff changeset
366 patronageLo = changeValuePersonByRole(event, patronageLo, "Patron");
jurzua
parents:
diff changeset
367
jurzua
parents:
diff changeset
368 }
jurzua
parents:
diff changeset
369
jurzua
parents:
diff changeset
370 public void copyistChangeListener(ValueChangeEvent event) {
jurzua
parents:
diff changeset
371 copyistLo = changeValuePersonByRole(event, copyistLo, "Copyist");
jurzua
parents:
diff changeset
372 }
jurzua
parents:
diff changeset
373
jurzua
parents:
diff changeset
374 public void copyPlacesChangeListener(ValueChangeEvent event) {
jurzua
parents:
diff changeset
375 copyPlaceLo = changeListener(event, copyPlaceLo,"PLACE", "name");
jurzua
parents:
diff changeset
376 }*/
jurzua
parents:
diff changeset
377
jurzua
parents:
diff changeset
378 public void updateTitle(){
jurzua
parents:
diff changeset
379
jurzua
parents:
diff changeset
380 if(titleLo.entity != null && titleLo.entity.isPersistent()){
jurzua
parents:
diff changeset
381
jurzua
parents:
diff changeset
382 this.textUnknown = UNKNOWN.equals(titleLo.entity.getOwnValue());
jurzua
parents:
diff changeset
383
jurzua
parents:
diff changeset
384 List<Entity> targets = getWrapper().getTargetsForSourceRelation(titleLo.getEntity(), rel_was_created_by, PERSON, 1);
jurzua
parents:
diff changeset
385 if(targets.size() > 0){
111
22a18bfc66b0 new completion that uses ALIASes: AbstractListenerObject. was_copied_in in WITNESS form can use PLACE aliases now. some cleanup.
casties
parents: 1
diff changeset
386 this.authorLo.setEntityAndAttribute(targets.get(0));
1
jurzua
parents:
diff changeset
387
jurzua
parents:
diff changeset
388 }else{
jurzua
parents:
diff changeset
389 this.authorLo.reset();
jurzua
parents:
diff changeset
390 /* rich
jurzua
parents:
diff changeset
391 this.authorLo.setEntityAndAttribute(null, name_translit);
jurzua
parents:
diff changeset
392 this.authorLo.statusImage.setStatus(StatusImage.STATUS_UNSET);
jurzua
parents:
diff changeset
393 */
jurzua
parents:
diff changeset
394
jurzua
parents:
diff changeset
395 }
jurzua
parents:
diff changeset
396 this.suggestedAuthorsWritten = getAuthorAliases(authorLo.entity);
jurzua
parents:
diff changeset
397 this.suggestedTitlesWritten = getTitleAliases(titleLo.entity);
jurzua
parents:
diff changeset
398 }
jurzua
parents:
diff changeset
399 }
jurzua
parents:
diff changeset
400
jurzua
parents:
diff changeset
401 public void updateAuthor(){
jurzua
parents:
diff changeset
402
jurzua
parents:
diff changeset
403 if(authorLo.getEntity() != null && authorLo.getEntity().isPersistent()){
jurzua
parents:
diff changeset
404
jurzua
parents:
diff changeset
405 this.titleLo.reset();
jurzua
parents:
diff changeset
406
jurzua
parents:
diff changeset
407 List <Entity> sources = getWrapper().getSourcesForTargetRelation(authorLo.getEntity(), rel_was_created_by, TEXT, -1);
jurzua
parents:
diff changeset
408
jurzua
parents:
diff changeset
409 ArrayList<SelectItem> options = new ArrayList<SelectItem>();
jurzua
parents:
diff changeset
410 for (Entity title : sources){
jurzua
parents:
diff changeset
411 options.add(new SelectItem(title.getId(), title.getOwnValue() + " [" + title.getId() + "]"));
jurzua
parents:
diff changeset
412 }
jurzua
parents:
diff changeset
413
jurzua
parents:
diff changeset
414 titles_list = options;
jurzua
parents:
diff changeset
415 this.suggestedAuthorsWritten = getAuthorAliases(authorLo.entity);
jurzua
parents:
diff changeset
416 this.suggestedTitlesWritten = getTitleAliases(null);
jurzua
parents:
diff changeset
417 }
jurzua
parents:
diff changeset
418 }
jurzua
parents:
diff changeset
419
jurzua
parents:
diff changeset
420
jurzua
parents:
diff changeset
421 private List<SelectItem> getTitleAliases(Entity title) {
jurzua
parents:
diff changeset
422 List<SelectItem> items = new ArrayList<SelectItem>();
jurzua
parents:
diff changeset
423 this.valueTextWritten = null;
jurzua
parents:
diff changeset
424 if(title != null && title.isPersistent()){
jurzua
parents:
diff changeset
425 items.add(new SelectItem(new Long(-1), "-- choose --"));
jurzua
parents:
diff changeset
426 List<Entity> aliasTitleList = getWrapper().getSourcesForTargetRelation(title, is_alias_title_of, ALIAS, -1);
jurzua
parents:
diff changeset
427 for(Entity alias : aliasTitleList){
jurzua
parents:
diff changeset
428 items.add(new SelectItem(alias.getId(), alias.getOwnValue()));
jurzua
parents:
diff changeset
429 }
jurzua
parents:
diff changeset
430
jurzua
parents:
diff changeset
431 List<Entity> primeAliasTitleList = getWrapper().getSourcesForTargetRelation(title, is_prime_alias_title_of, ALIAS, -1);
jurzua
parents:
diff changeset
432 for(Entity alias : primeAliasTitleList){
jurzua
parents:
diff changeset
433 items.add(new SelectItem(alias.getId(), alias.getOwnValue()));
jurzua
parents:
diff changeset
434 }
jurzua
parents:
diff changeset
435 }
jurzua
parents:
diff changeset
436
jurzua
parents:
diff changeset
437 return items;
jurzua
parents:
diff changeset
438 }
jurzua
parents:
diff changeset
439 private List<SelectItem> getAuthorAliases(Entity author) {
jurzua
parents:
diff changeset
440 List<SelectItem> items = new ArrayList<SelectItem>();
jurzua
parents:
diff changeset
441 this.valueAuthorWritten = null;
jurzua
parents:
diff changeset
442 if(author != null && author.isPersistent()){
jurzua
parents:
diff changeset
443 //items.add(new SelectItem(null, "-- choose --"));
jurzua
parents:
diff changeset
444 List<Entity> aliasAuthorList = getWrapper().getSourcesForTargetRelation(author, is_alias_name_of, ALIAS, -1);
jurzua
parents:
diff changeset
445 for(Entity alias : aliasAuthorList){
jurzua
parents:
diff changeset
446 items.add(new SelectItem(alias.getId(), alias.getOwnValue()));
jurzua
parents:
diff changeset
447 }
jurzua
parents:
diff changeset
448
jurzua
parents:
diff changeset
449 List<Entity> primeAliasAuthorList = getWrapper().getSourcesForTargetRelation(author, is_prime_alias_name_of, ALIAS, -1);
jurzua
parents:
diff changeset
450 for(Entity alias : primeAliasAuthorList){
jurzua
parents:
diff changeset
451 items.add(new SelectItem(alias.getId(), alias.getOwnValue()));
jurzua
parents:
diff changeset
452 }
jurzua
parents:
diff changeset
453 }
jurzua
parents:
diff changeset
454 return items;
jurzua
parents:
diff changeset
455
jurzua
parents:
diff changeset
456 }
jurzua
parents:
diff changeset
457
jurzua
parents:
diff changeset
458 @Override
jurzua
parents:
diff changeset
459 public void setEntity(Entity witness) {
jurzua
parents:
diff changeset
460 this.reset();
jurzua
parents:
diff changeset
461 this.entity = witness;
jurzua
parents:
diff changeset
462
jurzua
parents:
diff changeset
463 if(this.entity.isPersistent()){
jurzua
parents:
diff changeset
464 if (witness.isLightweight()) {
jurzua
parents:
diff changeset
465 witness = getWrapper().getEntityContent(witness);
jurzua
parents:
diff changeset
466 }
jurzua
parents:
diff changeset
467
jurzua
parents:
diff changeset
468 Attribute attCreationDate = this.entity.getAttributeByName("creation_date");
jurzua
parents:
diff changeset
469 if(attCreationDate != null && StringUtils.isNotEmpty(attCreationDate.getOwnValue())){
jurzua
parents:
diff changeset
470 this.copyDate = new Calendar(attCreationDate.getOwnValue());
jurzua
parents:
diff changeset
471 }else{
jurzua
parents:
diff changeset
472 this.copyDate = new Calendar();
jurzua
parents:
diff changeset
473 }
jurzua
parents:
diff changeset
474
jurzua
parents:
diff changeset
475 // Loading attributes
jurzua
parents:
diff changeset
476 this.loadAttributes(this.entity);
jurzua
parents:
diff changeset
477
jurzua
parents:
diff changeset
478 // Loading the relations
jurzua
parents:
diff changeset
479 // TODO loading target's relations
jurzua
parents:
diff changeset
480 for (Relation rel : witness.getSourceRelations()) {
jurzua
parents:
diff changeset
481 Entity target = null;
120
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
482 String relName = rel.getOwnValue();
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
483 if (relName.equals(is_exemplar_of)) {
1
jurzua
parents:
diff changeset
484 // WITNESS -> is_exemplar_of -> TEXT
jurzua
parents:
diff changeset
485 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: 1
diff changeset
486 titleLo.setEntityAndAttribute(target);
1
jurzua
parents:
diff changeset
487 this.updateTitle();
120
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
488 } else if (relName.equals(is_possible_exemplar_of)) {
1
jurzua
parents:
diff changeset
489 // WITNESS -> is_possible_exemplar_of -> TEXT
jurzua
parents:
diff changeset
490 target = getTargetRelation(rel);
jurzua
parents:
diff changeset
491 possibleExamplerOfList.add(target);
120
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
492 } else if (relName.equals(rel_was_studied_by)) {
1
jurzua
parents:
diff changeset
493 target = getTargetRelation(rel);
jurzua
parents:
diff changeset
494 studiedByList.add(target);
120
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
495 } else if (relName.equals(rel_was_copied_by)) {
1
jurzua
parents:
diff changeset
496 // WITENSS -> was_copied_by -> PERSON
jurzua
parents:
diff changeset
497 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: 1
diff changeset
498 copyistLo.setEntityAndAttribute(target);
120
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
499 } else if (relName.equals("was_copied_in")) {
1
jurzua
parents:
diff changeset
500 // WITENSS -> was_copied_in -> PLACE
jurzua
parents:
diff changeset
501 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: 1
diff changeset
502 // don't use place if there is an alias
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
503 copyPlaceLo.setEntityAndAttributeIfEmpty(target);
120
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
504 } else if (relName.equals("was_copied_in_as")) {
111
22a18bfc66b0 new completion that uses ALIASes: AbstractListenerObject. was_copied_in in WITNESS form can use PLACE aliases now. some cleanup.
casties
parents: 1
diff changeset
505 // WITENSS -> was_copied_in_as -> ALIAS
22a18bfc66b0 new completion that uses ALIASes: AbstractListenerObject. was_copied_in in WITNESS form can use PLACE aliases now. some cleanup.
casties
parents: 1
diff changeset
506 target = getTargetRelation(rel);
22a18bfc66b0 new completion that uses ALIASes: AbstractListenerObject. was_copied_in in WITNESS form can use PLACE aliases now. some cleanup.
casties
parents: 1
diff changeset
507 copyPlaceLo.setEntityAndAttribute(target);
120
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
508 } else if (relName.equals(rel_had_patron)) {
1
jurzua
parents:
diff changeset
509 // WITNESS -> had_patron -> PERSON
jurzua
parents:
diff changeset
510 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: 1
diff changeset
511 patronageLo.setEntityAndAttributeName(target, name_translit);
120
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
512 } else if (relName.equals(is_part_of)) {
111
22a18bfc66b0 new completion that uses ALIASes: AbstractListenerObject. was_copied_in in WITNESS form can use PLACE aliases now. some cleanup.
casties
parents: 1
diff changeset
513 // WITNESS -> is_part_of -> CODEX
22a18bfc66b0 new completion that uses ALIASes: AbstractListenerObject. was_copied_in in WITNESS form can use PLACE aliases now. some cleanup.
casties
parents: 1
diff changeset
514 if (rel.getTargetObjectClass().equals(CODEX)) {
1
jurzua
parents:
diff changeset
515 target = getTargetRelation(rel);
jurzua
parents:
diff changeset
516 this.setCodex(target);
jurzua
parents:
diff changeset
517 }
120
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
518 } else if (relName.equals(Misidentification.HAS_MISIDENT)) {
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
519 // WITNESS -> has_misidentification -> MISIDENTIFICATION
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
520 target = getTargetRelation(rel);
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
521 this.misidentTable.load(target);
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
522
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
523 } else if (relName.equals(rel_has_author_written_as)) {
1
jurzua
parents:
diff changeset
524 //TODO this relation is no in the definitions
jurzua
parents:
diff changeset
525 Entity target2 = getTargetRelation(rel);
jurzua
parents:
diff changeset
526 Attribute alias = getTargetAttribute(target2, "alias");
jurzua
parents:
diff changeset
527 this.valueAuthorWritten = (alias != null) ? alias.getValue() : null;
jurzua
parents:
diff changeset
528
120
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
529 } else if (relName.equals(rel_has_title_written_as)) {
1
jurzua
parents:
diff changeset
530 //TODO this relation is no in the definitions
jurzua
parents:
diff changeset
531 target = getTargetRelation(rel);
jurzua
parents:
diff changeset
532 //this.textWritten = target;
jurzua
parents:
diff changeset
533 Attribute alias = getTargetAttribute(target, "alias");
jurzua
parents:
diff changeset
534 this.valueTextWritten = (alias != null) ? alias.getValue() : null;
jurzua
parents:
diff changeset
535 }
jurzua
parents:
diff changeset
536 }
jurzua
parents:
diff changeset
537
jurzua
parents:
diff changeset
538 //this.loadReferences(this.entity);
jurzua
parents:
diff changeset
539 this.loadEndNoteRefs();
jurzua
parents:
diff changeset
540
jurzua
parents:
diff changeset
541 this.setCurrentId(this.entity.getId().toString());
jurzua
parents:
diff changeset
542 this.checkConsistencyFromCountryToCodex();
jurzua
parents:
diff changeset
543
jurzua
parents:
diff changeset
544 this.displayUrl = generateDisplayUrl(authorLo.entity, titleLo.entity, witness, getAppBean().getRoot());
jurzua
parents:
diff changeset
545 }
jurzua
parents:
diff changeset
546 }
jurzua
parents:
diff changeset
547
jurzua
parents:
diff changeset
548 /**
jurzua
parents:
diff changeset
549 * Loads the given codex without reset of the variables, which could cause problem in CurrentWitness Class
jurzua
parents:
diff changeset
550 * @param codex
jurzua
parents:
diff changeset
551 */
jurzua
parents:
diff changeset
552 public void setCodex(Entity codex){
111
22a18bfc66b0 new completion that uses ALIASes: AbstractListenerObject. was_copied_in in WITNESS form can use PLACE aliases now. some cleanup.
casties
parents: 1
diff changeset
553 this.getCodexLo().setEntityAndAttributeName(codex, "identifier");
1
jurzua
parents:
diff changeset
554
jurzua
parents:
diff changeset
555 if(this.getCodexLo().entity != null && this.getCodexLo().entity.isPersistent()){
jurzua
parents:
diff changeset
556
jurzua
parents:
diff changeset
557 List<Entity> list = getWrapper().getTargetsForSourceRelation(codex, is_part_of, COLLECTION, 1);
jurzua
parents:
diff changeset
558 if(list.size() > 0){
jurzua
parents:
diff changeset
559 this.setCollection(list.get(0));
jurzua
parents:
diff changeset
560 }
jurzua
parents:
diff changeset
561 }
jurzua
parents:
diff changeset
562 }
jurzua
parents:
diff changeset
563
jurzua
parents:
diff changeset
564 public String getValueAuthor() {
jurzua
parents:
diff changeset
565 return valueAuthor;
jurzua
parents:
diff changeset
566 }
jurzua
parents:
diff changeset
567
jurzua
parents:
diff changeset
568 public void setValueAuthor(String valueAuthor) {
jurzua
parents:
diff changeset
569 if(!lockValueAuthor)
jurzua
parents:
diff changeset
570 this.valueAuthor = valueAuthor;
jurzua
parents:
diff changeset
571 this.lockValueAuthor = false;
jurzua
parents:
diff changeset
572 }
jurzua
parents:
diff changeset
573
jurzua
parents:
diff changeset
574 public void setValueTitle(String valueTitle) {
jurzua
parents:
diff changeset
575 if(!lockValueTitle)
jurzua
parents:
diff changeset
576 this.valueTitle = valueTitle;
jurzua
parents:
diff changeset
577 this.lockValueTitle = false;
jurzua
parents:
diff changeset
578 }
jurzua
parents:
diff changeset
579
jurzua
parents:
diff changeset
580 public String getValueTitle() {
jurzua
parents:
diff changeset
581 return valueTitle;
jurzua
parents:
diff changeset
582 }
jurzua
parents:
diff changeset
583
jurzua
parents:
diff changeset
584 public List<SelectItem> getTitles_list() {
jurzua
parents:
diff changeset
585 return titles_list;
jurzua
parents:
diff changeset
586 }
jurzua
parents:
diff changeset
587
jurzua
parents:
diff changeset
588 public void setTitles_list(List<SelectItem> titlesList) {
jurzua
parents:
diff changeset
589 titles_list = titlesList;
jurzua
parents:
diff changeset
590 }
jurzua
parents:
diff changeset
591
jurzua
parents:
diff changeset
592 public void setFoundCodex(boolean foundCodex) {
jurzua
parents:
diff changeset
593 this.foundCodex = foundCodex;
jurzua
parents:
diff changeset
594 }
jurzua
parents:
diff changeset
595
jurzua
parents:
diff changeset
596 public boolean isFoundCodex() {
jurzua
parents:
diff changeset
597 return foundCodex;
jurzua
parents:
diff changeset
598 }
jurzua
parents:
diff changeset
599
jurzua
parents:
diff changeset
600 public void listenerCreateTitleAlias(ValueChangeEvent event) {
jurzua
parents:
diff changeset
601 this.valueTextWritten = (String)event.getNewValue();
jurzua
parents:
diff changeset
602 }
jurzua
parents:
diff changeset
603
jurzua
parents:
diff changeset
604 public void listenerChooseTitleAlias(ValueChangeEvent event) {
jurzua
parents:
diff changeset
605 if (event.getNewValue() != null) {
jurzua
parents:
diff changeset
606 Long aliasId = (Long) event.getNewValue();
jurzua
parents:
diff changeset
607 if(aliasId != null){
jurzua
parents:
diff changeset
608 if(aliasId.equals(-1)){
jurzua
parents:
diff changeset
609 this.valueTextWritten = null;
jurzua
parents:
diff changeset
610 }else{
jurzua
parents:
diff changeset
611 Entity alias = getWrapper().getEntityByIdWithContent(aliasId);
jurzua
parents:
diff changeset
612 if(alias != null){
jurzua
parents:
diff changeset
613 this.valueTextWritten = alias.getOwnValue();
jurzua
parents:
diff changeset
614 }
jurzua
parents:
diff changeset
615 }
jurzua
parents:
diff changeset
616 }
jurzua
parents:
diff changeset
617 }
jurzua
parents:
diff changeset
618 }
jurzua
parents:
diff changeset
619
jurzua
parents:
diff changeset
620 public void listenerCreateAuthorAlias(ValueChangeEvent event) {
jurzua
parents:
diff changeset
621 this.valueAuthorWritten = (String)event.getNewValue();
jurzua
parents:
diff changeset
622 }
jurzua
parents:
diff changeset
623
jurzua
parents:
diff changeset
624 public void listenerChooseAuthorAlias(ValueChangeEvent event) {
jurzua
parents:
diff changeset
625 if (event.getNewValue() != null) {
jurzua
parents:
diff changeset
626 Long aliasId = (Long) event.getNewValue();
jurzua
parents:
diff changeset
627 if(aliasId != null){
jurzua
parents:
diff changeset
628 if(aliasId.equals(-1)){
jurzua
parents:
diff changeset
629 this.valueAuthorWritten = null;
jurzua
parents:
diff changeset
630 }else{
jurzua
parents:
diff changeset
631 Entity alias = getWrapper().getEntityByIdWithContent(aliasId);
jurzua
parents:
diff changeset
632 if(alias != null){
jurzua
parents:
diff changeset
633 this.valueAuthorWritten = alias.getOwnValue();
jurzua
parents:
diff changeset
634 }
jurzua
parents:
diff changeset
635 }
jurzua
parents:
diff changeset
636 }
jurzua
parents:
diff changeset
637 }
jurzua
parents:
diff changeset
638 }
jurzua
parents:
diff changeset
639
jurzua
parents:
diff changeset
640 @Override
jurzua
parents:
diff changeset
641 public void identifierChangedListener(ValueChangeEvent event) {
jurzua
parents:
diff changeset
642 super.identifierChangedListener(event);
jurzua
parents:
diff changeset
643
jurzua
parents:
diff changeset
644 if (StringUtils.isEmpty(getCodexLo().attribute.getValue())){
jurzua
parents:
diff changeset
645 renderShowAllCodexCandidates = false;
jurzua
parents:
diff changeset
646 this.checkConsistencyFromCountryToCodex();
jurzua
parents:
diff changeset
647 return;
jurzua
parents:
diff changeset
648 }
jurzua
parents:
diff changeset
649
jurzua
parents:
diff changeset
650 List<Entity> entities = getWrapper().getEntitiesByAtt(CODEX, getCodexLo().getAttName(), getCodexLo().attribute.getValue(), 10000, false);
jurzua
parents:
diff changeset
651
jurzua
parents:
diff changeset
652 if (entities.size()>1){
jurzua
parents:
diff changeset
653 if ((getCollectionLo().attribute==null || getCollectionLo().getAttribute().getValue().equals("")) &&
jurzua
parents:
diff changeset
654 (getRepositoryLo().getAttribute()==null || getRepositoryLo().getAttribute().getValue().equals(""))){
jurzua
parents:
diff changeset
655 showAllCodexCandidates(entities);
jurzua
parents:
diff changeset
656 renderShowAllCodexCandidates = true;
jurzua
parents:
diff changeset
657 }
jurzua
parents:
diff changeset
658 else
jurzua
parents:
diff changeset
659 //renderShowAllCodexCandidates = false;
jurzua
parents:
diff changeset
660 renderShowAllCodexCandidates = true; // i want to keep the selection field now
jurzua
parents:
diff changeset
661 }
jurzua
parents:
diff changeset
662 else
jurzua
parents:
diff changeset
663 //renderShowAllCodexCandidates = false;
jurzua
parents:
diff changeset
664 renderShowAllCodexCandidates = true; //i want to keep the selection field now
jurzua
parents:
diff changeset
665 }
jurzua
parents:
diff changeset
666
jurzua
parents:
diff changeset
667 public void searchInCurrentRepository(ActionEvent event) {
jurzua
parents:
diff changeset
668
jurzua
parents:
diff changeset
669 ValueChangeEvent ne = new ValueChangeEvent((UIComponent) event
jurzua
parents:
diff changeset
670 .getComponent(), "", getCollectionLo().getAttribute().getOwnValue());
jurzua
parents:
diff changeset
671 identifierChangedListener(ne);
jurzua
parents:
diff changeset
672
jurzua
parents:
diff changeset
673 }
jurzua
parents:
diff changeset
674
jurzua
parents:
diff changeset
675 /* rich
jurzua
parents:
diff changeset
676 public String insertAuthorAction() {
jurzua
parents:
diff changeset
677 return "insert";
jurzua
parents:
diff changeset
678
jurzua
parents:
diff changeset
679 }*/
jurzua
parents:
diff changeset
680
jurzua
parents:
diff changeset
681 public String showOtherTextsByAuthorAction() {
jurzua
parents:
diff changeset
682 if (authorLo.entity == null || !authorLo.entity.isPersistent())
jurzua
parents:
diff changeset
683 return "";
jurzua
parents:
diff changeset
684
jurzua
parents:
diff changeset
685 List<SelectItem> options = new ArrayList<SelectItem>();
jurzua
parents:
diff changeset
686 List<Entity> titles = getWrapper().getSourcesForTargetRelation(authorLo.entity, "was_created_by", TEXT, -1);
jurzua
parents:
diff changeset
687 for (Entity title: titles){
jurzua
parents:
diff changeset
688 options.add(
jurzua
parents:
diff changeset
689 new SelectItem(title.getId(), title.getOwnValue() + " [" + title.getId() + "]"));
jurzua
parents:
diff changeset
690 }
jurzua
parents:
diff changeset
691 titles_list = options;
jurzua
parents:
diff changeset
692 setSelectTitleRendered(true);
jurzua
parents:
diff changeset
693 return "";
jurzua
parents:
diff changeset
694 }
jurzua
parents:
diff changeset
695
jurzua
parents:
diff changeset
696 /**
jurzua
parents:
diff changeset
697 * Gebe moegliche andere Codices aus. Das ist notwendig, weil nach dem jetzigen Stand der Daten ein Codex
jurzua
parents:
diff changeset
698 * mehrfach im Datensatz auftachen kann.
jurzua
parents:
diff changeset
699 * @return
jurzua
parents:
diff changeset
700 */
jurzua
parents:
diff changeset
701 public String showAllCodexCandidates(List<Entity> entities){
jurzua
parents:
diff changeset
702 if (entities != null) {
jurzua
parents:
diff changeset
703 for (Entity entity : entities) {
jurzua
parents:
diff changeset
704 CodexForList entForList = getCodexData(entity);
jurzua
parents:
diff changeset
705 codicesAll.add(entForList);
jurzua
parents:
diff changeset
706 }
jurzua
parents:
diff changeset
707 }
jurzua
parents:
diff changeset
708 setCodicesOverviewRendered(true);
jurzua
parents:
diff changeset
709 return "";
jurzua
parents:
diff changeset
710 }
jurzua
parents:
diff changeset
711
jurzua
parents:
diff changeset
712 public String showAllTextsAction() {
jurzua
parents:
diff changeset
713 titles_list = new ArrayList<SelectItem>();
jurzua
parents:
diff changeset
714 titles_list = getAppBean().getAllTexts();
jurzua
parents:
diff changeset
715 this.selectTitleRendered = true;
jurzua
parents:
diff changeset
716 return "";
jurzua
parents:
diff changeset
717 }
jurzua
parents:
diff changeset
718
jurzua
parents:
diff changeset
719 public void listenerSelectTitle(ActionEvent event){
jurzua
parents:
diff changeset
720 if(this.selectedTitleId != null){
jurzua
parents:
diff changeset
721 Entity title = getWrapper().getEntityById(this.selectedTitleId);
jurzua
parents:
diff changeset
722 if(title != null){
111
22a18bfc66b0 new completion that uses ALIASes: AbstractListenerObject. was_copied_in in WITNESS form can use PLACE aliases now. some cleanup.
casties
parents: 1
diff changeset
723 this.titleLo.setEntityAndAttribute(title);
1
jurzua
parents:
diff changeset
724 this.updateTitle();
jurzua
parents:
diff changeset
725 setSelectTitleRendered(false);
jurzua
parents:
diff changeset
726 }
jurzua
parents:
diff changeset
727 }
jurzua
parents:
diff changeset
728 }
jurzua
parents:
diff changeset
729
jurzua
parents:
diff changeset
730 public void listenerCancelPpSelectTitle(ActionEvent event){
119
4aa8c425685d less System.out.println.
casties
parents: 112
diff changeset
731 //System.out.println("listenerCancelPpSelectTitle");
1
jurzua
parents:
diff changeset
732 this.selectTitleRendered = false;
jurzua
parents:
diff changeset
733 }
jurzua
parents:
diff changeset
734
jurzua
parents:
diff changeset
735 public void setSelectTitleRendered(Boolean selectTitleRendered) {
jurzua
parents:
diff changeset
736 this.selectTitleRendered = selectTitleRendered;
jurzua
parents:
diff changeset
737 }
jurzua
parents:
diff changeset
738
jurzua
parents:
diff changeset
739 public Boolean getSelectTitleRendered() {
jurzua
parents:
diff changeset
740 return selectTitleRendered;
jurzua
parents:
diff changeset
741 }
jurzua
parents:
diff changeset
742
jurzua
parents:
diff changeset
743 public List<SelectItem> getPersons_list() {
jurzua
parents:
diff changeset
744 return persons_list;
jurzua
parents:
diff changeset
745 }
jurzua
parents:
diff changeset
746
jurzua
parents:
diff changeset
747 public void setPersons_list(List<SelectItem> personsList) {
jurzua
parents:
diff changeset
748 persons_list = personsList;
jurzua
parents:
diff changeset
749 }
jurzua
parents:
diff changeset
750
jurzua
parents:
diff changeset
751 public Boolean getSelectPersonRendered() {
jurzua
parents:
diff changeset
752 return selectPersonRendered;
jurzua
parents:
diff changeset
753 }
jurzua
parents:
diff changeset
754
jurzua
parents:
diff changeset
755 public void setSelectPersonRendered(Boolean selectPersonRendered) {
jurzua
parents:
diff changeset
756 this.selectPersonRendered = selectPersonRendered;
jurzua
parents:
diff changeset
757 }
jurzua
parents:
diff changeset
758
jurzua
parents:
diff changeset
759 public Boolean getRestrictedByRole() {
jurzua
parents:
diff changeset
760 return restrictedByRole;
jurzua
parents:
diff changeset
761 }
jurzua
parents:
diff changeset
762
jurzua
parents:
diff changeset
763 public void setRestrictedByRole(Boolean restrictedByRole) {
jurzua
parents:
diff changeset
764 this.restrictedByRole = restrictedByRole;
jurzua
parents:
diff changeset
765 }
jurzua
parents:
diff changeset
766
jurzua
parents:
diff changeset
767 private void updatePersonList(){
jurzua
parents:
diff changeset
768 if (!this.restrictedByRole)
jurzua
parents:
diff changeset
769 //persons_list = ((AllPersonsBean) this.getBean("AllPersons"))
jurzua
parents:
diff changeset
770 // .getPersonsSelectItems();
jurzua
parents:
diff changeset
771 persons_list = getCache().getAllPersons();
jurzua
parents:
diff changeset
772 else {
jurzua
parents:
diff changeset
773 //persons_list = ((AllPersonsBean) this.getBean("AllPersons"))
jurzua
parents:
diff changeset
774 // .getPersonsSelectItemsByRole(this.selectPersonType);
jurzua
parents:
diff changeset
775 persons_list = getCache().getPersonsByRole(selectPersonType);
jurzua
parents:
diff changeset
776 }
jurzua
parents:
diff changeset
777 }
jurzua
parents:
diff changeset
778
jurzua
parents:
diff changeset
779 public String showAllCopyistsAction() {
jurzua
parents:
diff changeset
780 this.setSelectPersonType("Copyist");
jurzua
parents:
diff changeset
781 this.updatePersonList();
jurzua
parents:
diff changeset
782 this.selectPersonRendered = true;
jurzua
parents:
diff changeset
783 return "";
jurzua
parents:
diff changeset
784 }
jurzua
parents:
diff changeset
785
jurzua
parents:
diff changeset
786 public String showAllPatronsAction() {
jurzua
parents:
diff changeset
787 this.setSelectPersonType("Patron");
jurzua
parents:
diff changeset
788 this.updatePersonList();
jurzua
parents:
diff changeset
789 this.selectPersonRendered = true;
jurzua
parents:
diff changeset
790 return "";
jurzua
parents:
diff changeset
791 }
jurzua
parents:
diff changeset
792
jurzua
parents:
diff changeset
793 public String showAllAuthorsAction() {
jurzua
parents:
diff changeset
794 this.setSelectPersonType("Author");
jurzua
parents:
diff changeset
795 this.updatePersonList();
jurzua
parents:
diff changeset
796 this.selectPersonRendered = true;
jurzua
parents:
diff changeset
797 return "";
jurzua
parents:
diff changeset
798 }
jurzua
parents:
diff changeset
799
jurzua
parents:
diff changeset
800 public void listenerCancelPpSelectAuthor(ActionEvent event){
jurzua
parents:
diff changeset
801 this.selectPersonRendered = false;
jurzua
parents:
diff changeset
802 }
jurzua
parents:
diff changeset
803
jurzua
parents:
diff changeset
804 public void listenerSelectPerson(ActionEvent event){
jurzua
parents:
diff changeset
805 String role = getSelectPersonType();
jurzua
parents:
diff changeset
806 if(this.selectedPersonId != null){
jurzua
parents:
diff changeset
807 Entity selectedPerson = getWrapper().getEntityByIdWithContent(selectedPersonId);
jurzua
parents:
diff changeset
808 if(selectedPerson != null){
jurzua
parents:
diff changeset
809 if (role.equals("Copyist")) {
111
22a18bfc66b0 new completion that uses ALIASes: AbstractListenerObject. was_copied_in in WITNESS form can use PLACE aliases now. some cleanup.
casties
parents: 1
diff changeset
810 copyistLo.setEntityAndAttribute(selectedPerson);
1
jurzua
parents:
diff changeset
811 } else if (role.equals("Patron")) {
111
22a18bfc66b0 new completion that uses ALIASes: AbstractListenerObject. was_copied_in in WITNESS form can use PLACE aliases now. some cleanup.
casties
parents: 1
diff changeset
812 patronageLo.setEntityAndAttribute(selectedPerson);
1
jurzua
parents:
diff changeset
813 } else if (role.equals("Author")) {
111
22a18bfc66b0 new completion that uses ALIASes: AbstractListenerObject. was_copied_in in WITNESS form can use PLACE aliases now. some cleanup.
casties
parents: 1
diff changeset
814 authorLo.setEntityAndAttribute(selectedPerson);
1
jurzua
parents:
diff changeset
815 this.updateAuthor();
jurzua
parents:
diff changeset
816 }
jurzua
parents:
diff changeset
817 setSelectPersonRendered(false);
jurzua
parents:
diff changeset
818 }
jurzua
parents:
diff changeset
819 }
jurzua
parents:
diff changeset
820 }
jurzua
parents:
diff changeset
821
jurzua
parents:
diff changeset
822 public void setSelectPersonType(String selectPersonType) {
jurzua
parents:
diff changeset
823 this.selectPersonType = selectPersonType;
jurzua
parents:
diff changeset
824 }
jurzua
parents:
diff changeset
825
jurzua
parents:
diff changeset
826 public String getSelectPersonType() {
jurzua
parents:
diff changeset
827 return selectPersonType;
jurzua
parents:
diff changeset
828 }
jurzua
parents:
diff changeset
829
jurzua
parents:
diff changeset
830 public void restrictedByRoleChange(ValueChangeEvent event) {
jurzua
parents:
diff changeset
831 if (event.getNewValue().equals(event.getOldValue()))
jurzua
parents:
diff changeset
832 return;
jurzua
parents:
diff changeset
833 try{
jurzua
parents:
diff changeset
834 Boolean val = (Boolean) event.getNewValue();
jurzua
parents:
diff changeset
835 this.setRestrictedByRole(val);
jurzua
parents:
diff changeset
836 this.updatePersonList();
jurzua
parents:
diff changeset
837 }catch(Exception ex){
jurzua
parents:
diff changeset
838 ex.printStackTrace();
jurzua
parents:
diff changeset
839 }
jurzua
parents:
diff changeset
840 }
jurzua
parents:
diff changeset
841
jurzua
parents:
diff changeset
842 public void listenerConvertCreationDate(ActionEvent event) {
jurzua
parents:
diff changeset
843 /*
jurzua
parents:
diff changeset
844 try{
jurzua
parents:
diff changeset
845
jurzua
parents:
diff changeset
846 String newDate = this.islamicCalCopyDate.islamic2Gregorian();
jurzua
parents:
diff changeset
847 String newJulianDate = this.islamicCalCopyDate.islamic2Julian();
jurzua
parents:
diff changeset
848
jurzua
parents:
diff changeset
849 getAttributes().put("creation_date_ce", newDate);
jurzua
parents:
diff changeset
850 getAttributes().put("creation_date_julian", newJulianDate);
jurzua
parents:
diff changeset
851
jurzua
parents:
diff changeset
852 }catch(Exception e){
jurzua
parents:
diff changeset
853 e.printStackTrace();
jurzua
parents:
diff changeset
854 addGeneralMsg("Error converting date!");
jurzua
parents:
diff changeset
855 addGeneralMsg("The islamic calendar begins on Friday, July 16th, 622 C.E. in the Julian calendar.");
jurzua
parents:
diff changeset
856 addGeneralMsg("The date must be equals or bigger than yawm al-jum'a, 1.Muharram.1 (5.1.1.1)");
jurzua
parents:
diff changeset
857 }
jurzua
parents:
diff changeset
858 */
jurzua
parents:
diff changeset
859 }
jurzua
parents:
diff changeset
860
jurzua
parents:
diff changeset
861
jurzua
parents:
diff changeset
862 public void selectCodexFromOverviewAction(ActionEvent ae){
jurzua
parents:
diff changeset
863 /* rich
jurzua
parents:
diff changeset
864
jurzua
parents:
diff changeset
865 HtmlCommandButton cp = (HtmlCommandButton)ae.getComponent();
jurzua
parents:
diff changeset
866 Long id = (Long) cp.getValue();
jurzua
parents:
diff changeset
867 //juc Entity ent = getOntology().getEntityById(id);
jurzua
parents:
diff changeset
868 Entity ent = getWrapper().getEntityById(id);
jurzua
parents:
diff changeset
869 this.getCodexLo().setEntityAndAttribute(ent, "identifier");
jurzua
parents:
diff changeset
870 //changeValueAttCodex(this.getCodexLo().getAttribute().getOwnValue());
jurzua
parents:
diff changeset
871 setCodicesOverviewRendered(false);
jurzua
parents:
diff changeset
872
jurzua
parents:
diff changeset
873 */
jurzua
parents:
diff changeset
874
jurzua
parents:
diff changeset
875
jurzua
parents:
diff changeset
876 }
jurzua
parents:
diff changeset
877
jurzua
parents:
diff changeset
878 public String closeCodicesOverview(){
jurzua
parents:
diff changeset
879 setCodicesOverviewRendered(false);
jurzua
parents:
diff changeset
880 return "CLOSE";
jurzua
parents:
diff changeset
881
jurzua
parents:
diff changeset
882 }
jurzua
parents:
diff changeset
883
jurzua
parents:
diff changeset
884
jurzua
parents:
diff changeset
885 private boolean isCodexIdentifierSet(String user){
jurzua
parents:
diff changeset
886 try {
jurzua
parents:
diff changeset
887
jurzua
parents:
diff changeset
888 if(StatusImage.STATUS_OK.equals(getCodexLo().getStatus())){
jurzua
parents:
diff changeset
889 return true;
jurzua
parents:
diff changeset
890 }
jurzua
parents:
diff changeset
891
jurzua
parents:
diff changeset
892 String identifier = getNewIdentifier();
jurzua
parents:
diff changeset
893
jurzua
parents:
diff changeset
894 if(!StatusImage.STATUS_OK.equals(getCollectionLo().getStatus()) ||
jurzua
parents:
diff changeset
895 StringUtils.isEmpty(identifier)){
jurzua
parents:
diff changeset
896 //we can not save the witness
jurzua
parents:
diff changeset
897 if(!StatusImage.STATUS_OK.equals(getCollectionLo().getStatus())){
jurzua
parents:
diff changeset
898 addErrorMsg("The Collection is not valid.");
jurzua
parents:
diff changeset
899 }
jurzua
parents:
diff changeset
900 if(StringUtils.isEmpty(identifier)){
jurzua
parents:
diff changeset
901 addErrorMsg("The Codex does not have an valid identifier.");
jurzua
parents:
diff changeset
902 }
jurzua
parents:
diff changeset
903 addErrorMsg("The Witness could not be saved.");
jurzua
parents:
diff changeset
904 return false;
jurzua
parents:
diff changeset
905 }else {
jurzua
parents:
diff changeset
906 //two possibilities:
jurzua
parents:
diff changeset
907 //1. there exist a codex with the same id
jurzua
parents:
diff changeset
908 //2. there is no a codex with this id, it should be saved.
jurzua
parents:
diff changeset
909
jurzua
parents:
diff changeset
910 if(StringUtils.isNotEmpty(identifier)){
jurzua
parents:
diff changeset
911 List<Entity> codexListOfCollection =
jurzua
parents:
diff changeset
912 getWrapper().getSourcesForTargetRelation(getCollectionLo().getEntity(),
jurzua
parents:
diff changeset
913 is_part_of, CODEX, -1);
jurzua
parents:
diff changeset
914 for(Entity possibleCodex : codexListOfCollection){
jurzua
parents:
diff changeset
915 //juc Attribute att = getWrapper().getAttributeByName(possibleCodex, "identifier");
jurzua
parents:
diff changeset
916 Attribute att = getWrapper().getAttributeByName(possibleCodex.getId(), "identifier");
jurzua
parents:
diff changeset
917 if(att != null && identifier.equals(att.getValue())){
111
22a18bfc66b0 new completion that uses ALIASes: AbstractListenerObject. was_copied_in in WITNESS form can use PLACE aliases now. some cleanup.
casties
parents: 1
diff changeset
918 getCodexLo().setEntityAndAttributeName(possibleCodex, "identifier");
1
jurzua
parents:
diff changeset
919 return true;
jurzua
parents:
diff changeset
920 }
jurzua
parents:
diff changeset
921 }
jurzua
parents:
diff changeset
922 }
jurzua
parents:
diff changeset
923 }
jurzua
parents:
diff changeset
924
jurzua
parents:
diff changeset
925 //if the Collection Status == OK && the Codex.identifier != null
jurzua
parents:
diff changeset
926 Entity newCodex = new Entity(Node.TYPE_ABOX, CODEX, false);
jurzua
parents:
diff changeset
927 newCodex.addAttribute(new Attribute("identifier", TEXT, identifier));
124
28a0c2726466 changed saveEntity() to use new EditIntent. Set up EditIntent for TEXT, PERSON, REFERENCE.
casties
parents: 122
diff changeset
928 getWrapper().saveEntity(newCodex, user, null);
1
jurzua
parents:
diff changeset
929 Relation isPartOf = new Relation(newCodex, getCollectionLo().getEntity(), is_part_of);
jurzua
parents:
diff changeset
930 getWrapper().saveRelationAsNode(isPartOf, user);
111
22a18bfc66b0 new completion that uses ALIASes: AbstractListenerObject. was_copied_in in WITNESS form can use PLACE aliases now. some cleanup.
casties
parents: 1
diff changeset
931 getCodexLo().setEntityAndAttributeName(newCodex, "identifier");
1
jurzua
parents:
diff changeset
932
jurzua
parents:
diff changeset
933 } catch (Exception e) {
jurzua
parents:
diff changeset
934 logger.error(e.getMessage(), e);
jurzua
parents:
diff changeset
935 return false;
jurzua
parents:
diff changeset
936 }
jurzua
parents:
diff changeset
937 return true;
jurzua
parents:
diff changeset
938 }
jurzua
parents:
diff changeset
939
jurzua
parents:
diff changeset
940 public boolean isCreateCodexRendered() {
jurzua
parents:
diff changeset
941 return createCodexRendered;
jurzua
parents:
diff changeset
942 }
jurzua
parents:
diff changeset
943
jurzua
parents:
diff changeset
944 public void setCreateCodexRendered(boolean createCodexRendered) {
jurzua
parents:
diff changeset
945 this.createCodexRendered = createCodexRendered;
jurzua
parents:
diff changeset
946 }
jurzua
parents:
diff changeset
947
jurzua
parents:
diff changeset
948 @Override
jurzua
parents:
diff changeset
949 public String loadCloneEntity(){
jurzua
parents:
diff changeset
950 this.setCodex(getCloneEntity());
jurzua
parents:
diff changeset
951 this.setRenderUnityCheckerDialog(false);
jurzua
parents:
diff changeset
952 this.checkConsistencyFromCountryToCodex();
jurzua
parents:
diff changeset
953 return PAGE_EDITOR;
jurzua
parents:
diff changeset
954 }
jurzua
parents:
diff changeset
955
jurzua
parents:
diff changeset
956 public List<CodexForList> getCodicesAll() {
jurzua
parents:
diff changeset
957 return codicesAll;
jurzua
parents:
diff changeset
958 }
jurzua
parents:
diff changeset
959
jurzua
parents:
diff changeset
960 public void setCodicesAll(List<CodexForList> codicesAll) {
jurzua
parents:
diff changeset
961 this.codicesAll = codicesAll;
jurzua
parents:
diff changeset
962 }
jurzua
parents:
diff changeset
963
jurzua
parents:
diff changeset
964 public void setCodicesOverviewRendered(Boolean codicesOverviewRendered) {
jurzua
parents:
diff changeset
965 this.codicesOverviewRendered = codicesOverviewRendered;
jurzua
parents:
diff changeset
966 }
jurzua
parents:
diff changeset
967
jurzua
parents:
diff changeset
968 public Boolean getCodicesOverviewRendered() {
jurzua
parents:
diff changeset
969 return codicesOverviewRendered;
jurzua
parents:
diff changeset
970 }
jurzua
parents:
diff changeset
971
jurzua
parents:
diff changeset
972 /**
jurzua
parents:
diff changeset
973 * Teste ob es Codices mit gleichem identifier gibt!
jurzua
parents:
diff changeset
974 * @return
jurzua
parents:
diff changeset
975 */
jurzua
parents:
diff changeset
976 public Boolean getRenderShowAllCodexCandidates(){
jurzua
parents:
diff changeset
977 return renderShowAllCodexCandidates;
jurzua
parents:
diff changeset
978 }
jurzua
parents:
diff changeset
979
jurzua
parents:
diff changeset
980
jurzua
parents:
diff changeset
981
jurzua
parents:
diff changeset
982 public List<SelectItem> getSuggestedTitlesWritten() {
jurzua
parents:
diff changeset
983 return suggestedTitlesWritten;
jurzua
parents:
diff changeset
984 }
jurzua
parents:
diff changeset
985
jurzua
parents:
diff changeset
986 public void setSuggestedTitlesWritten(List<SelectItem> suggestedTitlesWritten) {
jurzua
parents:
diff changeset
987 this.suggestedTitlesWritten = suggestedTitlesWritten;
jurzua
parents:
diff changeset
988 }
jurzua
parents:
diff changeset
989
jurzua
parents:
diff changeset
990 public List<SelectItem> getSuggestedAuthorsWritten() {
jurzua
parents:
diff changeset
991 return suggestedAuthorsWritten;
jurzua
parents:
diff changeset
992 }
jurzua
parents:
diff changeset
993
jurzua
parents:
diff changeset
994 public void setSuggestedAuthorsWritten(List<SelectItem> suggestedAuthorsWritten) {
jurzua
parents:
diff changeset
995 this.suggestedAuthorsWritten = suggestedAuthorsWritten;
jurzua
parents:
diff changeset
996 }
jurzua
parents:
diff changeset
997
jurzua
parents:
diff changeset
998 public void codexCodexChangeListener(ValueChangeEvent event) {
jurzua
parents:
diff changeset
999 if (event.getNewValue() == null) {
jurzua
parents:
diff changeset
1000 return;
jurzua
parents:
diff changeset
1001 }
jurzua
parents:
diff changeset
1002 if (event.getNewValue().equals(event.getOldValue())) {
jurzua
parents:
diff changeset
1003 return;
jurzua
parents:
diff changeset
1004 }
jurzua
parents:
diff changeset
1005 this.getCodexLo().statusImage.setStatus(StatusImage.STATUS_UNSET);
jurzua
parents:
diff changeset
1006 this.getCodexLo().attribute.setValue(event.getNewValue().toString());
jurzua
parents:
diff changeset
1007 }
jurzua
parents:
diff changeset
1008 public Long getValueTitleSelectedId() {
jurzua
parents:
diff changeset
1009 return valueTitleSelectedId;
jurzua
parents:
diff changeset
1010 }
jurzua
parents:
diff changeset
1011
jurzua
parents:
diff changeset
1012 public void setValueTitleSelectedId(Long valueTitleSelectedId) {
jurzua
parents:
diff changeset
1013 this.valueTitleSelectedId = valueTitleSelectedId;
jurzua
parents:
diff changeset
1014 }
jurzua
parents:
diff changeset
1015
jurzua
parents:
diff changeset
1016 public ListenerObject getCopyistLo() {
jurzua
parents:
diff changeset
1017 return copyistLo;
jurzua
parents:
diff changeset
1018 }
jurzua
parents:
diff changeset
1019
jurzua
parents:
diff changeset
1020 public void setCopyistLo(ListenerObject copyistLo) {
jurzua
parents:
diff changeset
1021 this.copyistLo = copyistLo;
jurzua
parents:
diff changeset
1022 }
jurzua
parents:
diff changeset
1023
jurzua
parents:
diff changeset
1024 public ListenerObject getCopyPlaceLo() {
jurzua
parents:
diff changeset
1025 return copyPlaceLo;
jurzua
parents:
diff changeset
1026 }
jurzua
parents:
diff changeset
1027
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
1028 public void setCopyPlaceLo(AliasListenerObject copyPlaceLo) {
1
jurzua
parents:
diff changeset
1029 this.copyPlaceLo = copyPlaceLo;
jurzua
parents:
diff changeset
1030 }
jurzua
parents:
diff changeset
1031
jurzua
parents:
diff changeset
1032 public ListenerObject getPatronageLo() {
jurzua
parents:
diff changeset
1033 return patronageLo;
jurzua
parents:
diff changeset
1034 }
jurzua
parents:
diff changeset
1035
jurzua
parents:
diff changeset
1036 public void setPatronageLo(ListenerObject patronageLo) {
jurzua
parents:
diff changeset
1037 this.patronageLo = patronageLo;
jurzua
parents:
diff changeset
1038 }
jurzua
parents:
diff changeset
1039
jurzua
parents:
diff changeset
1040 public ListenerObject getTitleLo() {
jurzua
parents:
diff changeset
1041 return titleLo;
jurzua
parents:
diff changeset
1042 }
jurzua
parents:
diff changeset
1043
jurzua
parents:
diff changeset
1044 public void setTitleLo(ListenerObject titleLo) {
jurzua
parents:
diff changeset
1045 this.titleLo = titleLo;
jurzua
parents:
diff changeset
1046 }
jurzua
parents:
diff changeset
1047
jurzua
parents:
diff changeset
1048 public ListenerObject getAuthorLo() {
jurzua
parents:
diff changeset
1049 return authorLo;
jurzua
parents:
diff changeset
1050 }
jurzua
parents:
diff changeset
1051
jurzua
parents:
diff changeset
1052 public String getNewIdentifier() {
jurzua
parents:
diff changeset
1053 return newIdentifier;
jurzua
parents:
diff changeset
1054 }
jurzua
parents:
diff changeset
1055
jurzua
parents:
diff changeset
1056 public void setNewIdentifier(String newIdentifier) {
jurzua
parents:
diff changeset
1057 this.newIdentifier = newIdentifier;
jurzua
parents:
diff changeset
1058 }
jurzua
parents:
diff changeset
1059
jurzua
parents:
diff changeset
1060 public EntityList getStudiedByList() {
jurzua
parents:
diff changeset
1061 return studiedByList;
jurzua
parents:
diff changeset
1062 }
jurzua
parents:
diff changeset
1063
jurzua
parents:
diff changeset
1064 public Calendar getCopyDate() {
jurzua
parents:
diff changeset
1065 return copyDate;
jurzua
parents:
diff changeset
1066 }
jurzua
parents:
diff changeset
1067
jurzua
parents:
diff changeset
1068 public void setCopyDate(Calendar copyDate) {
jurzua
parents:
diff changeset
1069 this.copyDate = copyDate;
jurzua
parents:
diff changeset
1070 }
jurzua
parents:
diff changeset
1071
jurzua
parents:
diff changeset
1072 public void setStudiedByList(EntityList studiedByList) {
jurzua
parents:
diff changeset
1073 this.studiedByList = studiedByList;
jurzua
parents:
diff changeset
1074 }
jurzua
parents:
diff changeset
1075 public Long getValueAuthorSelectedId() {
jurzua
parents:
diff changeset
1076 return valueAuthorSelectedId;
jurzua
parents:
diff changeset
1077 }
jurzua
parents:
diff changeset
1078
jurzua
parents:
diff changeset
1079 public void setValueAuthorSelectedId(Long valueAuthorSelectedId) {
jurzua
parents:
diff changeset
1080 this.valueAuthorSelectedId = valueAuthorSelectedId;
jurzua
parents:
diff changeset
1081 }
jurzua
parents:
diff changeset
1082
jurzua
parents:
diff changeset
1083 public String getValueTextWritten() {
jurzua
parents:
diff changeset
1084 return valueTextWritten;
jurzua
parents:
diff changeset
1085 }
jurzua
parents:
diff changeset
1086
jurzua
parents:
diff changeset
1087 public void setValueTextWritten(String valueTextWritten) {
jurzua
parents:
diff changeset
1088 //this.valueTextWritten = valueTextWritten;
jurzua
parents:
diff changeset
1089 }
jurzua
parents:
diff changeset
1090
jurzua
parents:
diff changeset
1091 public String getValueAuthorWritten() {
jurzua
parents:
diff changeset
1092 return valueAuthorWritten;
jurzua
parents:
diff changeset
1093 }
jurzua
parents:
diff changeset
1094
jurzua
parents:
diff changeset
1095 public void setValueAuthorWritten(String valueAuthorWritten) {
jurzua
parents:
diff changeset
1096 //this.valueAuthorWritten = valueAuthorWritten;
jurzua
parents:
diff changeset
1097 }
jurzua
parents:
diff changeset
1098
jurzua
parents:
diff changeset
1099 public void setAuthorLo(ListenerObject authorLo) {
jurzua
parents:
diff changeset
1100 this.authorLo = authorLo;
jurzua
parents:
diff changeset
1101 }
jurzua
parents:
diff changeset
1102
jurzua
parents:
diff changeset
1103 public Long getSelectedTitleId() {
jurzua
parents:
diff changeset
1104 return selectedTitleId;
jurzua
parents:
diff changeset
1105 }
jurzua
parents:
diff changeset
1106
jurzua
parents:
diff changeset
1107 public void setSelectedTitleId(Long selectedTitleId) {
jurzua
parents:
diff changeset
1108 this.selectedTitleId = selectedTitleId;
jurzua
parents:
diff changeset
1109 }
jurzua
parents:
diff changeset
1110 public Long getSelectedPersonId() {
jurzua
parents:
diff changeset
1111 return selectedPersonId;
jurzua
parents:
diff changeset
1112 }
jurzua
parents:
diff changeset
1113
jurzua
parents:
diff changeset
1114 public void setSelectedPersonId(Long selectedPersonId) {
jurzua
parents:
diff changeset
1115 this.selectedPersonId = selectedPersonId;
jurzua
parents:
diff changeset
1116 }
jurzua
parents:
diff changeset
1117
jurzua
parents:
diff changeset
1118 public boolean isTextUnknown() {
jurzua
parents:
diff changeset
1119 return textUnknown;
jurzua
parents:
diff changeset
1120 }
jurzua
parents:
diff changeset
1121
jurzua
parents:
diff changeset
1122 public void setTextUnknown(boolean textUnknown) {
jurzua
parents:
diff changeset
1123 this.textUnknown = textUnknown;
jurzua
parents:
diff changeset
1124 }
jurzua
parents:
diff changeset
1125
jurzua
parents:
diff changeset
1126 public EntityList getPossibleExamplerOfList() {
jurzua
parents:
diff changeset
1127 return possibleExamplerOfList;
jurzua
parents:
diff changeset
1128 }
jurzua
parents:
diff changeset
1129
jurzua
parents:
diff changeset
1130 public void setPossibleExamplerOfList(EntityList possibleExamplerOfList) {
jurzua
parents:
diff changeset
1131 this.possibleExamplerOfList = possibleExamplerOfList;
jurzua
parents:
diff changeset
1132 }
120
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
1133
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
1134 public MisidentificationTable getMisidentTable() {
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
1135 return misidentTable;
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
1136 }
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
1137
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
1138 public void setMisidentTable(MisidentificationTable misidentTable) {
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
1139 this.misidentTable = misidentTable;
71638720fe2f working on MISIDENTIFICATION for witnesses.
casties
parents: 119
diff changeset
1140 }
1
jurzua
parents:
diff changeset
1141
jurzua
parents:
diff changeset
1142 }
jurzua
parents:
diff changeset
1143