1 package net.sf.openrocket.android.rocket;
3 import net.sf.openrocket.R;
4 import net.sf.openrocket.android.rocket.RocketComponentTreeAdapter.RocketComponentWithId;
5 import net.sf.openrocket.rocketcomponent.RocketComponent;
6 import pl.polidea.treeview.AbstractTreeViewAdapter;
7 import pl.polidea.treeview.TreeNodeInfo;
8 import pl.polidea.treeview.TreeStateManager;
9 import android.app.Activity;
10 import android.view.View;
11 import android.view.ViewGroup;
12 import android.widget.TextView;
15 * This is a very simple adapter that provides very basic tree view with a
16 * checkboxes and simple item description.
19 public class RocketComponentTreeAdapter extends AbstractTreeViewAdapter<RocketComponentWithId> {
21 static class RocketComponentWithId {
22 RocketComponent component;
24 public RocketComponentWithId( RocketComponent c, long id ) {
30 public RocketComponentTreeAdapter(final Activity treeViewListDemo,
31 TreeStateManager<RocketComponentWithId> manager,
32 final int numberOfLevels) {
33 super(treeViewListDemo, manager, numberOfLevels);
36 private String getDescription(final RocketComponentWithId id) {
37 return id.component.getName();
41 public View getNewChildView(final TreeNodeInfo<RocketComponentWithId> treeNodeInfo) {
42 final View viewLayout = getActivity().getLayoutInflater().inflate(R.layout.component_list_item, null);
43 return updateView(viewLayout, treeNodeInfo);
47 public View updateView(final View view,
48 final TreeNodeInfo<RocketComponentWithId> treeNodeInfo) {
49 final View viewLayout = view;
50 final TextView descriptionView = (TextView) viewLayout.findViewById(android.R.id.text1);
51 descriptionView.setText(getDescription(treeNodeInfo.getId()));
56 public void handleItemClick(final View view, final Object id) {
57 final RocketComponentWithId longId = (RocketComponentWithId) id;
58 final TreeNodeInfo<RocketComponentWithId> info = getManager().getNodeInfo(longId);
59 if (info.isWithChildren()) {
60 super.handleItemClick(view, id);
62 final ViewGroup vg = (ViewGroup) view;
63 // perform click on child item
68 public long getItemId(final int position) {
69 RocketComponentWithId rcid = getTreeId(position);