annotate src/main/java/de/mpiwg/itgroup/ismi/search/beans/DisplayBean.java @ 153:3c83f42a8a39 public_by_author

first stab at new public-by-author interface.
author Robert Casties <casties@mpiwg-berlin.mpg.de>
date Fri, 18 Aug 2017 14:58:11 -0400
parents e07e9f5afaa3
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.search.beans;
jurzua
parents:
diff changeset
2
jurzua
parents:
diff changeset
3 import java.util.ArrayList;
jurzua
parents:
diff changeset
4 import java.util.List;
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.apache.log4j.Logger;
jurzua
parents:
diff changeset
10 import org.mpi.openmind.repository.bo.Entity;
jurzua
parents:
diff changeset
11
jurzua
parents:
diff changeset
12 import de.mpiwg.itgroup.ismi.auxObjects.SelectItem0;
jurzua
parents:
diff changeset
13 import de.mpiwg.itgroup.ismi.entry.beans.AbstractISMIBean;
jurzua
parents:
diff changeset
14 import de.mpiwg.itgroup.ismi.entry.utils.PrivacityUtils;
jurzua
parents:
diff changeset
15 import de.mpiwg.itgroup.ismi.utils.templates.TitleTemplate;
jurzua
parents:
diff changeset
16 import de.mpiwg.itgroup.ismi.utils.templates.WitnessTemplate;
jurzua
parents:
diff changeset
17
jurzua
parents:
diff changeset
18 public class DisplayBean extends AbstractISMIBean {
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 = 1296816397468908012L;
jurzua
parents:
diff changeset
24
jurzua
parents:
diff changeset
25 private static Logger logger = Logger.getLogger(DisplayBean.class);
jurzua
parents:
diff changeset
26
jurzua
parents:
diff changeset
27 protected TitleTemplate title;
jurzua
parents:
diff changeset
28 protected WitnessTemplate witness;
jurzua
parents:
diff changeset
29
jurzua
parents:
diff changeset
30 //Witness elements
jurzua
parents:
diff changeset
31 protected List<SelectItem0> witnessItems = new ArrayList<SelectItem0>();
jurzua
parents:
diff changeset
32 protected Long selectedWitnessId;
72
70207f24937e cleaned displayAuthor. added filter for witnesses with scans.
casties
parents: 60
diff changeset
33 protected boolean showWitnessesWithScans = false;
1
jurzua
parents:
diff changeset
34
jurzua
parents:
diff changeset
35 //Title elements
jurzua
parents:
diff changeset
36 protected Long selectedTitleId;
jurzua
parents:
diff changeset
37 protected List<SelectItem0> titleItems = new ArrayList<SelectItem0>();
jurzua
parents:
diff changeset
38
jurzua
parents:
diff changeset
39 protected void resetDisplay(){
jurzua
parents:
diff changeset
40 this.witness = null;
jurzua
parents:
diff changeset
41 this.selectedWitnessId = null;
jurzua
parents:
diff changeset
42 this.title = null;
jurzua
parents:
diff changeset
43 this.selectedTitleId = null;
jurzua
parents:
diff changeset
44 this.witnessItems = new ArrayList<SelectItem0>();
jurzua
parents:
diff changeset
45 }
jurzua
parents:
diff changeset
46
jurzua
parents:
diff changeset
47 public void showTitle(Long textId){
jurzua
parents:
diff changeset
48 this.selectedTitleId = textId;
jurzua
parents:
diff changeset
49
jurzua
parents:
diff changeset
50 this.witness = null;
jurzua
parents:
diff changeset
51 this.witnessItems = new ArrayList<SelectItem0>();
jurzua
parents:
diff changeset
52 this.selectedWitnessId = null;
jurzua
parents:
diff changeset
53
jurzua
parents:
diff changeset
54 long start = System.currentTimeMillis();
jurzua
parents:
diff changeset
55
jurzua
parents:
diff changeset
56 Entity entTitle = getWrapper().getEntityById(this.selectedTitleId);
jurzua
parents:
diff changeset
57
jurzua
parents:
diff changeset
58 if(this.selectedTitleId != null){
jurzua
parents:
diff changeset
59
jurzua
parents:
diff changeset
60 this.titleItems = SelectItem0.valueChange(titleItems, textId);
jurzua
parents:
diff changeset
61 this.title = new TitleTemplate(entTitle, getWrapper(), false);
jurzua
parents:
diff changeset
62
jurzua
parents:
diff changeset
63 //****** getting witnesses **********************
jurzua
parents:
diff changeset
64 long startWitness = System.currentTimeMillis();
72
70207f24937e cleaned displayAuthor. added filter for witnesses with scans.
casties
parents: 60
diff changeset
65 List<Entity> list = new ArrayList<Entity>();
70207f24937e cleaned displayAuthor. added filter for witnesses with scans.
casties
parents: 60
diff changeset
66 List<Entity> allwits = getWrapper().getSourcesForTargetRelation(selectedTitleId, is_exemplar_of, WITNESS, -1);
77
985dcecba904 "show scans" link and indicator for all witnesses with digitalization (no check for public).
casties
parents: 72
diff changeset
67 boolean hasScans = false;
985dcecba904 "show scans" link and indicator for all witnesses with digitalization (no check for public).
casties
parents: 72
diff changeset
68 for (Entity witness : allwits) {
985dcecba904 "show scans" link and indicator for all witnesses with digitalization (no check for public).
casties
parents: 72
diff changeset
69 // get CODEX for WITNESS
985dcecba904 "show scans" link and indicator for all witnesses with digitalization (no check for public).
casties
parents: 72
diff changeset
70 List<Entity> codices = getWrapper().getTargetsForSourceRelation(witness.getId(), is_part_of, CODEX, 1);
83
e07e9f5afaa3 fix display bug when WITNESS has no CODEX.
casties
parents: 77
diff changeset
71 if (codices.isEmpty()) {
e07e9f5afaa3 fix display bug when WITNESS has no CODEX.
casties
parents: 77
diff changeset
72 logger.error("WITNESS ["+witness.getId()+"] has no CODEX!");
e07e9f5afaa3 fix display bug when WITNESS has no CODEX.
casties
parents: 77
diff changeset
73 } else {
e07e9f5afaa3 fix display bug when WITNESS has no CODEX.
casties
parents: 77
diff changeset
74 Entity codex = codices.get(0);
e07e9f5afaa3 fix display bug when WITNESS has no CODEX.
casties
parents: 77
diff changeset
75 // look at DIGITALIZATION of CODEX
e07e9f5afaa3 fix display bug when WITNESS has no CODEX.
casties
parents: 77
diff changeset
76 List<Entity> digis = getWrapper().getSourcesForTargetRelation(codex.getId(), is_digitalization_of, DIGITALIZATION, 1);
e07e9f5afaa3 fix display bug when WITNESS has no CODEX.
casties
parents: 77
diff changeset
77 hasScans = !digis.isEmpty();
e07e9f5afaa3 fix display bug when WITNESS has no CODEX.
casties
parents: 77
diff changeset
78 if (this.showWitnessesWithScans && !hasScans) {
e07e9f5afaa3 fix display bug when WITNESS has no CODEX.
casties
parents: 77
diff changeset
79 continue;
e07e9f5afaa3 fix display bug when WITNESS has no CODEX.
casties
parents: 77
diff changeset
80 }
77
985dcecba904 "show scans" link and indicator for all witnesses with digitalization (no check for public).
casties
parents: 72
diff changeset
81 }
985dcecba904 "show scans" link and indicator for all witnesses with digitalization (no check for public).
casties
parents: 72
diff changeset
82 String witlabel = witness.getOwnValue() + " [" + witness.getId() + "]" + (hasScans ? "+S" : "");
985dcecba904 "show scans" link and indicator for all witnesses with digitalization (no check for public).
casties
parents: 72
diff changeset
83 SelectItem0 item = new SelectItem0(witness.getId(), witlabel, true);
985dcecba904 "show scans" link and indicator for all witnesses with digitalization (no check for public).
casties
parents: 72
diff changeset
84 this.witnessItems.add(item);
985dcecba904 "show scans" link and indicator for all witnesses with digitalization (no check for public).
casties
parents: 72
diff changeset
85 list.add(witness);
985dcecba904 "show scans" link and indicator for all witnesses with digitalization (no check for public).
casties
parents: 72
diff changeset
86 }
1
jurzua
parents:
diff changeset
87
jurzua
parents:
diff changeset
88 if(list.size() > 0){
jurzua
parents:
diff changeset
89 this.showWitness(list.get(0).getId());
jurzua
parents:
diff changeset
90 }
jurzua
parents:
diff changeset
91
jurzua
parents:
diff changeset
92 long diff = System.currentTimeMillis() - startWitness;
jurzua
parents:
diff changeset
93 if(diff > 1000){
jurzua
parents:
diff changeset
94 logger.info("Time - listenerShowTitle().getSourcesForTargetRelation(title, 'X', WITNESS, -1) = " + diff + " [ms], Text id= " + this.selectedTitleId);
jurzua
parents:
diff changeset
95
jurzua
parents:
diff changeset
96 }
jurzua
parents:
diff changeset
97 //************************************************
jurzua
parents:
diff changeset
98 }
jurzua
parents:
diff changeset
99 long diff = System.currentTimeMillis() - start;
jurzua
parents:
diff changeset
100
jurzua
parents:
diff changeset
101 if(diff > 1000){
jurzua
parents:
diff changeset
102 logger.info("Time - listenerShowTitle() " + diff + " [ms], Text id= " + this.selectedTitleId);
jurzua
parents:
diff changeset
103 }
jurzua
parents:
diff changeset
104 }
jurzua
parents:
diff changeset
105
jurzua
parents:
diff changeset
106
jurzua
parents:
diff changeset
107 public void listenerShowWitness0(ActionEvent event){
jurzua
parents:
diff changeset
108 SelectItem0 item = (SelectItem0)getRequestBean("witnessItem");
jurzua
parents:
diff changeset
109 if (item != null) {
jurzua
parents:
diff changeset
110 this.redirect(null, "?textId=" + selectedTitleId + "&witnessId=" + item.getValue() + "#witnesses");
jurzua
parents:
diff changeset
111 }
jurzua
parents:
diff changeset
112 }
jurzua
parents:
diff changeset
113
jurzua
parents:
diff changeset
114
jurzua
parents:
diff changeset
115 public void showWitness(Long selectedWitnessId) {
jurzua
parents:
diff changeset
116
jurzua
parents:
diff changeset
117 this.selectedWitnessId = selectedWitnessId;
jurzua
parents:
diff changeset
118
jurzua
parents:
diff changeset
119 if (this.selectedWitnessId != null) {
jurzua
parents:
diff changeset
120 this.witnessItems = SelectItem0.valueChange(witnessItems, selectedWitnessId);
jurzua
parents:
diff changeset
121 Entity entWitness = getWrapper().getEntityById(selectedWitnessId);
jurzua
parents:
diff changeset
122
jurzua
parents:
diff changeset
123 if (entWitness != null) {
jurzua
parents:
diff changeset
124 this.witness = new WitnessTemplate(entWitness, getWrapper(), true);
jurzua
parents:
diff changeset
125 }
jurzua
parents:
diff changeset
126 }
jurzua
parents:
diff changeset
127 }
jurzua
parents:
diff changeset
128
jurzua
parents:
diff changeset
129 /**
jurzua
parents:
diff changeset
130 * This method is called from the result of the simple search. It will set the title(text) into the currentText to be edited.
jurzua
parents:
diff changeset
131 * @return
jurzua
parents:
diff changeset
132 */
jurzua
parents:
diff changeset
133 public String actionEditTitle() {
jurzua
parents:
diff changeset
134 if(this.selectedTitleId != null){
jurzua
parents:
diff changeset
135 getSessionBean().editEntity(getWrapper().getEntityById(selectedTitleId));
jurzua
parents:
diff changeset
136 return "entry_edit_entity";
jurzua
parents:
diff changeset
137 }
jurzua
parents:
diff changeset
138 return "";
jurzua
parents:
diff changeset
139 }
jurzua
parents:
diff changeset
140
jurzua
parents:
diff changeset
141 /**
jurzua
parents:
diff changeset
142 * This method is called from the result of the simple search. It will set
jurzua
parents:
diff changeset
143 * the witness into the currentWitness to be edited.
jurzua
parents:
diff changeset
144 *
jurzua
parents:
diff changeset
145 * @return
jurzua
parents:
diff changeset
146 */
jurzua
parents:
diff changeset
147 public String actionEditWitness() {
jurzua
parents:
diff changeset
148 if (this.selectedWitnessId != null) {
jurzua
parents:
diff changeset
149 getSessionBean().editEntity(getWrapper().getEntityById(selectedWitnessId));
jurzua
parents:
diff changeset
150 return "entry_edit_entity";
jurzua
parents:
diff changeset
151 }
jurzua
parents:
diff changeset
152 return "";
jurzua
parents:
diff changeset
153 }
jurzua
parents:
diff changeset
154
jurzua
parents:
diff changeset
155 //Privacity titles
jurzua
parents:
diff changeset
156 public void changePrivacity4Title(ActionEvent event){
jurzua
parents:
diff changeset
157 try {
jurzua
parents:
diff changeset
158 if(selectedTitleId != null){
jurzua
parents:
diff changeset
159 List<Entity> saveList = PrivacityUtils.changePrivacity4Title(getWrapper().getEntityById(selectedTitleId), null, getWrapper());
jurzua
parents:
diff changeset
160 getWrapper().saveEntityListAsNodeWithoutContent(saveList, getUserName());
jurzua
parents:
diff changeset
161 this.showTitle(selectedTitleId);
jurzua
parents:
diff changeset
162 }
jurzua
parents:
diff changeset
163 } catch (Exception e) {
jurzua
parents:
diff changeset
164 logger.error(e.getMessage(), e);
jurzua
parents:
diff changeset
165 printInternalError(e);
jurzua
parents:
diff changeset
166 }
jurzua
parents:
diff changeset
167 }
jurzua
parents:
diff changeset
168
jurzua
parents:
diff changeset
169 //Privacity witnesses
jurzua
parents:
diff changeset
170 public void changePrivacity4Witness(ActionEvent event){
jurzua
parents:
diff changeset
171 try {
jurzua
parents:
diff changeset
172 if(selectedWitnessId != null){
jurzua
parents:
diff changeset
173 List<Entity> saveList = PrivacityUtils.changePrivacity4Witness(getWrapper().getEntityById(selectedWitnessId), null, getWrapper());
jurzua
parents:
diff changeset
174 getWrapper().saveEntityListAsNodeWithoutContent(saveList, getUserName());
jurzua
parents:
diff changeset
175 this.showWitness(selectedWitnessId);
jurzua
parents:
diff changeset
176 }
jurzua
parents:
diff changeset
177 } catch (Exception e) {
jurzua
parents:
diff changeset
178 logger.error(e.getMessage(), e);
jurzua
parents:
diff changeset
179 printInternalError(e);
jurzua
parents:
diff changeset
180 }
jurzua
parents:
diff changeset
181
jurzua
parents:
diff changeset
182 }
jurzua
parents:
diff changeset
183
jurzua
parents:
diff changeset
184 private void changeAllWitnesses(boolean privacity) throws Exception{
jurzua
parents:
diff changeset
185 List<Entity> saveList = new ArrayList<Entity>();
jurzua
parents:
diff changeset
186 for(SelectItem item : witnessItems){
jurzua
parents:
diff changeset
187 Long id = (Long)item.getValue();
jurzua
parents:
diff changeset
188 Entity witness = getWrapper().getEntityById(id);
jurzua
parents:
diff changeset
189 saveList.addAll(PrivacityUtils.changePrivacity4Witness(witness, privacity, getWrapper()));
jurzua
parents:
diff changeset
190 }
jurzua
parents:
diff changeset
191 getWrapper().saveEntityListAsNodeWithoutContent(saveList, getUserName());
jurzua
parents:
diff changeset
192 this.showWitness(selectedWitnessId);
jurzua
parents:
diff changeset
193 }
jurzua
parents:
diff changeset
194
jurzua
parents:
diff changeset
195 public void listenerMakeAllWitnessesPublic(ActionEvent event){
jurzua
parents:
diff changeset
196 try {
jurzua
parents:
diff changeset
197 this.changeAllWitnesses(true);
jurzua
parents:
diff changeset
198 } catch (Exception e) {
jurzua
parents:
diff changeset
199 logger.error(e.getMessage(), e);
jurzua
parents:
diff changeset
200 printInternalError(e);
jurzua
parents:
diff changeset
201 }
jurzua
parents:
diff changeset
202 }
jurzua
parents:
diff changeset
203
jurzua
parents:
diff changeset
204 public void listenerMakeAllWitnessesPrivate(ActionEvent event){
jurzua
parents:
diff changeset
205 try {
jurzua
parents:
diff changeset
206 this.changeAllWitnesses(false);
jurzua
parents:
diff changeset
207 } catch (Exception e) {
jurzua
parents:
diff changeset
208 logger.error(e.getMessage(), e);
jurzua
parents:
diff changeset
209 printInternalError(e);
jurzua
parents:
diff changeset
210 }
jurzua
parents:
diff changeset
211
jurzua
parents:
diff changeset
212 }
jurzua
parents:
diff changeset
213
72
70207f24937e cleaned displayAuthor. added filter for witnesses with scans.
casties
parents: 60
diff changeset
214
70207f24937e cleaned displayAuthor. added filter for witnesses with scans.
casties
parents: 60
diff changeset
215 public void changeShowWitnessesWithScans() {
70207f24937e cleaned displayAuthor. added filter for witnesses with scans.
casties
parents: 60
diff changeset
216 if (this.selectedTitleId != null) {
70207f24937e cleaned displayAuthor. added filter for witnesses with scans.
casties
parents: 60
diff changeset
217 showTitle(this.selectedTitleId);
70207f24937e cleaned displayAuthor. added filter for witnesses with scans.
casties
parents: 60
diff changeset
218 }
70207f24937e cleaned displayAuthor. added filter for witnesses with scans.
casties
parents: 60
diff changeset
219 }
70207f24937e cleaned displayAuthor. added filter for witnesses with scans.
casties
parents: 60
diff changeset
220
1
jurzua
parents:
diff changeset
221 public int getWitnessItemsSize() {
jurzua
parents:
diff changeset
222 if(witnessItems != null)
jurzua
parents:
diff changeset
223 return witnessItems.size();
jurzua
parents:
diff changeset
224 return 0;
jurzua
parents:
diff changeset
225 }
jurzua
parents:
diff changeset
226
jurzua
parents:
diff changeset
227 public TitleTemplate getTitle() {
jurzua
parents:
diff changeset
228 return title;
jurzua
parents:
diff changeset
229 }
jurzua
parents:
diff changeset
230
jurzua
parents:
diff changeset
231 public WitnessTemplate getWitness() {
jurzua
parents:
diff changeset
232 return witness;
jurzua
parents:
diff changeset
233 }
jurzua
parents:
diff changeset
234
jurzua
parents:
diff changeset
235 public List<SelectItem0> getWitnessItems() {
jurzua
parents:
diff changeset
236 return witnessItems;
jurzua
parents:
diff changeset
237 }
jurzua
parents:
diff changeset
238
jurzua
parents:
diff changeset
239 public Long getSelectedWitnessId() {
jurzua
parents:
diff changeset
240 return selectedWitnessId;
jurzua
parents:
diff changeset
241 }
jurzua
parents:
diff changeset
242
jurzua
parents:
diff changeset
243 public Long getSelectedTitleId() {
jurzua
parents:
diff changeset
244 return selectedTitleId;
jurzua
parents:
diff changeset
245 }
jurzua
parents:
diff changeset
246
jurzua
parents:
diff changeset
247 public void setSelectedWitnessId(Long selectedWitnessId) {
jurzua
parents:
diff changeset
248 this.selectedWitnessId = selectedWitnessId;
jurzua
parents:
diff changeset
249 }
jurzua
parents:
diff changeset
250
jurzua
parents:
diff changeset
251 public void setSelectedTitleId(Long selectedTitleId) {
jurzua
parents:
diff changeset
252 this.selectedTitleId = selectedTitleId;
jurzua
parents:
diff changeset
253 }
72
70207f24937e cleaned displayAuthor. added filter for witnesses with scans.
casties
parents: 60
diff changeset
254
70207f24937e cleaned displayAuthor. added filter for witnesses with scans.
casties
parents: 60
diff changeset
255 public boolean isShowWitnessesWithScans() {
70207f24937e cleaned displayAuthor. added filter for witnesses with scans.
casties
parents: 60
diff changeset
256 return showWitnessesWithScans;
70207f24937e cleaned displayAuthor. added filter for witnesses with scans.
casties
parents: 60
diff changeset
257 }
70207f24937e cleaned displayAuthor. added filter for witnesses with scans.
casties
parents: 60
diff changeset
258
70207f24937e cleaned displayAuthor. added filter for witnesses with scans.
casties
parents: 60
diff changeset
259 public void setShowWitnessesWithScans(boolean showWitnessesWithScans) {
70207f24937e cleaned displayAuthor. added filter for witnesses with scans.
casties
parents: 60
diff changeset
260 this.showWitnessesWithScans = showWitnessesWithScans;
70207f24937e cleaned displayAuthor. added filter for witnesses with scans.
casties
parents: 60
diff changeset
261 }
1
jurzua
parents:
diff changeset
262 }