package com.biznow.ordernow;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.biznow.ordernow.R;
import com.biznow.ordernow.filter.AvailableMenuFilter;
import com.biznow.ordernow.filter.MenuFilter;
import com.data.menu.MenuPropertyKey;
import com.data.menu.MenuPropertyValue;
public class FilterMenuActivity extends Activity {
Map<MenuPropertyKey, List<MenuPropertyValue>> selectedFilters;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTitle("Filter");
getActionBar().setDisplayHomeAsUpEnabled(true);
LinearLayout ll = new LinearLayout(this);
ll.setOrientation(LinearLayout.VERTICAL);
ll.setBackgroundColor(getResources().getColor(R.color.white));
final MenuFilter menuFilter = ApplicationState.getMenuFilter((ApplicationState) getApplicationContext());
selectedFilters = menuFilter.getFilterProperties();
if (selectedFilters == null) {
selectedFilters = new HashMap<MenuPropertyKey, List<MenuPropertyValue>>();
}
AvailableMenuFilter availableMenuFilter = ApplicationState.getAvailableMenuFilter((ApplicationState) getApplicationContext());
Map<MenuPropertyKey, List<MenuPropertyValue>> availableFilters = availableMenuFilter.getAvailableFilters();
if (availableFilters != null && !availableFilters.isEmpty()) {
for (final MenuPropertyKey filterKey : availableFilters.keySet()) {
// Add Text
TextView tv = new TextView(this);
tv.setText(filterKey.toString());
tv.setTextColor(getResources().getColor(R.color.purple));
ll.addView(tv);
// Add All checkbox for it
List<MenuPropertyValue> filterKeyValues = availableFilters.get(filterKey);
if (filterKeyValues != null && !filterKeyValues.isEmpty()) {
for (final MenuPropertyValue filterValue : filterKeyValues) {
final CheckBox ch = new CheckBox(this);
ch.setText(filterValue.toString());
ch.setTextColor(getResources().getColor(R.color.burlywood));
if (selectedFilters.get(filterKey) != null
&& selectedFilters.get(filterKey).contains(filterValue)) {
ch.setChecked(true);
}
ch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// ch.toggle();
if (ch.isChecked()) {
List<MenuPropertyValue> filterValuesForFilterKey = selectedFilters.get(filterKey);
if (filterValuesForFilterKey == null) {
filterValuesForFilterKey = new ArrayList<MenuPropertyValue>();
}
filterValuesForFilterKey.add(filterValue);
selectedFilters.put(filterKey, filterValuesForFilterKey);
} else {
List<MenuPropertyValue> filterValuesForFilterKey = selectedFilters.get(filterKey);
if (filterValuesForFilterKey != null) {
filterValuesForFilterKey.remove(filterValue);
if (filterValuesForFilterKey.isEmpty()) {
selectedFilters.remove(filterKey);
} else {
selectedFilters.put(filterKey, filterValuesForFilterKey);
}
}
}
}
});
ll.addView(ch);
}
}
}
}
Button applyButton = new Button(this);
applyButton.setText("Apply Filter to Menu");
applyButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
menuFilter.addFilter(selectedFilters);
Intent intent = new Intent(getApplicationContext(), FoodMenuActivity.class);
startActivity(intent);
finish();
}
});
ll.addView(applyButton);
setContentView(ll);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Respond to the action bar's Up/Home button
case android.R.id.home:
onBackPressed();
return true;
}
return super.onOptionsItemSelected(item);
}
}