package com.kedzie.vbox.machine.group; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import com.kedzie.vbox.R; import com.kedzie.vbox.app.CollapsiblePanelView; /** * Group of Virtual Machines. Collapsible component like one introduced in VirtualBox 4.2.x * @author Marek Kędzierski */ public class VMGroupPanel extends CollapsiblePanelView { public static final int COLLAPSE_ROTATION = -90; /** * Listener for Drill-Down button */ public static interface OnDrillDownListener { /** * The drill-down button has been pressed for a group * @param group the group to focus on */ public void onDrillDown(VMGroup group); } private TextView _titleLabel; private ImageView _drillDownButton; private OnDrillDownListener _drillDownListener; private TextView _numGroupsText; private TextView _numMachinesText; /** The group this panel represents */ private VMGroup _group; public VMGroupPanel(Context context, VMGroup group) { super(context); setClickable(true); setCollapseRotation(COLLAPSE_ROTATION); _group = group; _titleLabel.setText(_group.getName()); _numGroupsText.setText(_group.getNumGroups()+""); _numMachinesText.setText(_group.getNumMachines()+""); } public View getTitleView() { if(mTitleView==null) { mTitleView = LayoutInflater.from(getContext()).inflate(R.layout.vmgroup_title, this, false); setCollapseButton(mTitleView.findViewById(R.id.group_collapse)); _drillDownButton = (ImageView)mTitleView.findViewById(R.id.group_enter); _drillDownButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if(_drillDownListener!=null) _drillDownListener.onDrillDown(_group); } }); _numGroupsText = (TextView)mTitleView.findViewById(R.id.group_num_groups); _numMachinesText = (TextView)mTitleView.findViewById(R.id.group_num_machine); _titleLabel = (TextView)mTitleView.findViewById(R.id.group_title); } return mTitleView; } public void addChild(View view) { addView(view, new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); } public VMGroup getGroup() { return _group; } public void setOnDrillDownListener(OnDrillDownListener listener) { _drillDownListener=listener; } }