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); }
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); } } } } } }