Android Open Source - Implementing-ActionBarSherlock-Side-Menu-Navigation-Drawer-in-Android Menu Wrapper From Project Back to project page Implementing-ActionBarSherlock-Side-Menu-Navigation-Drawer-in-Android .
License The source code is released under:
Apache License
If you think the Android project Implementing-ActionBarSherlock-Side-Menu-Navigation-Drawer-in-Android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code package com.actionbarsherlock.internal.view.menu;
/ * f r o m w w w . j a v a 2 s . c o m * /
import java.util.WeakHashMap;
import android.content.ComponentName;
import android.content.Intent;
import android.view.KeyEvent;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
import com.actionbarsherlock.view.SubMenu;
public class MenuWrapper implements Menu {
private final android.view.Menu mNativeMenu;
private final WeakHashMap<android.view.MenuItem, MenuItem> mNativeMap =
new WeakHashMap<android.view.MenuItem, MenuItem>();
public MenuWrapper(android.view.Menu nativeMenu) {
mNativeMenu = nativeMenu;
}
public android.view.Menu unwrap() {
return mNativeMenu;
}
private MenuItem addInternal(android.view.MenuItem nativeItem) {
MenuItem item = new MenuItemWrapper(nativeItem);
mNativeMap.put(nativeItem, item);
return item;
}
@Override
public MenuItem add(CharSequence title) {
return addInternal(mNativeMenu.add(title));
}
@Override
public MenuItem add(int titleRes) {
return addInternal(mNativeMenu.add(titleRes));
}
@Override
public MenuItem add(int groupId, int itemId, int order, CharSequence title) {
return addInternal(mNativeMenu.add(groupId, itemId, order, title));
}
@Override
public MenuItem add(int groupId, int itemId, int order, int titleRes) {
return addInternal(mNativeMenu.add(groupId, itemId, order, titleRes));
}
private SubMenu addInternal(android.view.SubMenu nativeSubMenu) {
SubMenu subMenu = new SubMenuWrapper(nativeSubMenu);
android.view.MenuItem nativeItem = nativeSubMenu.getItem();
MenuItem item = subMenu.getItem();
mNativeMap.put(nativeItem, item);
return subMenu;
}
@Override
public SubMenu addSubMenu(CharSequence title) {
return addInternal(mNativeMenu.addSubMenu(title));
}
@Override
public SubMenu addSubMenu(int titleRes) {
return addInternal(mNativeMenu.addSubMenu(titleRes));
}
@Override
public SubMenu addSubMenu(int groupId, int itemId, int order, CharSequence title) {
return addInternal(mNativeMenu.addSubMenu(groupId, itemId, order, title));
}
@Override
public SubMenu addSubMenu(int groupId, int itemId, int order, int titleRes) {
return addInternal(mNativeMenu.addSubMenu(groupId, itemId, order, titleRes));
}
@Override
public int addIntentOptions(int groupId, int itemId, int order, ComponentName caller, Intent[] specifics, Intent intent, int flags, MenuItem[] outSpecificItems) {
android.view.MenuItem[] nativeOutItems = new android.view.MenuItem[outSpecificItems.length];
int result = mNativeMenu.addIntentOptions(groupId, itemId, order, caller, specifics, intent, flags, nativeOutItems);
for (int i = 0, length = outSpecificItems.length; i < length; i++) {
outSpecificItems[i] = new MenuItemWrapper(nativeOutItems[i]);
}
return result;
}
@Override
public void removeItem(int id) {
mNativeMenu.removeItem(id);
}
@Override
public void removeGroup(int groupId) {
mNativeMenu.removeGroup(groupId);
}
@Override
public void clear() {
mNativeMap.clear();
mNativeMenu.clear();
}
@Override
public void setGroupCheckable(int group, boolean checkable, boolean exclusive) {
mNativeMenu.setGroupCheckable(group, checkable, exclusive);
}
@Override
public void setGroupVisible(int group, boolean visible) {
mNativeMenu.setGroupVisible(group, visible);
}
@Override
public void setGroupEnabled(int group, boolean enabled) {
mNativeMenu.setGroupEnabled(group, enabled);
}
@Override
public boolean hasVisibleItems() {
return mNativeMenu.hasVisibleItems();
}
@Override
public MenuItem findItem(int id) {
android.view.MenuItem nativeItem = mNativeMenu.findItem(id);
return findItem(nativeItem);
}
public MenuItem findItem(android.view.MenuItem nativeItem) {
if (nativeItem == null) {
return null;
}
MenuItem wrapped = mNativeMap.get(nativeItem);
if (wrapped != null) {
return wrapped;
}
return addInternal(nativeItem);
}
@Override
public int size() {
return mNativeMenu.size();
}
@Override
public MenuItem getItem(int index) {
android.view.MenuItem nativeItem = mNativeMenu.getItem(index);
return findItem(nativeItem);
}
@Override
public void close() {
mNativeMenu.close();
}
@Override
public boolean performShortcut(int keyCode, KeyEvent event, int flags) {
return mNativeMenu.performShortcut(keyCode, event, flags);
}
@Override
public boolean isShortcutKey(int keyCode, KeyEvent event) {
return mNativeMenu.isShortcutKey(keyCode, event);
}
@Override
public boolean performIdentifierAction(int id, int flags) {
return mNativeMenu.performIdentifierAction(id, flags);
}
@Override
public void setQwertyMode(boolean isQwerty) {
mNativeMenu.setQwertyMode(isQwerty);
}
}
Java Source Code List android.support.v4.app._ActionBarSherlockTrojanHorse.java com.actionbarsherlock.ActionBarSherlock.java com.actionbarsherlock.app.ActionBar.java com.actionbarsherlock.app.SherlockActivity.java com.actionbarsherlock.app.SherlockDialogFragment.java com.actionbarsherlock.app.SherlockExpandableListActivity.java com.actionbarsherlock.app.SherlockFragmentActivity.java com.actionbarsherlock.app.SherlockFragment.java com.actionbarsherlock.app.SherlockListActivity.java com.actionbarsherlock.app.SherlockListFragment.java com.actionbarsherlock.app.SherlockPreferenceActivity.java com.actionbarsherlock.internal.ActionBarSherlockCompat.java com.actionbarsherlock.internal.ActionBarSherlockNative.java com.actionbarsherlock.internal.ResourcesCompat.java com.actionbarsherlock.internal.app.ActionBarImpl.java com.actionbarsherlock.internal.app.ActionBarWrapper.java com.actionbarsherlock.internal.nineoldandroids.animation.AnimatorListenerAdapter.java com.actionbarsherlock.internal.nineoldandroids.animation.AnimatorSet.java com.actionbarsherlock.internal.nineoldandroids.animation.Animator.java com.actionbarsherlock.internal.nineoldandroids.animation.FloatEvaluator.java com.actionbarsherlock.internal.nineoldandroids.animation.FloatKeyframeSet.java com.actionbarsherlock.internal.nineoldandroids.animation.IntEvaluator.java com.actionbarsherlock.internal.nineoldandroids.animation.IntKeyframeSet.java com.actionbarsherlock.internal.nineoldandroids.animation.KeyframeSet.java com.actionbarsherlock.internal.nineoldandroids.animation.Keyframe.java com.actionbarsherlock.internal.nineoldandroids.animation.ObjectAnimator.java com.actionbarsherlock.internal.nineoldandroids.animation.PropertyValuesHolder.java com.actionbarsherlock.internal.nineoldandroids.animation.TypeEvaluator.java com.actionbarsherlock.internal.nineoldandroids.animation.ValueAnimator.java com.actionbarsherlock.internal.nineoldandroids.view.NineViewGroup.java com.actionbarsherlock.internal.nineoldandroids.view.animation.AnimatorProxy.java com.actionbarsherlock.internal.nineoldandroids.widget.NineFrameLayout.java com.actionbarsherlock.internal.nineoldandroids.widget.NineHorizontalScrollView.java com.actionbarsherlock.internal.nineoldandroids.widget.NineLinearLayout.java com.actionbarsherlock.internal.view.ActionProviderWrapper.java com.actionbarsherlock.internal.view.StandaloneActionMode.java com.actionbarsherlock.internal.view.View_HasStateListenerSupport.java com.actionbarsherlock.internal.view.View_OnAttachStateChangeListener.java com.actionbarsherlock.internal.view.menu.ActionMenuItemView.java com.actionbarsherlock.internal.view.menu.ActionMenuItem.java com.actionbarsherlock.internal.view.menu.ActionMenuPresenter.java com.actionbarsherlock.internal.view.menu.ActionMenuView.java com.actionbarsherlock.internal.view.menu.ActionMenu.java com.actionbarsherlock.internal.view.menu.BaseMenuPresenter.java com.actionbarsherlock.internal.view.menu.ListMenuItemView.java com.actionbarsherlock.internal.view.menu.MenuBuilder.java com.actionbarsherlock.internal.view.menu.MenuItemImpl.java com.actionbarsherlock.internal.view.menu.MenuItemWrapper.java com.actionbarsherlock.internal.view.menu.MenuPopupHelper.java com.actionbarsherlock.internal.view.menu.MenuPresenter.java com.actionbarsherlock.internal.view.menu.MenuView.java com.actionbarsherlock.internal.view.menu.MenuWrapper.java com.actionbarsherlock.internal.view.menu.SubMenuBuilder.java com.actionbarsherlock.internal.view.menu.SubMenuWrapper.java com.actionbarsherlock.internal.widget.AbsActionBarView.java com.actionbarsherlock.internal.widget.ActionBarContainer.java com.actionbarsherlock.internal.widget.ActionBarContextView.java com.actionbarsherlock.internal.widget.ActionBarView.java com.actionbarsherlock.internal.widget.CapitalizingButton.java com.actionbarsherlock.internal.widget.CapitalizingTextView.java com.actionbarsherlock.internal.widget.FakeDialogPhoneWindow.java com.actionbarsherlock.internal.widget.IcsAbsSpinner.java com.actionbarsherlock.internal.widget.IcsAdapterView.java com.actionbarsherlock.internal.widget.IcsLinearLayout.java com.actionbarsherlock.internal.widget.IcsListPopupWindow.java com.actionbarsherlock.internal.widget.IcsProgressBar.java com.actionbarsherlock.internal.widget.IcsSpinner.java com.actionbarsherlock.internal.widget.IcsView.java com.actionbarsherlock.internal.widget.ScrollingTabContainerView.java com.actionbarsherlock.view.ActionMode.java com.actionbarsherlock.view.ActionProvider.java com.actionbarsherlock.view.CollapsibleActionView.java com.actionbarsherlock.view.MenuInflater.java com.actionbarsherlock.view.MenuItem.java com.actionbarsherlock.view.Menu.java com.actionbarsherlock.view.SubMenu.java com.actionbarsherlock.view.Window.java com.actionbarsherlock.widget.ActivityChooserModel.java com.actionbarsherlock.widget.ActivityChooserView.java com.actionbarsherlock.widget.ShareActionProvider.java com.androidbegin.sidemenututorial.Fragment1.java com.androidbegin.sidemenututorial.Fragment2.java com.androidbegin.sidemenututorial.Fragment3.java com.androidbegin.sidemenututorial.MainActivity.java com.androidbegin.sidemenututorial.MenuListAdapter.java