annotate src/main/java/de/mpiwg/itgroup/ismi/search/beans/DisplayBean.java @ 72:70207f24937e

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