Skip to content

Commit

Permalink
hard refactored basket
Browse files Browse the repository at this point in the history
basket holds now amount
basket can now delete, add and update amount
  • Loading branch information
inf9144 committed Oct 28, 2012
1 parent 8bbf0e8 commit d65e057
Show file tree
Hide file tree
Showing 4 changed files with 69 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ public class BasketController {
private BasketWidget basketWidget;

private FieldUpdater<BasketItem, String> deleteUpdater;
private FieldUpdater<BasketItem, String> amountUpdater;

public BasketController() {
this.basketDataProvider = new ListDataProvider<BasketItem>(new BasketItemKeyProvider());
Expand All @@ -33,36 +34,18 @@ public void init(BasketWidget basketWidget,final BasketServiceAsync basketServic
this.basketService = basketService;

basketDataProvider.addDataDisplay(this.basketWidget.getBasketTable());

loadBasket();

deleteUpdater = new FieldUpdater<BasketItem, String>() {

@Override
public void update(int index, BasketItem object, String value) {
basketDataProvider.getList().remove(object);
basketService.removeItem(object, new AsyncCallback<Void>() {

@Override
public void onFailure(Throwable caught) {
// TODO Auto-generated method stub

}

@Override
public void onSuccess(Void result) {
// TODO Auto-generated method stub

}
});
}
};
deleteUpdater = new DeleteUpdater();
basketWidget.getDeleteColumn().setFieldUpdater(deleteUpdater);

amountUpdater = new AmountUpdater();
basketWidget.getAmountColumn().setFieldUpdater(amountUpdater);
}

public void addBasketPosition(BasketItem basketItem) {

//TODO: position an server fŸr session
basketService.addItem(basketItem, new BasketVoidHandler());

basketDataProvider.getList().add(basketItem); //FIXME
}
Expand All @@ -72,6 +55,34 @@ public void loadBasket()
basketService.getBasket(new BasketDataHandler());
}

private class AmountUpdater implements FieldUpdater<BasketItem,String>
{

@Override
public void update(int index, BasketItem object, String value) {
if (value.matches("[1-9]+")) {
BasketItem toUpdate = new BasketItem(object.getItemName(), object.getItemPrice(), object.getArticleId(), Integer.valueOf(value));
basketService.updateItem(toUpdate, new BasketVoidHandler());
basketDataProvider.getList().remove(object);
basketDataProvider.getList().add(toUpdate);
} else {
basketDataProvider.getList().clear();
loadBasket();
}

}
}

private class DeleteUpdater implements FieldUpdater<BasketItem,String>
{

@Override
public void update(int index, BasketItem object, String value) {
basketDataProvider.getList().remove(object);
basketService.removeItem(object, new BasketVoidHandler());
}
}

private static final class BasketItemKeyProvider implements ProvidesKey<BasketItem> {

@Override
Expand All @@ -96,4 +107,19 @@ public void onSuccess(List<BasketItem> result) {
}
}

private final class BasketVoidHandler implements AsyncCallback<Void> {

@Override
public void onFailure(Throwable caught) {
// TODO Auto-generated method stub

}

@Override
public void onSuccess(Void result) {
// TODO Auto-generated method stub

}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -31,4 +31,16 @@ public void removeItem(BasketItem item) {

}

@Override
public void updateItem(BasketItem item) {
// TODO Auto-generated method stub

}

@Override
public void addItem(BasketItem item) {
// TODO Auto-generated method stub

}

}
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,8 @@ public interface BasketService extends RemoteService{

void removeItem(BasketItem item);

void updateItem(BasketItem item);

void addItem(BasketItem item);

}
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,8 @@ public interface BasketServiceAsync {

void removeItem(BasketItem item, AsyncCallback<Void> callback);

void updateItem(BasketItem item, AsyncCallback<Void> callback);

void addItem(BasketItem item, AsyncCallback<Void> callback);

}

0 comments on commit d65e057

Please sign in to comment.