Author: lgiessmann Date: Wed Sep 21 06:29:26 2011 New Revision: 956
Log: gdl-frontend: Widgets: fixed a bug in the delete operation handler of environment topics
Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/isidorus/DeleteCallback.java branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/isidorus/HashObjectPsiContainer.java
Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/isidorus/DeleteCallback.java ============================================================================== --- branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/isidorus/DeleteCallback.java Wed Sep 21 06:02:11 2011 (r955) +++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/isidorus/DeleteCallback.java Wed Sep 21 06:29:26 2011 (r956) @@ -89,7 +89,7 @@ DeleteCallback.this.gdlWebPage.resetPage(); } else { try{ - this.hashObjectPsiContainer = new HashObjectPsiContainer(env); + this.hashObjectPsiContainer = new HashObjectPsiContainer(env, DeleteCallback.this.gdlWebPage); DeleteCallback.this.gdlWebPage.createLoadScreenPanel("Wating for Data", "Requesting all PSIs of instances of " + IsidorusConstants.HASH_OBJECT_PSI + " that are associated with " + env.getSubjectIdentifiers().get(0).getReference() + " from " + url); builder.sendRequest(this.createTmSparqlQuery(env), new GetHashObjectPsisRequest()); }catch(RequestException e){
Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/isidorus/HashObjectPsiContainer.java ============================================================================== --- branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/isidorus/HashObjectPsiContainer.java Wed Sep 21 06:02:11 2011 (r955) +++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/isidorus/HashObjectPsiContainer.java Wed Sep 21 06:29:26 2011 (r956) @@ -4,6 +4,7 @@ import java.util.ArrayList; import us.isidor.gdl.anaToMia.TopicMaps.TopicMapsModel.Topic; import us.isidor.gdl.anaToMia.TopicMaps.TopicMapsModel.TopicMap; +import us.isidor.gdl.anaToMia.Widgets.base.TmHelper; import us.isidor.gdl.anaToMia.Widgets.base.Utils; import us.isidor.gdl.anaToMia.Widgets.environment.ExecutionException; import com.google.gwt.event.dom.client.ClickEvent; @@ -37,10 +38,12 @@ private CheckBoxClickHandler cbxClickHandler = new CheckBoxClickHandler(); private final String DELETE_URL = IsidorusConstants.DELETE_REQUEST_URL; private Topic environmentTopic = null; + private GdlWebPage gdlWebPage = null; - public HashObjectPsiContainer(Topic environmentTopic) throws ExecutionException { - if(environmentTopic == null) throw new ExecutionException("environmentTopic must not be null"); + public HashObjectPsiContainer(Topic environmentTopic, GdlWebPage gdlWebPage) throws ExecutionException { + if(environmentTopic == null || gdlWebPage == null) throw new ExecutionException("environmentTopic and gdlWebPage must not be null"); + this.gdlWebPage = gdlWebPage; this.environmentTopic = environmentTopic; this.initWidget(this.containerPanel); this.containerPanel.add(this.commitButton); @@ -73,6 +76,38 @@ } + private void deleteHashObject(String psi, DeleteAllHashObjectsRequest reqCallback){ + if(psi != null || reqCallback != null){ + Window.alert(">> " + psi); + JSONObject delObj = this.createObjectToBeDelete(psi); + try{ + String url = URL.encode(this.DELETE_URL); + RequestBuilder builder = new RequestBuilder(RequestBuilder.DELETE, url); + builder.setHeader("Content-type", "application/json"); + + builder.sendRequest(delObj.toString(), reqCallback); + }catch(RequestException e){ + Window.alert("could not delete the topic: " + psi + ", because(" + e.getClass() + "): " + e.getMessage()); + } + } + } + + + private JSONObject createObjectToBeDelete(String psi){ + JSONArray psis = new JSONArray(); + psis.set(0, new JSONString(psi)); + + JSONObject delObj = new JSONObject(); + delObj.put("type", new JSONString("Topic")); + + String[] pref = Utils.splitUriByLastFragment(psi); + JSONValue val = JSONParser.parseStrict("{"version":"1.1","prefixes":{"pref":" + pref[0] + "},"subject_identifiers":["[pref:" + pref[1] + "]"]}"); + delObj.put("delete", val.isObject()); + + return delObj; + } + + private class CheckBoxClickHandler implements ClickHandler{ @Override public void onClick(ClickEvent event) { @@ -107,43 +142,13 @@ if(!allValuesChecked){ Window.alert("to delete the an environment topic, please select explicit all associated hash-object topics to be deleted!"); } else { + HashObjectPsiContainer.this.gdlWebPage.createLoadScreenPanel("Wating for Completing a Delete Request", "deleting all associated Hash-Object topics of the Environment Topic " + TmHelper.getAnyIdOfTopic(this.environmentTopic) + " from " + HashObjectPsiContainer.this.DELETE_URL); DeleteAllHashObjectsRequest reqCallback = new DeleteAllHashObjectsRequest(HashObjectPsiContainer.this.psiCheckBoxes, this.environmentTopic); for (CheckBox cbx : HashObjectPsiContainer.this.psiCheckBoxes) HashObjectPsiContainer.this.deleteHashObject(cbx.getText(), reqCallback); } } } - - private void deleteHashObject(String psi, DeleteAllHashObjectsRequest reqCallback){ - if(psi != null || reqCallback != null){ - JSONObject delObj = this.createObjectToBeDelete(psi); - try{ - String url = URL.encode(this.DELETE_URL); - RequestBuilder builder = new RequestBuilder(RequestBuilder.DELETE, url); - builder.setHeader("Content-type", "application/json"); - - builder.sendRequest(delObj.toString(), reqCallback); - }catch(RequestException e){ - Window.alert("could not delete the topic: " + psi + ", because(" + e.getClass() + "): " + e.getMessage()); - } - } - } - - - private JSONObject createObjectToBeDelete(String psi){ - JSONArray psis = new JSONArray(); - psis.set(0, new JSONString(psi)); - - JSONObject delObj = new JSONObject(); - delObj.put("type", new JSONString("Topic")); - - String[] pref = Utils.splitUriByLastFragment(psi); - JSONValue val = JSONParser.parseStrict("{"version":"1.1","prefixes":{"pref":" + pref[0] + "},"subject_identifiers":["[pref:" + pref[1] + "]"]}"); - delObj.put("delete", val.isObject()); - - return delObj; - } -
private class DeleteAllHashObjectsRequest implements RequestCallback { private ArrayList<String> hashObjectsToDelete = new ArrayList<String>();