annotate src/main/java/de/mpiwg/itgroup/ismi/search/beans/DisplayBean.java @ 1:2e911857a759

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