package edu.mit.mitmobile2; import java.util.ArrayList; import java.util.List; import android.content.Context; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.widget.ImageView; import android.widget.LinearLayout; abstract public class MITSecondaryTitleBar extends LinearLayout { protected LinearLayout mContainer; protected LinearLayout mSecondaryActionItemsLL; private List<MITMenuItem> mMenuItems; private OnMITMenuItemListener mMenuListener; public MITSecondaryTitleBar(Context context) { this(context, null); // TODO Auto-generated constructor stub } public MITSecondaryTitleBar(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); mContainer = (LinearLayout) inflater.inflate(R.layout.mit_secondary_title_bar, this); mSecondaryActionItemsLL = (LinearLayout) findViewById(R.id.secondaryTitleBarActionItems); mMenuItems = new ArrayList<MITMenuItem>(); } public void setOnMITMenuItemListener(OnMITMenuItemListener listener) { mMenuListener = listener; } /** * Used for the primary, secondary list to get the wrapper view. * @param item it must not be null. * @return View appears on the menu. */ public void addMenuItem(final MITMenuItem item) { mMenuItems.add(item); View view = item.getView(getContext()); view.setTag(item.getId()); view.setFocusable(true); view.setClickable(true); LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT); mSecondaryActionItemsLL.addView(view, layoutParams); view.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub if (null != mMenuListener) { mMenuListener.onOptionItemSelected(item.getId()); } } }); } public void updateMenuItem(MITMenuItem item) { ImageView view = (ImageView) mSecondaryActionItemsLL.findViewWithTag(item.getId()); view.setImageResource(item.getIconResId()); } public void removeMenuItem(MITMenuItem item) { ImageView view = (ImageView) mSecondaryActionItemsLL.findViewWithTag(item.getId()); mSecondaryActionItemsLL.removeView(view); } public void addActionView(View view) { LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT); mSecondaryActionItemsLL.addView(view, layoutParams); } }