diff --git a/Core/AndroidBinding/.classpath b/Core/AndroidBinding/.classpath
index a4f1e40..e059233 100644
--- a/Core/AndroidBinding/.classpath
+++ b/Core/AndroidBinding/.classpath
@@ -4,5 +4,6 @@
+
diff --git a/Core/AndroidBinding/.gitignore b/Core/AndroidBinding/.gitignore
index 8d94b88..0badf84 100644
--- a/Core/AndroidBinding/.gitignore
+++ b/Core/AndroidBinding/.gitignore
@@ -1 +1,5 @@
-/gen
+gen
+/**/*
+
+bin/**/*
+/bin
diff --git a/Core/AndroidBinding/bin/androidbinding.jar b/Core/AndroidBinding/bin/androidbinding.jar
index d029d3f..5aaac97 100644
Binary files a/Core/AndroidBinding/bin/androidbinding.jar and b/Core/AndroidBinding/bin/androidbinding.jar differ
diff --git a/Core/AndroidBinding/bin/classes/gueei/binding/menu/AbsMenuBridge$OptionsItemObserver.class b/Core/AndroidBinding/bin/classes/gueei/binding/menu/AbsMenuBridge$OptionsItemObserver.class
index bd7d73d..9715c07 100644
Binary files a/Core/AndroidBinding/bin/classes/gueei/binding/menu/AbsMenuBridge$OptionsItemObserver.class and b/Core/AndroidBinding/bin/classes/gueei/binding/menu/AbsMenuBridge$OptionsItemObserver.class differ
diff --git a/Core/AndroidBinding/bin/classes/gueei/binding/menu/AbsMenuBridge.class b/Core/AndroidBinding/bin/classes/gueei/binding/menu/AbsMenuBridge.class
index e5903c4..06f4916 100644
Binary files a/Core/AndroidBinding/bin/classes/gueei/binding/menu/AbsMenuBridge.class and b/Core/AndroidBinding/bin/classes/gueei/binding/menu/AbsMenuBridge.class differ
diff --git a/Core/AndroidBinding/bin/classes/gueei/binding/menu/BindableOptionsMenu.class b/Core/AndroidBinding/bin/classes/gueei/binding/menu/BindableOptionsMenu.class
index 65249bb..577a5ce 100644
Binary files a/Core/AndroidBinding/bin/classes/gueei/binding/menu/BindableOptionsMenu.class and b/Core/AndroidBinding/bin/classes/gueei/binding/menu/BindableOptionsMenu.class differ
diff --git a/Core/AndroidBinding/bin/classes/gueei/binding/menu/ContextMenuBinder.class b/Core/AndroidBinding/bin/classes/gueei/binding/menu/ContextMenuBinder.class
index 860443f..1721d0c 100644
Binary files a/Core/AndroidBinding/bin/classes/gueei/binding/menu/ContextMenuBinder.class and b/Core/AndroidBinding/bin/classes/gueei/binding/menu/ContextMenuBinder.class differ
diff --git a/Core/AndroidBinding/bin/classes/gueei/binding/menu/IMenuBinder.class b/Core/AndroidBinding/bin/classes/gueei/binding/menu/IMenuBinder.class
index ab49222..bc38e53 100644
Binary files a/Core/AndroidBinding/bin/classes/gueei/binding/menu/IMenuBinder.class and b/Core/AndroidBinding/bin/classes/gueei/binding/menu/IMenuBinder.class differ
diff --git a/Core/AndroidBinding/bin/classes/gueei/binding/menu/IMenuItemChangedCallback.class b/Core/AndroidBinding/bin/classes/gueei/binding/menu/IMenuItemChangedCallback.class
index 16c1242..9b941f1 100644
Binary files a/Core/AndroidBinding/bin/classes/gueei/binding/menu/IMenuItemChangedCallback.class and b/Core/AndroidBinding/bin/classes/gueei/binding/menu/IMenuItemChangedCallback.class differ
diff --git a/Core/AndroidBinding/bin/classes/gueei/binding/menu/MenuGroupBridge.class b/Core/AndroidBinding/bin/classes/gueei/binding/menu/MenuGroupBridge.class
index a97c118..17367a1 100644
Binary files a/Core/AndroidBinding/bin/classes/gueei/binding/menu/MenuGroupBridge.class and b/Core/AndroidBinding/bin/classes/gueei/binding/menu/MenuGroupBridge.class differ
diff --git a/Core/AndroidBinding/bin/classes/gueei/binding/menu/MenuItemBridge.class b/Core/AndroidBinding/bin/classes/gueei/binding/menu/MenuItemBridge.class
index 6669a6b..bb06331 100644
Binary files a/Core/AndroidBinding/bin/classes/gueei/binding/menu/MenuItemBridge.class and b/Core/AndroidBinding/bin/classes/gueei/binding/menu/MenuItemBridge.class differ
diff --git a/Core/AndroidBinding/bin/classes/gueei/binding/menu/MenuItemViemodel.class b/Core/AndroidBinding/bin/classes/gueei/binding/menu/MenuItemViemodel.class
index 52182b9..0b3bbe9 100644
Binary files a/Core/AndroidBinding/bin/classes/gueei/binding/menu/MenuItemViemodel.class and b/Core/AndroidBinding/bin/classes/gueei/binding/menu/MenuItemViemodel.class differ
diff --git a/Core/AndroidBinding/bin/classes/gueei/binding/menu/OnMenuItemClickListenerMulticast.class b/Core/AndroidBinding/bin/classes/gueei/binding/menu/OnMenuItemClickListenerMulticast.class
index 06c3f69..e685966 100644
Binary files a/Core/AndroidBinding/bin/classes/gueei/binding/menu/OnMenuItemClickListenerMulticast.class and b/Core/AndroidBinding/bin/classes/gueei/binding/menu/OnMenuItemClickListenerMulticast.class differ
diff --git a/Core/AndroidBinding/bin/classes/gueei/binding/menu/OptionsMenuBinder.class b/Core/AndroidBinding/bin/classes/gueei/binding/menu/OptionsMenuBinder.class
index f4f0fa8..de5b8a8 100644
Binary files a/Core/AndroidBinding/bin/classes/gueei/binding/menu/OptionsMenuBinder.class and b/Core/AndroidBinding/bin/classes/gueei/binding/menu/OptionsMenuBinder.class differ
diff --git a/Core/AndroidBinding/src/gueei/binding/menu/AbsMenuBridge.java b/Core/AndroidBinding/src/gueei/binding/menu/AbsMenuBridge.java
index 7234590..d789574 100644
--- a/Core/AndroidBinding/src/gueei/binding/menu/AbsMenuBridge.java
+++ b/Core/AndroidBinding/src/gueei/binding/menu/AbsMenuBridge.java
@@ -24,11 +24,12 @@ public abstract class AbsMenuBridge {
// Factory method
public static AbsMenuBridge create
- (String nodeName, int id, AttributeSet attrs, Context context, Object model){
+ (String nodeName, int id, AttributeSet attrs, Context context,
+ Object model, IMenuItemChangedCallback callback){
AbsMenuBridge item;
if ("item".equals(nodeName)){
- item = new MenuItemBridge(id, attrs, context, model);
+ item = new MenuItemBridge(id, attrs, context, model, callback);
}else if ("group".equals(nodeName)){
item = new MenuGroupBridge(id, attrs, context, model);
}else{
diff --git a/Core/AndroidBinding/src/gueei/binding/menu/BindableOptionsMenu.java b/Core/AndroidBinding/src/gueei/binding/menu/BindableOptionsMenu.java
index 5f619b7..4c2bd5c 100644
--- a/Core/AndroidBinding/src/gueei/binding/menu/BindableOptionsMenu.java
+++ b/Core/AndroidBinding/src/gueei/binding/menu/BindableOptionsMenu.java
@@ -41,7 +41,7 @@ public BindableOptionsMenu(Activity context) {
private final WeakReference mActivity;
// Called by owner activity
- public boolean onCreateOptionsMenu(Menu menu){
+ public boolean onCreateOptionsMenu(Menu menu){
Activity activity = mActivity.get();
Object model;
@@ -68,7 +68,7 @@ public boolean onCreateOptionsMenu(Menu menu){
if (id>0){
AttributeSet attrs = Xml.asAttributeSet(parser);
AbsMenuBridge item =
- AbsMenuBridge.create(nodeName, id, attrs, activity, model);
+ AbsMenuBridge.create(nodeName, id, attrs, activity, model, this);
if (item!=null){
items.put(id, item);
}
@@ -88,25 +88,26 @@ public boolean onCreateOptionsMenu(Menu menu){
item.onCreateOptionItem(menu);
}
+ menuCreated = true;
return true;
}
- public boolean onPrepareOptionsMenu(Menu menu){
+ public boolean onPrepareOptionsMenu(Menu menu){
for(AbsMenuBridge item: items.values()){
item.onPrepareOptionItem(menu);
}
return true;
}
- public boolean onOptionsItemSelected(MenuItem mi){
+ public boolean onOptionsItemSelected(MenuItem mi){
AbsMenuBridge item = items.get(mi.getItemId());
if (item!=null){
return item.onOptionsItemSelected(mi);
}
return false;
}
-
- @Override
+
+ @Override
public void onItemChanged(IObservable> prop, AbsMenuBridge item) {
invalidate();
}
diff --git a/Core/AndroidBinding/src/gueei/binding/menu/OptionsMenuBinder.java b/Core/AndroidBinding/src/gueei/binding/menu/OptionsMenuBinder.java
index e1dcbe5..e219d23 100644
--- a/Core/AndroidBinding/src/gueei/binding/menu/OptionsMenuBinder.java
+++ b/Core/AndroidBinding/src/gueei/binding/menu/OptionsMenuBinder.java
@@ -52,7 +52,7 @@ public boolean onCreateOptionsMenu(Activity activity, Menu menu, Object model){
if (id>0){
AttributeSet attrs = Xml.asAttributeSet(parser);
AbsMenuBridge item =
- AbsMenuBridge.create(nodeName, id, attrs, activity, model);
+ AbsMenuBridge.create(nodeName, id, attrs, activity, model, null);
if (item!=null){
items.put(id, item);
}
diff --git a/Core/AndroidBinding/src/gueei/binding/utility/CacheHashMap.java b/Core/AndroidBinding/src/gueei/binding/utility/CacheHashMap.java
index 6d1e295..451b4e6 100644
--- a/Core/AndroidBinding/src/gueei/binding/utility/CacheHashMap.java
+++ b/Core/AndroidBinding/src/gueei/binding/utility/CacheHashMap.java
@@ -5,6 +5,8 @@
import java.util.ArrayList;
import java.util.HashMap;
+import android.util.Log;
+
/**
* A HashMap that will have fixed size,
* once the allocated size is over, the
@@ -34,6 +36,7 @@ public synchronized V put(K key, V value) {
for(int i=0; i[] itemArray = items.toArray(new WeakReference[0]);
- int len = itemArray.length;
- Object[] eArray = new Object[len];
- for(int i=0; i copy = new ArrayList();
+ for(WeakReference itemRef : items) {
+ E item = itemRef.get();
+ if (item != null)
+ copy.add(item);
+ }
+ return copy.toArray();
}
}
@@ -125,12 +124,12 @@ public boolean add(E object) {
@SuppressWarnings("unchecked")
public E[] toItemArray(E[] arr) {
- int size = this.size();
- E[] copy = (E[]) Array.newInstance(arr.getClass().getComponentType(), size);
- WeakReference[] itemArray = items.toArray(new WeakReference[0]);
- for(int i=0; i copy = new ArrayList();
+ for(WeakReference itemRef : items) {
+ E item = itemRef.get();
+ if (item != null)
+ copy.add(item);
+ }
+ return (E[]) copy.toArray();
}
}
diff --git a/Core/AndroidBinding/src/gueei/binding/viewAttributes/adapterView/ItemCountViewAttribute.java b/Core/AndroidBinding/src/gueei/binding/viewAttributes/adapterView/ItemCountViewAttribute.java
index f2b53c7..927a4c8 100644
--- a/Core/AndroidBinding/src/gueei/binding/viewAttributes/adapterView/ItemCountViewAttribute.java
+++ b/Core/AndroidBinding/src/gueei/binding/viewAttributes/adapterView/ItemCountViewAttribute.java
@@ -56,7 +56,7 @@ public void onPropertyChanged(IObservable> prop,
Collection