annotate src/main/java/de/mpiwg/itgroup/ismi/entry/beans/CurrentDigitalizationBean.java @ 166:caf1aa768457

updated public_manifest_url in DIGITALIZATION form.
author Robert Casties <casties@mpiwg-berlin.mpg.de>
date Tue, 29 May 2018 21:16:46 +0200
parents 1326182855ef
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.entry.beans;
jurzua
parents:
diff changeset
2
jurzua
parents:
diff changeset
3 import java.io.Serializable;
jurzua
parents:
diff changeset
4 import java.util.List;
jurzua
parents:
diff changeset
5
84
e2f6ccc4d322 add "remove codex" button to digitalization form.
casties
parents: 1
diff changeset
6 import javax.faces.event.ActionEvent;
e2f6ccc4d322 add "remove codex" button to digitalization form.
casties
parents: 1
diff changeset
7
1
jurzua
parents:
diff changeset
8 import org.apache.log4j.Logger;
jurzua
parents:
diff changeset
9 import org.mpi.openmind.repository.bo.Entity;
jurzua
parents:
diff changeset
10 import org.mpi.openmind.repository.bo.Node;
125
eee2e0ca4032 updated entry beans to use EditIntents.
casties
parents: 124
diff changeset
11 import org.mpi.openmind.repository.services.utils.EditIntent;
1
jurzua
parents:
diff changeset
12 import org.mpi.openmind.security.bo.User;
jurzua
parents:
diff changeset
13
84
e2f6ccc4d322 add "remove codex" button to digitalization form.
casties
parents: 1
diff changeset
14 import de.mpiwg.itgroup.ismi.auxObjects.ListenerObject;
e2f6ccc4d322 add "remove codex" button to digitalization form.
casties
parents: 1
diff changeset
15
1
jurzua
parents:
diff changeset
16 public class CurrentDigitalizationBean extends CodexEditorTemplate implements Serializable{
jurzua
parents:
diff changeset
17
jurzua
parents:
diff changeset
18 private static final long serialVersionUID = 4910425502556948216L;
jurzua
parents:
diff changeset
19
jurzua
parents:
diff changeset
20 private static Logger logger = Logger.getLogger(CurrentDigitalizationBean.class);
jurzua
parents:
diff changeset
21
125
eee2e0ca4032 updated entry beans to use EditIntents.
casties
parents: 124
diff changeset
22 /** intent to edit all attributes and relations in the form */
eee2e0ca4032 updated entry beans to use EditIntents.
casties
parents: 124
diff changeset
23 public static EditIntent editDigitalizationIntent = new EditIntent(
eee2e0ca4032 updated entry beans to use EditIntents.
casties
parents: 124
diff changeset
24 AbstractISMIBean.DIGITALIZATION,
eee2e0ca4032 updated entry beans to use EditIntents.
casties
parents: 124
diff changeset
25 // attributes
166
caf1aa768457 updated public_manifest_url in DIGITALIZATION form.
Robert Casties <casties@mpiwg-berlin.mpg.de>
parents: 151
diff changeset
26 new String[]{"name", "num_files", "public_manifest_url", "public"},
125
eee2e0ca4032 updated entry beans to use EditIntents.
casties
parents: 124
diff changeset
27 // source relations
eee2e0ca4032 updated entry beans to use EditIntents.
casties
parents: 124
diff changeset
28 new String[]{"is_digitalization_of"},
eee2e0ca4032 updated entry beans to use EditIntents.
casties
parents: 124
diff changeset
29 // target relations
eee2e0ca4032 updated entry beans to use EditIntents.
casties
parents: 124
diff changeset
30 new String[]{});
eee2e0ca4032 updated entry beans to use EditIntents.
casties
parents: 124
diff changeset
31
1
jurzua
parents:
diff changeset
32
jurzua
parents:
diff changeset
33 public CurrentDigitalizationBean(){
jurzua
parents:
diff changeset
34 super();
jurzua
parents:
diff changeset
35 this.entity = new Entity(Node.TYPE_ABOX, DIGITALIZATION, false);
jurzua
parents:
diff changeset
36 setDefObjectClass(DIGITALIZATION);
jurzua
parents:
diff changeset
37 }
jurzua
parents:
diff changeset
38
jurzua
parents:
diff changeset
39 @Override
jurzua
parents:
diff changeset
40 public void reset(){
jurzua
parents:
diff changeset
41 super.reset();
jurzua
parents:
diff changeset
42 this.entity = new Entity(Node.TYPE_ABOX, DIGITALIZATION, false);
jurzua
parents:
diff changeset
43 }
jurzua
parents:
diff changeset
44
jurzua
parents:
diff changeset
45 @Override
jurzua
parents:
diff changeset
46 public void setEntity(Entity digi){
jurzua
parents:
diff changeset
47 this.reset();
jurzua
parents:
diff changeset
48 this.entity = digi;
jurzua
parents:
diff changeset
49
jurzua
parents:
diff changeset
50 if(this.entity.isPersistent()){
jurzua
parents:
diff changeset
51 if (entity.isLightweight()) {
jurzua
parents:
diff changeset
52 entity = getWrapper().getEntityContent(digi);
jurzua
parents:
diff changeset
53 }
jurzua
parents:
diff changeset
54 }
jurzua
parents:
diff changeset
55
jurzua
parents:
diff changeset
56 this.loadAttributes(this.entity);
jurzua
parents:
diff changeset
57
jurzua
parents:
diff changeset
58 List<Entity> list = getWrapper().getTargetsForSourceRelation(entity, is_digitalization_of, CODEX, -1);
jurzua
parents:
diff changeset
59 if(list.size() > 0){
jurzua
parents:
diff changeset
60 this.setCodex(list.get(0));
jurzua
parents:
diff changeset
61 }
jurzua
parents:
diff changeset
62 }
jurzua
parents:
diff changeset
63
jurzua
parents:
diff changeset
64
jurzua
parents:
diff changeset
65 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: 84
diff changeset
66 this.getCodexLo().setEntityAndAttributeName(codex, "identifier");
1
jurzua
parents:
diff changeset
67
jurzua
parents:
diff changeset
68 if(this.getCodexLo().entity != null && this.getCodexLo().entity.isPersistent()){
jurzua
parents:
diff changeset
69
jurzua
parents:
diff changeset
70 List<Entity> list = getWrapper().getTargetsForSourceRelation(codex, is_part_of, COLLECTION, 1);
jurzua
parents:
diff changeset
71 if(list.size() > 0){
jurzua
parents:
diff changeset
72 this.setCollection(list.get(0));
jurzua
parents:
diff changeset
73 }
jurzua
parents:
diff changeset
74 }
jurzua
parents:
diff changeset
75 }
jurzua
parents:
diff changeset
76
84
e2f6ccc4d322 add "remove codex" button to digitalization form.
casties
parents: 1
diff changeset
77 public void unsetCodex(ActionEvent event){
e2f6ccc4d322 add "remove codex" button to digitalization form.
casties
parents: 1
diff changeset
78 this.setCodexLo(new ListenerObject());
e2f6ccc4d322 add "remove codex" button to digitalization form.
casties
parents: 1
diff changeset
79 //this.getCodexLo().setEntityAndAttribute(null, null);
e2f6ccc4d322 add "remove codex" button to digitalization form.
casties
parents: 1
diff changeset
80 }
e2f6ccc4d322 add "remove codex" button to digitalization form.
casties
parents: 1
diff changeset
81
1
jurzua
parents:
diff changeset
82 @Override
jurzua
parents:
diff changeset
83 public String save() {
jurzua
parents:
diff changeset
84 super.save();
jurzua
parents:
diff changeset
85 try {
jurzua
parents:
diff changeset
86 User user = getSessionUser();
jurzua
parents:
diff changeset
87
jurzua
parents:
diff changeset
88 this.entity = this.updateEntityAttributes(this.entity);
jurzua
parents:
diff changeset
89
jurzua
parents:
diff changeset
90 // DIGITALIZATION -> is_digitalization_of -> CODEX
134
25bfcc9d757c effort to re-use more relations when saving entities.
casties
parents: 125
diff changeset
91 this.entity.replaceUniqueSourceRelation(getCodexLo().entity, CODEX, is_digitalization_of);
1
jurzua
parents:
diff changeset
92
134
25bfcc9d757c effort to re-use more relations when saving entities.
casties
parents: 125
diff changeset
93 // save this entity
125
eee2e0ca4032 updated entry beans to use EditIntents.
casties
parents: 124
diff changeset
94 this.entity = getWrapper().saveEntity(this.entity, user.getEmail(), editDigitalizationIntent);
1
jurzua
parents:
diff changeset
95
jurzua
parents:
diff changeset
96 this.setEntity(this.entity);
jurzua
parents:
diff changeset
97
jurzua
parents:
diff changeset
98 logger.info("Entity saved - Time = " + (System.currentTimeMillis() - start) + ", " + entity);
jurzua
parents:
diff changeset
99
jurzua
parents:
diff changeset
100 this.printSuccessSavingEntity();
jurzua
parents:
diff changeset
101
jurzua
parents:
diff changeset
102 } catch (Exception e) {
jurzua
parents:
diff changeset
103 logger.error(e.getMessage(), e);
jurzua
parents:
diff changeset
104 this.printInternalError(e);
jurzua
parents:
diff changeset
105 }
jurzua
parents:
diff changeset
106 saveEnd();
jurzua
parents:
diff changeset
107 return PAGE_EDITOR;
jurzua
parents:
diff changeset
108 }
jurzua
parents:
diff changeset
109
jurzua
parents:
diff changeset
110
jurzua
parents:
diff changeset
111 }