void UpdateListView(BaseNode node) { if (node == null) { return; } TextView txtPath = monitorAct.FindViewById <TextView>(Resource.Id.textViewFullPath); txtPath.Text = node.GetFullPath(); ListView listView = monitorAct.FindViewById <ListView>(Resource.Id.listView1); if (listView.Adapter == null) { var items = new List <BaseNode>(); listView.Adapter = new NodeListAdapter(monitorAct, items); } NodeListAdapter listAdapter = listView.Adapter as NodeListAdapter; if (listAdapter != null && node != null) { listAdapter.Clear(); if (node.ParentNode != null) { listAdapter.Add(null); } foreach (BaseNode child in node.Children) { listAdapter.Add(child); } } }
private void UpdateView(BaseNode node) { if (node == null) { return; } UpdateListView(node); LinearLayout valueGroup = monitorAct.FindViewById <LinearLayout>(Resource.Id.valueGroup); valueGroup.Visibility = ViewStates.Invisible; SeekBar seeker = monitorAct.FindViewById <SeekBar>(Resource.Id.seekBarValue); seeker.Visibility = ViewStates.Invisible; Spinner spinnerOptions = monitorAct.FindViewById <Spinner>(Resource.Id.spinnerOptions); spinnerOptions.Visibility = ViewStates.Invisible; // Set the node name. TextView txtView = monitorAct.FindViewById <TextView>(Resource.Id.textViewNodeName); txtView.Text = monitorAct.currentNode.Name; NodeTypes nType = NodeFactory.NodeType(node); txtView.Text += " (" + NodeFactory.TypeAsString(nType) + ")"; // Setup for a value attribute. if (node is AbstractValueNode) { string strValue = String.Empty; if (!node.GetAttribute(AttributeTypes.value, ref strValue)) { return; } valueGroup.Visibility = ViewStates.Visible; if (node is AbstractNumericNode) { if (node is FloatNode || node is DoubleNode) { integerNode = false; } float min, max; if (GetRange(node, out min, out max)) { float nodeValue = (max - min) / 2f; nodeValue = float.Parse(strValue); if (integerNode) { seeker.Max = seekerMax; seekerOffset = min; seekerScale = (max - min) / seekerMax; } else { seeker.Max = (int)Math.Round(max - min); seekerOffset = min; seekerScale = 1.0f; } seeker.Visibility = ViewStates.Visible; seeker.Progress = (int)Math.Round((nodeValue - seekerOffset) / seekerScale); seeker.ProgressChanged += Seeker_ProgressChanged; } } String strOption = String.Empty; if (node.GetAttribute(AttributeTypes.options, ref strOption)) { String[] options = strOption.Split(AbstractNumericNode.optionDelimiter); ArrayAdapter spinnerArrayAdapter = new ArrayAdapter(monitorAct, Android.Resource.Layout.SimpleSpinnerItem, options); spinnerOptions.Adapter = spinnerArrayAdapter; int pos = Array.IndexOf(options, strValue); if (pos >= 0) { spinnerOptions.SetSelection(pos); } valueGroup.Visibility = ViewStates.Visible; spinnerOptions.Visibility = ViewStates.Visible; spinnerOptions.ItemSelected += SpinnerOptions_ItemSelected; } } }