annotate src/main/java/org/mpiwg/itgroup/geonames/GeonameForm.java @ 93:27bf167d09f1

add listener for ServiceRegistry to run Spring bean shutdown hook.
author casties
date Mon, 17 Oct 2016 19:52:28 +0200
parents 2e911857a759
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
jurzua
parents:
diff changeset
1 package org.mpiwg.itgroup.geonames;
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
jurzua
parents:
diff changeset
8 import org.apache.commons.lang.StringUtils;
jurzua
parents:
diff changeset
9 import org.json.JSONObject;
jurzua
parents:
diff changeset
10 import org.mpi.openmind.repository.bo.Attribute;
jurzua
parents:
diff changeset
11 import org.mpi.openmind.repository.bo.Entity;
jurzua
parents:
diff changeset
12 import org.mpi.openmind.repository.utils.NormalizerUtils;
jurzua
parents:
diff changeset
13 import org.mpiwg.itgroup.geonames.bo.Geoname;
jurzua
parents:
diff changeset
14
jurzua
parents:
diff changeset
15 import de.mpiwg.itgroup.ismi.entry.beans.AbstractBean;
jurzua
parents:
diff changeset
16
jurzua
parents:
diff changeset
17 public class GeonameForm extends AbstractBean{
jurzua
parents:
diff changeset
18
jurzua
parents:
diff changeset
19 private static String GEONAME_ID = "geoname_id";
jurzua
parents:
diff changeset
20
jurzua
parents:
diff changeset
21
jurzua
parents:
diff changeset
22 private String searchPlaceTerm;
jurzua
parents:
diff changeset
23 private List<Entity> places;
jurzua
parents:
diff changeset
24 private Entity selectedPlace;
jurzua
parents:
diff changeset
25
jurzua
parents:
diff changeset
26 private String searchGeoTerm;
jurzua
parents:
diff changeset
27 private List<Geoname> geonames;
jurzua
parents:
diff changeset
28 private Geoname selectedGeoname;
jurzua
parents:
diff changeset
29 private JSONObject selectedJSONGeoname;
jurzua
parents:
diff changeset
30
jurzua
parents:
diff changeset
31 private boolean showGeonamePopup = false;
jurzua
parents:
diff changeset
32
jurzua
parents:
diff changeset
33 public void listenerSelectPlace(ActionEvent event){
jurzua
parents:
diff changeset
34 Entity place = (Entity)getRequestBean("place");
jurzua
parents:
diff changeset
35 if(place != null){
jurzua
parents:
diff changeset
36 this.redirect(null, "?placeId=" + place.getId());
jurzua
parents:
diff changeset
37 loadPlace(place);
jurzua
parents:
diff changeset
38 }
jurzua
parents:
diff changeset
39 }
jurzua
parents:
diff changeset
40
jurzua
parents:
diff changeset
41 public void loadPlace(Entity place){
jurzua
parents:
diff changeset
42 this.selectedPlace = place;
jurzua
parents:
diff changeset
43 if(place != null){
jurzua
parents:
diff changeset
44 this.searchGeoTerm = this.selectedPlace.getOwnValue();
jurzua
parents:
diff changeset
45 this.searchGeonames(selectedPlace.getOwnValue());
jurzua
parents:
diff changeset
46 }
jurzua
parents:
diff changeset
47 }
jurzua
parents:
diff changeset
48
jurzua
parents:
diff changeset
49 public void listenerLoadAllPlaces(ActionEvent event){
jurzua
parents:
diff changeset
50 this.loadPlaces(null);
jurzua
parents:
diff changeset
51 }
jurzua
parents:
diff changeset
52
jurzua
parents:
diff changeset
53 public void listenerSearchPlaces(ActionEvent event){
jurzua
parents:
diff changeset
54 this.loadPlaces(this.searchPlaceTerm);
jurzua
parents:
diff changeset
55 }
jurzua
parents:
diff changeset
56 /*
jurzua
parents:
diff changeset
57 public void listenerOpenPopup(ActionEvent event){
jurzua
parents:
diff changeset
58 this.selectedPlace = (Entity)getRequestBean("place");
jurzua
parents:
diff changeset
59 this.searchGeonames(selectedPlace.getOwnValue());
jurzua
parents:
diff changeset
60 this.showGeonamePopup = true;
jurzua
parents:
diff changeset
61 }*/
jurzua
parents:
diff changeset
62
jurzua
parents:
diff changeset
63 public void listenerCloseSearchPopup(ActionEvent event){
jurzua
parents:
diff changeset
64 this.closeSearchPopup();
jurzua
parents:
diff changeset
65 }
jurzua
parents:
diff changeset
66
jurzua
parents:
diff changeset
67 public void listenerSearchGeonames(ActionEvent event){
jurzua
parents:
diff changeset
68 this.searchGeonames(this.searchGeoTerm);
jurzua
parents:
diff changeset
69 }
jurzua
parents:
diff changeset
70
jurzua
parents:
diff changeset
71 public String actionDisplayGeonameMap(){
jurzua
parents:
diff changeset
72 this.selectedGeoname = (Geoname)getRequestBean("geoname");
jurzua
parents:
diff changeset
73 if(selectedGeoname != null){
jurzua
parents:
diff changeset
74 try {
jurzua
parents:
diff changeset
75 this.selectedJSONGeoname = GeonameUtils.getJSONGeoname(selectedGeoname.getId());
jurzua
parents:
diff changeset
76 } catch (Exception e) {
jurzua
parents:
diff changeset
77 addErrorMsg(e.getMessage());
jurzua
parents:
diff changeset
78 e.printStackTrace();
jurzua
parents:
diff changeset
79 }
jurzua
parents:
diff changeset
80 }
jurzua
parents:
diff changeset
81 return "geo_map";
jurzua
parents:
diff changeset
82 }
jurzua
parents:
diff changeset
83
jurzua
parents:
diff changeset
84 public void loadPlaces(String term){
jurzua
parents:
diff changeset
85
jurzua
parents:
diff changeset
86 String nTerm = NormalizerUtils.normalize(term);
jurzua
parents:
diff changeset
87
jurzua
parents:
diff changeset
88 System.out.println("Loading place in GeonameForm");
jurzua
parents:
diff changeset
89 List<Entity> list = getAppBean().getWrapper().getEntitiesByDef("PLACE");
jurzua
parents:
diff changeset
90 this.places = new ArrayList<Entity>();
jurzua
parents:
diff changeset
91 for(Entity pl : list){
jurzua
parents:
diff changeset
92 Attribute att = getAppBean().getWrapper().getAttributeByName(pl.getId(), GEONAME_ID);
jurzua
parents:
diff changeset
93 if(att == null || StringUtils.isEmpty(att.getValue())){
jurzua
parents:
diff changeset
94 if(StringUtils.isEmpty(nTerm)){
jurzua
parents:
diff changeset
95 this.places.add(pl);
jurzua
parents:
diff changeset
96 }else if(pl.getNormalizedOwnValue().contains(nTerm)){
jurzua
parents:
diff changeset
97 this.places.add(pl);
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
jurzua
parents:
diff changeset
103 private void searchGeonames(String term){
jurzua
parents:
diff changeset
104
jurzua
parents:
diff changeset
105 try {
jurzua
parents:
diff changeset
106 this.searchGeoTerm = term;
jurzua
parents:
diff changeset
107 this.geonames = GeonameUtils.search(searchGeoTerm);
jurzua
parents:
diff changeset
108 } catch (Exception e) {
jurzua
parents:
diff changeset
109 addErrorMsg(e.getMessage());
jurzua
parents:
diff changeset
110 e.printStackTrace();
jurzua
parents:
diff changeset
111 }
jurzua
parents:
diff changeset
112 }
jurzua
parents:
diff changeset
113
jurzua
parents:
diff changeset
114 public void listenerAssignGeoname2Place(ActionEvent event){
jurzua
parents:
diff changeset
115
jurzua
parents:
diff changeset
116 this.selectedGeoname = (Geoname)getRequestBean("geoname");
jurzua
parents:
diff changeset
117
jurzua
parents:
diff changeset
118 if(this.selectedGeoname != null){
jurzua
parents:
diff changeset
119 try {
jurzua
parents:
diff changeset
120 if(selectedPlace.isLightweight()){
jurzua
parents:
diff changeset
121 this.selectedPlace = getAppBean().getWrapper().getEntityContent(selectedPlace);
jurzua
parents:
diff changeset
122 }
jurzua
parents:
diff changeset
123
jurzua
parents:
diff changeset
124 if(this.selectedPlace.containsAttribute(GEONAME_ID)){
jurzua
parents:
diff changeset
125 this.selectedPlace.getAttributeByName(GEONAME_ID).setValue(this.selectedGeoname.getId().toString());
jurzua
parents:
diff changeset
126 }else{
jurzua
parents:
diff changeset
127 this.selectedPlace.addAttribute(new Attribute(GEONAME_ID, "geoname-id", this.selectedGeoname.getId().toString()));
jurzua
parents:
diff changeset
128 }
jurzua
parents:
diff changeset
129
jurzua
parents:
diff changeset
130 getAppBean().getWrapper().saveEntity(this.selectedPlace, getSessionBean().getUsername());
jurzua
parents:
diff changeset
131
jurzua
parents:
diff changeset
132 addGeneralMsg("The geoname " + selectedGeoname.getId() + " has been assigned successfully to the place " +
jurzua
parents:
diff changeset
133 selectedPlace.getOwnValue() + " [ID=" +selectedPlace.getId() + "]");
jurzua
parents:
diff changeset
134
jurzua
parents:
diff changeset
135 this.loadPlaces(null);
jurzua
parents:
diff changeset
136 this.closeSearchPopup();
jurzua
parents:
diff changeset
137 } catch (Exception e) {
jurzua
parents:
diff changeset
138 addErrorMsg(e.getMessage());
jurzua
parents:
diff changeset
139 e.printStackTrace();
jurzua
parents:
diff changeset
140 }
jurzua
parents:
diff changeset
141 }else{
jurzua
parents:
diff changeset
142 System.err.println("AHHHHH");
jurzua
parents:
diff changeset
143 }
jurzua
parents:
diff changeset
144 }
jurzua
parents:
diff changeset
145
jurzua
parents:
diff changeset
146 private void closeSearchPopup(){
jurzua
parents:
diff changeset
147 this.showGeonamePopup = false;
jurzua
parents:
diff changeset
148 this.searchGeoTerm = null;
jurzua
parents:
diff changeset
149 this.geonames = null;
jurzua
parents:
diff changeset
150 this.selectedPlace = null;
jurzua
parents:
diff changeset
151 this.redirect(null, "");
jurzua
parents:
diff changeset
152
jurzua
parents:
diff changeset
153 }
jurzua
parents:
diff changeset
154
jurzua
parents:
diff changeset
155 public String getSearchGeoTerm() {
jurzua
parents:
diff changeset
156 return searchGeoTerm;
jurzua
parents:
diff changeset
157 }
jurzua
parents:
diff changeset
158
jurzua
parents:
diff changeset
159 public void setSearchGeoTerm(String searchGeoTerm) {
jurzua
parents:
diff changeset
160 this.searchGeoTerm = searchGeoTerm;
jurzua
parents:
diff changeset
161 }
jurzua
parents:
diff changeset
162
jurzua
parents:
diff changeset
163 public List<Entity> getPlaces() {
jurzua
parents:
diff changeset
164 return places;
jurzua
parents:
diff changeset
165 }
jurzua
parents:
diff changeset
166
jurzua
parents:
diff changeset
167 public void setPlaces(List<Entity> places) {
jurzua
parents:
diff changeset
168 this.places = places;
jurzua
parents:
diff changeset
169 }
jurzua
parents:
diff changeset
170
jurzua
parents:
diff changeset
171 public Entity getSelectedPlace() {
jurzua
parents:
diff changeset
172 return selectedPlace;
jurzua
parents:
diff changeset
173 }
jurzua
parents:
diff changeset
174
jurzua
parents:
diff changeset
175 public void setSelectedPlace(Entity selectedPlace) {
jurzua
parents:
diff changeset
176 this.selectedPlace = selectedPlace;
jurzua
parents:
diff changeset
177 }
jurzua
parents:
diff changeset
178
jurzua
parents:
diff changeset
179 public int getGeonamesSize(){
jurzua
parents:
diff changeset
180 if(geonames == null)
jurzua
parents:
diff changeset
181 return 0;
jurzua
parents:
diff changeset
182 return geonames.size();
jurzua
parents:
diff changeset
183 }
jurzua
parents:
diff changeset
184
jurzua
parents:
diff changeset
185 public List<Geoname> getGeonames() {
jurzua
parents:
diff changeset
186 return geonames;
jurzua
parents:
diff changeset
187 }
jurzua
parents:
diff changeset
188
jurzua
parents:
diff changeset
189 public void setGeonames(List<Geoname> geonames) {
jurzua
parents:
diff changeset
190 this.geonames = geonames;
jurzua
parents:
diff changeset
191 }
jurzua
parents:
diff changeset
192
jurzua
parents:
diff changeset
193 public Geoname getSelectedGeoname() {
jurzua
parents:
diff changeset
194 return selectedGeoname;
jurzua
parents:
diff changeset
195 }
jurzua
parents:
diff changeset
196
jurzua
parents:
diff changeset
197 public void setSelectedGeoname(Geoname selectedGeoname) {
jurzua
parents:
diff changeset
198 this.selectedGeoname = selectedGeoname;
jurzua
parents:
diff changeset
199 }
jurzua
parents:
diff changeset
200
jurzua
parents:
diff changeset
201 public boolean isShowGeonamePopup() {
jurzua
parents:
diff changeset
202 return showGeonamePopup;
jurzua
parents:
diff changeset
203 }
jurzua
parents:
diff changeset
204
jurzua
parents:
diff changeset
205 public void setShowGeonamePopup(boolean showGeonamePopup) {
jurzua
parents:
diff changeset
206 this.showGeonamePopup = showGeonamePopup;
jurzua
parents:
diff changeset
207 }
jurzua
parents:
diff changeset
208
jurzua
parents:
diff changeset
209 public JSONObject getSelectedJSONGeoname() {
jurzua
parents:
diff changeset
210 return selectedJSONGeoname;
jurzua
parents:
diff changeset
211 }
jurzua
parents:
diff changeset
212
jurzua
parents:
diff changeset
213 public void setSelectedJSONGeoname(JSONObject selectedJSONGeoname) {
jurzua
parents:
diff changeset
214 this.selectedJSONGeoname = selectedJSONGeoname;
jurzua
parents:
diff changeset
215 }
jurzua
parents:
diff changeset
216
jurzua
parents:
diff changeset
217 public String getSearchPlaceTerm() {
jurzua
parents:
diff changeset
218 return searchPlaceTerm;
jurzua
parents:
diff changeset
219 }
jurzua
parents:
diff changeset
220
jurzua
parents:
diff changeset
221 public void setSearchPlaceTerm(String searchPlaceTerm) {
jurzua
parents:
diff changeset
222 this.searchPlaceTerm = searchPlaceTerm;
jurzua
parents:
diff changeset
223 }
jurzua
parents:
diff changeset
224
jurzua
parents:
diff changeset
225 }