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.InMemoryTreeStateManager;
8 import pl.polidea.treeview.TreeNodeInfo;
9 import pl.polidea.treeview.TreeStateManager;
10 import android.app.Activity;
11 import android.view.View;
12 import android.view.ViewGroup;
13 import android.widget.LinearLayout;
14 import android.widget.TextView;
17 * This is a very simple adapter that provides very basic tree view with a
18 * checkboxes and simple item description.
21 public class RocketComponentTreeAdapter extends AbstractTreeViewAdapter<RocketComponentWithId> {
23 static class RocketComponentWithId {
24 RocketComponent component;
26 public RocketComponentWithId( RocketComponent c, long id ) {
32 public RocketComponentTreeAdapter(final Activity treeViewListDemo,
33 TreeStateManager<RocketComponentWithId> manager,
34 final int numberOfLevels) {
35 super(treeViewListDemo, manager, numberOfLevels);
38 private String getDescription(final RocketComponentWithId id) {
39 return id.component.getName();
43 public View getNewChildView(final TreeNodeInfo<RocketComponentWithId> treeNodeInfo) {
44 final View viewLayout = getActivity().getLayoutInflater().inflate(R.layout.component_list_item, null);
45 return updateView(viewLayout, treeNodeInfo);
49 public View updateView(final View view,
50 final TreeNodeInfo<RocketComponentWithId> treeNodeInfo) {
51 final View viewLayout = view;
52 final TextView descriptionView = (TextView) viewLayout.findViewById(android.R.id.text1);
53 descriptionView.setText(getDescription(treeNodeInfo.getId()));
58 public void handleItemClick(final View view, final Object id) {
59 final RocketComponentWithId longId = (RocketComponentWithId) id;
60 final TreeNodeInfo<RocketComponentWithId> info = getManager().getNodeInfo(longId);
61 if (info.isWithChildren()) {
62 super.handleItemClick(view, id);
64 final ViewGroup vg = (ViewGroup) view;
65 // perform click on child item
70 public long getItemId(final int position) {
71 RocketComponentWithId rcid = getTreeId(position);