Ejemplo n.º 1
0
        /// <summary>
        ///  ツリーとしてアイテムを追加していく.
        /// </summary>
        /// <param name="item"></param>
        /// <param name="parentViewItem"></param>
        private void AddItemsAsTree(DeviceItemVisual item, DeviceItemTreeViewItem parentViewItem)
        {
            if (item == null)
            {
                return;
            }

            var devViewItem = new DeviceItemTreeViewItem()
            {
                Visibility = item.DeviceItem.IsRoot ? Visibility.Visible : Visibility.Collapsed,
                Device     = item,
            };

            this.ItemsTreeView.Items.Add(devViewItem);
            if (parentViewItem != null)
            {
                System.Diagnostics.Debug.Assert(parentViewItem.Children != null);
                parentViewItem.Children.Add(devViewItem);
            }

            if (!item.DeviceItem.HasChildren)
            {
                return;
            }

            devViewItem.Children = new List <DeviceItemTreeViewItem>(item.DeviceItem.Children.Count);
            foreach (var child in item.DeviceItem.Children)
            {
                AddItemsAsTree(child.Data.Visual, devViewItem);
            }
            devViewItem.ChildrenVisible = true;
        }
Ejemplo n.º 2
0
        public override int Compare(DeviceItemVisual x, DeviceItemVisual y)
        {
            object valX;
            object valY;

            x.DeviceItem.Data.Device.Properties.TryGetValue(this.propertyName, out valX);
            y.DeviceItem.Data.Device.Properties.TryGetValue(this.propertyName, out valY);

            if ((valX == null) && (valY == null))
            {
                return(0);
            }
            if ((valX != null) && (valY == null))
            {
                return(1);
            }
            if ((valX == null) && (valY != null))
            {
                return(-1);
            }

            if (!(valX is T) || !(valY is T))
            {
                throw new InvalidOperationException();
            }

            return(this.comparer.Compare((T)valX, (T)valY));
        }
Ejemplo n.º 3
0
        /// <summary>
        ///  デバイスのプロパティページに移動する.
        /// </summary>
        /// <param name="item"></param>
        private void NavigateToDeviceItemDetailPage(DeviceItemVisual item)
        {
            DeviceItemGroup.Instance.SelectedItemId = item.DeviceItem.Data.Device.Id;

            // 適切な移動先のページに移動し、新しいページを構成します。
            // このとき、必要な情報をナビゲーション パラメーターとして渡します
            this.Frame.Navigate(typeof(DeviceItemDetailPage), item.DeviceItem.Data.Device.Id);
        }
Ejemplo n.º 4
0
        /// <summary>
        ///  指定したアイテムが表示されるようにスクロールさせる.
        /// </summary>
        /// <param name="item"></param>
        public void ScrollIntoViewWithDeviceItemVisual(DeviceItemVisual item)
        {
            if (item == null)
            {
                return;
            }

            var selectedItem = this.ItemsTreeView.Items.FirstOrDefault(
                x => (x as DeviceItemTreeViewItem).Device.DeviceItem.Data.Device.Id.Equals(item.DeviceItem.Data.Device.Id));

            if (selectedItem != null)
            {
                this.ItemsTreeView.SelectedItem = selectedItem;
                this.ItemsTreeView.ScrollIntoView(selectedItem);
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        ///  DataPackageに共有するデータを設定する
        /// </summary>
        /// <param name="item">デバイス</param>
        /// <param name="data">DataPackage</param>
        /// <param name="textSource">共有するテキストの種類</param>
        internal static void SetDataPackage(this DeviceItemVisual item, DataPackage data, DataPackageTextSource textSource)
        {
            var res = Windows.UI.Xaml.Application.Current.Resources["MyStringResource"] as MyStringResources;

            if (item != null)
            {
                // title / description
                data.Properties.Title       = res["ShareTitle"];
                data.Properties.Description = String.Format(res["ShareDescriptionFormat"], item.DisplayName);

                // text
                switch (textSource)
                {
                case DataPackageTextSource.DisplayName:
                    data.SetText(item.DisplayName);
                    break;

                case DataPackageTextSource.AllProperties:
                    data.SetText(String.Format("{0}\n\n{1}\n{2}\n\n{3}\n{4}",
                                               item.DisplayName,
                                               res["DetailColumnTitleDeviceProperty"],
                                               item.DevicePropertiesText,
                                               res["DetailColumnTitleDeviceContainerProperty"],
                                               item.ContainerPropertiesText));
                    break;
                }

                // bitmap
                if (item.DeviceThumbnail != null)
                {
                    var strmThumbnail = Windows.Storage.Streams.RandomAccessStreamReference.CreateFromStream(item.DeviceThumbnail);
                    data.SetBitmap(strmThumbnail);
                    data.Properties.Thumbnail = strmThumbnail;
                }
            }
            else
            {
            }
        }