Esempio n. 1
0
        private void DetailListSelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (DetailList.Items.Count == 0)
            {
                return;
            }

            FileDetailViewControl item = (FileDetailViewControl)(DetailList.SelectedItem);

            OpenItem(item.FileProperties);
        }
Esempio n. 2
0
        private void FetchStructureComplete(DAVRequestResult result, object userObj)
        {
            if (result.Status == ServerStatus.MultiStatus && !result.Request.ErrorOccured && result.Items.Count > 0)
            {
                bool _firstItem = false;
                // display all items linear
                // we cannot wait till an item is displayed, instead for a fluid
                // behaviour we should calculate fadeIn-delays.
                int delayStart = 0;
                int delayStep  = 50; // ms

                foreach (DAVRequestResult.Item item in result.Items)
                {
                    File fileItem = new File()
                    {
                        FileName         = item.LocalReference,
                        FilePath         = item.Reference,
                        FileSize         = item.ContentLength,
                        FileType         = item.ContentType,
                        FileCreated      = item.CreationDate,
                        FileLastModified = item.LastModified,
                        IsDirectory      = item.ResourceType == ResourceType.Collection
                    };

                    bool display = true;

                    Dispatcher.BeginInvoke(() =>
                    {
                        switch (_views[_viewIndex])
                        {
                        case "detail":
                            if (!_firstItem)
                            {
                                _firstItem = true;

                                // Root
                                if (fileItem.IsDirectory)
                                {
                                    if (item.Reference == _workingAccount.WebDAVPath)
                                    {
                                        // cannot go up further
                                        display = false;
                                    }
                                    else
                                    {
                                        fileItem.IsRootItem = true;
                                        fileItem.FilePath   = fileItem.FileParentPath;
                                    }
                                }
                            }

                            if (display)
                            {
                                FileDetailViewControl detailControl = new FileDetailViewControl()
                                {
                                    DataContext = fileItem,
                                    Opacity     = 0,
                                    Background  = new SolidColorBrush()
                                    {
                                        Color = Colors.Transparent
                                    },
                                };

                                DetailList.Items.Add(detailControl);
                                detailControl.Delay(delayStart, () =>
                                {
                                    detailControl.FadeIn(100);
                                });
                                delayStart += delayStep;
                            }
                            break;

                        case "tile":
                            if (!_firstItem)
                            {
                                _firstItem = true;

                                // Root
                                if (fileItem.IsDirectory)
                                {
                                    if (item.Reference == _workingAccount.WebDAVPath)
                                    {
                                        // cannot go up further
                                        display = false;
                                    }
                                    else
                                    {
                                        fileItem.IsRootItem = true;
                                        fileItem.FilePath   = fileItem.FileParentPath;
                                    }
                                }
                            }

                            if (display)
                            {
                                FileMultiTileViewControl multiControl = new FileMultiTileViewControl(_workingAccount, fileItem, true)
                                {
                                    Width   = 200,
                                    Height  = 200,
                                    Opacity = 0,
                                    Margin  = new Thickness(0, 0, 10, 10),
                                };
                                multiControl.Tap += new EventHandler <System.Windows.Input.GestureEventArgs>(TileListSelectionChanged);

                                // sometimes the exception "wrong parameter" is thrown - but why???
                                TileView.Children.Add(multiControl);
                                multiControl.Delay(delayStart, () =>
                                {
                                    multiControl.FadeIn(100);
                                });
                            }

                            break;
                        }
                    });
                }

                Dispatcher.BeginInvoke(() =>
                {
                    progress.IsVisible = false;
                });
            }
            else
            {
                Dispatcher.BeginInvoke(() =>
                {
                    progress.IsVisible = false;
                    if (result.Status == ServerStatus.Unauthorized)
                    {
                        MessageBox.Show("FetchFile_Unauthorized".Translate(), "Error_Caption".Translate(), MessageBoxButton.OK);
                    }
                    else
                    {
                        MessageBox.Show("FetchFile_Unexpected_Result".Translate(), "Error_Caption".Translate(), MessageBoxButton.OK);
                    }
                });
            }
        }