Example #1
0
        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);
                }
            }
        }
Example #2
0
        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;
                }
            }
        }