summaryrefslogtreecommitdiffstats
path: root/branches/sca-java-1.x/samples/store-android/src/store/android/catalog.java
diff options
context:
space:
mode:
Diffstat (limited to 'branches/sca-java-1.x/samples/store-android/src/store/android/catalog.java')
-rw-r--r--branches/sca-java-1.x/samples/store-android/src/store/android/catalog.java214
1 files changed, 155 insertions, 59 deletions
diff --git a/branches/sca-java-1.x/samples/store-android/src/store/android/catalog.java b/branches/sca-java-1.x/samples/store-android/src/store/android/catalog.java
index 68e03abbe5..1b7bd3008c 100644
--- a/branches/sca-java-1.x/samples/store-android/src/store/android/catalog.java
+++ b/branches/sca-java-1.x/samples/store-android/src/store/android/catalog.java
@@ -28,83 +28,112 @@ import services.Catalog;
import services.CatalogProxy;
import services.Item;
import services.ShoppingCartProxy;
+import android.app.AlertDialog;
import android.app.TabActivity;
+import android.content.Context;
+import android.content.DialogInterface;
import android.graphics.Typeface;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
+import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
+import android.widget.Button;
import android.widget.ListView;
import android.widget.TabHost;
import android.widget.TextView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.TabHost.OnTabChangeListener;
import android.widget.TabHost.TabSpec;
+import android.view.LayoutInflater;
+
+
public class catalog extends TabActivity {
private Catalog catalogProxy = new CatalogProxy();
private ShoppingCartProxy shoppingCartProxy = new ShoppingCartProxy();
TabHost mTabHost;
ListView itemsList, cartList;
- TextView txtTotal;
+ TextView txtTotal,txtEmpty;
TabSpec catalogTab, cartTab;
- String[] items;
- Set<String> cartItems=new HashSet<String>();
+ Button btnClean;
+ Item[] items;
+ List<Item> cartItems=new ArrayList<Item>();
- private String[] getCatalogItems() {
- List<String> catalog = new ArrayList<String>();
-
- for(Item item : catalogProxy.get()) {
- catalog.add(item.toString());
- }
-
- String[] catalogArray = new String[catalog.size()];
- catalog.toArray(catalogArray);
- Log.e("Tuscany", "Catalog GET!!");
-
- return catalogArray;
+ private void getCatalogItems() {
+ items=catalogProxy.get();
+ }
+
+ private void getCartItems()
+ {
+ Item[] i=shoppingCartProxy.getItems();
+ if(i!=null)
+ {
+ for(Item item:i)
+ {
+ cartItems.add(item);
+
+ }
+ }
+ Log.e(getString(R.string.app_tag), String.valueOf(cartItems.size())+" cart items retrieved");
}
/** Called when the activity is first created. */
- @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- Log.e("Tuscany", "Started");
+ Log.e(getString(R.string.app_tag), getString(R.string.start_tag));
//Load UI from layout file
setContentView(R.layout.main);
+
+
findViews();
//Get data to be loaded to UI
- items=getCatalogItems();
+ getCatalogItems();
+ getCartItems();
+
//Load UI with data
- itemsList.setAdapter(new ArrayAdapter<String>(this,
- android.R.layout.simple_list_item_multiple_choice,items));
- itemsList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
+ itemsList.setAdapter(new ArrayAdapter<Item>(this,
+ R.layout.cat_row,R.id.txtItemC,items));
+ itemsList.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
+ itemsList.setClickable(true);
+ reloadShoppingCart();
+
//Set Listeners
listen();
+
+
+
}
+
+
/**
* Retrieve UI Content
*/
public void findViews()
{
mTabHost = getTabHost();
- mTabHost.addTab(mTabHost.newTabSpec("catalog_tab").setIndicator("Catalog Items").setContent(R.id.ListView01));
- mTabHost.addTab(mTabHost.newTabSpec("shopping_cart_tab").setIndicator("Shopping Cart").setContent(R.id.tab02));
+ mTabHost.addTab(mTabHost.newTabSpec(getString(R.string.tab_catalog)).setIndicator(getString(R.string.title_catalog)).setContent(R.id.ListView01));
+ mTabHost.addTab(mTabHost.newTabSpec(getString(R.string.tab_shop)).setIndicator(getString(R.string.title_shop)).setContent(R.id.tab02));
mTabHost.setCurrentTab(0);
itemsList=(ListView)findViewById(R.id.ListView01);
cartList=(ListView)findViewById(R.id.ListView02);
+ btnClean=(Button)findViewById(R.id.btnClean);
+ btnClean.setText(R.string.btn_clean);
txtTotal=(TextView)findViewById(R.id.txtTotal);
- txtTotal.setTextSize((float) 25.0);
+ txtTotal.setTextSize((float) 15.0);
txtTotal.setTypeface(Typeface.DEFAULT_BOLD);
+ txtEmpty=(TextView)findViewById(R.id.txtEmpty);
+ txtEmpty.setTypeface(null, Typeface.ITALIC);
+
}
/**
@@ -116,49 +145,99 @@ public class catalog extends TabActivity {
mTabHost.setOnTabChangedListener(new OnTabChangeListener(){
public void onTabChanged(String tabId) {
- if(tabId.compareTo("shopping_cart_tab")==0)
- {
- if(!cartList.getAdapter().isEmpty())
- {
- txtTotal.setVisibility(TextView.VISIBLE);
- }
- else
- txtTotal.setVisibility(TextView.INVISIBLE);
- txtTotal.setText("Total: "+shoppingCartProxy.getTotal());
+ // TODO Auto-generated method stub
+ if(tabId.compareTo("shopping_cart_tab")==0)
+ reloadShoppingCart();
- }
}
});
- //CatalogList Listener
+
+
+
+ btnClean.setOnClickListener(new OnClickListener(){
+ public void onClick(View arg0) {
+ // TODO Auto-generated method stub
+ new AlertDialog.Builder(catalog.this)
+ .setTitle("Tuscany Android Store")
+ .setMessage("You're about to erase all items. Proceed ?")
+ .setIcon(R.drawable.icon)
+ .setPositiveButton(R.string.alert_yes,
+ new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int whichButton) {
+ if(shoppingCartProxy.clearCartContent())
+ {
+ cartItems.clear();
+ Log.i(getString(R.string.app_tag), getString(R.string.del_all_ok));
+ reloadShoppingCart();
+ }
+ }})
+ .setNegativeButton(R.string.alert_cancel, new DialogInterface.OnClickListener(){
+
+ public void onClick(DialogInterface dialog, int which) {
+ // TODO Auto-generated method stub
+ }
+ })
+ .show();
+
+
+
+ }
+
+ });
+
itemsList.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
- String item=itemsList.getAdapter().getItem((int)arg3).toString();
-
- //add item to shopping cart. For now, item can be added only once.
- //Items Quantity will be supported in coming versions.
- if(cartItems.add(item))
- {
- if(shoppingCartProxy.addItem(Item.parseItem(item)))
- Log.i("Tuscany", "Entry to be added: "+item);
- else
- Log.e("Tuscany", "Unable to add entry: "+item);
-
- }
- else
- {
- shoppingCartProxy.removeItem(Item.parseItem(item));
- cartItems.remove(item);
- Log.i("Tuscany", "Entry to be removed: "+item);
- }
- reloadShoppingCart();
+ addItemAction(items[(int)arg3]);
}
+
+ });
+
+ cartList.setOnItemClickListener(new OnItemClickListener(){
+
+
+ public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
+ long arg3) {
+ // TODO Auto-generated method stub
+ removeItemAction(cartItems.get((int)arg3));
+ }
+
});
+
+
+
+ }
+
+ public void addItemAction(Item item)
+ {
+ //add item to shopping cart.
+ Item tmp=new Item(item.getName(), item.getPrice());
+ if(shoppingCartProxy.addItem(tmp))
+ {
+ cartItems.add(tmp);
+ Log.i(getString(R.string.app_tag), getString(R.string.add_entry_ok)+item);
+ }
+
+ else
+ Log.e(getString(R.string.app_tag), getString(R.string.add_entry_ko)+item);
+
+ }
+
+ public void removeItemAction(Item item)
+ {
+ if(shoppingCartProxy.removeItem(item) && cartItems.remove(item))
+ {
+ Log.i(getString(R.string.app_tag), getString(R.string.del_entry_ok)+item);
+ }
+ else
+ Log.i(getString(R.string.app_tag), getString(R.string.del_entry_ko)+item);
+ reloadShoppingCart();
+
}
/**
@@ -166,12 +245,29 @@ public class catalog extends TabActivity {
*/
public void reloadShoppingCart()
{
- String[] cartArray=new String[cartItems.size()];
- cartList.setChoiceMode(ListView.CHOICE_MODE_NONE);
- cartList.setAdapter(new ArrayAdapter<String>(this,
- android.R.layout.simple_list_item_1, cartItems.toArray(cartArray)));
+ Item[] cartArray=new Item[cartItems.size()];
+ cartList.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
+ cartList.setClickable(true);
+ cartList.setAdapter(new ArrayAdapter<Item>(this,
+ R.layout.shop_row, R.id.txtItemS, cartItems.toArray(cartArray)));
+ if(!cartList.getAdapter().isEmpty())
+ {
+ txtTotal.setVisibility(TextView.VISIBLE);
+ txtEmpty.setText("Click on an item below to remove it");
+ btnClean.setVisibility(Button.VISIBLE);
+ }
+ else
+ {
+ txtTotal.setVisibility(TextView.INVISIBLE);
+ txtEmpty.setVisibility(TextView.VISIBLE);
+ txtEmpty.setText(R.string.txt_empty);
+ btnClean.setVisibility(Button.INVISIBLE);
+ }
+ String tt=shoppingCartProxy.getTotal();
+ txtTotal.setText(getString(R.string.title_order)+": "+(tt.length()>5?tt.substring(0,5):tt));
+
}
-
+
} \ No newline at end of file