PDA

View Full Version : Updating TreePanel item on manual tree store item change



HerrB
29 Jun 2009, 8:02 AM
Is there a better way to update a tree item based on the current value in the tree store, than firing the Store.DataChanged event by hand?

Workflow:
The user changes an object using text fields bound to a TreePanel
-> The change is recognized in the store
-> I send the changed object to a webservice which updates the database and returns the updated object

onResponseReceive method in the Callback object:

public void onResponseReceived(Request objRequest, Response objResponse) {
if (objResponse.getStatusCode() != Response.SC_OK) {
Window.alert("There is something wrong");
} else {
String strData = objResponse.getText();

try { ArrayList<ModelData> lstFreshData = null;
lstFreshData = objReader.read(null, strData);

if (lstFreshData.size() > 0) {
ModelData objFresh = (ModelData)lstFreshData.get(0);
ModelData objStored = objStore.findModel("itemid", objFresh.get("itemid"));

if (objStored != null) {
// This doesn't update the TreePanel item
objStored.setProperties(objFresh.getProperties());
// *** Fire event would be here ***
}
}
} catch (Exception objException) {
objException.printStackTrace();
}
}

To get the TreePanel item updated I have to fire the TreeStore update event by hand (at "*** Fire event would be here ***"):

TreeStoreEvent<ModelData> objUpdateEvent = new TreeStoreEvent<ModelData>(new TreeStore<ModelData>());
objUpdateEvent.setModel(objStored);

objTree.getStore().fireEvent(Store.DataChanged, objUpdateEvent);

Is there something I'm doing wrong or is there a better way to update the tree item?

[ExtGWT 2.0 m3]

Thank you. Regards,

HerrB