Author: lgiessmann Date: Fri Sep 2 08:30:32 2011 New Revision: 823
Log: gdl-frontend: Widgets: implemented the actual request mechanism for deleting topics
Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/GDL_Widgets.gwt.xml branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlVisibleObject.java branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/TestClass.java branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/isidorus/DeleteCallback.java
Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/GDL_Widgets.gwt.xml ============================================================================== --- branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/GDL_Widgets.gwt.xml Fri Sep 2 03:58:05 2011 (r822) +++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/GDL_Widgets.gwt.xml Fri Sep 2 08:30:32 2011 (r823) @@ -14,9 +14,12 @@
<!-- Other module inherits --> <inherits name='us.isidor.gdl.anaToMia.TmEngine.GDL_TmEngine' /> - + <inherits name="com.google.gwt.json.JSON" /> + <inherits name="com.google.gwt.http.HTTP" /> + <!-- Specify the app entry point class. --> <entry-point class='us.isidor.gdl.anaToMia.Widgets.base.TestClass'/> +
<!-- Specify the paths for translatable code --> <source path="base"/>
Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlVisibleObject.java ============================================================================== --- branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlVisibleObject.java Fri Sep 2 03:58:05 2011 (r822) +++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/GdlVisibleObject.java Fri Sep 2 08:30:32 2011 (r823) @@ -1,5 +1,6 @@ package us.isidor.gdl.anaToMia.Widgets.base;
+ import java.util.ArrayList; import us.isidor.gdl.anaToMia.TopicMaps.TopicMapsModel.Association; import us.isidor.gdl.anaToMia.TopicMaps.TopicMapsModel.Construct; @@ -59,7 +60,6 @@ import com.google.gwt.event.dom.client.MouseUpEvent; import com.google.gwt.event.dom.client.MouseUpHandler; import com.google.gwt.event.shared.EventHandler; -import com.google.gwt.i18n.client.Messages.Select; import com.google.gwt.user.client.DOM; import com.google.gwt.user.client.Element; import com.google.gwt.user.client.Window;
Modified: branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/TestClass.java ============================================================================== --- branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/TestClass.java Fri Sep 2 03:58:05 2011 (r822) +++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/base/TestClass.java Fri Sep 2 08:30:32 2011 (r823) @@ -36,7 +36,7 @@ //requestedTopicsToCreate.add(new Pair<String, TopicIdentifierTypes>("http://psi.test.org/gdl-test/Poet", TopicIdentifierTypes.SubjectIdentifier)); //requestedTopicsToCreate.add(new Pair<String, TopicIdentifierTypes>("http://psi.test.org/gdl-test/Musician", TopicIdentifierTypes.SubjectIdentifier)); - //Pair<String, TopicIdentifierTypes> requestedTopicToEdit = new Pair<String, TopicIdentifierTypes>("http://textgrid.org/serviceregistry/test-env-1", TopicIdentifierTypes.SubjectIdentifier); + Pair<String, TopicIdentifierTypes> requestedTopicToEdit = new Pair<String, TopicIdentifierTypes>("http://textgrid.org/serviceregistry/test-env-1", TopicIdentifierTypes.SubjectIdentifier); //Pair<String, TopicIdentifierTypes> requestedTopicToEdit = new Pair<String, TopicIdentifierTypes>("http://textgrid.org/serviceregistry/test-hash-2", TopicIdentifierTypes.SubjectIdentifier); GdlPanel.addClickHandler("hash_object_reset_button_id", new ClickHandler() { @Override @@ -46,7 +46,7 @@ } }); - gdlPanel = new GdlPanel(null, requestedTopicsToCreate); + gdlPanel = new GdlPanel(requestedTopicToEdit, null); mainPanel.add(gdlPanel); gdlPanel.setTmEngine(new JtmsTmEngine()); gdlPanel.setLoadSchemaCallback(new LoadSchemaCallback());
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 Fri Sep 2 03:58:05 2011 (r822) +++ branches/gdl-frontend/src/anaToMia/GDL_Widgets/src/us/isidor/gdl/anaToMia/Widgets/isidorus/DeleteCallback.java Fri Sep 2 08:30:32 2011 (r823) @@ -1,6 +1,15 @@ package us.isidor.gdl.anaToMia.Widgets.isidorus;
import java.util.ArrayList; +import com.google.gwt.http.client.Request; +import com.google.gwt.http.client.RequestBuilder; +import com.google.gwt.http.client.RequestCallback; +import com.google.gwt.http.client.RequestException; +import com.google.gwt.http.client.Response; +import com.google.gwt.http.client.URL; +import com.google.gwt.json.client.JSONArray; +import com.google.gwt.json.client.JSONObject; +import com.google.gwt.json.client.JSONString; import com.google.gwt.user.client.Window; import us.isidor.gdl.anaToMia.TopicMaps.TopicMapsModel.Construct; import us.isidor.gdl.anaToMia.TopicMaps.TopicMapsModel.Topic; @@ -8,7 +17,10 @@ import us.isidor.gdl.anaToMia.Widgets.environment.IDeleteCallback; import us.isidor.gdl.anaToMia.Widgets.environment.Pair;
+ public class DeleteCallback implements IDeleteCallback { + public final String REUQEST_URL = ""; // TODO: set actual URL value +
@Override public void deleteTmConstruct(ArrayList<Pair<Construct, TopicMapsTypes>> constructs, String buttonId) { @@ -23,10 +35,58 @@ if(env.getSubjectIdentifiers().length() != 0){ String psi = env.getSubjectIdentifiers().get(0).getReference(); - Window.alert("psi of the topic to be deleted: " + psi); - // TODO: send actual delete request + JSONObject topObj = new JSONObject(); + JSONArray psis = new JSONArray(); + psis.set(0, new JSONString(psi)); + topObj.put("subjectIdentifiers", psis); + + JSONObject delObj = new JSONObject(); + delObj.put("type", new JSONString("Topic")); + delObj.put("delete", topObj); + + + String url = URL.encode(this.REUQEST_URL); + RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, url); + + try{ + builder.sendRequest(null, new DeleteRequest(delObj)); + }catch(RequestException e){ + + } } } } } + + + private class DeleteRequest implements RequestCallback { + private JSONObject objectToBeSend = null; + + + @SuppressWarnings("unused") + private DeleteRequest(){} + + + public DeleteRequest(JSONObject objectToBeDeleted){ + this.objectToBeSend = objectToBeDeleted; + } + + + @Override + public void onResponseReceived(Request request, Response response) { + if (200 == response.getStatusCode()) { + Window.alert("delete operation of the object " + this.objectToBeSend + " successed"); + // TODO: reset the web page + } else { + Window.alert("delete operation of the object " + this.objectToBeSend + " failed: " + response.getStatusCode() + "(" + response.getStatusText() + ")\n" + response.getText()); + } + } + + + @Override + public void onError(Request request, Throwable exception) { + Window.alert("could not delete the data: " + this.objectToBeSend); + + } + } }