annotate src/main/java/de/mpiwg/itgroup/ismi/util/guiComponents/EntityList.java @ 216:93d33f138c9e default tip

update medeniyet image server URL.
author casties
date Wed, 26 Jan 2022 16:39:32 +0100
parents 28a0c2726466
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.util.guiComponents;
jurzua
parents:
diff changeset
2
jurzua
parents:
diff changeset
3 import java.util.ArrayList;
jurzua
parents:
diff changeset
4 import java.util.Collections;
jurzua
parents:
diff changeset
5 import java.util.HashMap;
jurzua
parents:
diff changeset
6 import java.util.List;
jurzua
parents:
diff changeset
7 import java.util.Map;
jurzua
parents:
diff changeset
8
jurzua
parents:
diff changeset
9 import javax.faces.event.ActionEvent;
jurzua
parents:
diff changeset
10 import javax.faces.event.ValueChangeEvent;
jurzua
parents:
diff changeset
11
jurzua
parents:
diff changeset
12 import org.apache.log4j.Logger;
jurzua
parents:
diff changeset
13 import org.mpi.openmind.cache.WrapperService;
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
jurzua
parents:
diff changeset
18 import de.mpiwg.itgroup.ismi.auxObjects.ListenerObject;
jurzua
parents:
diff changeset
19 import de.mpiwg.itgroup.ismi.entry.beans.AbstractISMIBean;
jurzua
parents:
diff changeset
20
112
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 1
diff changeset
21 public class EntityList extends AbstractISMIBean {
1
jurzua
parents:
diff changeset
22
112
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 1
diff changeset
23 protected static final long serialVersionUID = -3339006604248018647L;
1
jurzua
parents:
diff changeset
24
112
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 1
diff changeset
25 protected static Logger logger = Logger.getLogger(EntityList.class);
1
jurzua
parents:
diff changeset
26
112
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 1
diff changeset
27 protected List<Entity> entities = new ArrayList<Entity>();
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 1
diff changeset
28 protected Map<Long, Boolean> selections = new HashMap<Long, Boolean>();
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 1
diff changeset
29 protected String title;
1
jurzua
parents:
diff changeset
30
jurzua
parents:
diff changeset
31 //some relations have an attribute date
112
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 1
diff changeset
32 protected boolean useCalendar;
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 1
diff changeset
33 protected Map<Long, Calendar> calendarMap;
1
jurzua
parents:
diff changeset
34
112
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 1
diff changeset
35 protected ListenerObject lo;
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 1
diff changeset
36
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 1
diff changeset
37 protected String input;
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 1
diff changeset
38 protected Long id;
1
jurzua
parents:
diff changeset
39
112
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 1
diff changeset
40 protected WrapperService otg;
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 1
diff changeset
41 protected String user;
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 1
diff changeset
42
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 1
diff changeset
43 public EntityList() {
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 1
diff changeset
44 // empty default constructor
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 1
diff changeset
45 }
1
jurzua
parents:
diff changeset
46
jurzua
parents:
diff changeset
47 public EntityList(String oc, String attName, String title){
jurzua
parents:
diff changeset
48 this.lo = new ListenerObject(oc, attName);
jurzua
parents:
diff changeset
49 this.title = title;
jurzua
parents:
diff changeset
50 }
jurzua
parents:
diff changeset
51
jurzua
parents:
diff changeset
52 public EntityList(String oc, String attName, boolean useCalendar){
jurzua
parents:
diff changeset
53 this.lo = new ListenerObject(oc, attName);
jurzua
parents:
diff changeset
54 this.useCalendar = useCalendar;
jurzua
parents:
diff changeset
55 this.calendarMap = new HashMap<Long, Calendar>();
jurzua
parents:
diff changeset
56 }
jurzua
parents:
diff changeset
57
jurzua
parents:
diff changeset
58 public EntityList(String oc, String attName, WrapperService otg, String user){
jurzua
parents:
diff changeset
59 this.lo = new ListenerObject(oc, attName);
jurzua
parents:
diff changeset
60 this.otg = otg;
jurzua
parents:
diff changeset
61 this.user = user;
jurzua
parents:
diff changeset
62 }
jurzua
parents:
diff changeset
63
jurzua
parents:
diff changeset
64 public EntityList(String oc, String attName, WrapperService otg, String user, boolean useCalendar){
jurzua
parents:
diff changeset
65 this.lo = new ListenerObject(oc, attName);
jurzua
parents:
diff changeset
66 this.otg = otg;
jurzua
parents:
diff changeset
67 this.user = user;
jurzua
parents:
diff changeset
68 this.useCalendar = useCalendar;
jurzua
parents:
diff changeset
69 this.calendarMap = new HashMap<Long, Calendar>();
jurzua
parents:
diff changeset
70 }
jurzua
parents:
diff changeset
71
jurzua
parents:
diff changeset
72
jurzua
parents:
diff changeset
73 public void listenerAddRole(ActionEvent event){
jurzua
parents:
diff changeset
74 if(otg != null && isUnique(id)){
jurzua
parents:
diff changeset
75 Entity role = otg.getEntityById(id);
jurzua
parents:
diff changeset
76 if(role != null){
jurzua
parents:
diff changeset
77 this.add(role);
jurzua
parents:
diff changeset
78 }
jurzua
parents:
diff changeset
79 }
jurzua
parents:
diff changeset
80 }
jurzua
parents:
diff changeset
81
jurzua
parents:
diff changeset
82 public void listenerCreate(ActionEvent event){
jurzua
parents:
diff changeset
83 try {
jurzua
parents:
diff changeset
84 if(otg != null && isUnique(input)){
jurzua
parents:
diff changeset
85 Entity e = new Entity(Node.TYPE_ABOX, lo.getClassObj(), false);
jurzua
parents:
diff changeset
86 e.setOwnValue(input);
jurzua
parents:
diff changeset
87 e.addAttribute(new Attribute(this.lo.getAttName(), "text", input));
124
28a0c2726466 changed saveEntity() to use new EditIntent. Set up EditIntent for TEXT, PERSON, REFERENCE.
casties
parents: 112
diff changeset
88 otg.saveEntity(e, this.user, null);
1
jurzua
parents:
diff changeset
89 this.add(e);
jurzua
parents:
diff changeset
90 }
jurzua
parents:
diff changeset
91 } catch (Exception e) {
jurzua
parents:
diff changeset
92 logger.error(e.getMessage(), e);
jurzua
parents:
diff changeset
93 e.printStackTrace();
jurzua
parents:
diff changeset
94 this.printInternalError(e);
jurzua
parents:
diff changeset
95 }
jurzua
parents:
diff changeset
96 }
jurzua
parents:
diff changeset
97
jurzua
parents:
diff changeset
98 public void listenerCreateNoUnique(ActionEvent event){
jurzua
parents:
diff changeset
99 try {
jurzua
parents:
diff changeset
100 if(otg != null ){
jurzua
parents:
diff changeset
101 Entity e = new Entity(Node.TYPE_ABOX, lo.getClassObj(), false);
jurzua
parents:
diff changeset
102 e.setOwnValue(input);
jurzua
parents:
diff changeset
103 e.addAttribute(new Attribute(this.lo.getAttName(), "text", input));
124
28a0c2726466 changed saveEntity() to use new EditIntent. Set up EditIntent for TEXT, PERSON, REFERENCE.
casties
parents: 112
diff changeset
104 otg.saveEntity(e, this.user, null);
1
jurzua
parents:
diff changeset
105 this.add(e);
jurzua
parents:
diff changeset
106 }
jurzua
parents:
diff changeset
107 } catch (Exception e) {
jurzua
parents:
diff changeset
108 logger.error(e.getMessage(), e);
jurzua
parents:
diff changeset
109 e.printStackTrace();
jurzua
parents:
diff changeset
110 this.printInternalError(e);
jurzua
parents:
diff changeset
111 }
jurzua
parents:
diff changeset
112 }
jurzua
parents:
diff changeset
113
jurzua
parents:
diff changeset
114 private boolean isUnique(Long id){
jurzua
parents:
diff changeset
115 for(Entity e : entities){
jurzua
parents:
diff changeset
116 if(e.getId().compareTo(id) == 0){
jurzua
parents:
diff changeset
117 addErrorMsg("This entity was already selected.");
jurzua
parents:
diff changeset
118 return false;
jurzua
parents:
diff changeset
119 }
jurzua
parents:
diff changeset
120 }
jurzua
parents:
diff changeset
121 return true;
jurzua
parents:
diff changeset
122 }
jurzua
parents:
diff changeset
123
jurzua
parents:
diff changeset
124 private boolean isUnique(String input){
jurzua
parents:
diff changeset
125 for(Entity e : entities){
jurzua
parents:
diff changeset
126 if(e.getOwnValue().equals(input)){
jurzua
parents:
diff changeset
127 addErrorMsg("An entity " + lo.getClassObj() + " with name " + input + " exists already.");
jurzua
parents:
diff changeset
128 return false;
jurzua
parents:
diff changeset
129 }
jurzua
parents:
diff changeset
130 }
jurzua
parents:
diff changeset
131 return true;
jurzua
parents:
diff changeset
132 }
jurzua
parents:
diff changeset
133
jurzua
parents:
diff changeset
134 public void listenerChanged(ValueChangeEvent event) {
jurzua
parents:
diff changeset
135 this.lo = changeListener(event, lo, this.lo.getClassObj(), this.lo.getAttName());
jurzua
parents:
diff changeset
136 if(lo.entity != null && lo.entity.isPersistent()){
jurzua
parents:
diff changeset
137 lo.statusImage.setStatus(StatusImage.STATUS_OK);
jurzua
parents:
diff changeset
138 }else{
jurzua
parents:
diff changeset
139 lo.statusImage.setStatus(StatusImage.STATUS_UNSET);
jurzua
parents:
diff changeset
140 }
jurzua
parents:
diff changeset
141 }
jurzua
parents:
diff changeset
142
jurzua
parents:
diff changeset
143 public void listenerAdd(ActionEvent event){
jurzua
parents:
diff changeset
144 this.add(this.lo.entity);
jurzua
parents:
diff changeset
145 }
jurzua
parents:
diff changeset
146
jurzua
parents:
diff changeset
147 public void listenerRemoveSelection(ActionEvent event){
jurzua
parents:
diff changeset
148 for(Entity remove : getSelectedEntities()){
jurzua
parents:
diff changeset
149 this.remove(remove.getId());
jurzua
parents:
diff changeset
150 }
jurzua
parents:
diff changeset
151 }
jurzua
parents:
diff changeset
152
112
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 1
diff changeset
153 /**
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 1
diff changeset
154 * Add an Entity to the list.
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 1
diff changeset
155 *
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 1
diff changeset
156 * @param e
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 1
diff changeset
157 */
1
jurzua
parents:
diff changeset
158 public void add(Entity e){
jurzua
parents:
diff changeset
159 if(e != null && e.isPersistent()){
jurzua
parents:
diff changeset
160 if(!selections.containsKey(e.getId())){
jurzua
parents:
diff changeset
161 this.entities.add(e);
jurzua
parents:
diff changeset
162 this.selections.put(e.getId(), false);
jurzua
parents:
diff changeset
163 Collections.sort(this.entities);
jurzua
parents:
diff changeset
164 if(useCalendar){
jurzua
parents:
diff changeset
165 Calendar cal = new Calendar();
jurzua
parents:
diff changeset
166 this.calendarMap.put(e.getId(), cal);
jurzua
parents:
diff changeset
167 }
jurzua
parents:
diff changeset
168 }
jurzua
parents:
diff changeset
169 }
jurzua
parents:
diff changeset
170 }
jurzua
parents:
diff changeset
171
112
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 1
diff changeset
172 /**
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 1
diff changeset
173 * Add an Entity with a calendar Attribute to the list.
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 1
diff changeset
174 *
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 1
diff changeset
175 * @param e
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 1
diff changeset
176 * @param calendarAtt
59f26a5ef2b3 AliasListenerObject adds aliases to ListenerObject. Change all forms to enable ALIAS for (historical) PLACE fields. Remove REPOSITORY from event forms.
casties
parents: 1
diff changeset
177 */
1
jurzua
parents:
diff changeset
178 public void add(Entity e, Attribute calendarAtt){
jurzua
parents:
diff changeset
179 if(e != null && e.isPersistent()){
jurzua
parents:
diff changeset
180 if(!selections.containsKey(e.getId())){
jurzua
parents:
diff changeset
181 this.entities.add(e);
jurzua
parents:
diff changeset
182 this.selections.put(e.getId(), false);
jurzua
parents:
diff changeset
183 Collections.sort(this.entities);
jurzua
parents:
diff changeset
184 if(useCalendar){
jurzua
parents:
diff changeset
185 if(calendarAtt == null){
jurzua
parents:
diff changeset
186 this.calendarMap.put(e.getId(), new Calendar());
jurzua
parents:
diff changeset
187 }else{
jurzua
parents:
diff changeset
188 this.calendarMap.put(e.getId(), AbstractISMIBean.updateCalendar(calendarAtt));
jurzua
parents:
diff changeset
189 }
jurzua
parents:
diff changeset
190 }
jurzua
parents:
diff changeset
191 }
jurzua
parents:
diff changeset
192 }
jurzua
parents:
diff changeset
193 }
jurzua
parents:
diff changeset
194
jurzua
parents:
diff changeset
195 public Calendar getCalendar(Long entId){
jurzua
parents:
diff changeset
196 if(calendarMap != null){
jurzua
parents:
diff changeset
197 return calendarMap.get(entId);
jurzua
parents:
diff changeset
198 }
jurzua
parents:
diff changeset
199 return null;
jurzua
parents:
diff changeset
200 }
jurzua
parents:
diff changeset
201
jurzua
parents:
diff changeset
202 public void addList(List<Entity> list){
jurzua
parents:
diff changeset
203 for(Entity e : list){
jurzua
parents:
diff changeset
204 this.add(e);
jurzua
parents:
diff changeset
205 }
jurzua
parents:
diff changeset
206 }
jurzua
parents:
diff changeset
207
jurzua
parents:
diff changeset
208 public void remove(Long id){
jurzua
parents:
diff changeset
209 this.selections.remove(id);
jurzua
parents:
diff changeset
210 Entity e = null;
jurzua
parents:
diff changeset
211 for(Entity ent : entities){
jurzua
parents:
diff changeset
212 if(ent.getId().intValue() == id){
jurzua
parents:
diff changeset
213 e = ent;
jurzua
parents:
diff changeset
214 break;
jurzua
parents:
diff changeset
215 }
jurzua
parents:
diff changeset
216 }
jurzua
parents:
diff changeset
217 this.entities.remove(e);
jurzua
parents:
diff changeset
218 }
jurzua
parents:
diff changeset
219
jurzua
parents:
diff changeset
220
jurzua
parents:
diff changeset
221
jurzua
parents:
diff changeset
222 private List<Entity> getSelectedEntities(){
jurzua
parents:
diff changeset
223 List<Entity> list = new ArrayList<Entity>();
jurzua
parents:
diff changeset
224 for(Entity e : entities){
jurzua
parents:
diff changeset
225 if(selections.get(e.getId())){
jurzua
parents:
diff changeset
226 list.add(e);
jurzua
parents:
diff changeset
227 }
jurzua
parents:
diff changeset
228 }
jurzua
parents:
diff changeset
229 return list;
jurzua
parents:
diff changeset
230 }
jurzua
parents:
diff changeset
231
jurzua
parents:
diff changeset
232
jurzua
parents:
diff changeset
233 public List<Entity> getEntities() {
jurzua
parents:
diff changeset
234 return entities;
jurzua
parents:
diff changeset
235 }
jurzua
parents:
diff changeset
236 public void setEntities(List<Entity> entities) {
jurzua
parents:
diff changeset
237 this.entities = entities;
jurzua
parents:
diff changeset
238 }
jurzua
parents:
diff changeset
239 public Map<Long, Boolean> getSelections() {
jurzua
parents:
diff changeset
240 return selections;
jurzua
parents:
diff changeset
241 }
jurzua
parents:
diff changeset
242
jurzua
parents:
diff changeset
243 public void setSelections(Map<Long, Boolean> selections) {
jurzua
parents:
diff changeset
244 this.selections = selections;
jurzua
parents:
diff changeset
245 }
jurzua
parents:
diff changeset
246
jurzua
parents:
diff changeset
247 public ListenerObject getLo() {
jurzua
parents:
diff changeset
248 return lo;
jurzua
parents:
diff changeset
249 }
jurzua
parents:
diff changeset
250
jurzua
parents:
diff changeset
251 public void setLo(ListenerObject lo) {
jurzua
parents:
diff changeset
252 this.lo = lo;
jurzua
parents:
diff changeset
253 }
jurzua
parents:
diff changeset
254
jurzua
parents:
diff changeset
255 public String getInput() {
jurzua
parents:
diff changeset
256 return input;
jurzua
parents:
diff changeset
257 }
jurzua
parents:
diff changeset
258
jurzua
parents:
diff changeset
259 public void setInput(String input) {
jurzua
parents:
diff changeset
260 this.input = input;
jurzua
parents:
diff changeset
261 }
jurzua
parents:
diff changeset
262
jurzua
parents:
diff changeset
263 public Long getId() {
jurzua
parents:
diff changeset
264 return id;
jurzua
parents:
diff changeset
265 }
jurzua
parents:
diff changeset
266
jurzua
parents:
diff changeset
267 public void setId(Long id) {
jurzua
parents:
diff changeset
268 this.id = id;
jurzua
parents:
diff changeset
269 }
jurzua
parents:
diff changeset
270
jurzua
parents:
diff changeset
271 public Map<Long, Calendar> getCalendarMap() {
jurzua
parents:
diff changeset
272 return calendarMap;
jurzua
parents:
diff changeset
273 }
jurzua
parents:
diff changeset
274
jurzua
parents:
diff changeset
275 public void setCalendarMap(Map<Long, Calendar> calendarMap) {
jurzua
parents:
diff changeset
276 this.calendarMap = calendarMap;
jurzua
parents:
diff changeset
277 }
jurzua
parents:
diff changeset
278
jurzua
parents:
diff changeset
279 public boolean isUseCalendar() {
jurzua
parents:
diff changeset
280 return useCalendar;
jurzua
parents:
diff changeset
281 }
jurzua
parents:
diff changeset
282
jurzua
parents:
diff changeset
283 public String getTitle() {
jurzua
parents:
diff changeset
284 return title;
jurzua
parents:
diff changeset
285 }
jurzua
parents:
diff changeset
286 }