private BaseGauge BuildTextControl(IGaugeItem gaugeItem)
        {
            TextControl textControl = new TextControl();

            textControl.GaugeItem = gaugeItem;

            // Add it to the page
            this.CanvasGrid.Children.Add(textControl);
            return(textControl);
        }
        private void BuildGauge(IGaugeItem gaugeItem, Action <ISensorItem> constructor)
        {
            ISensorItem sensor = App.SensorCollection.FindBySensorId(gaugeItem.SensorId);

            if (null != sensor)
            {
                sensor.IsDemoMode = true;
            }

            constructor(sensor);
        }
        private void AddAdorner(IGaugeItem gaugeItem)
        {
            _gaugeItemSelectedList.Add(gaugeItem);

            Adorner adorner = new Adorner();

            adorner.GaugeItem = gaugeItem;
            adorner.IsOpen    = true;
            _adornerList.Add(adorner);
            this.CanvasGrid.Children.Add(adorner.Popup);
        }
        private BaseGauge BuildPieChartGauge(IGaugeItem gaugeItem)
        {
            PieChartGauge pieChartGauge = new PieChartGauge();

            pieChartGauge.GaugeItem = gaugeItem;
            pieChartGauge.SensorCollection.Add(App.SensorCollection[0]);
            pieChartGauge.SensorCollection.Add(App.SensorCollection[1]);
            pieChartGauge.SensorCollection.Add(App.SensorCollection[2]);

            // Add it to the page
            this.CanvasGrid.Children.Add(pieChartGauge);
            return(pieChartGauge);
        }
        private void RemoveAdorner(IGaugeItem gaugeItem)
        {
            int index = _gaugeItemSelectedList.IndexOf(gaugeItem);

            _gaugeItemSelectedList.RemoveAt(index);

            Adorner adorner = _adornerList[index];

            adorner.IsOpen = false;
            _adornerList.RemoveAt(index);
            this.CanvasGrid.Children.Remove(adorner.Popup);
            adorner.Dispose();
        }
        private BaseGauge BuildTextGauge(IGaugeItem gaugeItem)
        {
            TextGauge textGauge = new TextGauge();

            textGauge.GaugeItem = gaugeItem;

            BuildGauge(gaugeItem, (sensor) =>
            {
                textGauge.SensorItem = sensor;
            });

            // Add it to the page
            this.CanvasGrid.Children.Add(textGauge);
            return(textGauge);
        }
        private BaseGauge BuildHorizontalBarGauge(IGaugeItem gaugeItem)
        {
            HorizontalBarGauge horizontalBarGauge = new HorizontalBarGauge();

            horizontalBarGauge.GaugeItem = gaugeItem;

            BuildGauge(gaugeItem, (sensor) =>
            {
                horizontalBarGauge.SensorItem = sensor;
            });

            // Add it to the page
            this.CanvasGrid.Children.Add(horizontalBarGauge);
            return(horizontalBarGauge);
        }
        private BaseGauge BuildVerticalBarGauge(IGaugeItem gaugeItem)
        {
            VerticalBarGauge verticalBarGauge = new VerticalBarGauge();

            verticalBarGauge.GaugeItem = gaugeItem;

            BuildGauge(gaugeItem, (sensor) =>
            {
                verticalBarGauge.SensorItem = sensor;
            });

            // Add it to the page
            this.CanvasGrid.Children.Add(verticalBarGauge);
            return(verticalBarGauge);
        }
        private BaseGauge BuildRightTankGauge(IGaugeItem gaugeItem)
        {
            TankGaugeRight tankGaugeRight = new TankGaugeRight();

            tankGaugeRight.GaugeItem = gaugeItem;

            BuildGauge(gaugeItem, (sensor) =>
            {
                tankGaugeRight.SensorItem = sensor;
            });

            // Add it to the page
            this.CanvasGrid.Children.Add(tankGaugeRight);
            return(tankGaugeRight);
        }
        private BaseGauge BuildCircularGauge(IGaugeItem gaugeItem)
        {
            CircularGauge circularGauge = new CircularGauge();

            circularGauge.GaugeItem = gaugeItem;

            BuildGauge(gaugeItem, (sensor) =>
            {
                circularGauge.SensorItem = sensor;
            });

            // Add it to the page
            this.CanvasGrid.Children.Add(circularGauge);
            return(circularGauge);
        }
        private BaseGauge BuildLeftArcGauge(IGaugeItem gaugeItem)
        {
            LeftArcGauge leftArcGauge = new LeftArcGauge();

            leftArcGauge.GaugeItem = gaugeItem;

            BuildGauge(gaugeItem, (sensor) =>
            {
                leftArcGauge.SensorItem = sensor;
            });

            // Add it to the page
            this.CanvasGrid.Children.Add(leftArcGauge);
            return(leftArcGauge);
        }
        private BaseGauge BuildDonutGauge(IGaugeItem gaugeItem)
        {
            DonutGauge donutGauge = new DonutGauge();

            donutGauge.GaugeItem = gaugeItem;

            BuildGauge(gaugeItem, (sensor) =>
            {
                donutGauge.SensorItem = sensor;
            });

            // Add it to the page
            this.CanvasGrid.Children.Add(donutGauge);
            return(donutGauge);
        }
        /// <summary>
        /// When an object on the screen is selected, put an an adorner with handles so the object can be
        /// resized, rotated, moved, etc.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void BasePageView_PointerPressed(object sender, Windows.UI.Xaml.Input.PointerRoutedEventArgs e)
        {
            this.CanvasGrid.ChildPositionComplete();

            Image image = e.OriginalSource as Image;

            if (null != image)
            {
                BaseGauge baseGauge = image.DataContext as BaseGauge;
                if (null != baseGauge)
                {
                    IGaugeItem gaugeItem = baseGauge.GaugeItem;
                    if (e.KeyModifiers == Windows.System.VirtualKeyModifiers.Shift)
                    {
                        if (_gaugeItemSelectedList.Contains(gaugeItem))
                        {
                            this.RemoveAdorner(gaugeItem);
                        }
                        else
                        {
                            this.AddAdorner(gaugeItem);
                        }
                    }
                    else
                    {
                        bool addPopItem = !_gaugeItemSelectedList.Contains(gaugeItem);
                        this.RemoveAllAdorners();
                        if (addPopItem)
                        {
                            this.AddAdorner(gaugeItem);
                        }
                    }
                }
                else
                {
                    this.RemoveAllAdorners();
                }
            }
            else
            {
                this.RemoveAllAdorners();
            }
        }