private void buttonFavouritesDelete_Click(object sender, RoutedEventArgs e)
        {
            FavouriteBase item = treeView.SelectedItem as FavouriteBase;

            if (item != null)
            {
                FavouriteFolder parent = FindParent(_rootFolder, item);

                if (parent != null)
                {
                    string res = item is FavouriteFolder ? "QUESTIONDELETEFAVOURITEFOLDER" : "QUESTIONDELETEFAVOURITE";

                    DialogPanel.ShowQuestionBox(CultureHelper.GetString(Properties.Resources.ResourceManager, res),
                                                DialogButtons.Yes | DialogButtons.No,
                                                delegate(DialogResult dialogResult)
                    {
                        if (dialogResult == DialogResult.Yes)
                        {
                            parent.Children.Remove(item);
                        }
                    }
                                                );
                }
            }
            UpdateButtonStates();
        }
        private void buttonFavouritesRename_Click(object sender, RoutedEventArgs e)
        {
            FavouriteBase item = treeView.SelectedItem as FavouriteBase;

            if (item != null)
            {
                Dialogs.FavouriteName dialog = new FavouriteName();

                dialog.ItemName = item.Name;

                DialogPanel.ShowDialog(Properties.Resources.ResourceManager, "PROPERTIES", dialog, "textFavouriteName", DialogButtons.Ok | DialogButtons.Cancel,
                                       delegate(DialogResult dialogResult)
                {
                    if (dialogResult == DialogResult.Ok)
                    {
                        item.Name = dialog.ItemName;
                    }
                }
                                       );
            }
        }
        private FavouriteFolder FindParent(FavouriteFolder favouriteFolder, FavouriteBase favouriteItem)
        {
            FavouriteFolder foundParent = null;

            if (favouriteFolder.Children.Contains(favouriteItem))
            {
                foundParent = favouriteFolder;
            }
            else
            {
                for (int i = 0; i < favouriteFolder.Children.Count && foundParent == null; i++)
                {
                    FavouriteFolder childFolder = favouriteFolder.Children[i] as FavouriteFolder;

                    if (childFolder != null)
                    {
                        foundParent = FindParent(childFolder, favouriteItem);
                    }
                }
            }

            return(foundParent);
        }
Пример #4
0
 public FavouriteViewModel(FavouriteBase data)
 {
     Data = data;
 }
        void treeView_MoveToParent(object newParent, object item, bool addAtStart)
        {
            FavouriteBase favouriteBase = item as FavouriteBase;

            if (favouriteBase != null)
            {
                FavouriteFolder newFavouriteFolder;

                if (newParent == null)
                {
                    newFavouriteFolder = _rootFolder;
                }
                else
                {
                    newFavouriteFolder = newParent as FavouriteFolder;
                }

                if (newFavouriteFolder != null)
                {
                    FavouriteFolder originalFavouriteFolder = FindParent(_rootFolder, favouriteBase);

                    if (originalFavouriteFolder != null)
                    {
                        // Only move the item if the folder has really changed
                        if (originalFavouriteFolder != newFavouriteFolder)
                        {
                            originalFavouriteFolder.Children.Remove(favouriteBase);

                            // If we are adding a folder make sure it comes before any favourites
                            if (favouriteBase is FavouriteFolder)
                            {
                                int foundIdx = -1;

                                if (favouriteBase is FavouriteFolder && addAtStart)
                                {
                                    foundIdx = 0;
                                }
                                else
                                {
                                    for (int i = 0; i < newFavouriteFolder.Children.Count && foundIdx == -1; i++)
                                    {
                                        if (newFavouriteFolder.Children[i] is Favourite)
                                        {
                                            foundIdx = i;
                                        }
                                    }

                                    if (foundIdx == -1)
                                    {
                                        foundIdx = newFavouriteFolder.Children.Count;
                                    }
                                }

                                newFavouriteFolder.Children.Insert(foundIdx, favouriteBase);
                            }
                            else
                            {
                                newFavouriteFolder.Children.Add(favouriteBase);
                            }
                        }
                    }
                }
            }
        }