create changelog entry
[debian/openrocket] / android / src / net / sf / openrocket / android / rocket / RocketComponentTreeAdapter.java
1 package net.sf.openrocket.android.rocket;
2
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;
13
14 /**
15  * This is a very simple adapter that provides very basic tree view with a
16  * checkboxes and simple item description.
17  * 
18  */
19 public class RocketComponentTreeAdapter extends AbstractTreeViewAdapter<RocketComponentWithId> {
20
21         static class RocketComponentWithId {
22                 RocketComponent component;
23                 long id;
24                 public RocketComponentWithId( RocketComponent c, long id ) {
25                         this.component = c;
26                         this.id = id;
27                 }
28         }
29         
30         public RocketComponentTreeAdapter(final Activity treeViewListDemo,
31                         TreeStateManager<RocketComponentWithId> manager,
32                         final int numberOfLevels) {
33                 super(treeViewListDemo, manager, numberOfLevels);
34         }
35
36         private String getDescription(final RocketComponentWithId id) {
37                 return  id.component.getName();
38         }
39
40         @Override
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);
44         }
45
46         @Override
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()));
52                 return viewLayout;
53         }
54
55         @Override
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);
61                 } else {
62                         final ViewGroup vg = (ViewGroup) view;
63                         // perform click on child item
64                 }
65         }
66
67         @Override
68         public long getItemId(final int position) {
69                 RocketComponentWithId rcid = getTreeId(position);
70                 return rcid.id;
71         }
72 }